跳转到内容

MCP 连接器

Claude 默认只能读你的本地文件、跑本地命令。但你的活儿不只在本地——issue 在 GitHub 上、工单在 Jira 上、错误在 Sentry 上、文档在 Notion 里。每次要这些信息,你得手动复制粘贴进对话。

MCP 解决的就是这个。它是「万能插座」——把外部服务接进 Claude,让 Claude 直接读写你的 issue、工单、错误日志。

MCP 全称 Model Context Protocol(模型上下文协议),是 Anthropic 提出的一套开放标准。它定义了「大模型怎么连外部工具」的统一接口。

打个比方:以前每个外部服务都要单独写对接,就像每个电器配一种专用插头。MCP 定了一个通用插座标准——只要服务方按这个标准实现,往 Claude 上一插就能用。

一个 MCP 服务器能向 Claude 提供三类东西:

类型 是什么 例子
Tools(工具) Claude 可调用的函数 在 GitHub 建 issue、查 Sentry 错误
Prompts(提示) 预制的命令模板 「用 Jira 工单格式建一个 bug」
Resources(资源) 可读取的数据 Notion 文档内容、Postgres 查询结果

接上一个 MCP 服务器,Claude 就多了这些能力。

接外部服务的命令是 claude mcp add。基本格式:

Terminal window
claude mcp add <name> <command-or-url> [options]

MCP 服务器有两种传输方式(transport):

transport 怎么连 适合
http 通过 HTTP 连远程服务 云服务:GitHub、Sentry、Notion
stdio 启动一个本地进程,通过标准输入输出通信 本地工具:数据库、本地脚本

接一个云服务,用 --transport http

Terminal window
# GitHub
claude mcp add --transport http github https://api.github.com/mcp \
--header "Authorization: Bearer YOUR-TOKEN"
# Sentry
claude mcp add --transport http sentry https://mcp.sentry.dev/mcp
# Notion
claude mcp add --transport http notion https://mcp.notion.com/mcp

--header 用来传认证信息(如 token)。很多服务需要 OAuth 或 API token 才能访问,认证细节见下一节。

接一个本地服务,比如本地的 Postgres:

Terminal window
claude mcp add postgres -- npx -y @modelcontextprotocol/server-postgres \
postgresql://localhost:5432/mydb

这里 -- 后面是要启动的命令。Claude 会启动这个进程,通过它的标准输入输出通信。

很多云服务要登录授权。MCP 支持 OAuth 流程——你添加服务器后,Claude 会弹出浏览器让你授权,授权后 token 自动保存,后续不用再输。

也有服务用长期 API token(比如 GitHub 的 personal access token),通过 --header 传入。两种方式都常见,看服务方支持哪种。

社区和官方提供了不少现成的 MCP 服务器,常用的有:

服务器 能让 Claude 干什么
GitHub 读 issue、PR、建 issue、查代码、提 PR
Slack 读频道消息、发消息、搜索历史
Notion 读文档、写文档、查数据库
Sentry 查错误、看堆栈、分析趋势
Figma 读设计稿、提取设计 token
Jira 读工单、建工单、改状态
Postgres 直接查询数据库
Linear 读 issue、建 issue、管理项目

接上 GitHub 后,你可以直接对 Claude说「看看 #123 这个 issue 的描述,然后帮我修」,它会自己读 issue、定位代码、改完帮你提 PR——全程不用离开终端。

/mcp 命令管理已连接的 MCP 服务器:

  • 查看所有已连接的服务器及其状态
  • 查看每个服务器提供哪些工具、提示、资源
  • 查看连接是否正常、认证是否有效
/mcp

输出会列出每个服务器的名字、传输方式、连接状态、可用的工具清单。如果某个服务器连不上,这里会显示错误信息。

连了 MCP 服务器后,它提供的提示(prompts)会变成斜杠命令,格式是 /mcp__服务器名__命令名(双下划线)。详见 Commands 的 MCP 命令一节。

比如 GitHub 服务器有个 create_issue 提示,那就是:

/mcp__github__create_issue

这名字长是有意的——一眼能看出是哪个服务器的什么命令,不会和你自定义命令撞名。

MCP 工具调用同样受权限系统管控(详见 Settings 的 permissions 字段)。但有一个重要细节:权限规则不支持通配符

也就是说,你不能写 mcp__github__* 来放行所有 GitHub 工具。你必须逐个写明要放行哪个工具:

{
"permissions": {
"allow": [
"mcp__github__get_issue",
"mcp__github__create_issue",
"mcp__github__list_prs"
]
}
}

这是出于安全考虑——通配符会一次性放行一整类操作,风险太大。逐个写明确保你清楚知道每个被放行的工具能干什么

除了 claude mcp add 命令,MCP 服务器也可以写在配置文件 .mcp.json 里。这个文件可以放项目根目录,随仓库共享给团队:

{
"mcpServers": {
"github": {
"type": "http",
"url": "https://api.github.com/mcp",
"headers": {
"Authorization": "Bearer ${GITHUB_TOKEN}"
}
},
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres", "postgresql://localhost:5432/mydb"]
}
}
}

注意 ${GITHUB_TOKEN} 这种写法——它从环境变量取值,不会把密钥写死在文件里,可以安全提交进 git。

接上 GitHub MCP 后,一个完整的「issue → 修复 → PR」闭环:

> 帮我看看 anthropics/claude-code 仓库的 issue #456 是什么问题
(Claude 调用 mcp__github__get_issue 读到 issue 描述)
> 这是路由模块的 bug,帮我修一下
(Claude 定位代码、修复)
> 改好了,帮我提个 PR,描述写清楚修了什么
(Claude 调用 mcp__github__create_pr 提交)

全程没离开终端,没打开浏览器。这就是 MCP「万能插座」的威力。

MCP 是万能插座——Model Context Protocol 把 GitHub/Slack/Notion/Sentry 等外部服务接进 Claude,http 连云服务、stdio 连本地进程,OAuth 自动授权,/mcp 管理,权限逐个写明不支持通配符。


下一站,去 插件 Plugins 看「现成的工具箱」怎么一次装上一整套能力。🚀