返回市场
克劳德代码.nix

克劳德代码.nix

作者:roman17 星标更新:2025-10-30

项目介绍

mcps.nix

一个精选的MCP(模型上下文协议)服务器预设库,用于Claude Code,该库与devenvHome Manager中的原生Claude模块集成。

概述

devenv和home-manager现在都支持Claude Code配置:

  • home-manager: programs.claude-code
  • devenv: claude.code

此项目提供了可重复使用的MCP服务器配置(预设),这些配置与上述原生模块兼容,允许您轻松启用并配置流行的MCP服务器,而无需手动进行JSON配置。

特性

  • 预配置的MCP服务器:内置了包括Asana、GitHub、Buildkite、Git、文件系统、LSP集成等流行MCP服务器的预设。
  • 安全凭证管理:支持从文件读取API令牌,而不是环境变量。
  • 原生集成:与devenv和home-manager中的上游Claude模块兼容。
  • 两种Home Manager选项:可以选择原生集成或基于自定义脚本的安装。
  • 可扩展性:可以在预设旁边添加自定义的MCP服务器。

快速开始

将此flake的覆盖层添加到您的nixpkgs导入中。

let
  pkgs = import nixpkgs {
    overlays = [ inputs.mcps.overlays.default ];
  };
in
# ...

使用devenv

在您的devenv模块配置中添加以下内容:

{
  imports = [ inputs.mcps.devenvModules.claude ];

  claude.code = {
    enable = true;
    mcps = {
      git.enable = true;
      filesystem = {
        enable = true;
        allowedPaths = [ "/path/to/your/project" ];
      };
      github = {
        enable = true;
        tokenFilepath = "/path/to/github-token";
      };
    };
  };
}

使用Home Manager

此项目提供了两个Home Manager模块:

选项1:原生集成(推荐)

与home-manager的原生Claude Code支持集成。MCP服务器通过Nix管理,并存储在Nix存储中:

{
  imports = [ inputs.mcps.homeManagerModules.claude ];

  programs.claude-code = {
    enable = true;
    mcps = {
      git.enable = true;
      filesystem = {
        enable = true;
        allowedPaths = [ "${config.home.homeDirectory}/Projects" ];
      };
      asana = {
        enable = true;
        tokenFilepath = "/var/run/agenix/asana.token";
      };
    };
  };
}

选项2:基于脚本的安装

使用Claude CLI来管理~/.claude.json中的MCP服务器。这种方法适用于以下情况:

  • 您希望MCP服务器配置持久化在~/.claude.json中。
  • 您需要手动管理或编辑Nix之外的MCP服务器。
  • 您更喜欢将自定义的MCP配置保留在您的主目录中。
{
  imports = [ inputs.mcps.homeManagerModules.claude-install ];

  programs.claude-code = {
    enable = true;
    mcps = {
      git.enable = true;
      buildkite = {
        enable = true;
        apiKeyFilepath = "/path/to/buildkite-token";
      };
    };
  };
}

可用的MCP服务器

内置预设

预设描述来源
asanaAsana任务管理集成,支持API令牌roychri/mcp-server-asana
buildkiteBuildkite CI/CD流水线集成和监控buildkite/buildkite-mcp-server
fetch支持代理和自定义用户代理的Web内容抓取modelcontextprotocol/servers
filesystem具有可配置路径限制的本地文件系统访问modelcontextprotocol/servers
gitGit仓库操作和版本控制modelcontextprotocol/servers
githubGitHub API集成,具有可配置工具集(仓库、问题、用户、拉请求、代码安全)github/github-mcp-server
grafanaGrafana监控、告警和仪表板管理,具有多个工具集grafana/mcp-grafana
lsp-golang具有可配置工作区的Go开发语言服务器协议集成isaacphi/mcp-language-server
lsp-nix具有可配置工作区的Nix开发语言服务器协议集成isaacphi/mcp-language-server
lsp-python具有可配置工作区的Python开发语言服务器协议集成isaacphi/mcp-language-server
lsp-rust具有可配置工作区的Rust开发语言服务器协议集成isaacphi/mcp-language-server
lsp-typescript具有可配置工作区的TypeScript开发语言服务器协议集成isaacphi/mcp-language-server
sequential-thinking增强推理和知识图谱能力modelcontextprotocol/servers
time时间和时区实用程序,具有可配置的本地时区modelcontextprotocol/servers

模块结构

该项目现在提供了专注于与原生Claude Code支持集成的模块:

  • devenvModules.claude:向devenv的原生claude.code模块添加claude.code.mcps配置。
  • homeManagerModules.claude:向home-manager的原生Claude模块添加programs.claude-code.mcps配置。
  • homeManagerModules.claude-install:替代的home-manager模块,使用Claude CLI来管理~/.claude.json

所有模块都提供对相同预设MCP服务器配置的访问,允许您通过简单的布尔标志轻松启用流行的MCP服务器。

安全特性

  • 凭证文件支持:所有MCP服务器支持从文件读取凭证,而不是环境变量。
  • 路径限制:文件系统访问仅限于明确允许的路径。
  • 无凭证暴露:API令牌和密钥永远不会暴露在Nix存储中。

贡献

参见CONTRIBUTE.md了解开发设置、测试和贡献指南。

许可证

此项目根据MIT许可证发布。