Skip to content

Releases: utensils/mcp-nixos

v1.0.3: Encoding Fix

18 Oct 21:00

Choose a tag to compare

Overview

MCP-NixOS v1.0.3 fixes encoding errors when parsing Home Manager and nix-darwin documentation, ensuring robust operation with various HTML encodings from CDN edge servers.

Highlights

  • 🔧 Fixed HTML Encoding Errors: Resolves intermittent "unknown encoding: windows-1252" errors
  • 🌐 Enhanced CDN Resilience: Better handling of documentation served from different edge servers
  • Comprehensive Testing: Added encoding tests for windows-1252, ISO-8859-1, and UTF-8 with BOM

What Changed

The MCP server now uses resp.content instead of resp.text when parsing HTML documentation, allowing BeautifulSoup to automatically detect and handle various encodings. This prevents failures when CDN edge servers serve content with different encoding declarations.

Installation

# Install with pip
pip install mcp-nixos==1.0.3

# Install with uv
uv pip install mcp-nixos==1.0.3

# Install with uvx
uvx mcp-nixos==1.0.3

Docker Images

# Docker Hub
docker pull utensils/mcp-nixos:1.0.3

# GitHub Container Registry
docker pull ghcr.io/utensils/mcp-nixos:1.0.3

See RELEASE_NOTES.md for complete details.

v1.0.2: Infrastructure Improvements

01 Oct 18:06

Choose a tag to compare

Overview

MCP-NixOS v1.0.2 is a maintenance release focused on CI/CD improvements, security fixes, and enhanced Docker support.

Highlights

  • 🚀 Manual workflow dispatch for Docker builds
  • 🔒 Automated GHCR package visibility
  • 🐳 Continuous Docker builds on main branch
  • 📦 FlakeHub publishing integration
  • 🔧 API resilience improvements with fallback channels
  • 🛡️ Security fix for PrismJS vulnerability

Installation

pip install mcp-nixos==1.0.2
# or
uv pip install mcp-nixos==1.0.2

Docker Images

docker pull utensils/mcp-nixos:1.0.2
docker pull ghcr.io/utensils/mcp-nixos:1.0.2

See RELEASE_NOTES.md for full details.

v1.0.1 - FastMCP Migration & IntelliJ Fixes

03 Aug 09:15

Choose a tag to compare

What's Changed

  • Migrated to FastMCP for improved async performance
  • Fixed IntelliJ MCP integration compatibility issues
  • Restored minimal main.py implementation
  • Updated MCP SDK to 1.12.3

Full Changelog: v1.0.0...v1.0.1

Release v1.0.0

26 May 22:43
v1.0.0
651e7e2

Choose a tag to compare

Overview

MCP-NixOS v1.0.0 is a complete rewrite that proves less is more. We've drastically simplified the codebase while maintaining 100% functionality and adding new features. This isn't just a refactor—it's a masterclass in minimalism.

Changes in v1.0.0

🎯 The Nuclear Option

  • Complete Rewrite: Drastically simplified the entire codebase
  • Stateless Operation: No more cache directories filling up your disk
  • Direct API Calls: Removed all abstraction layers—now it's just functions doing their job
  • Simplified Dependencies: Reduced from 5 to 3 core dependencies (40% reduction)
  • Two-File Implementation: Everything you need in just server.py and __main__.py
  • Resolves #22: Completely eliminated pickle usage and the entire cache layer

🚀 Major Improvements

  • Plain Text Output: All responses now return human-readable plain text (no XML!)
  • NixHub Integration: Added package version history tools
    • nixhub_package_versions: Get version history with nixpkgs commits
    • nixhub_find_version: Smart search for specific versions
  • Dynamic Channel Resolution: Auto-discovers current stable channel
  • Enhanced Error Messages: Suggestions when exact matches fail
  • Flake Search: Added deduplicated flake package search
  • Better Stats: Accurate statistics for all tools
  • Zero Configuration: Removed all the config options you weren't using anyway
  • Faster Startup: No cache initialization, no state management, just pure functionality
  • 100% Test Coverage: Comprehensive test suite ensures everything works as advertised

💥 Breaking Changes

  • No More Caching: All operations are now stateless (your internet better be working)
  • Environment Variables Removed: Only ELASTICSEARCH_URL remains
  • No Pre-Cache Option: The --pre-cache flag is gone (along with the cache itself)
  • No Interactive Shell: The deprecated CLI has been completely removed

🧹 What We Removed

  • cache/ directory - Complex caching that nobody understood
  • clients/ directory - Abstract interfaces that abstracted nothing
  • contexts/ directory - Context managers for contexts that didn't exist
  • resources/ directory - MCP resource definitions (now inline)
  • tools/ directory - Tool implementations (now in server.py)
  • utils/ directory - "Utility" functions that weren't
  • 45 files of over-engineered complexity

📊 The Numbers

  • Before: Many files with layers of abstraction
  • After: Just 2 core files that matter
  • Result: Dramatically less code, zero reduction in functionality, more features added

Installation

# Install with pip
pip install mcp-nixos==1.0.0

# Install with uv
uv pip install mcp-nixos==1.0.0

# Install with uvx
uvx mcp-nixos==1.0.0

Migration Guide

If you're upgrading from v0.x:

  1. Remove cache-related environment variables - They don't do anything anymore
  2. Remove --pre-cache from any scripts - It's gone
  3. That's it - Everything else just works

Why This Matters

This release demonstrates that most "enterprise" code is just complexity for complexity's sake. By removing abstractions, caching layers, and "design patterns," we've created something that:

  • Is easier to understand
  • Has fewer bugs (less code = less bugs)
  • Starts faster
  • Uses less memory
  • Is more reliable

Sometimes the best code is the code you delete.

Contributors

  • James Brink (@utensils) - Chief Code Deleter