MCP(Model Context Protocol)是 Anthropic 推出的 AI 工具扩展标准, 让 Claude Code 能直接操作文件系统、数据库、API 等外部系统。
MCP 是什么?
MCP 让 Claude Code 从「只能读写文件」变成「能访问任意外部资源」:
没有 MCP:Claude Code 只能读写本地文件、执行 Bash 命令
有了 MCP:
Claude Code ←→ MCP 服务器 ←→ GitHub(创建 Issue/PR)
←→ PostgreSQL(查询数据)
←→ Slack(发送消息)
←→ Brave Search(搜索网络)
←→ 你自己的 API
claude mcp 命令
bash
# 列出已安装的 MCP 服务器
claude mcp list
# 添加本地 stdio 服务器
claude mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem ~/projects
# 添加远程 SSE 服务器
claude mcp add my-api --transport sse https://my-mcp-server.com/sse
# 移除服务器
claude mcp remove filesystem
# 查看某个服务器的详情
claude mcp get filesystem主流 MCP 服务器安装配置
1. 文件系统(必装)
bash
claude mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem /Users/你的用户名/projects /Users/你的用户名/documents
# Claude 就能访问这些目录中的文件
# 你:帮我在 projects/todo-app 里查找所有 TODO 注释2. GitHub
bash
export GITHUB_PERSONAL_ACCESS_TOKEN="ghp_xxxx"
claude mcp add github --env GITHUB_PERSONAL_ACCESS_TOKEN=$GITHUB_PERSONAL_ACCESS_TOKEN -- npx -y @modelcontextprotocol/server-github
# 功能:创建 Issue/PR、查看仓库内容、搜索代码
# 你:帮我在 my-org/backend 仓库创建一个 Issue,
# 标题"修复登录 Bug",详细描述昨天发现的问题3. PostgreSQL
bash
claude mcp add postgres -- npx -y @modelcontextprotocol/server-postgres "postgresql://user:password@localhost:5432/mydb"
# 功能:执行 SQL 查询、查看表结构
# 你:查询最近 7 天注册用户数,按天分组4. Brave Search(网络搜索)
bash
export BRAVE_API_KEY="BSA_xxxx"
claude mcp add brave-search --env BRAVE_API_KEY=$BRAVE_API_KEY -- npx -y @modelcontextprotocol/server-brave-search
# 功能:搜索网络,获取最新信息
# 你:搜索 React 19 有哪些重大变化5. Slack
bash
claude mcp add slack --env SLACK_BOT_TOKEN=$SLACK_BOT_TOKEN --env SLACK_TEAM_ID=$SLACK_TEAM_ID -- npx -y @modelcontextprotocol/server-slack
# 功能:发送消息、读取频道历史
# 你:把刚才的 Code Review 结果发到 #engineering 频道两种连接方式
stdio(本地进程,推荐)
bash
claude mcp add my-tool -- node /path/to/mcp-server.js
# 特点:
# - 与 Claude Code 在同一机器上运行
# - 通过标准输入输出通信
# - 更简单、更安全SSE(远程服务器)
bash
claude mcp add remote-tool --transport sse https://api.example.com/mcp
# 特点:
# - 服务器运行在远端
# - 适合共享工具(团队使用同一 MCP 服务器)
# - 需要处理网络安全(认证、HTTPS)持久化配置(settings.json)
不想每次 claude mcp add,在 settings.json 中持久化:
json
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem",
"/Users/me/projects"],
"env": {}
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_TOKEN}"
}
}
}
}在 CLAUDE.md 中声明 MCP 使用规范
markdown
# CLAUDE.md
## 可用的 MCP 工具
### GitHub MCP
- 可以:查看 Issue/PR、创建 Issue、搜索代码
- 禁止:直接推送代码(所有代码变更需经过 PR)
- 仓库范围:只操作 my-org/backend 和 my-org/frontend
### PostgreSQL MCP
- 可以:SELECT 查询、解释查询计划
- 禁止:INSERT/UPDATE/DELETE/DROP 等写操作
- 敏感表:users 表只能查 id 和 created_at,不能查 email 和 password_hash自定义 MCP 服务器(快速入门)
typescript
// my-mcp-server.ts
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
const server = new Server(
{ name: "my-internal-api", version: "1.0.0" },
{ capabilities: { tools: {} } }
);
// 注册工具
server.setRequestHandler("tools/list", async () => ({
tools: [{
name: "get_user_info",
description: "根据用户 ID 获取用户信息",
inputSchema: {
type: "object",
properties: { userId: { type: "string" } },
required: ["userId"]
}
}]
}));
// 处理工具调用
server.setRequestHandler("tools/call", async (request) => {
if (request.params.name === "get_user_info") {
const { userId } = request.params.arguments;
// 调用内部 API
const user = await fetchUserFromDB(userId);
return { content: [{ type: "text", text: JSON.stringify(user) }] };
}
});
// 启动服务器
const transport = new StdioServerTransport();
await server.connect(transport);来源:Claude Code 官方文档 - docs.anthropic.com/en/docs/claude-code/mcp