MCP (Model Context Protocol) 服务器通过工具集成扩展 Claude Code 的能力。本文将介绍 5 个经过社区验证、适用于日常开发的 MCP 服务器:Context7(获取最新文档)、Playwright(浏览器自动化)、Claude in Chrome(真实浏览器调试)、DeepWiki(仓库文档生成)和 Excalidraw(图表绘制)。你将学习如何配置 .mcp.json,并使用权限规则与三种作用域(project、user、subagent)安全地管理这些服务器。
Claude Code MCP 服务器配置:5 个日常必备服务器与权限管理
MCP (Model Context Protocol) 服务器为 Claude Code 提供了连接外部工具、数据库和 API 的能力。正确配置和管理这些服务器,是实现高效、安全代理工作流的关键一步。正如一位 Reddit 用户所言:“装了 15 个 MCP 服务器以为越多越好,结果日常只用 4 个。” 本指南聚焦于经过社区广泛验证、对日常开发确有裨益的 5 个服务器,并提供从配置到权限管理的完整操作流程。
5 个日常必备 MCP 服务器
下表列出了推荐的 5 个服务器及其核心功能。它们覆盖了从文档获取、UI 开发与调试到架构设计的常见场景。
| 服务器 | 功能描述 | 安装命令(npm) |
|---|---|---|
| Context7 | 获取第三方库的最新、准确文档,防止 Claude 基于过时训练数据编造 API。 | npx -y @upstash/context7-mcp |
| Playwright | 实现浏览器自动化,用于 UI 功能的实现、测试与验证,支持截图、导航和表单测试。 | npx -y @playwright/mcp |
| Claude in Chrome | 连接你的真实 Chrome 浏览器,允许检查控制台、网络请求和 DOM,调试用户实际看到的问题。 | npx -y claude-code-in-chrome-mcp |
| DeepWiki | 为任意 GitHub 仓库生成结构化的 Wiki 式文档,涵盖架构、API 接口和代码关系。 | npx -y deepwiki-mcp |
| Excalidraw | 根据提示词生成手绘风格的 Excalidraw 草图,用于绘制架构图、流程图和系统设计图。 | npx -y @anthropic/excalidraw-mcp |
这五个服务器构成了一个典型的研发工作流:先用 Context7 和 DeepWiki 进行研究,理解代码与文档;再用 Playwright 或 Claude in Chrome 进行调试,验证前端功能;最后用 Excalidraw 记录设计。
配置 MCP 服务器
MCP 服务器的配置位于项目根目录的 .mcp.json 文件中(项目级作用域),或用户目录下的 ~/.claude.json 文件中(用户级作用域)。
1. 配置文件示例
一个典型的 .mcp.json 文件结构如下,其中包含了上述推荐服务器的配置。服务器类型主要为 stdio(启动本地进程)。
{
"mcpServers": {
"context7": {
"command": "npx",
"args": ["-y", "@upstash/context7-mcp@2.1.8"]
},
"playwright": {
"command": "npx",
"args": ["-y", "@playwright/mcp@0.0.70"]
},
"deepwiki": {
"command": "npx",
"args": ["-y", "deepwiki-mcp@0.0.6"]
},
"claude-in-chrome": {
"command": "npx",
"args": ["-y", "claude-code-in-chrome-mcp"]
},
"excalidraw": {
"command": "npx",
"args": ["-y", "@anthropic/excalidraw-mcp"]
}
}
}
注意:对于包含敏感信息的远程 API(http 类型),务必使用环境变量,切勿将 API 密钥直接提交到代码仓库。
{
"mcpServers": {
"remote-api": {
"type": "http",
"url": "https://mcp.example.com/mcp?token=${MCP_API_TOKEN}"
}
}
}
2. 设置 MCP 服务器审批
在 .claude/settings.json 中,可以配置是否需要手动审批这些服务器。
| 设置键 | 类型 | 描述 |
|---|---|---|
enableAllProjectMcpServers |
boolean | 设为 true 可自动批准 .mcp.json 中的所有服务器,无需逐个确认。 |
enabledMcpjsonServers |
array | 一个白名单,仅自动批准列表中指定的服务器名称。 |
disabledMcpjsonServers |
array | 一个黑名单,明确拒绝指定的服务器名称。 |
权限管理:规则与作用域
精细的权限控制是安全使用 MCP 服务器的核心。Claude Code 使用基于工具名称的规则系统。
1. 权限规则语法
MCP 服务器提供的工具遵循 mcp__<server>__<tool> 的命名约定。在 .claude/settings.json 的 permissions 字段中,可以使用通配符来设置允许或拒绝规则。
{
"permissions": {
"allow": [
"mcp__*", // 允许所有 MCP 工具(谨慎使用)
"mcp__context7__*", // 允许 Context7 服务器的所有工具
"mcp__playwright__browser_snapshot" // 仅允许 Playwright 的截图工具
],
"deny": [
"mcp__dangerous-server__*" // 明确拒绝某个危险服务器的所有工具
]
}
}
执行逻辑:deny 规则优先级高于 allow 规则。如果一个工具同时匹配了允许和拒绝规则,它将被拒绝。
2. 三种作用域 (Scope)
MCP 服务器的配置和权限可以在三个不同的作用域定义,它们的优先级从高到低为:子代理 > 项目 > 用户。
| 作用域 | 配置位置 | 用途 |
|---|---|---|
| 项目 (Project) | .mcp.json (仓库根目录) |
团队共享的服务器配置,通常提交到 Git 仓库。 |
| 用户 (User) | ~/.claude.json (在 mcpServers 键下) |
个人跨所有项目使用的服务器,如个人 API 工具。 |
| 子代理 (Subagent) | 子代理定义文件的 mcpServers 字段 |
专属于某个特定子代理(如数据库管理 Agent)的服务器。 |
理解优先级:当在不同作用域定义了同名服务器时,子代理级别的配置会覆盖项目级别的,项目级别的会覆盖用户级别的。这允许你为特定任务提供专用配置,同时保持全局的默认设置。
验证配置
配置完成后,启动 Claude Code。在会话开始时,Claude Code 会列出已连接的 MCP 服务器及其提供的工具。你可以通过要求 Claude 执行一个简单任务来测试,例如:
- “使用 Context7 查询
react的最新 useEffect 用法。” - “用 Playwright 打开
https://example.com并截图。”
如果工具调用失败,请检查终端输出或 Claude Code 的日志,常见问题包括:命令未找到(需确保 npx 可用)、网络问题(对于 HTTP 服务器)或权限被拒绝。
FAQ
Q: 我应该同时配置多少个 MCP 服务器? A: 质量优于数量。从解决你最常遇到痛点的 2-3 个服务器开始。配置过多服务器会增加启动时间、消耗资源并可能导致上下文混乱。
Q: 权限规则中的 mcp__* 和 mcp__server-name__* 有什么区别?
A: mcp__* 匹配所有已配置的 MCP 服务器的所有工具,是一个全局通配符。mcp__server-name__* 则仅匹配名为 server-name 的服务器的所有工具,范围更精确,推荐使用后者进行更安全的控制。
Q: 在子代理中配置了 MCP 服务器后,还需要在项目级 .mcp.json 中配置吗?
A: 取决于你的使用场景。如果该服务器仅用于这个特定子代理,只配置在子代理内即可。如果其他对话或子代理也需要用到,则应在项目或用户级配置。根据优先级,子代理配置不会影响其他地方的同名服务器定义。