/ ディレクトリ / プレイグラウンド / mcp-nixos
● コミュニティ utensils ⚡ 即起動

mcp-nixos

作者 utensils · utensils/mcp-nixos

チャットからNixOSパッケージ、モジュールオプション、Home Manager設定を検索できます。13万以上のパッケージと2万3千以上のオプションに対応し、セットアップ不要です。

mcp-nixosは、NixOSパッケージ、システムオプション、Home Manager、nix-darwin、Nixvim、および関連レジストリを2つのツールで検索します。認証もローカルのNixインストールも不要で、公開検索APIにプロキシします。「Xのパッケージはある?」「Yのオプションは何?」といった質問に、ドキュメントを探し回ることなく回答できます。

なぜ使うのか

主な機能

ライブデモ

実際の動作

nixos.replay ▶ 準備完了
0/0

インストール

クライアントを選択

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "nixos": {
      "command": "uvx",
      "args": [
        "mcp-nixos"
      ],
      "_inferred": true
    }
  }
}

Claude Desktop → Settings → Developer → Edit Config を開く。保存後、アプリを再起動。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "nixos": {
      "command": "uvx",
      "args": [
        "mcp-nixos"
      ],
      "_inferred": true
    }
  }
}

Cursor は Claude Desktop と同じ mcpServers スキーマを使用。プロジェクト設定はグローバルより優先。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "nixos": {
      "command": "uvx",
      "args": [
        "mcp-nixos"
      ],
      "_inferred": true
    }
  }
}

Cline サイドバーの MCP Servers アイコンをクリックし、"Edit Configuration" を選択。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "nixos": {
      "command": "uvx",
      "args": [
        "mcp-nixos"
      ],
      "_inferred": true
    }
  }
}

Claude Desktop と同じ形式。Windsurf を再起動して反映。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "nixos",
      "command": "uvx",
      "args": [
        "mcp-nixos"
      ]
    }
  ]
}

Continue はマップではなくサーバーオブジェクトの配列を使用。

~/.config/zed/settings.json
{
  "context_servers": {
    "nixos": {
      "command": {
        "path": "uvx",
        "args": [
          "mcp-nixos"
        ]
      }
    }
  }
}

context_servers に追加。保存時に Zed がホットリロード。

claude mcp add nixos -- uvx mcp-nixos

ワンライナー。claude mcp list で確認、claude mcp remove で削除。

ユースケース

実用的な使い方: mcp-nixos

あいまいな名前や用途からNixOSパッケージを検索する

👤 NixOSユーザー、フレーク作成者 ⏱ ~5 min beginner

使うタイミング: パッケージの大まかな機能は覚えているが、nixの属性名がわからないとき。

フロー
  1. 検索する
    「OCRコマンドラインツール」に一致するNixOSパッケージを探してください。✓ コピーしました
    → 説明付きの候補リストがランク順で表示される
  2. 最適な候補の詳細を確認する
    tesseractについて、属性パス、unstableと24.11でのバージョン、対応するmeta.platformsを教えてください。✓ コピーしました
    → 属性、バージョン、プラットフォーム情報を含む詳細カード

結果: configuration.nixやフレークにそのまま記述できる正確な属性。

注意点
  • チャンネルの不一致 — パッケージがunstableにのみ存在し、使用中のstableチャンネルにはない — 使用中のチャンネルを明示的に指定して問い合わせる
組み合わせ: filesystem

NixOSモジュールオプションの型とデフォルト値を調べる

👤 NixOSモジュールを作成する人 ⏱ ~5 min beginner

使うタイミング: zswapを有効にするオプションが「どこかに」あるはずだが、nixpkgsをgrepしたくないとき。

フロー
  1. オプションを検索する
    zswapを有効にするNixOSオプションはありますか?型、デフォルト値、説明を教えてください。✓ コピーしました
    → 完全なオプションカード
  2. 使用例を取得する
    z3foldでメモリ20%のzswapを有効にする最小限のconfiguration.nixスニペットを作ってください。✓ コピーしました
    → コピー&ペースト可能なNixスニペット

結果: そのまま貼り付けられる正しいオプションの使用例。

nixpkgsを特定パッケージの古いバージョンにピン留めする

👤 特定の古いバージョンが必要なユーザー ⏱ ~10 min intermediate

使うタイミング: 新しいバージョンで問題が発生し、最後に動作確認済みのコミットに戻したいとき。

フロー
  1. 過去のバージョンを調べる
    nixpkgsにおけるnodejs_20の過去のバージョンをコミットハッシュ付きで表示してください。✓ コピーしました
    → バージョン→コミットの対応表
  2. フレーク入力を生成する
    そのコミットからnodejs_20 20.15.0をピン留めするフレーク入力を生成してください。✓ コピーしました
    → そのまま貼り付けられるflake.nixスニペット

結果: ロールバック用の再現可能なピン留めされた入力。

組み合わせ: filesystem

プログラムのHome Managerオプションを探索する

👤 Home Managerを使用するすべての人 ⏱ ~10 min beginner

使うタイミング: プログラムを宣言的に管理したいが、どんなオプションがあるかわからないとき。

フロー
  1. プログラムのオプション一覧を取得する
    programs.neovim配下のHome Managerオプションをすべてリストアップしてください。✓ コピーしました
    → カテゴリ分けされたオプション一覧
  2. 最小限の設定ブロックを作成する
    TelescopeとTS/Python用LSPを有効にした最小限のprograms.neovimブロックを作ってください。✓ コピーしました
    → 動作するHMスニペット

結果: マニュアル全体を読まずに作成できる動作するHome Manager設定。

組み合わせ

他のMCPと組み合わせて10倍の力を

nixos + filesystem

オプションを見つけて設定ファイルに書き込む

flatpakを有効にするNixOSオプションを見つけて、コメント付きで~/nixos/configuration.nixに追加してください。✓ コピーしました
nixos + github

パッケージが見つからない場合にissueを作成する

パッケージfoo-cliはnixpkgsにありますか?なければ、フォークリポジトリにGitHub issueを作成してリクエストしてください。✓ コピーしました

ツール

このMCPが提供する機能

ツール入力呼び出すタイミングコスト
nix action: search|info|stats|options|channels|flake-inputs|cache, args: ... パッケージ、オプション、チャンネルに関するあらゆるクエリ 1 upstream API call
nix_versions package: str 古いバージョンやnixpkgsのピン留めが必要なとき 1 upstream call

コストと制限

運用コスト

APIクォータ
公開API。制限は緩めですが無制限ではありません — 過度なリクエストは避けてください
呼び出しあたりのトークン
説明付きオプション: 500〜2000トークン。一覧はより大きくなる場合があります。
金額
無料
ヒント
50件返すsearchよりも、1つのパッケージに対するinfoを優先してください。

セキュリティ

権限、シークレット、影響範囲

認証情報の保管: なし
データ送信先: search.nixos.orgおよび関連する公開APIへの呼び出し

トラブルシューティング

よくあるエラーと対処法

uvx not found

uvをインストールしてください: curl -LsSf https://astral.sh/uv/install.sh | sh、その後MCPを再追加してください。

確認: uvx --version
No results for a package I know exists(存在するはずのパッケージで結果が返らない)

属性名のスペルが異なる場合があります — より緩いクエリを試すか、説明文で検索してください。

確認: Retry with partial keyword
Stale version info(バージョン情報が古い)

MCPは短時間キャッシュします。5分後に再クエリするか、action=cacheを渡してリフレッシュしてください。

代替案

mcp-nixos 他との比較

代替案代わりに使う場面トレードオフ
search.nixos.org directlyブラウザのタブで十分な場合AIが介在しない
nix-search CLIローカルで高速に検索したく、Nixがインストール済みの場合ローカルのNixと最新のチャンネルが必要

その他

リソース

📖 GitHub の公式 README を読む

🐙 オープンな issue を見る

🔍 400以上のMCPサーバーとSkillsを見る