Claude Code中值得保留的六款MCP服务器及应舍弃的选项
精简过度复杂的MCP配置:包括Context7、GitHub、Postgres MCP Pro、Playwright、Sentry以及Brave Search,同时通过项目范围限定将工具数量控制在50个以内。
来源: *I Tested 8 MCP Servers With Claude Code. These Were Actually Worth Keeping*
当一个编程智能体被要求在本地的 src 文件夹中查找已废弃的认证函数时,它可能会跑到一些意想不到的地方。在一个真实的案例中,该智能体跳过了文件系统,直接调用了一周前安装的 Jira MCP 服务器,开始在工单列表中搜索该函数名。输入 /mcp 就能解释原因:当时有 14 台服务器在运行,提供了 73 种工具。当可见工具数量达到约 50 种时,模型就难以区分相似的工具,只能靠猜测了。此外,在输入第一个字之前,就有大约 18,000 个令牌被用于处理那些根本没人使用的工具的 JSON 架构。
无论连接到哪台服务器,其提供的工具列表都会出现在系统提示中。如果目标是让智能体第一次尝试就能做出正确选择,那么这些可用资源就是极为有限的。
当前文档的 Context7
开发者们常常根据已经变更的 API 编写代码。如果要求使用 Supabase 认证流程,生成的代码可能会使用在 2025 年就已废弃的方法。Context7 通过将固定版本的库文档注入提示词中来解决这一问题。
# Add --scope project (or -s project) to write the entry into
# a committable .mcp.json instead of your personal ~/.claude.json.
# Context7 provides current, version-pinned library docs
# Canonical path is the installer (OAuth + generates an API key):
npx ctx7 setup
# Or wire the remote server manually (key from context7.com/dashboard):
claude mcp add --transport http context7 https://mcp.context7.com/mcp \
--header "CONTEXT7_API_KEY: <YOUR_KEY>"
安装后,该代理会获取实时的 Markdown 内容并生成当前的实现代码。虽然需要信任它的索引,但对于主流 Web 框架而言,这是值得安装的首个服务器。
用于处理问题与拉取请求的 GitHub
如果让代理修复问题 #8009,它通常会暂停并询问问题描述,因为它无法访问远程仓库。GitHub 的官方 MCP 服务器可提供问题追踪、拉取请求以及远程代码搜索功能。
# GitHub — OFFICIAL server (issues, PRs, repo search).
# For Claude Code 2.1.1+:
claude mcp add-json github '{"type":"http","url":"https://api.githubcopilot.com/mcp","headers":{"Authorization":"Bearer <YOUR_GITHUB_PAT>"}}'
# For Claude Code 2.1.0 or earlier (legacy flag form):
# claude mcp add --transport http github https://api.githubcopilot.com/mcp -H "Authorization: Bearer <YOUR_GITHUB_PAT>"
之后,像“review PR #8042”这样的请求即可生效:代理程序会获取差异内容,阅读审阅者的评论,将其对应到本地文件并应用相应修改。建议优先使用 GitHub 自带的服务器,而非旧版的第三方封装工具。
用于真实数据库结构的 Postgres MCP Pro
那些只能猜测数据库结构的代理程序会生成诸如“column ‘created_at’ does not exist”之类的错误。Postgres MCP Pro 为这类代理程序提供了 list_schemas 和 get_object_details 等工具,使其能够在编写 SQL 之前先映射出真实的数据库结构。
# Postgres MCP Pro — schema-aware SQL, READ-ONLY restricted mode
pipx install postgres-mcp
# Add the server with the restricted access flag
claude mcp add postgres --env DATABASE_URI="postgresql://user:pass@localhost:5432/db" \
-- postgres-mcp --access-mode=restricted
在测试环境或生产环境中,--access-mode=restricted 参数是必须使用的。它会从服务器层面禁用INSERT、UPDATE和DELETE操作,这样代理在探索时就无法删除表结构。
用于验证的 Playwright MCP
代理们常常会在根本未渲染页面的情况下就声称某个 CSS 类已修复了布局问题。Playwright MCP 能让代理通过无头浏览器来检查自己的工作成果。
# Playwright (Microsoft) — agent drives a real browser to verify its own change
claude mcp add playwright npx @playwright/mcp@latest
该代理并非解析原始截图,而是读取无障碍访问树,从而知晓按钮在DOM中的位置以及用户是否能够看到它。
Playwright负责驱动浏览器并测试DOM结构。Chrome DevTools MCP则是另一款用于网络和性能分析的工具。只有在积极排查网络问题时才需要添加DevTools服务器,因为Playwright在视觉验证方面更为出色。
用于处理生产环境错误的Sentry
由于生产环境构建会移除源代码映射,直接将压缩后的React堆栈跟踪信息粘贴到终端中几乎毫无用处。Sentry的官方MCP服务器则能将未压缩的堆栈跟踪信息、路径指引及环境数据呈现到上下文窗口中。
# Sentry — OFFICIAL remote server; pulls live stack traces
# Triggers OAuth on first launch
claude mcp add --transport http sentry https://mcp.sentry.dev/mcp
当用户报告程序崩溃时,可以指示智能助手查看 Sentry 中最新的前端问题,并根据崩溃时的具体代码行及变量状态进行调试。
Brave 搜索以获取最新答案
对于那些难以理解的 esbuild 错误,即使修复方案早在两天前就存在于 GitHub 问题中,20 分钟的时间也可能白白流逝。由于智能助手的训练数据过于陈旧,无法识别这些问题,开发者不得不离开终端手动搜索。
# Brave Search — OFFICIAL server from Brave (the @modelcontextprotocol/*
# package was archived May 2025)
# Requires a free API key from api-dashboard.search.brave.com
claude mcp add brave-search --env BRAVE_API_KEY="<YOUR_KEY>" \
-- npx -y @brave/brave-search-mcp-server --transport stdio
这为智能体提供了实时的网络搜索工具。遇到难以理解的错误时,它无需离开终端即可获取最新的 StackOverflow 回答或服务提供商状态页面。
锁定配置
在添加更多功能之前,应先修复配置并检查当前正在运行的内容。在任何安装命令中加入 --scope project 选项,会将相关配置写入仓库中的 .mcp.json 文件,而非全局的 ~/.claude.json,这样整个团队就能使用相同的工具集。
上述服务器的参考配置文件以及两个灵活配置槽的设置如下。其中,灵活配置槽包括用于访问当前项目外部目录的 Filesystem 服务器,以及用于帮助智能体在大规模代码重构时追踪自身逻辑的 Sequential-thinking 服务器。
{
"mcpServers": {
"context7": {
"type": "http",
"url": "https://mcp.context7.com/mcp",
"headers": { "CONTEXT7_API_KEY": "${CONTEXT7_API_KEY}" }
},
"github": {
"type": "http",
"url": "https://api.githubcopilot.com/mcp",
"headers": { "Authorization": "Bearer ${GITHUB_PAT}" }
},
"sentry": {
"type": "http",
"url": "https://mcp.sentry.dev/mcp"
},
"postgres": {
"command": "postgres-mcp",
"args": ["--access-mode=restricted"],
"env": { "DATABASE_URI": "${DATABASE_URI}" }
},
"playwright": {
"command": "npx",
"args": ["-y", "@playwright/mcp@latest"]
},
"brave-search": {
"command": "npx",
"args": ["-y", "@brave/brave-search-mcp-server", "--transport", "stdio"],
"env": { "BRAVE_API_KEY": "${BRAVE_API_KEY}" }
},
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "${HOME}/projects"]
},
"sequential-thinking": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-sequential-thinking"]
}
}
}
这些条目使用两种传输方式。使用 http 时,服务器为远程 API,其所有逻辑都在服务提供商端执行。而使用 stdio 时,就像 Playwright 或 Postgres 一样,会通过 command 数组启动本地进程,因此必须先在机器上安装相应的二进制文件。敏感信息通过 ${DATABASE_URI} 这类环境变量插值的方式传递,从而确保文件可以安全地被提交。
如需了解该配置在工具数量方面的成本,可查看实时演示:
# List every configured server and its connection status
claude mcp list
# Inside a Claude Code session, inspect connected servers and their tools:
# Type /mcp
# This shows each server, its tool count, and lets you toggle tools.
界面显示的工具数量会自动汇总。大约有五十种可见工具,可关闭当前会话中不需要的那些工具。
剔除冗余部分
在确定基准之后,移除那些不必要的元素。
- 已归档的参考服务器。旧版的 Postgres 实现(
@modelcontextprotocol/server-postgres)仍出现在过时的教程中,但已不再维护。应将其替换为 Postgres MCP Pro。 - 第三方封装工具。为 GitHub、Sentry 等服务开发的社区封装工具在2025年出现,仅作为临时解决方案,无法跟上官方 API 的更新速度。只要存在官方供应商提供的服务器,就应放弃使用这些社区版本。
npm install操作而使用了第三方的execute_script工具,出现了路径错误,之后便编写了自定义的Python脚本来触发安装,完全忽略了原生shell。如果客户端已经能够获取URL或读取文件,就不必再为能实现相同功能的服务器投入资源。持续审计
每当会话运行变得迟缓时,都应重新检查 .mcp.json 文件。理想的配置应使六个核心服务器的负载保持在较高水平,同时确保工具数量低于50个的阈值。Slack MCP服务器往往是问题所在:当被要求搜索本地日志时,该代理会持续读取频道历史记录,从而导致性能下降。像Linear提供的用于将验收标准导入编辑器的MCP这类候选工具,则需要证明其价值;如果它使工具总数过高,其他工具就必须被移除。
如果某个代理最近运行缓慢,先保存当前的配置,然后仅使用这些核心服务器运行几天。执行 /mcp 命令查看其占用情况,观察模型是否能够更精准地选择工具。只有当内置的Claude Code功能无法应对限制时,才再重新引入其他服务器。
相关阅读
- Claude Code子代理详解:它们是什么以及何时使用 — Claude Code子代理与技能及代理团队的区别:上下文隔离、首个自定义子代理、描述与工具使用最佳实践,以及何时无需使用它们。
- 为何编码代理仍难以处理私有公司代码 — Real-SWE对八种编码代理在受许可的私有代码库上的表现进行了测试。表现最好的代理能解决38.8%的问题,而五种失败类型则揭示了代理出错的原因。