MCP(Model Context Protocol)服务器通过连接外部工具、数据库和 API 来扩展 Claude Code。本指南涵盖推荐的日常使用的服务器和配置最佳实践。
| ← 返回 Claude Code 最佳实践 |
"用 15 个 MCP 服务器过度配置,以为越多越好。最终每天只使用 4 个。" — r/mcp(682 赞)
| MCP 服务器 | 作用 | 资源 |
|---|---|---|
| Context7 | 将最新的库文档获取到上下文中。防止来自过时训练数据的幻觉 API | Reddit:"目前为止最好的编程 MCP" · npm |
| Playwright | 浏览器自动化 —— 自主实现、测试和验证 UI 功能。截图、导航、表单测试 | Reddit:前端必备 · 文档 |
| Claude in Chrome | 将 Claude 连接到你的真实 Chrome 浏览器 —— 检查控制台、网络、DOM。调试用户实际看到的内容 | Reddit:调试的"游戏规则改变者" · 对比报告 |
| DeepWiki | 为任何 GitHub 仓库获取结构化的 wiki 风格文档 —— 架构、API 表面、关系 | Reddit:"将它放在 Context7 后面的网关后" |
| Excalidraw | 从提示生成架构图、流程图和系统设计作为手绘风格的 Excalidraw 草图 | GitHub |
研究(Context7/DeepWiki)-> 调试(Playwright/Chrome)-> 文档(Excalidraw)
MCP 服务器在项目根目录的 .mcp.json(项目范围)或 ~/.claude.json(用户范围)中配置。
| 类型 | 传输 | 示例 |
|---|---|---|
| stdio | 生成本地进程 | npx、python、二进制 |
| http | 连接到远程 URL | HTTP/SSE 端点 |
{
"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 中提交 API 密钥:
{
"mcpServers": {
"remote-api": {
"type": "http",
"url": "https://mcp.example.com/mcp?token=${MCP_API_TOKEN}"
}
}
}.claude/settings.json 中的这些设置控制 MCP 服务器审批:
| 键 | 类型 | 说明 |
|---|---|---|
enableAllProjectMcpServers |
boolean | 自动批准所有 .mcp.json 服务器而不提示 |
enabledMcpjsonServers |
array | 要自动批准的特定服务器名称的允许列表 |
disabledMcpjsonServers |
array | 要拒绝的特定服务器名称的阻止列表 |
MCP 工具在权限规则中遵循 mcp__<server>__<tool> 命名约定:
{
"permissions": {
"allow": [
"mcp__*",
"mcp__context7__*",
"mcp__playwright__browser_snapshot"
],
"deny": [
"mcp__dangerous-server__*"
]
}
}MCP 服务器可以在三个级别定义:
| 范围 | 位置 | 用途 |
|---|---|---|
| 项目 | .mcp.json(仓库根目录) |
团队共享的服务器,提交到 git |
| 用户 | ~/.claude.json(mcpServers 键) |
跨所有项目的个人服务器 |
| 子代理 | 代理 frontmatter(mcpServers 字段) |
特定于子代理的服务器 |
优先级:子代理 > 项目 > 用户