Claude Code MCP——给 Claude Code 接上真工具

MCP 是什么、怎么用 claude mcp add 加 server、三种 transport、以及第一天值得装的几个 server。

这篇讲什么

怎么把 MCP server 真正接到 Claude Code——不是抽象讲 MCP 是什么,是讲具体 claude mcp add 怎么用、三种 transport(stdio、sse、http)、scope 标志(user / project / local)、第一天该装哪几个 server。痛点:人们看完 MCP 规范一兴奋一口气装五个,权限弹窗每五秒一次,一气之下全关。这篇先装一个跑通,再讲怎么没摩擦地加更多。

核心概念:

  • MCP(Model Context Protocol):Anthropic 开源的协议,把工具、文件、数据暴露给 LLM。
  • claude mcp add:在 Claude Code 里注册 server 的 CLI 子命令。
  • Transportstdio(本地子进程,默认)、sse(HTTP server-sent events)、http(流式 HTTP)。
  • Scope--scope user(你这台机)、--scope project(提交到仓库)、--scope local(当前目录、不共享)。
  • 工具命名:注册的工具在 Claude Code 工具列表里叫 mcp__servername__toolname

这篇适合谁看

走完Claude Code 新手指南、想把 agent 能干的事拓展到读改文件以外的人。尤其是你常常往 chat 里贴数据库查询结果、GitHub issue 内容、Slack 对话——这些正是 MCP 要消灭的拼贴动作。

什么时候适合用

一次会话里同样的”从别的工具复制粘贴”动作出现两次。数据库查询、GitHub PR 评论、Slack 搜索、仓库外文件访问——每一个都是 MCP server 候选。别预防性装;看到自己在重复手动动作了再装。

开始前准备

  • Claude Code 装好能用(claude --version)。不行的话看新手指南
  • PATH 上 Node 18+——多数参考 MCP server 走 npx
  • 项目作用域 server 要在 git repo 里、你愿意把 .mcp.json 提交进去。
  • 要接的东西的凭据(Postgres URL、GitHub token、Slack token)——拿到再开始装。

具体步骤

  1. 先看当前注册了哪些 server,知道起点:
claude mcp list
  1. 加 filesystem 参考 server,scope 给 user(到处能用)。它暴露指定目录的读写工具:
claude mcp add filesystem --scope user \
  -- npx -y @modelcontextprotocol/server-filesystem ~/work

-- 分隔符必须有;后面是 Claude Code 启 stdio 时要 spawn 的命令。

  1. 重启 Claude Code 会话(或者 chat 里 /mcp 重载)。确认 server 已列出:
claude mcp list
# 期望:filesystem (stdio) - user scope - ok
  1. 试一个工具。在 Claude Code 问:用 filesystem 工具列 ~/work 里的文件。 第一次会请求权限——按工具一次性同意,不是按调用同意(只读工具有”始终允许”就勾上)。
  2. 加一个项目作用域 server,要队友共享。Postgres 常见——会在仓库根写一个 .mcp.json
claude mcp add postgres --scope project \
  --env DATABASE_URL=$DATABASE_URL \
  -- npx -y @modelcontextprotocol/server-postgres
  1. claude mcp list 里它 scope 是 project.mcp.json 在仓库根。.mcp.json 提交但带密钥的 .env 不提交。
  2. server 不正常时按这个顺序排查:claude mcp list(注册了吗?)→ claude mcp get servername(命令是啥?)→ 看 Claude Code 日志(macOS/Linux 通常 ~/.claude/logs/)。会话中途断了看Claude MCP server 断连

一份”逼它说实话”的配置

第一天值得装的三个 MCP server,附理由。存成 .mcp.json 模板:

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/me/work"]
    },
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_..." }
    },
    "postgres": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-postgres"],
      "env": { "DATABASE_URL": "postgres://localhost/myapp_dev" }
    }
  }
}

为啥是这三个:filesystem 让 agent 摸到当前仓库外的文件(日志、scratch 目录)。GitHub 干掉”把 PR 评论粘到 chat”的循环。Postgres 把”我查一下 schema 长啥样”从粘贴变成查询。这三个用一周再考虑加第四个。

完成后检查

  • claude mcp list 里每个 server 是 ok,不是 error / disconnected
  • 工具在 chat 里以 mcp__servername__toolname 出现——问”你有哪些工具”它能列出来。
  • 权限弹窗合理:只读工具第一次后自动允许,写工具每次问。
  • .mcp.json 提交了,密钥在环境变量、不内联。
  • agent 不用提醒就会用 MCP 工具。Postgres MCP 在线还老让你贴查询结果,就是 prompt 没点名工具——前几次显式说”用 postgres 工具查……”。

怎么复用这套流程

  • 维护一份个人 ~/.claude/mcp-user.json(或你 user scope 的文件名),放日常 user 级 server——filesystem、GitHub。
  • 每个项目仓库提交最小 .mcp.json,带项目专属 server(项目数据库、项目用的 tracker 如果有 MCP)。
  • 在 CLAUDE.md 里写 MCP 用法:“查数据库问题用 postgres MCP”——显式指引帮 Claude 选对工具。
  • 新流行的 MCP server 先自己试一周,再共享给团队。烂 server 浪费大家时间。

建议的操作流程

发现手动粘贴动作 → 找对应 MCP server → claude mcp add 用对 scope → claude mcp list 验 → 头几次显式调用 → 习惯让 agent 自己用。

容易踩的坑

  • 第一天装五个。权限疲劳直接把实验杀死。先装一个、证明有用、再加。
  • 密钥直接写进 .mcp.json 提交。环境变量在 .env 里,.mcp.json 引用环境变量。
  • claude mcp add 忘了 -- 分隔符——后面的命令被当 flag 解析、注册悄悄失败。
  • 队友要用的 server 用了 --scope local。Local 不共享;仓库级 server 用 project
  • 不挑 transport。stdio 最快最简,本地 server 默认它;只在 server 真是独立进程、你不 spawn 它时才上 sse/http。
  • 断开的 server 放着不管。要么修要么 claude mcp remove。挂着的 server 让工具列表混乱、迷惑模型(MCP server 断连)。

FAQ

  • 只写代码也需要 MCP 吗?: 不需要。MCP 是伸到代码库外的——数据库、API、外部文件。纯写代码用不上。
  • 能自己写 MCP server 吗?: 能,协议开源、有 Python 和 TypeScript SDK。参考 server 是好模板。
  • MCP 工具和 Claude Code 内置工具有啥区别?: 内置(read、write、bash 等)烤进 agent。MCP 工具可插拔——你的 server、你的 transport、你的鉴权。
  • MCP server Cursor 也能用吗?: Cursor 也支持 MCP,有自己的 UI。协议共享、注册流程不同。

相关阅读

标签: #AI 编程 #教程 #Claude Code