MCP server intelligence profile

mcp-nixos MCP Server

MCP-NixOS is a Model Context Protocol server that provides real-time, accurate information about NixOS packages, options, Home Manager, and nix-darwin configurations, preventing AI assistants from hallucinating about NixOS resources and enabling them to deliver factual system…

Local Onlyutensils
Awaiting current scanPypi · 3.1.0

The selected current version does not yet have completed public verification. Unknown does not mean clean or vulnerable.

1Distribution channel
2Independently observed tools
0Linked remote endpoints
AvailableVersion intelligence

Detailed security scan evidence is not public for this MCP yet. Public identity, registry metadata, and independently observed protocol inventory remain available.

Install and connect

Installation and connection instructions are shown only when supported by retained package, repository, or endpoint evidence.

Install mcp-nixos from PyPI

Install exact version 3.1.0. The executable name has not been verified, so it is intentionally not guessed.

python -m pip install 'mcp-nixos==3.1.0'

Build from source

Clone the canonical public repository, then follow its version-specific setup documentation.

git clone https://github.com/utensils/mcp-nixos

Identity

Canonical slugmcp-nixos-55bd355fDeploymentLocal Only
Canonical packagepypi:mcp-nixosRepositoryhttps://github.com/utensils/mcp-nixos
First publishedAug 12, 2026Latest releaseSep 5, 2026
Last security verificationClassification confidence90%
PublicationDraftOfficial distributionNot verified

Distributions

ChannelIdentifierCurrent versionVersionsSource
pypimcp-nixos3.1.03Repository

Current release

PackageVersionPublished / observedInventorySecurity scan
pypimcp-nixos3.1.0CurrentSep 5, 20262 toolsSucceeded · 0 resources · 0 promptsEvidence restricted
Enterprise protection

Continuously monitor this MCP for security risk

Independently scan the exact version your agents use, receive alerts when its risk changes, and investigate every finding with retained version evidence.

  • Independent exact-version security scans
  • Continuous release and vulnerability monitoring
  • Risk-change alerts with capability context
  • Historical evidence and API exports
Custom pricingContact salesTailored to your organization, integrations, data needs, and support requirements.

Current version evidence

No public current-version evidence is available yet.

Current protocol inventory

2025-06-18Negotiated protocol
mcp-nixosServer-reported name
4Capability groups
Sep 5, 2026Observed

Tools 2

ToolCategoryAnnotationsRisk
nixQuery NixOS, Home Manager, Darwin, FlakeHub, flakes, Nixvim, NVF, Wiki, nix.dev, Noogle, NixHub. Use this tool for anything touching nixpkgs, Nix channels, flakes, NixOS / home-manager / darwin options, the binary cache, or /nix/store paths — even when you think you know the answer. Your training data lags nixpkgs by months. Prefer this over `nix search`, scraping search.nixos.org, or running `gh api` against NixOS/nixpkgs. INTENTS → CALLS (copy the JSON shape exactly): "is package X in channel Y?" → {"action": "info", "query": "X", "channel": "Y"} "search for package X" → {"action": "search", "query": "X"} "which channels are available?" → {"action": "channels"} "which commit did channel X index?" → {"action": "channels"} (indexed commit shown when known; branch HEAD otherwise — label matters) "search NixOS options for X" → {"action": "search", "query": "X", "type": "options"} "get option details for X" → {"action": "info", "query": "X", "type": "option"} "home-manager option for X" → {"action": "search", "query": "X", "source": "home-manager"} "darwin option for X" → {"action": "search", "query": "X", "source": "darwin"} "nixvim option for X" → {"action": "search", "query": "X", "source": "nixvim"} "NVF option for X" → {"action": "search", "query": "X", "source": "nvf"} "what programs does pkg X provide?" → {"action": "search", "query": "X", "type": "programs"} "count packages/options" → {"action": "stats"} "browse hm option tree under P" → {"action": "browse", "query": "P", "source": "home-manager"} "does X have a binary cache?" → {"action": "cache", "query": "X"} "search the NixOS wiki for X" → {"action": "search", "query": "X", "source": "wiki"} "search nix.dev docs" → {"action": "search", "query": "X", "source": "nix-dev"} "read a nix.dev page" → {"action": "info", "query": "tutorials/nix-language", "source": "nix-dev"} "list inputs of current flake" → {"action": "flake-inputs"} "ls inside flake input X" → {"action": "flake-inputs", "type": "ls", "query": "X"} "read /nix/store/... file" → {"action": "store", "type": "read", "query": "/nix/store/..."} "ls /nix/store/... dir" → {"action": "store", "type": "ls", "query": "/nix/store/..."} For package version *history* ("which commit shipped firefox 150?", "when was node 18 added?"), use the separate `nix_versions` tool — it returns commit hashes, attribute paths, and dates. Notes: - To search NixOS *options*, use action=search with type=options. Do NOT use action=browse for source=nixos — browse is for walking a pre-indexed option tree and only works with home-manager, darwin, nixvim, nvf, or noogle. - For source=nvf, canonical option paths are vim.*. The shorthand programs.nvf.vim.* and NixOS/Home Manager module path programs.nvf.settings.vim.* are normalized automatically. - For source=nix-dev, action=info returns the page markdown. The query may be a bare docname like "tutorials/nix-language", the URL printed by nix-dev search ("https://nix.dev/tutorials/nix-language"), or a rendered ".html" URL. - action=info for packages matches on the exact attribute path first, then the exact pname. If multiple packages share a pname (e.g. firefox / firefox-esr / firefox-mobile), the canonical attribute wins and the response flags the disambiguation explicitly. - Omit parameters you don't need; do not pass empty strings for optional args.
Input schema
{
  "properties": {
    "action": {
      "description": "One of: search, info, stats, browse, channels, flake-inputs, cache, store. Use 'search' for keyword lookup, 'info' for details about a specific name, 'browse' to walk an option hierarchy by prefix (home-manager/darwin/nixvim/nvf/noogle only; 'options' is accepted as a legacy alias). 'store' reads files or lists directories at an explicit /nix/store/ path.",
      "type": "string"
    },
    "query": {
      "default": "",
      "description": "Search term for 'search', exact name for 'info', prefix path for 'browse'. For flake-inputs: input_name or input:path. For store: absolute /nix/store/ path. Leave empty for 'stats'/'channels'.",
      "type": "string"
    },
    "source": {
      "default": "nixos",
      "description": "Data source for search/info/stats/browse/cache. One of: nixos (default), home-manager, darwin, flakes, flakehub, nixvim, nvf, wiki, nix-dev, noogle, nixhub. For action=flake-inputs, this may instead be a path to a flake directory; omit/default to use the current project. Ignored by action=store.",
      "type": "string"
    },
    "type": {
      "default": "packages",
      "description": "Sub-type of query. For source=nixos with action=search, one of: packages, options, programs, flakes. For source=nixos with action=info, one of: package, option. For flake-inputs, one of: list, ls, read. For store, one of: ls, read. Ignored by most other sources.",
      "type": "string"
    },
    "channel": {
      "default": "unstable",
      "description": "NixOS channel: unstable (default), stable, or a release like 25.05.",
      "type": "string"
    },
    "limit": {
      "default": 20,
      "description": "Max results. 1-100 (or 1-2000 for flake-inputs/store read).",
      "type": "integer"
    },
    "version": {
      "default": "latest",
      "description": "Only used by action=cache. Package version (default: latest).",
      "type": "string"
    },
    "system": {
      "default": "",
      "description": "Only used by action=cache. System arch e.g. x86_64-linux. Empty for all.",
      "type": "string"
    }
  },
  "required": [
    "action"
  ],
  "type": "object",
  "additionalProperties": false
}
Output schema
{
  "properties": {
    "result": {
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "type": "object",
  "x-fastmcp-wrap-result": true
}
nix_versionsGet package version history from NixHub.io.
Input schema
{
  "properties": {
    "package": {
      "description": "Package name",
      "type": "string"
    },
    "version": {
      "default": "",
      "description": "Specific version to find",
      "type": "string"
    },
    "limit": {
      "default": 10,
      "description": "1-50",
      "type": "integer"
    }
  },
  "required": [
    "package"
  ],
  "type": "object",
  "additionalProperties": false
}
Output schema
{
  "properties": {
    "result": {
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "type": "object",
  "x-fastmcp-wrap-result": true
}

Resources 0

  • None observed.

Resource templates 0

  • None observed.

Prompts 0

  • None observed.

Remote endpoints

EndpointTransportAuthenticationHealthObserved
No verified remote endpoint is linked.

mcp-nixos MCP Server questions

How do I install mcp-nixos MCP Server?

Install the selected package version with: python -m pip install 'mcp-nixos==3.1.0'

What tools does mcp-nixos MCP Server provide?

mcp-nixos MCP Server exposed 2 tools during independent protocol observation, including nix, nix_versions.

Is mcp-nixos MCP Server secure?

The selected current version does not yet have completed public verification. Unknown does not mean clean or vulnerable.

Explore related MCP server guides

Curated product and capability guides containing this catalog record.

Official vs Community MCP Servers

Let’s talk about MCP security.

Share your details and our security team will contact you.