Skip to content
看累了听个音乐吧

6.3 配置与管理 MCP 服务器

6.3 配置与管理 MCP 服务器

MCP 配置存在哪里

claude mcp add 命令添加的 MCP Server,配置会自动写入:

~/.claude/settings.json        ← 用户级(所有项目共享)
.claude/settings.json          ← 项目级(只对当前项目生效)

打开看看里面长什么样:

json
{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxxxxxxxxxxx"
      }
    },
    "postgres": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-postgres",
        "postgresql://user:pass@localhost:5432/mydb"
      ]
    },
    "slack": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-slack"],
      "env": {
        "SLACK_BOT_TOKEN": "xoxb-xxxxxxxxxxxx",
        "SLACK_TEAM_ID": "TXXXXXXXX"
      }
    }
  }
}

你可以直接编辑这个 JSON 文件,效果和用命令行一样。


三种传输协议

添加 MCP Server 时需要指定传输协议(--transport),有三种:

Stdio(进程标准输入输出)

bash
claude mcp add myserver --transport stdio -- npx -y some-mcp-package

Claude Code 会在本地启动一个进程,通过标准输入输出通信。

适合: 本地运行的服务,比如数据库客户端、文件系统工具 特点: 低延迟,进程跟随 Claude Code 会话启动和退出

HTTP(Streamable HTTP)

bash
claude mcp add myserver --transport http https://your-mcp-server.com/mcp

连接到远程运行的 HTTP 服务。

适合: 云端服务,比如 Figma、第三方 SaaS 集成 特点: 服务器独立运行,连接稳定性依赖网络

SSE(Server-Sent Events)

bash
claude mcp add myserver --transport sse https://your-mcp-server.com/sse

一种特殊的 HTTP 长连接,服务器可以主动推送事件。

适合: 需要实时更新的场景 特点: 比 Stdio 延迟稍高,但比轮询高效


用户级 vs 项目级

用户级配置(~/.claude/settings.json

添加时不加任何项目路径标志,就写入用户级:

bash
claude mcp add github --transport stdio ...

所有项目都能用这个配置。适合:GitHub、Slack 这类和项目无关的通用服务。

项目级配置(.claude/settings.json

添加时加 --scope project 标志:

bash
claude mcp add postgres --scope project --transport stdio ...

只对当前项目生效。适合:数据库连接(每个项目数据库不同)、项目特定的 API。

💡 项目级的 .claude/settings.json 可以 check in 到 git,但不要把含有密钥的配置提交——用环境变量替代明文写在文件里。


用环境变量管理密钥

不要把 token 直接写进配置文件,用环境变量:

json
{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_TOKEN}"
      }
    }
  }
}

然后在你的 shell 配置文件(~/.zshrc~/.bashrc)里设置环境变量:

bash
export GITHUB_TOKEN="ghp_xxxxxxxxxxxx"

这样配置文件可以安全地进入版本控制,密钥不会泄露。


常用管理命令

bash
# 列出所有已配置的 MCP Server
claude mcp list

# 查看某个 Server 的配置详情
claude mcp get github

# 删除一个 MCP Server
claude mcp remove github

# 重置(删除所有)MCP 配置
claude mcp reset-project-choice

安全注意事项

MCP 是个强大的能力,也是个潜在的攻击面。几条必须记住的原则:

1. 只安装你信任的 MCP Server

第三方 MCP Server 的代码在你的机器上运行,能访问你授权给它的所有资源。安装前查看源码或确认来源可靠。

2. 最小权限原则

给 MCP Server 的权限要最小化:

  • 数据库 MCP 用只读账号
  • GitHub MCP 只给需要的 scope(能不给 write 就不给)
  • Slack MCP 只给需要的频道权限

3. 项目配置谨慎提交

项目级的 .claude/settings.json 如果包含服务地址,可以提交;但绝对不要把 token 明文提交。在 .gitignore 里加一个保险:

# .gitignore
.claude/settings.local.json   ← 这个文件放本地密钥,不进 git

4. 定期轮换 Token

给 MCP 用的 API Token 定期换新,并且和你个人用的 Token 分开管理。


下一节,如果现成的 MCP Server 都不满足你的需求,我们来看看怎么自己写一个。

基于 CC BY-NC-SA 4.0 协议发布