LuoLuoLuoLuo Wiki
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 展示和权限弹窗为准。

实战建议

  • 先用只读工具接入,确认输出稳定后再开放写入工具
  • 给写入工具加更窄的权限规则或 PreToolUse Hook
  • 不在配置文件里提交 token、cookie、数据库密码
  • 团队共享 .mcp.json,个人 secret 放环境变量
  • 对生产系统默认 ask,不要默认 allow

MCP 的价值不是“让 Claude 什么都能做”,而是把外部能力包装成可审计、可授权、可回滚的工具。

On this page