要点速览
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 代理任务说明怎么写。
接着看什么
- 本机服务器常需要 Python 或 Node.js 才能运行:为什么 AI 教学都要先装 Python 和 Node.js
- 想在实际工具里接上 MCP 服务器:看 Claude Code 安装教学,再依官方文档加入服务器
- 代理的权限与隔离怎么设:让 AI 代理安全操作电脑
- 名词不熟:到 名词小辞典 查,例如 MCP、MCP 服务器、工具调用、提示词注入。
常见问题
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。留言前请先看社区规则。