mcp-nixos
MCP ServerFreeMCP-NixOS - Model Context Protocol Server for NixOS resources
Capabilities14 decomposed
unified-nix-package-search-across-multiple-sources
Medium confidenceExecutes package searches across 6 distinct NixOS ecosystem data sources (nixos, home-manager, darwin, flakes, flakehub, nixvim) through a single consolidated 'search' action on the nix() tool. Internally routes queries to Elasticsearch for nixos/home-manager/darwin packages, FlakeHub API for flake discovery, and NixHub.io for nixvim programs, aggregating results into a unified response format that prevents LLM hallucination of non-existent package names.
Consolidates 6 independent data sources (Elasticsearch, FlakeHub, NixHub, HTML parsing) into a single action-based interface with automatic source routing, eliminating the need for users to know which source contains which package type. Uses a stateless proxy architecture that requires zero local Nix installation.
Unlike manual nixpkgs.org searches or nix search commands that require local Nix, this provides real-time multi-source aggregation directly within Claude with zero setup overhead.
hierarchical-nix-options-browsing-with-source-filtering
Medium confidenceImplements a hierarchical options action that traverses configuration option trees for home-manager, nix-darwin, and nixvim by parsing HTML documentation and building in-memory option hierarchies. Supports drilling down from top-level option categories (e.g., 'programs.neovim') to leaf options with type information, defaults, and descriptions, enabling LLMs to explore configuration spaces without hallucinating invalid option paths.
Parses HTML documentation into queryable hierarchical option trees rather than requiring users to navigate web pages or memorize option paths. Caches parsed option hierarchies in NixvimCache and ChannelCache classes to avoid re-parsing on repeated queries.
Provides in-context option discovery within Claude instead of forcing users to context-switch to nixos.org or home-manager documentation, reducing cognitive load and hallucination risk.
nixvim-plugin-search-with-paginated-option-loading
Medium confidenceIntegrates with NixHub.io to search Nixvim plugins and retrieve plugin metadata. Implements NixvimCache class (lines 159-199 in server.py) that handles paginated loading of Nixvim options (50 results per page) to manage memory and API load. The search action queries NixHub for plugins, and the options action traverses Nixvim option hierarchies with pagination support.
Implements NixvimCache class with paginated option loading (50 results per page) to manage memory and API load while supporting large option trees. Integrates with NixHub.io for authoritative Nixvim plugin and option metadata.
Paginated option loading enables efficient exploration of large Nixvim option trees without loading entire hierarchies into memory, improving performance for complex configurations.
html-documentation-parsing-for-option-extraction
Medium confidenceParses HTML documentation from NixHub.io and other sources to extract hierarchical option information (option paths, types, defaults, descriptions) for home-manager, nix-darwin, and nixvim. Implements custom HTML parsing logic that builds in-memory option trees from documentation, enabling the options action to traverse hierarchies without requiring API calls for each option.
Implements custom HTML parsing that extracts hierarchical option information from unstructured documentation, building queryable option trees without requiring structured data sources. Caches parsed results to avoid re-parsing on repeated queries.
HTML parsing approach enables option extraction from existing documentation without requiring upstream sources to provide structured APIs, reducing dependency on external infrastructure.
in-memory-caching-with-time-based-invalidation
Medium confidenceImplements ChannelCache and NixvimCache classes that cache query results in memory with time-based invalidation (default 1 hour). Caching reduces latency for repeated queries and API load on upstream sources, while time-based invalidation ensures eventual freshness. Cache keys are based on query parameters, enabling efficient cache hits for identical queries.
Implements simple time-based caching with configurable TTL (default 1 hour) in ChannelCache and NixvimCache classes, reducing latency for repeated queries without requiring external cache infrastructure. Cache keys based on query parameters enable efficient cache hits.
In-memory caching with time-based invalidation is simpler than external cache systems (Redis, Memcached) while providing significant latency reduction for typical usage patterns.
error-handling-and-response-formatting-with-source-attribution
Medium confidenceImplements comprehensive error handling that catches API failures, parsing errors, and invalid parameters, returning structured error responses with source attribution and fallback suggestions. Response formatting standardizes output across all sources, including metadata about which source provided the result, enabling users to understand result provenance and trust level.
Implements structured error responses with source attribution and fallback suggestions, enabling transparent error handling and debugging. Response formatting standardizes output across all sources, improving consistency and usability.
Comprehensive error handling with source attribution improves reliability and debuggability compared to opaque error messages, enabling users to understand failures and take corrective action.
package-version-history-retrieval-across-channels
Medium confidenceDedicated nix_versions() tool that queries package version history across NixOS channels (unstable, stable, 23.11, 24.05, etc.) by integrating with FlakeHub API and channel resolution system. Returns version timelines, availability across channels, and deprecation status, enabling users to understand package evolution and select appropriate channel versions for reproducible builds.
Implements a dynamic ChannelCache class that discovers available NixOS channels at runtime rather than hardcoding them, ensuring version history queries always reflect current channel offerings. Integrates FlakeHub API for authoritative version metadata.
Provides version history directly in Claude context instead of requiring manual channel switching or nixpkgs.org searches, enabling data-driven channel selection decisions.
detailed-package-metadata-retrieval-with-source-attribution
Medium confidenceInfo action on the nix() tool retrieves comprehensive package metadata (maintainers, licenses, dependencies, source URLs, descriptions) from nixos, home-manager, darwin, flakehub, and nixvim sources. Queries Elasticsearch indices and FlakeHub API to surface authoritative package information with source attribution, enabling LLMs to provide users with complete context about package provenance and maintenance status.
Aggregates metadata from 5 independent sources (Elasticsearch for nixos/home-manager/darwin, FlakeHub for flakes, NixHub for nixvim) with explicit source attribution, preventing confusion about metadata provenance. Implements response formatting that surfaces maintainer and license information prominently.
Provides authoritative package metadata directly in Claude without context-switching to multiple websites, enabling informed package selection decisions within the conversation.
nix-ecosystem-statistics-aggregation
Medium confidenceStats action on the nix() tool aggregates ecosystem statistics (package counts, maintainer counts, update frequency) across nixos, home-manager, darwin, flakes, and flakehub sources by querying Elasticsearch aggregation endpoints and FlakeHub API. Returns time-series data and comparative metrics that enable users to understand ecosystem health and package distribution patterns.
Consolidates ecosystem statistics from 5 sources into a single stats action, enabling comparative analysis across nixos, home-manager, darwin, flakes, and flakehub without separate API calls. Uses Elasticsearch aggregation pipelines for efficient metric computation.
Provides ecosystem-wide statistics directly in Claude context instead of requiring manual data collection from multiple sources, enabling data-driven ecosystem evaluation.
dynamic-nixos-channel-discovery-and-listing
Medium confidenceChannels action on the nix() tool dynamically discovers available NixOS channels at runtime using the ChannelCache class, which queries official NixOS channel sources and caches results. Returns a list of available channels (unstable, stable, 23.11, 24.05, etc.) with metadata, enabling users to understand channel options without hardcoding channel lists.
Implements ChannelCache class that dynamically discovers channels at runtime rather than hardcoding them, ensuring channel lists stay current as NixOS releases new channels. Uses time-based cache invalidation to balance freshness and performance.
Provides current channel listings directly in Claude without requiring users to manually check nixos.org or maintain hardcoded channel lists.
mcp-protocol-server-with-stdio-json-rpc-transport
Medium confidenceImplements a FastMCP server instance that handles Model Context Protocol communication via stdio/JSON-RPC, translating MCP tool calls into internal function invocations and serializing responses back to JSON. Manages the full MCP lifecycle including tool registration, parameter validation, error handling, and response formatting, enabling seamless integration with MCP clients like Claude Desktop.
Uses FastMCP framework to eliminate boilerplate MCP protocol handling, reducing server implementation to ~1400 lines of Python while maintaining full MCP compliance. Implements stateless proxy architecture that requires zero local Nix installation.
FastMCP-based implementation is significantly simpler than hand-rolled MCP servers, reducing maintenance burden and enabling rapid iteration on data source integrations.
multi-source-data-aggregation-with-action-source-matrix
Medium confidenceImplements an action-source-type matrix that routes tool calls to appropriate data sources based on action (search, info, stats, options, channels) and source (nixos, home-manager, darwin, flakes, flakehub, nixvim). The nix() tool function (lines 1245-1324 in server.py) contains conditional logic that dispatches to Elasticsearch, FlakeHub API, HTML parsers, or NixHub.io based on the action-source combination, consolidating 17 individual tools into 2 unified tools.
Achieves 95% token reduction (from ~15,000 to ~1,400 tokens) by consolidating 17 individual tools into 2 unified tools with action-source matrix routing. Maintains full functionality while dramatically reducing MCP tool overhead.
Unified action-source matrix approach reduces token overhead compared to separate tools for each source, enabling more efficient context utilization in token-constrained scenarios.
elasticsearch-backed-package-search-with-full-text-indexing
Medium confidenceIntegrates with Elasticsearch indices for nixos, home-manager, and darwin packages, executing full-text searches against indexed package metadata (names, descriptions, maintainers). The search action routes queries to Elasticsearch endpoints that return ranked results based on relevance scoring, enabling fast, accurate package discovery without requiring local Nix installation or package database.
Leverages Elasticsearch full-text search indices maintained by NixOS community, providing fast, ranked package discovery without requiring local package database or Nix installation. Integrates with existing Elasticsearch infrastructure rather than building custom search.
Elasticsearch-backed search is faster and more flexible than regex-based local search, enabling fuzzy matching and relevance ranking that improves discovery accuracy.
flakehub-api-integration-for-flake-discovery-and-metadata
Medium confidenceIntegrates with FlakeHub API to discover flakes and retrieve flake metadata (description, source URL, inputs, outputs) for the flakehub source. The search action queries FlakeHub's flake registry, and the info action retrieves detailed flake metadata including dependencies and output types. Enables users to discover community flakes and understand their structure without cloning repositories.
Integrates with official FlakeHub API to provide authoritative flake discovery and metadata, avoiding the need to parse flake.nix files or clone repositories. Supports both search and detailed info actions for flakes.
FlakeHub integration enables flake discovery directly in Claude without requiring users to browse flakehub.com or clone repositories, reducing friction for flake composition.
Capabilities are decomposed by AI analysis. Each maps to specific user intents and improves with match feedback.
Related Artifactssharing capabilities
Artifacts that share capabilities with mcp-nixos, ranked by overlap. Discovered automatically through the match graph.
XFind
Boost efficiency with AI-driven, multi-platform meta-search...
opensrc
Fetch source code for npm packages to give AI coding agents deeper context
mcp-neovim-server
Control Neovim using Model Context Protocol (MCP) and the official neovim/node-client JavaScript library
Zivy
AI-driven tool streamlines communication for engineering and product...
local-deep-research
Local Deep Research achieves ~95% on SimpleQA benchmark (tested with GPT-4.1-mini). Supports local and cloud LLMs (Ollama, Google, Anthropic, ...). Searches 10+ sources - arXiv, PubMed, web, and your private documents. Everything Local & Encrypted.
rust-analyzer
Official Rust language server for VS Code.
Best For
- ✓NixOS users integrating with Claude Desktop or other MCP clients
- ✓DevOps teams automating Nix configuration generation
- ✓Developers building tools that need authoritative NixOS package metadata
- ✓Users generating Home Manager or nix-darwin configurations via Claude
- ✓Teams automating declarative system configuration
- ✓Developers building Nix configuration generators that need option validation
- ✓Neovim users configuring Nixvim via Claude
- ✓Teams automating Nixvim configuration generation
Known Limitations
- ⚠Search results depend on upstream data source freshness; Elasticsearch indices may lag package releases by hours
- ⚠FlakeHub API rate limiting may throttle bulk searches; no built-in request queuing
- ⚠Nixvim search requires paginated loading (50 results per page) for large result sets, adding latency for comprehensive queries
- ⚠HTML documentation parsing is fragile; upstream documentation format changes may break option extraction
- ⚠Hierarchical traversal requires multiple API calls for deep option trees, adding ~100-200ms per level
- ⚠Options action only available for home-manager, darwin, and nixvim; not for nixos core options (use 'info' action instead)
Requirements
Input / Output
UnfragileRank
UnfragileRank is computed from adoption signals, documentation quality, ecosystem connectivity, match graph feedback, and freshness. No artifact can pay for a higher rank.
Repository Details
Last commit: Apr 22, 2026
About
MCP-NixOS - Model Context Protocol Server for NixOS resources
Categories
Alternatives to mcp-nixos
Are you the builder of mcp-nixos?
Claim this artifact to get a verified badge, access match analytics, see which intents users search for, and manage your listing.
Get the weekly brief
New tools, rising stars, and what's actually worth your time. No spam.
Data Sources
Looking for something else?
Search →