Claude Code
MCP 服务器
用 MCP 扩展 Claude Code 的工具和数据源
MCP(Model Context Protocol) 是让 Claude Code 连接外部工具和数据源的协议。它可以把数据库、浏览器、GitHub、内部系统或本地脚本暴露成 Claude 可调用的工具。
什么时候需要 MCP
适合 MCP 的场景:
- 查询数据库、日志、监控系统
- 操作 GitHub Issue、PR、项目面板
- 读取设计稿、浏览器页面、内部 API
- 连接团队已有的自动化脚本
- 给 Claude 提供受控的业务工具,而不是放开整台机器
不适合 MCP 的场景:
- 一次性 shell 命令
- 简单读写项目文件
- 只需要固定上下文的项目规范
这些更适合用 Bash、Hooks 或 CLAUDE.md。
添加 MCP Server
推荐用 Claude Code 自带命令添加,而不是手写到 .claude/settings.json。
Stdio server
claude mcp add --transport stdio filesystem -- \
npx -y @modelcontextprotocol/server-filesystem /path/to/dir这类 server 在本地以子进程运行,适合文件系统、SQLite、本地脚本等工具。
JSON 配置
如果 server 文档给的是 JSON,可以用 add-json:
claude mcp add-json local-tools '{
"type": "stdio",
"command": "node",
"args": ["./scripts/mcp-server.js"],
"env": {
"INTERNAL_API_TOKEN": "${INTERNAL_API_TOKEN}"
}
}'不要把真实 token 写进 JSON。配置里只引用环境变量,值在本机、CI 或部署平台的 secret manager 里提供。
团队共享
项目级 MCP 建议放在仓库根目录的 .mcp.json,方便团队共享 server 定义:
{
"mcpServers": {
"local-tools": {
"type": "stdio",
"command": "node",
"args": ["./scripts/mcp-server.js"],
"env": {
"INTERNAL_API_TOKEN": "${INTERNAL_API_TOKEN}"
}
}
}
}.mcp.json 可以提交,但真实密钥、个人路径和本机专属配置不要提交。
查看连接状态
在 Claude Code 中运行:
/mcp这里可以查看已连接的 server、可用工具和认证状态。遇到连接失败时,先确认:
- server 命令能否在终端里独立启动
- 依赖是否安装
- 环境变量是否存在
- 当前工作目录是否正确
- Claude Code 是否能访问该路径或网络地址
权限控制
MCP 工具也进入 Claude Code 的权限系统。可以用工具名做 allow/deny:
{
"permissions": {
"allow": ["mcp__github__get_issue"],
"ask": ["mcp__github__create_pull_request"],
"deny": ["mcp__github__delete_repository"]
}
}命名通常形如 mcp__serverName__toolName。真实名字以 /mcp 展示和权限弹窗为准。
实战建议
- 先用只读工具接入,确认输出稳定后再开放写入工具
- 给写入工具加更窄的权限规则或
PreToolUseHook - 不在配置文件里提交 token、cookie、数据库密码
- 团队共享
.mcp.json,个人 secret 放环境变量 - 对生产系统默认
ask,不要默认allow
MCP 的价值不是“让 Claude 什么都能做”,而是把外部能力包装成可审计、可授权、可回滚的工具。