MCP 相关梳理
记录时间:2026-07-07
1. MCP 是什么
MCP,全称 Model Context Protocol,是一种让 AI 客户端调用外部工具和数据源的标准协议。
可以简单理解为:
AI 客户端
↓ MCP 协议
MCP Server=
↓ 具体 API / 本地能力 / 数据源
外部系统我之前一直以为MCP是别人不想开源自己的代码库,给其他人一个接口来访问自己的服务,但其实mcp只是一个协议而已,通过这个协议我们可以调用外部工具,调用其他人的闭源工具可以,调用本地自己写的工具也可以。
常见用途:
- 读取或修改本地文件
- 查询数据库
- 调用 Git、浏览器、命令行工具
- 操作 GitHub、GitCode、飞书、Jira、Notion 等平台
- 访问企业内部系统
2. MCP Server 是什么
MCP Server 是一个中间程序,负责把某些能力暴露给 AI 客户端。
例如一个 GitCode MCP Server 可以暴露这些工具:
- 创建 Issue
- 查看 Issue
- 列出 Issue
- 更新 Issue
- 给 Issue 添加评论
- 创建 Pull Request
- 查看 Pull Request
AI 客户端本身不一定知道 GitCode API 怎么调用,它只需要知道 MCP Server 暴露了哪些工具。
需要注意的是,这个MCP server有时候是在本地启动的,有时候是在远程启动的。
如果配置mcp的时候形式如下,则是本地启动的:
[mcp_servers.context7]
type = "stdio"
command = "npx"
args = ["-y", "@upstash/context7-mcp"]对于这个配置,每次agent需要用到context7时,等价于在本机执行
npx -y @upstash/context7-mcp如果形式如下,带有url的,则是远程启动的:
[mcp_servers.gitcode_remote]
url = "https://mcp.example.com/gitcode/mcp"
bearer_token_env_var = "GITCODE_MCP_TOKEN"
startup_timeout_sec = 10
tool_timeout_sec = 60
enabled = true3. MCP 的几个角色
| 角色 | 作用 |
|---|---|
| AI 客户端 | 例如 Claude、Codex、Cursor,负责理解用户意图并调用工具 |
| MCP Server | 暴露工具、资源或提示词,是 AI 和外部系统之间的适配层 |
| 外部系统 | 真正被操作的平台,例如 GitCode、GitHub、数据库、本地文件系统 |
6. 本地 MCP 和远程 MCP 的区别
本地 MCP
本地 MCP Server 运行在自己的电脑上。
特点:
- token 通常作为环境变量传给本地进程
- 不一定经过作者的服务器
- 但本地运行的第三方代码仍然有读取 token 的能力
- 需要关注 npm 包供应链风险
远程 MCP
远程 MCP Server 运行在服务方的服务器上。
特点:
- 你的请求会发到远程服务
- 如果远程服务需要 token,它可能会直接持有你的凭证
- 服务方可以隐藏内部实现,不一定开源
- 更依赖服务方信誉、安全能力和权限隔离设计
7. MCP 的意义
MCP 的意义不是单纯为了闭源,而是统一 AI 调用外部能力的方式。
它可以用于:
- 开源工具
- 第三方封装器
- 官方平台服务
- 企业内部私有系统
- 闭源 SaaS 服务
对于企业内部系统,MCP 很有价值:企业可以只暴露“创建工单”“查询订单”“搜索知识库”等工具,而不暴露内部系统源码。
但这也意味着:
MCP 是能力边界,不是信任边界。
只要 MCP Server 拿到了 token、文件权限或数据库连接,它就拥有相应能力。
11. 一句话总结
MCP 是 AI 调用外部工具的标准协议。MCP Server 可以是官方的,也可以是第三方的、开源的、闭源的、本地的或远程的。
使用 @yangxt65535/gitcode-mcp 这类第三方 MCP 时,本质是让第三方程序拿着自己的 GitCode token 去调用 GitCode 官方 API。所以这是有风险的,因为无法确认第三方的安全性