Skip to content

Release v1.0.0

Latest
Compare
Choose a tag to compare
@github-actions github-actions released this 26 May 22:43
v1.0.0
651e7e2

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