AB
AiBoss
チュートリアル

用 MCP 把 AI 应用连接到外部数据与工具

チュートリアル

用 MCP 把 AI 应用连接到外部数据与工具

MCP(Model Context Protocol)是一套让 AI 应用连接外部数据与工具的开放标准。本文从它解决的问题讲起,说明 MCP 主机、客户端、服务器与 AI 模型各自的分工,拆解服务器提供的提示词、资源、工具三类能力,并给出在 Claude Desktop 中接入本地文件系统服务器、在 Claude Code 中接入远程服务器的完整操作步骤与注意事项。

MCP(Model Context Protocol)是一套开放标准,用来把 AI 应用连接到文件、数据库、日历、代码仓库这类外部系统。它要解决的是「每接一个新服务就要单独开发一次」的问题:没有统一约定时,3 个 AI 应用配 3 个外部服务,需要开发 3×3=9 种连接;有了 MCP,应用侧和服务侧各自实现一次协议即可,3+3=6 个适配就能覆盖全部组合。MCP 本身不是中继服务器,而是一套各方共同遵守的通信规则。本文按「概念分工 → 三类能力 → 实际操作 → 完整示例 → 注意事项」的顺序,讲清怎样把 MCP 服务器接到 AI 应用上并真正用起来。

适合阅读本文的人:想给 AI 助手接上本地文件、内部数据库或第三方 SaaS 的开发者;正在评估 MCP 是否值得引入的架构负责人;以及已经装好 Claude Desktop 或 Claude Code、但还没跑通第一个 MCP 连接的使用者。文中涉及客户端版本、可用服务器清单、配额与计费方式等易变信息,请以各产品官网当前信息为准。

准备工作

MCP 的连接是「AI 应用 + MCP 服务器」两端的事,准备也分两端。先确认自己处在哪种场景,再按对应清单准备。

确认 AI 应用(MCP 主机)

MCP 主机就是用户直接操作的那个 AI 应用,它同时承担三件事:提供界面、调用 AI 模型、管理一个或多个 MCP 客户端。常见的主机包括 Claude、ChatGPT 这类对话式助手,以及 Claude Code、Visual Studio Code、Cursor 这类开发工具。不同主机对 MCP 的支持程度不一样,有的只支持本地服务器,有的支持远程 HTTP 服务器,接入前先查该主机当前的支持范围。

确认 MCP 服务器

服务器是真正和外部系统打交道的一端。按运行位置分两类:

  • 本地服务器:以子进程方式运行在本机,通过标准输入输出与客户端通信。适合访问本机文件、本地数据库。
  • 远程服务器:以 HTTP 方式提供,客户端通过网络连接。适合访问云端服务,例如 Sentry、GitHub、JIRA 这类托管平台。

官方与社区已经提供了不少现成服务器,例如文件系统操作、Git 仓库操作、网页抓取、错误监控查询等。优先复用现成服务器,只有现成方案覆盖不到时才自己实现。

账号与凭据

接入远程服务器通常需要先在对应服务上完成授权。以 Sentry 为例,添加服务器后需要在浏览器里登录并授权,客户端才能拿到访问令牌。接入本地服务器一般不需要额外账号,但需要确认服务器进程有权限读取目标目录。

配置文件位置

桌面类主机(例如 Claude Desktop)通过一个 JSON 配置文件声明要启动哪些服务器。修改配置后必须完全退出并重新启动应用,配置才会生效——只关闭窗口往往不够,进程仍在后台运行。命令行类主机(例如 Claude Code)则通过命令添加服务器,配置由工具自己维护,不需要手写 JSON。

操作步骤

第一步:理清角色分工,避免接错层

动手之前先记住一条:用户和 AI 模型都不直接和 MCP 服务器对话,中间隔着 AI 应用。完整链路如下。

角色职责
用户在 AI 应用界面里提出请求,接收结果
AI 应用(MCP 主机)串联各方,负责界面、模型调用与客户端管理
MCP 客户端AI 应用内部的组件,一个服务器对应一个客户端
AI 模型理解请求、生成内容、决定是否调用工具
MCP 服务器向客户端暴露提示词、资源、工具三类能力,桥接外部系统
外部系统日历、数据库、代码托管、监控平台等真实数据源

协议只约束「MCP 客户端 ↔ MCP 服务器」这一段。主机与模型之间怎么通信、服务器怎么访问外部系统,都不属于 MCP 的管辖范围。排查问题时先判断故障落在哪一段,能省掉大量无效尝试。

第二步:理解服务器暴露的三类能力

MCP 服务器能提供的东西只有三类,区别不在存放位置(都在服务器上),也不在传输通道(都经过客户端),而在由谁决定使用。

能力是什么由谁触发结果
提示词(prompts)服务器预置的指令模板用户选择模板内容送达模型
资源(resources)供模型阅读的只读数据用户或应用选择数据内容送达模型
工具(tools)模型可调用的函数,如搜索、提交模型自行判断函数执行,结果送达模型

以旅行规划为例:用户选择 /plan-vacation 这个提示词模板并填入目的地、日期、预算,属于提示词路径;用户挑中某个日历条目,属于资源路径;模型发现需要查航班,主动调用 searchFlights(),属于工具路径。三条路径的请求分别对应 prompts/get、resources/read、tools/call。

这个区分直接决定了配置重点:如果希望模型能主动做事,就要确保服务器暴露了工具;如果只是想让模型读到某份资料,用资源更合适,因为资源是只读的,风险面更小。

第三步:在桌面应用中接入本地服务器

以文件系统服务器为例,目标是把本机某个目录开放给 AI 应用,让模型能列目录、读文件、建文件夹、移动文件。

  1. 打开 AI 应用的配置文件(桌面应用通常是一个 JSON 文件,路径因操作系统而异,以该应用当前文档为准)。
  2. 在 mcpServers 对象下新增一个条目,键名自定,值里写启动命令与参数。
  3. 保存文件,完全退出应用后重新启动。
  4. 在应用里确认服务器已连接、工具列表已加载。

配置结构大致如下,具体字段名与启动命令请对照所用服务器与主机的当前文档:

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/path/to/allowed/directory"
      ]
    }
  }
}

要点有三个:command 是可执行程序,args 是参数数组,最后一个参数通常是允许访问的目录。只把确实需要操作的目录写进去,不要图省事写根目录或用户主目录。

第四步:在命令行工具中接入远程服务器

命令行类主机用一条命令完成添加,不需要手改 JSON。以接入 Sentry 为例:

claude mcp add --transport http sentry

执行后按提示在浏览器中完成登录授权。命令里的 --transport http 指明这是远程 HTTP 服务器;接入本地服务器时改用标准输入输出方式,具体参数以该工具当前文档为准。添加完成后可以列出已配置的服务器,确认条目存在且状态正常。

第五步:用自然语言发起请求

服务器接好之后,使用方式就是正常对话,不需要记 API 名称。模型会自己判断该调用哪个工具。涉及写操作时,应用通常会在执行前弹出确认,展示即将执行的动作,由用户决定是否放行。这一步不要习惯性点「允许」——确认框是最后一道人工闸门。

一个完整示例

下面走一遍从零到可用的最小流程:把本机一个工作目录接到桌面 AI 应用,让它完成一次文件整理。

第 1 步:建一个测试目录。在用户主目录下新建 mcp-demo,往里放几张图片,再建一个空子目录备用。测试阶段不要拿真实工作目录练手。

第 2 步:写配置。在应用的 MCP 配置里加入文件系统服务器,参数只指向 mcp-demo:

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/Users/yourname/mcp-demo"
      ]
    }
  }
}

第 3 步:重启并验证。完全退出应用再打开,确认服务器处于已连接状态,工具列表里能看到列目录、读文件、写文件、创建目录、移动文件等条目。

第 4 步:发一条整理指令。例如:「在 mcp-demo 里新建一个 images 文件夹,把目录下所有图片移进去。」模型会先列出目录内容,再调用创建目录与移动文件的工具。执行前应用会弹出确认,核对路径无误后放行。

第 5 步:检查结果。回到文件管理器确认 images 目录已创建、图片已移入、原目录没有残留副本。

第 6 步:换一条只读指令。例如:「看看 mcp-demo 里有没有和工作相关的文档,列出来。」这条请求只会触发读取类工具,不会改动文件,适合用来验证权限边界是否符合预期。

同一套配置可以继续支撑其他请求,例如「写一首短诗,保存成桌面上的文本文件」。区别只在于模型选择了哪些工具、按什么顺序调用,配置本身不用改。

跨系统协作的示例

把多个服务器同时接上,就能让一次对话横跨多个系统。以下请求都建立在「相应服务器已提前接好」的前提上:

  • 「把 JIRA 上 ENG-4521 这个需求实现掉,并在 GitHub 上开一个 PR。」——需要 JIRA 与 GitHub 两个服务器。
  • 「用 Sentry 和 Statsig 查一下 ENG-4521 这个功能的使用情况。」——需要监控与实验平台服务器。
  • 「从 PostgreSQL 里随机抽 10 个用过这个功能的用户,查出他们的邮箱。」——需要数据库服务器。
  • 「给这 10 个人写一封反馈会邀请邮件,存成 Gmail 草稿。」——需要邮件服务器。

准备工作只在最初做一次:用到哪个服务,就添加对应的服务器。之后所有请求都用自然语言表达,由模型决定调用顺序。注意这类跨系统操作会同时触及多个真实系统,建议先在测试环境或只读权限下验证链路,再放开写权限。

注意事项

权限要给到最小

本地文件系统服务器只应指向必要的目录。把整个主目录或磁盘根目录开放出去,等于让模型拥有读取任意文件的能力,一旦模型误判或提示词被污染,影响范围不可控。远程服务器的授权同理,能用只读令牌就不要用读写令牌。

写操作必须人工确认

工具调用是模型自主发起的,删除、覆盖、提交、发送邮件这类动作一旦执行就难以回滚。应用提供的执行前确认是重要的安全机制,不要为了省事关闭它,也不要在没看清参数的情况下连续放行。

配置改动后要彻底重启

桌面应用修改 MCP 配置后,仅关闭窗口通常不会重新加载配置。需要完全退出进程再启动,否则会出现「配置明明写了却看不到服务器」的情况。这是最常见的排查点之一。

服务器来源要可信

MCP 服务器本质上是在本机或网络中运行的代码,拥有被授予的权限。只接入来源可信、代码可审查的服务器;来源不明的服务器可能读取敏感数据或执行非预期操作。接入第三方服务器前,先弄清它会访问哪些资源、以什么身份访问。

提示词与资源也可能带来风险

不只是工具调用有风险。服务器返回的资源内容、提示词模板都会进入模型上下文,如果这些内容来自不可控的外部系统(例如抓取的网页、用户提交的工单),其中可能夹带诱导性指令。对来自外部的文本保持警惕,不要让模型在无确认的情况下依据这类内容执行写操作。

不同主机的支持范围不一致

各 AI 应用对 MCP 的支持程度、支持的传输方式、可配置的字段都不一样,同一个服务器在 A 应用里能用、在 B 应用里未必能接。遇到连接失败,先确认该主机当前支持哪种传输方式,再检查服务器端是否按对应方式启动。

易变信息以官网为准

MCP 规范版本、各主机的功能支持、可用服务器清单、远程服务的授权方式与计费规则都在持续变化。本文给出的命令与配置结构用于说明思路,实际使用时请以相关产品官网的当前信息为准,尤其是涉及配额、价格与地区可用性的部分。