MCP 相关梳理

5 min

记录时间: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 = true

3. 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。所以这是有风险的,因为无法确认第三方的安全性