用 MCP 给 Claude 接上外部工具和数据源,让它成为真正的全能助手
想象你有一个万能遥控器(Claude),但它出厂时只能控制电视。你给它加上 MCP 适配器后:
MCP = 一个统一的「插座」标准。只要工具遵循这个标准,Claude 就能直接使用它。
以下是 MCP 的典型应用场景:
MCP 分为三个角色:
MCP Server 本质上是一个程序,它可以是一个 npm 包、一个 Python 包、或者一个可执行文件。你需要搞清楚的第一个问题是:
Anthropic 官方提供了一批 MCP Server,以 npm 包形式发布在 @anthropic-ai/mcp-server-xxx 下:
| 包名 | 用途 | 需要什么凭据 |
|---|---|---|
@anthropic-ai/mcp-server-github | 操作 GitHub:查 PR、管理 Issue、查看仓库 | GitHub Personal Access Token |
@anthropic-ai/mcp-server-postgres | 直连 PostgreSQL 数据库,执行 SQL 查询 | 数据库连接字符串 |
@anthropic-ai/mcp-server-sqlite | 操作本地 SQLite 数据库文件 | 数据库文件路径 |
@anthropic-ai/mcp-server-filesystem | 安全地读写指定目录下的文件 | 允许访问的目录路径 |
@anthropic-ai/mcp-server-brave-search | 调用 Brave 搜索引擎搜网页 | Brave Search API Key |
@anthropic-ai/mcp-server-puppeteer | 控制 Chrome 浏览器,自动化网页操作 | 无(本地运行浏览器) |
@anthropic-ai/mcp-server-slack | 发送/读取 Slack 消息 | Slack Bot Token |
@anthropic-ai/mcp-server-memory | 给 Claude 加持久记忆能力 | 无(本地存储) |
关键认知:这些包不需要你手动 npm install。你只需要在配置文件中声明,Claude Code 会自动通过 npx 下载并运行。
除了官方包,社区有大量第三方 MCP Server。查找途径:
npm search mcp-server(命令行)或在 npmjs.com 搜索awesome-mcp 可以找到各种整理好的 MCP 合集pip install 或 uvx 运行第三方 MCP 的配置语法完全一样,只是 command 和 args 不同。比如:
"command": "npx", "args": ["包名"]"command": "uvx", "args": ["包名"] 或 "command": "python", "args": ["-m", "模块名"]"command": "/path/to/binary", "args": ["--flag"]下面以 GitHub MCP Server 为例,从头到尾演示一遍。跟着操作就能学会。
# 1. 打开浏览器,登录 GitHub
# 2. 访问:Settings → Developer settings → Personal access tokens → Fine-grained tokens
# 3. 点击 "Generate new token"
# 4. 勾选需要的权限(建议只勾选你实际需要的仓库和权限)
# 5. 生成后复制 token(格式如:github_pat_xxxx)
# ⚠️ token 只显示一次,请立刻保存!
# Claude Code 的配置文件位置:
# 用户级配置(全局生效):~/.claude/settings.json
# 项目级配置(仅当前项目):项目根目录/.claude/settings.json
# 本地敏感配置(不提交 git):~/.claude/settings.local.json
# 检查配置文件是否存在:
ls -la ~/.claude/settings.json
# 如果文件不存在,创建一个空 JSON:
echo '{}' > ~/.claude/settings.json
编辑 ~/.claude/settings.json,添加 mcpServers 字段:
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@anthropic-ai/mcp-server-github"],
"env": {
"GITHUB_TOKEN": "github_pat_你的token在这里"
}
}
}
}
"github" — 你给这个 MCP Server 起的名字,可以随意取"command": "npx" — 用 npx 来运行(npm 自带的包运行器)"args": ["-y", "包名"] — -y 表示自动确认安装,后面跟包名"env" — 传给 MCP Server 的环境变量,如凭据、连接字符串等
~/.claude/settings.local.json 中(该文件不会随项目提交)。
# 1. 退出当前 Claude Code 会话
# 2. 重新启动 Claude Code
# 3. 启动后,Claude 会自动加载 MCP 配置
# 4. 验证 MCP 是否生效——在对话中输入:
"请帮我列出当前可用的所有工具"
# 如果配置成功,Claude 的回答中会包含类似这样的工具:
# - mcp__github__get_issue
# - mcp__github__list_pull_requests
# - mcp__github__create_comment
# 等等...
# 现在你可以直接对 Claude 说这些:
"帮我查一下 anthropics/claude-code 最近 5 个 PR 的标题"
"把 issue #42 分配给我并打上 bug 标签"
"查看我名下所有待 review 的 PR"
"创建一个新的 issue,标题是「登录页面白屏」,描述如下:..."
Step 1:确认数据库地址
# 你的数据库连接字符串格式:
# postgresql://用户名:密码@主机:端口/数据库名
# 例如:
# postgresql://admin:mypass@localhost:5432/myapp_dev
Step 2:编辑配置文件
# ~/.claude/settings.json 中添加:
{
"mcpServers": {
"github": { "..." },
"postgres": {
"command": "npx",
"args": ["-y", "@anthropic-ai/mcp-server-postgres"],
"env": {
"DATABASE_URL": "postgresql://admin:mypass@localhost:5432/myapp_dev"
}
}
}
}
Step 3:重启并使用
# 重启 Claude Code 后,试试这些:
"users 表有哪些字段?帮我看看表结构"
"最近 7 天注册了多少用户?写 SQL 帮我查一下"
"orders 表中金额大于 1000 的订单有多少?按日期分组统计"
Claude 会自动识别这些问题需要查询数据库,然后调用 MCP Server 执行 SQL 并解释结果。
以下整理了常用 MCP Server 的完整安装信息:
| 用途 | 来源 | npm 包名 | 运行方式 | 需要凭据 |
|---|---|---|---|---|
| GitHub | 官方 | @anthropic-ai/mcp-server-github |
npx -y 包名 |
GITHUB_TOKEN |
| PostgreSQL | 官方 | @anthropic-ai/mcp-server-postgres |
npx -y 包名 |
DATABASE_URL |
| SQLite | 官方 | @anthropic-ai/mcp-server-sqlite |
npx -y 包名 |
文件路径参数 |
| 文件系统 | 官方 | @anthropic-ai/mcp-server-filesystem |
npx -y 包名 |
允许的目录路径 |
| 网页搜索 | 官方 | @anthropic-ai/mcp-server-brave-search |
npx -y 包名 |
BRAVE_API_KEY |
| 浏览器自动化 | 官方 | @anthropic-ai/mcp-server-puppeteer |
npx -y 包名 |
无(本地 Chrome) |
| Slack | 官方 | @anthropic-ai/mcp-server-slack |
npx -y 包名 |
SLACK_BOT_TOKEN |
| 持久记忆 | 官方 | @anthropic-ai/mcp-server-memory |
npx -y 包名 |
无 |
| Jira | 社区 | @anthropic-ai/mcp-server-jira |
npx -y 包名 |
JIRA_API_TOKEN |
| Google Drive | 社区 | 搜索 npm 找最新包 | 看包文档 | Google OAuth |
github.com/topics/mcp-server 或 npm 搜 mcp-server。看到感兴趣的,看它的 README 就知道怎么配置了。配置语法和上面完全一样。
真正的威力在于组合。假设你配置了 GitHub MCP + Filesystem MCP,就可以实现这样的工作流:
你对 Claude 说:
"从 GitHub 上拉取 PR #42,分析代码改动,如果没问题就帮我 merge"
Claude 会:
1. 用 GitHub MCP 获取 PR #42 的详细信息
2. 用 Filesystem MCP 读取相关文件
3. 分析代码改动
4. 用 GitHub MCP 添加 review 评论
5. 确认没问题后 merge PR
| 模式 | 说明 | 适用场景 |
|---|---|---|
| stdio | 通过标准输入输出通信,Server 作为子进程运行 | 本地工具(数据库、文件系统) |
| HTTP/SSE | 通过 HTTP 请求通信,Server 作为独立服务运行 | 远程服务、团队共享的 MCP |
绝大多数情况使用 stdio 模式,配置简单,自动管理生命周期。
| MCP | 技能 | 子代理 | |
|---|---|---|---|
| 本质 | 外部工具连接 | 提示词+流程模板 | 独立 AI 会话 |
| 给 Claude 什么 | 新工具/能力 | 专业知识与流程 | 并行处理能力 |
| 类比 | 给手机装 App | 给手机开专家模式 | 多开一部手机 |
| 典型用途 | 查数据库、调 API | 代码审查、初始化 | 并行搜索、研究 |
MCP Server 运行在本地(或你控制的服务器上),权限由你配置。但要注意:给 MCP 什么权限,Claude 就能做什么操作。建议遵循最小权限原则。
可以。项目级的 MCP 配置放在 .claude/settings.json(可提交 git),个人敏感信息放在 ~/.claude/settings.local.json(不提交)。