跳到正文
sobolewski.pro今日 AI,每晚送达订阅

每天一封,一键即可退订。 隐私政策

MCP是什么?原理讲解,一步步接入第一个服务器

MCP是什么?我讲解主机、服务器和工具的原理,再把MCP服务器接入Claude Code和Claude应用,一步步上手。

2 分钟阅读

本文的其他语言版本:العربيةDeutschEnglishEspañolFrançaisItaliano日本語Polski

本文内容
  1. MCP是什么,实际能做什么?
  2. MCP 从哪里来?
  3. MCP 内部是怎么运作的?
  4. 第 1 步:怎样把远程 MCP 服务器接入 Claude Code?
  5. 第 2 步:怎样运行本地 MCP 服务器?
  6. 第 3 步:怎样管理 MCP 服务器?
  7. 第 4 步:怎样在 Claude 应用里添加 MCP 服务器?
  8. 需要注意什么?
  9. FAQ

MCP是什么?MCP(Model Context Protocol,模型上下文协议)是一个开放标准,让 Claude、ChatGPT、Cursor 这类 AI 应用能连接外部系统:文件、数据库、日历、Notion 或 GitHub。它的创建者在官方文档里把它比作 USB-C 接口:一个插头,适配很多设备。

在这篇教程里,我先讲 MCP 内部是怎么运作的,然后我们在 Claude Code(远程和本地)以及 Claude 应用里接入第一个 MCP 服务器。命令来自 Claude Code 文档和 MCP 参考服务器仓库。

MCP是什么,实际能做什么?

语言模型自己看不到我们的文件,也看不到我们的日历。AI 智能体要想在现实世界里做点事,就需要工具(智能体本身是什么,我在什么是AI智能体里写过)。没有共同标准的话,每个应用都得用自己的方式去接每一个工具。

MCP 改变了这一点:有人为某个服务写一次 MCP 服务器,之后任何支持该协议的应用都能用它。文档举了几个例子,说明这能带来什么:

  1. 一个能访问我们 Google 日历和 Notion 的智能体,
  2. 根据 Figma 设计稿搭出整个 Web 应用的 Claude Code,
  3. 一个同时连着多个数据库的企业聊天机器人,
  4. 一个在 Blender 里设计 3D 模型并把它发送到打印机的模型。

MCP 从哪里来?

2024 年 11 月 25 日,Anthropic 把 MCP 作为开源项目发布。一年后,2025 年 12 月 9 日,公司把协议捐给了 Agentic AI Foundation,这是一个在 Linux Foundation 框架下运作的基金,OpenAI 和 Block 也是共同发起方。这样一来,MCP 就不再属于某一家公司。

如今支持这个协议的有 Claude、ChatGPT、Visual Studio Code、Cursor 等,所以一个服务器写一次,就能在很多地方用。

MCP 内部是怎么运作的?

根据架构说明,MCP 里有三个角色:

  1. 主机(Host),也就是我们使用的 AI 应用(比如 Claude Code 或 Claude Desktop),
  2. 客户端(Client),主机内部的一个组件。主机会为每个服务器单独创建一个客户端,
  3. 服务器(Server),提供数据和工具的程序。

服务器可以在本地运行(在我们自己的电脑上,通过标准输入输出通信,也就是所谓的“stdio”),也可以远程运行(在互联网上,通过所谓的“Streamable HTTP”)。消息格式是 JSON-RPC 2.0。

服务器对外提供三类东西:

  1. 工具(tools),模型可以调用的函数,比如查询数据库或保存文件,
  2. 资源(resources),放进上下文的数据,比如文件内容或数据库结构,
  3. 提示词(prompts),与模型交互的现成模板。

流程很简单:客户端向服务器要工具列表(tools/list),模型从中选一个,客户端调用它(tools/call),再把结果交回给模型。有意思的是,在当前版本的规范(2026-07-28)里,协议是无状态的,也就是说每个请求都带着服务器处理它所需的全部信息。

第 1 步:怎样把远程 MCP 服务器接入 Claude Code?

我假设你已经装好了 Claude Code(如果还没有,先看 Claude Code 教程)。按照文档的说法,远程 HTTP 服务器是推荐的选项。基本语法如下:

claude mcp add --transport http <name> <url>

文档里的例子,接入 Notion:

claude mcp add --transport http notion https://mcp.notion.com/mcp

大多数远程服务器需要登录。这时在 Claude Code 会话里输入 /mcp,然后在浏览器里完成登录。同一个命令还会显示所有已接入服务器的状态。

如果服务器用的是令牌而不是登录,就加一个请求头:

claude mcp add --transport http secure-api https://api.example.com/mcp \
  --header "Authorization: Bearer your-token"

第 2 步:怎样运行本地 MCP 服务器?

本地服务器在我们的电脑上作为普通进程运行。一个很好的入门例子是参考实现里的文件服务器,它只让模型访问指定的目录。我们需要 Node.js(为了用 npx)。

服务器的命令写在 -- 之后,这个符号后面的所有内容都会原样传给服务器:

claude mcp add --transport stdio filesystem -- npx -y @modelcontextprotocol/server-filesystem ~/notatki

最后一个参数是服务器可以访问的目录(可以写多个)。这个服务器提供 read_text_file、write_file、edit_file、list_directory 和 search_files 等工具。现在就可以在 Claude Code 里提要求了,比如“在笔记里找出所有和 MCP 有关的内容,整理成一个列表”。

如果服务器需要 API 密钥,就用 --env 传进去。文档里的例子:

claude mcp add --env AIRTABLE_API_KEY=YOUR_KEY --transport stdio airtable \
  -- npx -y airtable-mcp-server

第 3 步:怎样管理 MCP 服务器?

管理只需要三个简单的命令:

claude mcp list          # 服务器列表
claude mcp get notion    # 单个服务器的详情
claude mcp remove notion # 删除服务器

还有一点很重要,就是作用域(scope),也就是服务器配置保存在哪里:

作用域 在哪里生效 会不会共享给团队 保存在哪里
local(默认) 仅当前项目 否 ~/.claude.json
project 仅当前项目 是,通过仓库 项目目录下的 .mcp.json
user 我们所有的项目 否 ~/.claude.json

作用域用 --scope 参数来选,比如 --scope user。用 project 作用域时,把 API 密钥放在环境变量里(.mcp.json 文件中的 ${VAR}),免得它们进了仓库。

第 4 步:怎样在 Claude 应用里添加 MCP 服务器?

在 Claude 应用(网页版和桌面版)里,MCP 服务器叫作连接器。现成的可以在连接器目录里找到,自己的远程服务器则作为所谓的“custom connector”添加。根据 Claude 帮助中心:

  1. 进入 Customize > Connectors,
  2. 点击 “+ Add”,再点 “Add custom connector”,
  3. 填写远程 MCP 服务器的名称和 URL,
  4. 检查登录设置,点击 “Add”。

所有套餐都能用连接器,但免费套餐只能添加一个自定义连接器。注意:Claude 是从 Anthropic 的云端连接服务器的,所以服务器必须能从互联网访问。连接器之后也会被 Claude 的其他功能用到,比如 Claude Duet 智能体。

需要注意什么?

第一,信任谁。MCP 服务器给了模型真正动手的能力,Claude Code 文档明确警告:从外部抓取内容的服务器会让我们暴露在提示词注入(prompt injection)的风险之下。帮助中心还补充说,恶意服务器可能包含试图诱导 Claude 执行非预期操作的隐藏指令。只接入你信任的公司和作者的服务器。

第二,权限。“Allow always”只留给那些你足够信任、可以放手让它们无人监督运行的工具。好消息是:克隆下来的仓库没法自己批准 .mcp.json 里的服务器,Claude Code 会先征求你的同意。

第三,访问范围。给文件服务器的只是一个具体目录,而不是整块硬盘。关于怎样保护密钥和智能体,我在 AI 智能体安全里写得更详细。

FAQ

用简单的话说,MCP是什么?

它是一个共同标准,AI 应用通过它连接工具和数据。一个 MCP 服务器写一次就能在很多应用里运行,就像一个 USB-C 设备能插在很多电脑上用一样。

MCP 只能和 Claude 一起用吗?

不是。协议是 Anthropic 创建的,但现在由 Linux Foundation 框架下的 Agentic AI Foundation 负责发展,ChatGPT、Visual Studio Code、Cursor 等都支持它。

本地 MCP 服务器和远程 MCP 服务器有什么区别?

本地服务器在我们的电脑上运行,通过 stdio 通信,通常只服务一个应用。远程服务器在互联网上运行(Streamable HTTP),通常同时服务多个客户端,登录方面规范推荐使用 OAuth。

MCP 免费吗?

协议本身是开放且免费的。我们要付费的是自己使用的 AI 应用,可能还有服务器所连接的那个服务。

  • AI
  • AI 智能体
  • Claude Code
  • 教程

今日 AI,每晚送达

每晚送上当天最重要的 AI 新闻和博客新文章。简明扼要,附有来源。

每天一封,一键即可退订。 隐私政策

1 分钟阅读

AI智能体安全:API密钥、沙箱与消费限额

AI智能体安全实战:如何保护API密钥,在Claude Code中设置权限和沙箱,配置消费限额并扫描密钥泄露。分步讲解。

  • AI
  • AI 智能体
  • Claude Code
  • API
  • 教程