mcp-servers-nixを導入した
Table of Contents
Introduction
natsukium謹製の natsukium/mcp-servers-nix を takeokunn/nixos-configuration に導入したのでメモしておく。
変更点
Before
- Orgファイルから
org-babel-tangle
で~/Library/Application\ Support/Claude/claude_desktop_config.json
を出力 - 必要なpackageは node2nix 経由で入れる
- 秘密鍵はOrgファイルで
org-encrypt
して管理- ref. org-crypt運用メモ
After
- natsukium/mcp-servers-nix からMCPに必要なものをjsonを出力
- 必要なpackageは大体 natsukium/mcp-servers-nix に同梱されてる
- 足りないものは node2nix 経由で入れる
- 秘密鍵は sops-nix で管理
作業内容
MCPサーバーの設定をセキュアでGit friendlyにする - Zenn を事前に読む。
1. sops-nixに登録
sops/password.yml
に以下を登録する。
brave-api-token: BRAVE_API_KEY=xxxx
sops/default.nix
で読み込めるようにする。
{
sops = {
defaultSopsFile = ./password.yaml;
secrets = {
brave-api-token = { };
};
};
}
2. mcp-serversを記述する
envFile = config.sops.secrets.brave-api-token.path;
のように環境変数を渡す。
{
pkgs,
config,
mcp-servers-nix,
nodePkgs,
}:
let
programs = {
fetch.enable = true;
playwright.enable = true;
brave-search = {
enable = true;
envFile = config.sops.secrets.brave-api-token.path;
};
};
in
[
{
home.file."Library/Application\ Support/Claude/claude_desktop_config.json" = {
source = mcp-servers-nix.lib.mkConfig pkgs {
inherit programs;
};
};
}
]
3. home-managerに組込み
home-manager/advanced.nix
で imports
で登録すればよい。
{
config,
system,
nixpkgs,
org-babel,
emacs-overlay,
mcp-servers-nix,
...
}:
let
# --- 中略 ---
pkgs = import nixpkgs {
inherit system;
config.allowUnfree = true;
overlays = basicOverlay ++ advancedOverlay;
};
nodePkgs = pkgs.callPackage ../node2nix { inherit pkgs; };
# mcp servers
mcpServers = import ./mcp-servers {
inherit pkgs nodePkgs;
inherit config mcp-servers-nix;
};
in
{
imports = mcpServers;
}
作業結果
正常に動くことを確認できた。


$ cat ~/Library/Application\ Support/Claude/claude_desktop_config.json
:
{
"mcpServers": {
"brave-search": {
"args": [],
"command": "/nix/store/ycnnbcc78f826p1qv1ishw51i7kizvpn-mcp-server-brave-search/bin/mcp-server-brave-search",
"env": {}
},
"fetch": {
"args": [],
"command": "/nix/store/bygbip4rxvmpyrcccznv69ssvg65985m-mcp-server-fetch-2025.3.28/bin/mcp-server-fetch",
"env": {}
},
"playwright": {
"args": [
"--executable-path",
"/nix/store/97prd65kac7lms777bigyjq56igmx2jq-google-chrome-135.0.7049.42/bin/google-chrome-stable"
],
"command": "/nix/store/xp3hby1vl5ppf1xpmlnzj9b8lpnf94q1-playwright-mcp-0.0.9/bin/mcp-server-playwright",
"env": {}
}
}
}
終わりに
sopsに雑にパスワードを登録してるのでもう少しオシャレに管理したい。
brave-api-token: BRAVE_API_KEY=xxxx