MCP的概念
MCP = Model Context Protocol(模型上下文协议),Anthropic 在 2024 年 11 月开源的协议,解决一个具体问题:怎么让 LLM 标准化地接外部数据和工具。
解决的问题
在 MCP 之前,每个 AI 应用想接 GitHub、数据库、Slack 都得单独写集成代码——OpenAI、Claude、Cursor 各写一套,互不通用。这就是著名的 "M×N 问题":M 个 AI 客户端 × N 个数据源 = M×N 套胶水代码。
MCP 把它变成 M+N:
M×N(之前) M+N(MCP 之后)
Claude ──┐ Claude ─┐
Cursor ──┼─→ 每个都要 Cursor ─┼─→ MCP ─┬─→ GitHub
Codex ──┘ 各写胶水 Codex ─┘ ├─→ Postgres
↓ ├─→ Slack
GitHub, DB, Slack... └─→ ...
类比的话:MCP 之于 AI = USB-C 之于硬件。一个口,所有设备能插。
架构
客户端-服务器模型:
┌────────────────┐ JSON-RPC ┌─────────────────┐
│ MCP Client │ ←──────────────────────→ │ MCP Server │
│ (Claude Code, │ (stdio / HTTP) │ (GitHub, DB, │
│ Cursor, etc.) │ │ filesystem...) │
└────────────────┘ └─────────────────┘
↑ ↑
AI 这一侧 数据/工具这一侧
- MCP Client:LLM 应用——Claude Code、Claude Desktop、Cursor、Zed 等
- MCP Server:包装某个数据源/服务的小程序——通常是一个 Node 或 Python 进程
两边用 JSON-RPC 2.0 通信,传输层走 stdio(本地子进程)或 HTTP/SSE(远程)。
服务器暴露的三类能力
MCP server 可以提供三种东西给 client:
1. Tools → LLM 可调用的函数 例: github_create_issue(title, body)
2. Resources → LLM 可读取的数据 例: file://README.md, db://users/123
3. Prompts → 预设的提示词模板 例: /code-review 触发 review prompt
Tools 最常用——本质就是给 LLM 多一组可调函数。比如装了 GitHub MCP server 后,Claude 能直接 create_pull_request(...),背后是服务器进程帮它调真实 GitHub API。
在 Claude Code 里怎么配
.mcp.json 或 settings.json 的 mcpServers 段:
{ "mcpServers": { "github": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-github"], "env": { "GITHUB_TOKEN": "ghp_..." } }, "postgres": { "command": "uvx", "args": ["mcp-server-postgres", "postgresql://localhost/mydb"] }, "harness-mcp": { "command": "npx", "args": ["-y", "harness-mcp-v2"], "env": { "HARNESS_API_KEY": "..." } } } }
启动 Claude Code 时它会把这些服务器拉起来,工具自动出现在 LLM 的工具列表里。
常见 MCP server
官方和社区有几百个了,挑常用的:
| 类别 | 代表 |
|---|---|
| 代码托管 | GitHub, GitLab |
| 数据库 | Postgres, SQLite, MongoDB, Redis |
| 协作 | Slack, Discord, Linear, Jira, Notion |
| 存储 | Google Drive, Dropbox, S3 |
| 搜索/浏览 | Brave Search, Fetch, Puppeteer |
| 本地 | Filesystem, Git, Memory |
| 垂直平台 | Harness, Stripe, Cloudflare, Sentry |
可以在 modelcontextprotocol.io 或 Anthropic 的 servers 仓库 找完整目录。
几个常见困惑
MCP vs 普通 tool use? 普通工具调用是在 LLM 应用代码里硬编码函数。MCP 是把工具拆成独立进程,可热插拔、跨应用共享。架构差异,不是替代关系——底层还是工具调用。
MCP vs Skill? Skill 是写给 LLM 看的 markdown 工作流(软的或半软的)。MCP 是真实的代码进程提供新工具(硬的)。一个 skill 经常会用到 MCP 提供的工具——比如 harness-skills 项目里的 skill 调用 harness-mcp 暴露的 API。
MCP vs Agent? Agent 是会决策的 LLM 实例。MCP server 是被动的工具提供者——它不"思考",只响应调用。Agent 用 MCP 工具干活。
为什么这个协议重要
2024 年底发布时大家觉得是又一个标准,2025 年很快被 OpenAI、Google、Microsoft、Cursor、Zed、Cline 等全部采纳——现在事实上是 AI 工具集成的通用底座。装一个 MCP server,Claude、Cursor、Codex 全都能用。
对你之前问的那些目录约定也有意义——.mcp.json 这个文件之所以单列出来(而不是塞进 settings.json),就是因为 MCP 已经独立成生态,跨工具共享。把 .mcp.json 提交 git,团队 clone 下来谁都能用同一组外部集成。
版权属于:BLOG DEWEBSTUDIO 本文作者:狒狒
原文地址: http://blog.dewebstudio.com/?post=160
版权声明:转载时必须以链接形式注明原始出处及本声明。
继续浏览:

发表评论