📌标签:
#MCP#集成#实战案例#外部工具
仅凭 Claude Code 本身就已经相当强大,但在装上 MCP 之后,它的能力会得到一次质的飞升——可以直接连接数据库、管理 Jira 工单、向 Slack 发送通知,以及和整个开发工具链无缝协同。目前有不少现成的 MCP 服务器可以直接使用。这一篇将完整演示如何把真实的外部工具接入 Claude Code,让 AI 真正融入你的日常开发工作流。
1. MCP Server 是什么?
MCP(Model Context Protocol,模型上下文协议)是一个专门为 AI 工具连接外部数据源和服务设计的开放标准。AI 助手可以借助 MCP 服务器实现以下功能:
- 从 Google Drive 读取文档
- 更新和查询 Jira 工单
- 从 Slack 获取消息和上下文
- 直接在本地连接 PostgreSQL、MySQL 等数据库
- 通过浏览器实现自动化操作
- 与团队自建的各种内部工具对接
MCP 服务器在运行时会暴露工具、资源和提示词,Claude Code 会根据具体任务自主决定何时调用哪个 MCP 工具。
2. 配置 MCP Server 的三种方式
在 Claude Code 中连接 MCP 服务器,主要有三种方式。建议按需选择:
方式一:CLI 命令(最快)
这是最简洁直接的方式,适合快速添加。
# stdio 传输(用于本地命令行工具)claude mcpaddslack-webhook-tstdio -- npx-y@agentuse/mcp-slack-webhook# HTTP 传输(用于远程服务)claude mcpadd--transporthttp pgmcplocal http://localhost:3000/mcpCLI 添加的服务器会自动写入settings.json文件,也可以用claude mcp remove <server-name>来移除。
方式二:直接编辑 settings.json(最灵活)
适合需要精确控制配置、设置工作目录或引用环境变量的场景。
项目级配置:存放在.claude/settings.json(推荐,可随项目共享)
用户级配置:存放在~/.claude/settings.json(全局生效)
{"mcpServers":{"jira":{"command":"npx","args":["-y","jira-rest-mcp-server"],"env":{"JIRA_BASE_URL":"${JIRA_BASE_URL}","JIRA_EMAIL":"${JIRA_EMAIL}","JIRA_API_TOKEN":"${JIRA_API_TOKEN}"}}}}各字段含义如下:
command:指定要运行的可执行文件(必需)args:传递给命令的参数数组env:传递给服务器的环境变量cwd:设置服务器的工作目录transport:传输类型,支持stdio(默认)和http
方式三:使用 Agent SDK
通过编程方式集成,适合需要更灵活调用的场景。
3. 实战一:连接 PostgreSQL 数据库
通过 MCP 服务器让 Claude Code 直接查询数据库,是最能体现 MCP 实际价值的场景之一。
选择一:使用 pg-mcp(推荐,只读模式)
这款服务器实现的是只读访问,INSERT、UPDATE、DELETE等写入操作在到达数据库之前就会被阻断,天然适合 AI 查询,无需担心数据安全问题。
配置步骤:
# 1. 全局安装npminstall-g@mir1198yusuf/pg-mcp# 2. 首次运行会进入交互式配置(设置端口、添加数据库连接)pg-mcp# 3. 添加 MCP server 到 Claude Codeclaude mcpadd--transporthttp--scopelocalpgmcplocal http://localhost:3000/mcp之后打开浏览器访问http://localhost:3000/ui可以添加和管理更多数据库连接。⚠️ 安全提醒:~/.pg-mcp/dbs.json中包含数据库明文凭证,切勿提交或对外分享。不要在公网服务器上运行这个服务器。
使用示例:
Claude Code > 列出所有已配置的数据库 [调用 list_dbs 工具] Claude Code > 查询 orders 表最近的 10 条订单记录选择二:使用 @passionfroot/postgres-mcp(Prisma 集成)
如果项目中使用了 Prisma,这个服务器能带来更好的体验。它会合并实时数据库和 Prisma schema,让 AI 不仅能看到原始的数据库结构,还能理解模型名、字段映射和表之间的关联关系。
配置方式:创建postgres-mcp.toml配置文件,添加数据库源。
# 可选:关联 Prisma schema # prisma_schema_path = "~/work/myproject/prisma/schema.prisma" [[sources]] id = "production" dsn = "postgres://user:pass@db-host:5432/mydb?sslmode=require" readonly = true使用示例:
Claude Code > 搜索与 User 模型相关的所有表 [调用 search_objects 工具] Claude Code > 执行 SQL 查询分析订单状态的分布情况4. 实战二:Jira —— 让 AI 管理你的工单
让 Claude Code 直接操作 Jira,可以省去在开发环境和浏览器之间反复切换的成本。
前置准备
- 获取 Jira API Token:访问 https://id.atlassian.com/manage-profile/security/api-tokens,点击Create API token,并立即复制保存。
- 准备关键信息:Jira 实例的 base URL、你的登录邮箱、上一步获取的 API Token。
推荐方案:使用jira-rest-mcp-server
相比官方的 Atlassian SSE 端点,jira-rest-mcp-server的连接更稳定,不会因为认证丢失而导致 API 调用失败。
配置步骤:
创建.claude/settings.local.json(加入.gitignore防泄露):
{"env":{"JIRA_BASE_URL":"https://your-domain.atlassian.net","JIRA_EMAIL":"your-email@example.com","JIRA_API_TOKEN":"your-api-token"}}然后在.claude/settings.json中添加:
{"mcpServers":{"jira":{"command":"npx","args":["-y","jira-rest-mcp-server"],"env":{"JIRA_BASE_URL":"${JIRA_BASE_URL}","JIRA_EMAIL":"${JIRA_EMAIL}","JIRA_API_TOKEN":"${JIRA_API_TOKEN}"}}}}使用示例:
Claude Code > 查询分配给 @sarah 且状态为 In Progress 的 issue Claude Code > 在 PROJ-123 下面加一条评论:代码已提交至 PR #456,等待 Code Review Claude Code > 把 ISSUE-456 的状态从 In Progress 更新为 In Review Claude Code > 当前 sprint 里有哪些还未被指派的 bug?备选方案:使用mcp-jira-stdio
这款服务器可以通过一条 CLI 命令快速完成配置:
claude mcpaddjira npx mcp-jira-stdio@latest\--envJIRA_BASE_URL=https://yourcompany.atlassian.net\--envJIRA_EMAIL=your-email@example.com\--envJIRA_API_TOKEN=your-api-token执行后服务器即自动配置完成,无需额外编辑配置文件。
5. 实战三:Slack —— 让 AI 自动推送消息
Slack 集成有两种典型路径:单向通知(Webhook)和完整交互。
路径一:Slack Webhook(仅发送,最简单)
前置准备:在 Slack API 中创建应用,启用 Incoming Webhooks,生成一个指向特定频道的 webhook URL。
配置方法:
{"mcpServers":{"slack-webhook":{"command":"npx","args":["-y","@agentuse/mcp-slack-webhook"],"env":{"SLACK_WEBHOOK_URL":"https://hooks.slack.com/services/YOUR/WEBHOOK/URL"}}}}使用示例:
Claude Code > 使用 send-message 向 #alerts 频道发送一条消息:构建失败,请检查。 [支持文本或 Block Kit 富文本格式]路径二:完整 Slack 集成
通过 Composio 等平台实现认证,让 Claude Code 读取消息、管理频道、操作表情和提醒。
快速接入步骤:
- 将 Composio MCP 添加到 Claude
- 启动 Claude Code
- 打开 MCP 列表,选择 Composio 并完成认证
更多能力:
- 发送消息到指定频道,或设置自然语言定时提醒
- 管理表情和反应,归档不再活跃的频道
- 添加 Google Drive 等外部文件共享链接
6. 其他实用的 MCP Server
| 类别 | 推荐 Server | 功能说明 |
|---|---|---|
| 代码协作 | GitHub / GitLab | 搜索代码、PR 审查、创建 issue、管理仓库 |
| 项目管理 | Jira / Linear / Asana | 查询/创建/更新工单、管理冲刺 |
| 监控告警 | Sentry / Datadog | 查询错误信息、分析性能数据、获取告警 |
| 设计工具 | Figma | 读取设计稿、提取设计 token、生成代码 |
| 文档查询 | Context7 / Brave Search | 获取最新的 API 文档、联网搜索 |
| 浏览器自动化 | Playwright | 网页截图、填写表单、执行 JavaScript |
7. 多个 MCP Server 串连的实战工作流
把多个 MCP Server 组合起来使用,可以实现开发工作流的端到端自动化。你可以一次性输入下面这种复合指令,让 Claude Code 自主规划并依次调用对应的 MCP 工具:
帮我检查刚刚 push 的 commit 在 GitHub 上的 CI 状态: - 如果通过,在 Jira 上将对应的 ticket 移到 QA 列,并在 #deployments Slack 频道发一条成功通知 - 如果失败,去 Sentry 查询相关错误,整理关键信息发到 #alerts 频道,同时在 Jira ticket 上添加一条包含失败原因的评论8. 验证、管理及故障排查
验证服务器状态
在 Claude Code 会话中输入/mcp,可以查看已连接的服务器和可用的工具列表。
常用管理命令
| 命令 | 作用 |
|---|---|
claude mcp list | 列出所有已添加的服务器 |
claude mcp remove <name> | 移除指定的服务器 |
claude mcp add-from-claude-desktop | 从 Claude Desktop 导入已有配置 |
常见问题
| 问题 | 可能原因 | 解决方法 |
|---|---|---|
/mcp看不到工具 | 服务器未正确启动 | 运行claude mcp list确认状态,检查服务器进程是否正常运行 |
| 工具调用返回认证错误 | API Token 失效或权限不足 | 重新生成 API Token,更新配置文件中的对应变量 |
| stdio 通信失败 | 服务器代码中意外使用了console.log | stdio 模式下 stdout 需严格保留给 JSON-RPC 协议;移除多余的console.log |
9. 安全与成本建议
安全性
- 凭证保护:使用
.claude/settings.local.json并加入.gitignore,或用${VAR}语法引用环境变量 - 只读优先:对生产数据库优先选择只读 MCP 服务器
- 本地运行:数据库 MCP 服务器只在本地运行,不要暴露到公网
- 审计日志:记录关键操作,便于追踪
成本管理
- MCP Server 会调用外部 API(如 GitHub、Jira),可能产生额外费用
- MCP 工具返回的大块数据(如数据库查询结果、API 响应)会进入上下文,被计入 token
- 在提示词中建议 AI 精简 MCP 返回结果,定期用
/cost监控额外开销
10. 下篇预告
MCP 把 Claude Code 和外部世界连接了起来。但如何让 AI 记住“你是如何在终端里构建这个项目的”?——测试命令、编译指令、项目模式。下一篇我们将学习跨会话项目记忆,让 AI 不再每次都需要你重新告诉它你的习惯。
👉下一篇:跨会话项目记忆:让AI自动记住你的测试命令、编译指令和项目模式
思考题(自测理解)
- 如果要让 Claude Code 分析 Sentry 中过去 24 小时的错误,并针对每个错误在 GitHub 上创建对应的 Issue,需要用到哪几个 MCP Server?这些服务器的工作流程如何串联?
- stdio 与 HTTP 两种传输模式分别适合哪些场景?本地数据库应该选用哪一种?
- 使用只读模式的 PostgreSQL MCP Server 相比允许写操作的普通数据库连接,在什么情境下会更有优势?
MCP 把门打开了,但学会让它记住你的习惯,才能成为真正的开发伙伴。下一章,我们聊聊 AI 的长期记忆。