Appearance
MCP(Model Context Protocol)是 Claude Code 的能力扩展协议,将外部工具、数据库和 API 接入到 Claude 的工具调用体系中。多装不代表好用——实际上大多数开发者每天只用 3-4 个 MCP。本文聚焦日常真正有用的 5 个 MCP,并讲解 .mcp.json 配置模板和三级作用域。
Claude Code MCP 服务器配置指南:5 个最值得安装的 MCP
为什么不要装太多 MCP
社区经验:装 15 个 MCP 以为越多越好,结果每天实际用到的只有 4 个。过多 MCP 会增加每次请求的上下文占用,在工具选择时引入噪音。从最核心的 3-4 个开始,按需扩展。
5 个日常必备 MCP
| MCP | 用途 | 安装命令 |
|---|---|---|
| Context7 | 拉取最新库文档到上下文,避免 API 幻觉 | npx @upstash/context7-mcp |
| Playwright | 浏览器自动化——截图、导航、UI 测试 | npx @playwright/mcp |
| Claude in Chrome | 连接真实 Chrome 浏览器,检查 console/network/DOM | 见下文 |
| DeepWiki | 获取任意 GitHub 仓库的结构化 wiki 文档 | npx deepwiki-mcp |
| Excalidraw | 从 prompt 生成手绘风格架构图和流程图 | 见 GitHub |
使用场景分工:
- 研究阶段:Context7(文档)、DeepWiki(仓库理解)
- 开发调试:Playwright(自动化测试)、Claude in Chrome(真实浏览器调试)
- 文档设计:Excalidraw(架构图)
.mcp.json 配置
MCP 服务器在项目根目录的 .mcp.json 中配置,提交到 git 供团队共享。
服务器类型
| 类型 | 传输方式 | 说明 |
|---|---|---|
stdio | 启动本地进程 | npx、python、本地二进制 |
http | 连接远程 URL | HTTP/SSE 端点 |
完整配置示例
json
{
"mcpServers": {
"context7": {
"command": "npx",
"args": ["-y", "@upstash/context7-mcp"]
},
"playwright": {
"command": "npx",
"args": ["-y", "@playwright/mcp"]
},
"deepwiki": {
"command": "npx",
"args": ["-y", "deepwiki-mcp"]
},
"remote-api": {
"type": "http",
"url": "https://mcp.example.com/mcp"
}
}
}密钥管理:使用环境变量展开,不要在 .mcp.json 中硬编码 token:
json
{
"mcpServers": {
"remote-api": {
"type": "http",
"url": "https://mcp.example.com/mcp?token=${MCP_API_TOKEN}"
}
}
}三级作用域
| 作用域 | 配置位置 | 用途 |
|---|---|---|
| 项目级 | .mcp.json(仓库根目录) | 团队共享,提交到 git |
| 用户级 | ~/.claude.json(mcpServers 键) | 跨所有项目的个人服务器 |
| Subagent 级 | Agent frontmatter(mcpServers 字段) | 只作用于特定 subagent |
优先级:Subagent > 项目 > 用户
settings.json 中的 MCP 控制
在 .claude/settings.json 中控制 MCP 服务器的自动审批:
json
{
"enableAllProjectMcpServers": true,
"enabledMcpjsonServers": ["context7", "playwright"],
"disabledMcpjsonServers": ["experimental-server"]
}| 配置项 | 说明 |
|---|---|
enableAllProjectMcpServers | 自动审批所有 .mcp.json 中的服务器 |
enabledMcpjsonServers | 只自动审批指定服务器列表 |
disabledMcpjsonServers | 阻止指定服务器加载 |
MCP 工具的 Permission 规则
MCP 工具遵循 mcp__<server>__<tool> 命名规范,在 permissions.allow/deny 中使用:
json
{
"permissions": {
"allow": [
"mcp__*",
"mcp__context7__*",
"mcp__playwright__browser_snapshot"
],
"deny": [
"mcp__dangerous-server__*"
]
}
}mcp__*:允许所有 MCP 工具(开发时常用)mcp__context7__*:只允许 context7 的所有工具mcp__playwright__browser_snapshot:只允许特定工具
FAQ
Q: .mcp.json 和 ~/.claude.json 里的 mcpServers 有什么区别? A: .mcp.json 是项目级配置,提交到 git 供整个团队使用,适合项目必须的 MCP(如 Playwright 用于 UI 测试);~/.claude.json 是个人用户级配置,跨所有项目生效,适合个人偏好(如 Context7、DeepWiki)。
Q: 装了 MCP 但 Claude 不使用怎么办? A: 检查 MCP 服务器是否成功启动(/mcp 命令查看状态),以及 permissions 规则是否允许该 MCP 工具。另外可以在提示词中明确引导 Claude 使用特定 MCP 工具。
Q: Playwright MCP 和 Claude in Chrome 有什么区别? A: Playwright MCP 启动一个独立的 Chromium 实例,适合自动化测试和 headless 操作;Claude in Chrome 连接你正在运行的 Chrome 浏览器,可以检查真实用户看到的 console 错误、network 请求和 DOM 状态,更适合调试线上问题。
Q: 每次启动 Claude Code 都会自动连接 MCP 吗? A: 是的,.mcp.json 中配置的服务器会在启动时自动连接(前提是已通过 enableAllProjectMcpServers 或 enabledMcpjsonServers 批准)。首次使用需要确认授权。