基于 Nix 的 MCP 服务器配置框架,提供声明式模块管理与多客户端配置文件生成能力,支持 Claude Desktop、VS Code、Zed 等客户端。
mcp-servers-nix 是一个基于 Nix 的 Model Control Protocol (MCP) 服务器配置框架,旨在解决 MCP 服务器配置分散、缺乏可复现性的问题。
核心特性#
- 模块化配置:通过
programs.<name>.enable声明式启用和组合多个 MCP 服务器 - 可复现构建:利用 Nix 保证服务器配置的可复现与可声明式管理
- 安全凭据处理:通过
envFile和passwordCommand在运行时加载敏感信息,避免硬编码到/nix/store - 多客户端输出:支持 Claude Desktop、Claude Code、VS Code、Codex CLI、OpenCode、Zed 等客户端配置格式
- 多框架集成:支持 Flakes、flake-parts、devenv、Home Manager
- 版本固定:对服务器版本进行固定,提升稳定性
项目结构#
.
├── flake.nix # Flake 入口
├── default.nix # 经典 Nix 入口
├── lib/ # 核心库函数
├── modules/
│ ├── flake-parts.nix # Flake-parts 集成
│ ├── devenv.nix # devenv 集成
│ └── servers/ # 各 MCP 服务器模块定义
├── pkgs/
│ ├── official/ # 官方服务器包
│ ├── reference/ # 参考实现包
│ └── community/ # 社区包
├── tests/ # 自动化测试
├── examples/ # 示例配置
└── docs/ # 文档
快速上手#
直接运行 MCP 服务器(无需安装):
nix run github:natsukium/mcp-servers-nix#mcp-server-fetch
生成配置文件:
let
pkgs = import <nixpkgs> { };
mcp-servers-nix = import (fetchTarball
"https://github.com/natsukium/mcp-servers-nix/archive/main.tar.gz") { inherit pkgs; };
in
mcp-servers-nix.lib.mkConfig pkgs {
programs.filesystem = {
enable = true;
args = [ "/path/to/allowed/directory" ];
};
}
支持的输出格式#
| 客户端 | 配置文件 |
|---|---|
| Claude Desktop | claude_desktop_config.json |
| Claude Code | .mcp.json |
| VS Code | settings.json / .vscode/mcp.json |
| Codex CLI | .mcp.toml |
| OpenCode | opencode.json |
| Zed | context_servers |
可用模块#
clickup, codex, context7, deepl, esa, everything, fetch, filesystem, git, github, grafana, mastra, memory, netdata, nixos, notion, playwright, sequential-thinking, serena, slite, tavily, terraform, textlint, time 等 20+ 预配置服务器。
安全配置#
programs.github = {
enable = true;
envFile = /path/to/secrets/.env;
passwordCommand = "pass mcp/github";
};
主要语言:Nix (97.7%), Python (1.3%), Shell (1.0%)。许可证:Apache-2.0。