首页 / AI 代理

MCP 是什么?一次看懂 AI 代理连接工具的开放标准

作者 JC · 更新于 · 最后查证

简体版由繁体自动转换,少数用词可能和你习惯的不同。

要点速览

MCP(Model Context Protocol,模型上下文协定)是一个开放标准,规定 AI 应用程序怎么连接外部的数据、工具和工作流程,官方把它比喻成 AI 应用程序的 USB-C 连接端口。AI 应用程序透过它连上一个或多个「MCP 服务器」,服务器提供可以调用的工具、可以读取的数据和预先写好的提示模板。MCP 本身不是模型,也不保证安全:接上的每个服务器都可能读取数据、运行程序,所以只接你信任的来源。

MCP 是什么?简单说,MCP(Model Context Protocol,模型上下文协定)是一个开放标准,规定 AI 应用程序要怎么连接外部系统,例如你电脑上的文件、公司的数据库、搜索引擎或议题追踪系统。官方文档把它比喻成 AI 应用程序的 USB-C 连接端口:USB-C 让各种设备用同一种方式连接,MCP 让 AI 应用程序用同一种方式接上各种数据与工具。这篇用白话解释它解决什么问题、由哪些角色组成,以及接上之前一定要想清楚的安全问题。

MCP 解决什么问题?

大语言模型本身只能处理放进上下文窗口的内容。想让它查数据库、读议题、创建行事历活动,就要让它能使用外部工具,这叫工具调用(Tool calling):模型决定要用哪个工具、填什么参数,再由应用程序实际运行。如果还不熟这个概念,先看 AI 代理是什么?和聊天机器人的差别。

问题在于,没有共同标准时,每个 AI 应用程序都要替每个外部系统各写一套集成。MCP 把「怎么连接」标准化:数据或工具的提供者写一次 MCP 服务器,支持 MCP 的应用程序都能接上。官方文档列出的好处,对开发者是减少集成的时间与复杂度,对用户则是 AI 应用程序能访问更多数据、在必要时替你采取行动。

Claude Code 的官方文档给了一个很实用的判断点:当你发现自己一直把另一个工具里的数据(例如议题追踪系统或监控面板)拷贝粘贴到对话里,就是该接 MCP 服务器的时候;接上之后,AI 可以直接读取并操作那个系统,而不是只看你粘贴的内容。

MCP 的三个角色:主机、用户端、服务器

MCP 采用用户端-服务器架构,有三个角色:

  • MCP 主机(MCP Host):你直接使用的 AI 应用程序,例如 Claude Code 这类 AI 代理工具,负责协调一个或多个 MCP 用户端。
  • MCP 用户端(MCP Client):主机里负责和某一个服务器保持连接的组件。主机每连上一个服务器,就创建一个对应的用户端。
  • MCP 服务器(MCP Server):提供数据或工具给 AI 应用程序的程序,例如文件系统服务器、数据库服务器、行事历服务器。

要注意「服务器」这个词不代表它一定在远方的机房。官方文档说明,MCP 服务器指的是提供内容的程序,不管它在哪里运行:

  • 本机服务器:在你自己的电脑上运行,通常使用 stdio 传输方式。stdio(标准输入输出)是程序之间透过标准输入和标准输出交换数据的方式,主机会直接把服务器当成子程序启动。
  • 远程服务器:在服务商的平台上运行,使用 Streamable HTTP 传输方式透过网络连接,可以使用 API 密钥等方式验证身分,官方建议用 OAuth(一种让你授权应用程序访问账号、又不必交出密码的标准)取得验证用的权杖。

服务器能提供的三种功能

MCP 服务器透过三种基本功能(官方称为 primitives)提供能力:

  • 工具(Tools):AI 应用程序可以调用来运行动作的函数,例如搜索航班、寄送消息、修改文件、查找数据库。
  • 资源(Resources):提供背景信息的数据源,例如文件内容、数据库结构、API 文档,是唯读的。
  • 提示(Prompts):预先写好的指示模板,引导模型搭配特定的工具与资源完成某类工作,例如「规划旅行」「摘要我的会议」。

三者最大的差别,是由谁决定什么时候使用:

功能用途例子由谁决定使用
工具运行动作,可能改变外部系统搜索航班、寄信、写入数据库模型(依你的需求自己判断)
资源提供唯读的背景数据读取文档、行事历、数据库结构应用程序(由它决定放哪些进上下文)
提示预先写好的工作模板规划旅行、草拟邮件用户(要你明确选用才会触发)

工具是由模型自己决定调用的,所以风险最高。官方文档列出应用程序可以提供的控制方式,包括:让你决定哪些工具可以使用、每次运行前跳出确认、事先核准某些安全的动作,以及记录每一次工具运行与结果。这正是人工把关的概念。

MCP 不是什么

几个常见的误解:

  • 不是模型:MCP 只规定 AI 应用程序和外部系统怎么交换内容,官方文档明确说明,它不规定应用程序怎么使用模型、怎么处理拿到的内容。换模型不代表要换 MCP 服务器。
  • 不是取代工具调用:模型还是透过工具调用来使用 MCP 提供的工具;MCP 统一的是工具「怎么接上来」。
  • 不是有人替你把关的应用程序商店:套件平台和服务器清单几乎什么都能上架。MCP 官方文档提醒,上架不等于背书;Anthropic 也说明,它会依上架标准审查收录在自家目录的连接器,但不会替任何 MCP 服务器做安全审核或代为管理。
  • 不是沙箱:本机服务器就是一般的程序。MCP 官方文档特别强调,stdio 传输方式不是沙箱,协定本身不会限制服务器能做什么。

接上 MCP 服务器之前:五个安全原则

MCP 让 AI 代理能做的事变多,能出错的地方也跟着变多。以下整理自 MCP 官方的本机服务器安全建议与 Claude Code 的安全文档,观念和 让 AI 代理安全操作电脑 一致。

一、知道本机服务器能碰到什么

MCP 官方文档说明,在本机运行 MCP 服务器,等于从网络下载代码,用你的用户账号运行。这个程序会继承你的环境变量(里面可能有密钥),能读取你的账号能读的所有文件,也能连到任何网络地址。这些都不受 MCP 协定管控,而是取决于你怎么运行它。

二、能用远程版本就不要装在本机

官方的建议很直接:服务器需要读你的项目文件、操作本机工具或硬件时,才有理由在本机运行;如果它只是转接某个网络服务,就优先用远程版本,这样不会在你的电脑上运行任何代码。

三、安装前先查来源

  • 确认发布者:能不能对应到源代码和真实的维护者或组织?
  • 确认套件名称完全正确,避免名称相似的仿冒套件。
  • 固定版本,不要永远安装最新版,并养成有安全公告时主动更新的习惯。

不确定时,官方建议只安装你看得到源代码、知道是谁发布的服务器。Claude Code 的文档也建议,使用自己写的服务器,或来自你信任的提供者的服务器。

四、把工具说明也当成不可信的内容

服务器会把工具的名称与说明传给 AI 应用程序,而模型会把这些说明当成指示来读。这代表一个恶意的服务器,可以把指示藏在工具说明里,这就是提示词注入的一种。另外,Claude Code 的文档也提醒,会抓取外部内容的服务器,可能让你暴露在提示词注入的风险下。

所以接上之后,先看一遍它提供的工具清单与说明;如果说明里有和工具本身工作无关的指示,就移除这个服务器。官方文档也指出,所有服务器共用同一个模型上下文,一个恶意的服务器可能影响代理怎么使用其他服务器的工具,所以服务器数量越少越好。

五、最小权限与隔离

依最小权限原则,只给服务器完成工作需要的东西:

  • 文件:只开放单一项目文件夹,能唯读就唯读,不要开放整个家目录。
  • 密钥:每个服务器用自己的密钥,权限范围越小越好,不要把同一把权限很大的密钥给好几个服务器共用。密钥怎么保管,请看 API Key 是什么,以及怎么安全保管。
  • 隔离:要运行第三方的本机服务器,官方建议放在容器或虚拟机这类隔离环境里,只挂载它需要的文件夹。设置档里的允许清单只能约束守规矩的服务器,真正能限制住它的是沙箱这类隔离环境。

我需要 MCP 吗?判断方法

下面是本站整理的判断方法,不是官方标准:

你的状况建议
常把另一个系统的数据拷贝粘贴给 AI适合接 MCP 服务器,让 AI 直接读取
只是偶尔问问题、整理文字不需要,直接对话就好
想让 AI 替你写入、寄送、删除东西可以接,但对这些工具保留人工确认
找到的服务器来源不明、看不到源代码先不要接,找官方或可查证的替代品
服务器只是转接某个网络服务优先用远程版本,不要装在本机
要处理机密数据或公司数据先确认公司规定,并在隔离环境中运行

决定要接之后,把你想让 AI 用这个服务器完成什么写清楚,效果会好很多,写法可以参考 AI 代理任务说明怎么写。

接着看什么

常见问题

MCP 是一种 AI 模型吗?

不是。MCP 是一套沟通规格,只规定 AI 应用程序和外部系统之间怎么交换信息。官方文档明确说明,它不规定 AI 应用程序怎么使用模型、怎么处理拿到的内容。

MCP 和工具调用(Tool calling)有什么不同?

工具调用是模型的能力:模型决定要用哪个工具、填什么参数。MCP 则是让工具「怎么被接上来」有统一的规格,同一个 MCP 服务器可以被不同的 AI 应用程序使用,不用每个应用程序各自写一套集成。

一定要会写程序才能用 MCP 吗?

使用现成的服务器通常不需要写程序,在支持 MCP 的应用程序里加入设置就能用,具体做法请看各工具的文档,例如 Claude Code 的教学。不过很多在本机运行的服务器需要 Python 或 Node.js 这类运行环境,最好先了解它们是什么。

本机的 MCP 服务器和远程的 MCP 服务器差在哪?

本机服务器是在你电脑上运行的程序,通常透过标准输入输出和 AI 应用程序沟通,能碰到你的账号能碰到的文件和环境变量。远程服务器在服务商的机器上运行,透过网络连接,不会在你的电脑上运行代码,但你的数据会送到对方那里。

MCP 服务器安全吗?

不能一概而论,要看是谁做的、你怎么运行它。MCP 官方文档提醒,本机服务器就是一般的程序,可以读取你的账号能读的文件、继承环境变量里的密钥,也能连到任何网络地址;Anthropic 也说明它不会替 MCP 服务器做安全审核。只接你信任的来源,并限制它能碰的范围。

接越多 MCP 服务器越好吗?

不是。每个服务器都会增加可能出错或被利用的地方,官方文档也指出,所有服务器共用同一个模型上下文,一个恶意服务器可能影响代理怎么使用其他服务器的工具。只接真的会用到的,不用的就移除。

留言

用 GitHub 账号登录就能留言,留言会公开显示在 GitHub Discussions。留言前请先看社区规则。

AI 代理