Appearance
MCP 服务器
模块编号: 7 · 难度: 进阶 · 预计时间: 1 小时
前面的章节讲了怎么用 CLAUDE.md 提供静态的背景知识。但现代开发离不开实时数据、数据库查询,还有和其他工具打交道。这个时候就需要 MCP (Model Context Protocol) 出场了。
什么是 MCP
MCP 全称是模型上下文协议。你可以把它看作 Claude 的外接插件系统。配好 MCP 服务器后,Claude 能直接读数据库,处理 GitHub 的 PR,甚至跟公司内部的 API 交流。
CLAUDE.md 像是一份写好的说明书,而 MCP 是插在 Claude 身上的网线,给它接通了获取实时信息的能力。
添加 MCP 服务器
配 MCP 最快的方法就是敲命令。
用 claude mcp add 命令,你能很快接上第三方或自己写的 MCP 服务。MCP 支持三种传数据的方式:标准输入输出 (stdio)、HTTP 还有服务器发送事件 (SSE)。
bash
# 例子:加一个提供实时天气的 stdio 传输 MCP
claude mcp add weather-server npx @example/weather-mcp管这些服务器也很顺手:
claude mcp list:看现在配了哪些服务器claude mcp get <name>:查某个服务器的具体配置claude mcp remove <name>:删掉不用的服务器
如果用 Claude Code 聊到一半想看下 MCP 的状态,在会话里敲 /mcp 就行。
配置方式
MCP 不光可以用命令加,你也能直接改配置文件,这在共享开发环境时非常管用。
- 全局配置:放在
~/.claude.json,所有项目都能用。 - 项目级配置:在项目根目录建
.mcp.json。强烈建议把这个文件提交到 git,这样团队里其他人拉下代码就能直接拥有一套配置好的工具。
在配置文件里,我们可以安全地用 ${VAR:-default} 这个语法展开环境变量,不用担心把敏感的 token 不小心传到代码库里。
json
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_TOKEN}"
}
}
}
}作用域与工具发现
Claude Code 启动时,会从三个不同的地方找 MCP 服务器:
- Local:当前敲命令目录里的
.mcp.json - Project:要是当前目录在某个 git 仓库里,就是仓库根目录的
.mcp.json - User:全局的
~/.claude.json
要是有同名的服务器,Local 的优先级高过 Project,Project 高过 User。
有了 MCP 服务器后,Claude 怎么知道该用什么工具呢?这靠的是 Tool Search 机制。Claude 不会一上来就把所有工具列表生吞下去,而是等碰到具体问题时,动态向 MCP 服务器问一句"有哪些工具能用"。这保证了哪怕你接了几十个复杂的服务,它跑起来也一点不卡。
而且,MCP 服务提供的 prompts 会自动变成会话里的斜杠命令,相当于直接塞给你一套特定场景下的快捷指令。
实际用法
MCP 的能耐很大,日常开发里有几个很实用的场景。
GitHub MCP 让 Claude 帮你看代码审查的评论、拿 issue 的详情,或者直接建一个 PR。它连分析 CI/CD 流水线的报错日志都不在话下,能帮你找出到底是哪行代码把构建搞砸了。
数据库查询 给它连个只读的数据库 MCP,你直接问它:"帮我查查昨天注册的新用户里,有多少人用 Gmail。"它自己写 SQL,自己跑查询,最后把结果端给你。
多服务器组合工作流 你可以同时挂着 Jira MCP 和 GitHub MCP。跟 Claude 交代一句:"看看正在处理的 BUG-102,把它的代码修一下并提个 PR。"它会自动查阅 Jira 的 bug 描述,改本地代码,再通过 GitHub 提交上去。
安全建议
接入外部服务总是伴随着风险。这几点一定要注意:
- 永远用环境变量传凭证,千万别把 token 明文写死在
.mcp.json里。 - 尽量给只读权限的 token。比如数据库就用只读账号,GitHub 就给只读的 PAT。
- 守住最小权限原则,MCP 服务能干自己分内的活就行了,别多给权限。
- 如果是企业级环境,可以用
managed-mcp.json来集中管控,防住团队不小心接进来有安全隐患的野路子 MCP 服务。
动手试一试
Terminal
▌
模板区
这里给你准备了两个日常好用的配置文件模板。
GitHub MCP 配置模板 (.mcp.json) 适合丢在项目根目录,跟团队成员共享 GitHub 操作能力。
json
{
"mcpServers": {
"github": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-github"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_TOKEN}"
}
}
}
}多服务器工作流模板 (.mcp.json) 把数据库和内存缓存工具绑在一起,适合复杂的系统排查任务。
json
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres", "${DB_CONNECTION_STRING}"]
},
"memory": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-memory"]
}
}
}测验
测验时间
第 1/3 题
MCP 服务器可以配置在哪些位置?(优先级从高到低)