适用于 Claude Code 的 MCP 服务器
实用的模型上下文协议配置,以及那些会浪费大量时间的陷阱。
MCP 让 Claude Code 从代码生成器变成能够读取代码仓库、查询数据库、操作浏览器和创建 PR 的工具。MCP 的配置独立于网关——它改变的是有哪些工具可用,而不是模型调用发往哪里。
值得采用的 .mcp.json 配置
{
"mcpServers": {
"filesystem": {"command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "."]},
"git": {"command": "uvx", "args": ["mcp-server-git", "--repository", "."]},
"github": {"command": "npx", "args": ["-y", "@modelcontextprotocol/server-github"],
"env": {"GITHUB_TOKEN": "..."}},
"fetch": {"command": "uvx", "args": ["mcp-server-fetch"]},
"playwright": {"command": "npx", "args": ["-y", "@playwright/mcp@latest"]}
}
}
将它放在代码仓库根目录;Claude Code 会检测到它,并要求你确认信任一次。
常见陷阱
- 信任提示是一项功能。 Claude Code 会拒绝加载项目的 MCP 服务器,直到你针对该项目批准它们。这是安全边界,不是缺陷。
- 为数据库服务器分配只读角色。 MCP 服务器会执行模型生成的任何 SQL;只读角色能让模型幻觉产生的
DROP在实际执行层面成为不可能。 - 严格限制令牌的权限范围。 对于 GitHub,
repo以及read:org就足够了。不要给它拥有所有权限范围的经典 PAT。 - MCP 输出会进入上下文。 包含 200 行的结果或抓取的完整页面会在后续每一轮对话中再次发送。大量工具输出是智能体会话成本高昂的主要原因。
先从文件系统、git 和 github 开始。只有在具体任务需要时才添加浏览器和数据库服务器——每个已加载的服务器都会在每次请求中加入其模式定义,增加令牌费用。