跳到主要内容

用 MCP 把 Claude 连接到本地工具与智能体

进阶

你希望 Claude 做大脑、你的机器提供双手——读取你的文件、查询你的数据库、运行你的脚本,甚至调用一个本地模型或一个本地智能体,而这一切都不让你的数据离开这台笔记本。这种协同其实早已有了标准:Model Context Protocol(MCP)。一句话概括:MCP 是一个开放标准,让 AI 客户端通过被称为 MCP 服务器 的小程序去调用外部工具和数据——而这些服务器可以私密地、在本地、在你自己的机器上运行。本页展示 MCP 是什么、本地架构如何拼合、如何把一个本地服务器添加到 Claude,以及如何自建一个小小的服务器。

What you'll learn
  • 用一句话解释 MCP——一个开放标准,让 AI 客户端能通过 MCP 服务器调用外部工具和数据
  • 看清本地架构:一个 MCP 客户端(Claude Code / Claude Desktop)通过 stdio 与一个本地 MCP 服务器对话
  • 理解为什么这正是你想要的「Claude 作大脑 + 本地提供能力」的协同
  • 用一条命令把一个本地 MCP 服务器添加到 Claude
  • 自建一个暴露单个工具的小小 MCP 服务器
  • 认清信任边界——MCP 服务器以「你的」权限行事,所以只安装你信任的东西

MCP 是什么(一句话)

MCP 是一个把 AI 应用连接到外部系统的开放标准。 一个 AI 客户端(比如 Claude)说一种协议;任何会说这种协议的 MCP 服务器 都能插进来,给客户端提供新能力。官方的类比是 AI 的 USB-C 接口:你不必为每个工具做定制集成,只需对准一个连接器构建,它就能到处工作。

Anthropic 提出并开源了 MCP,而且从第一天起它就带着本地 MCP 服务器支持发布,好让 Claude 能连接到运行在你自己机器上的内部系统和数据集。

一个 MCP 服务器可以向客户端暴露三类东西:

  • 工具(Tools)——模型可以调用的动作(读取文件、运行查询、访问 API)。它和模型原生的 工具使用 是同一种形态:一个带类型化输入的具名能力。
  • 资源(Resources)——客户端可以读取的数据(文件、记录、文档)。
  • 提示(Prompts)——服务器提供的可复用、可参数化的提示模板。

在本页中,主角是 工具:一个本地 MCP 服务器就是你把一个全新的、私密的能力交到 Claude 手上的方式。

为什么这正是你想要的协同

人们说的「Claude 作大脑、我的电脑作身体」,恰恰就是 MCP 的客户端/服务器分工:

  • Claude 是编排者。 它读懂你的目标,决定该调用哪个工具,调用它,读取结果,再决定下一步。
  • 本地 MCP 服务器是能力。 每一个都是你自己机器上运行的小程序:一个文件系统服务器、一个数据库服务器、一个对本地脚本的包装,甚至一个调用 本地模型 或把工作交给本地智能体的服务器。

因为服务器在本地运行,而 Claude 通过你自己机器的标准输入/输出与它对话,你的数据和动作都留在你的硬件上——模型负责编排,但文件读取、SQL、脚本执行都在本地发生。这就是保护隐私版本的智能体式工作:大脑在云端(或也在本地),双手严格待在你的机器上。

而且因为 MCP 是一个被众多客户端采用的开放标准,你构建的服务器不会被锁死在某一个应用里。你接进 Claude Code 的那个本地服务器,也能被其他会说 MCP 的客户端使用——构建一次,处处复用。

本地架构

最小的有用图景有两个部分和一条通道:

  • MCP 客户端(宿主)。 AI 应用——例如 Claude Code 或 Claude Desktop。它持有模型,并决定要调用哪些工具。
  • MCP 服务器。 一个独立进程,它宣告工具/资源/提示,并在被请求时执行它们。
  • 传输(Transport)。 对于本地服务器,客户端把服务器作为子进程启动,二者通过 stdio(标准输入/输出)用 JSON-RPC 消息对话。没有网络、没有端口——只是你机器上两个进程之间的一条本地管道。(也存在远程服务器,走 HTTP;本页讲的是本地、stdio 的情形。)
┌─────────────────────────┐ stdio (JSON-RPC) ┌──────────────────────────┐
│ MCP CLIENT / HOST │ ──── launches as subprocess ──▶ │ LOCAL MCP SERVER │
│ Claude Code / Desktop │ ◀── tools/resources/prompts ─── │ filesystem · db · script │
│ (the model = the brain) │ │ · local model / agent │
└─────────────────────────┘ └──────────────────────────┘
runs on YOUR machine, YOUR data

模型从不直接碰你的磁盘——它请求本地服务器,而服务器(以你的权限运行)完成工作并返回一个结果。

把一个本地 MCP 服务器添加到 Claude

最快的路径是 Claude Code 的 claude mcp add 命令,它注册一个客户端将通过 stdio 启动的服务器。总体形态是一个名字,后面跟启动服务器的命令。

Guided walkthrough1 of 4
  1. 从官方参考服务器开始(例如文件系统服务器),这样行为是已知的。Anthropic 维护着一套可在本地运行的参考 MCP 服务器——filesystem、git、memory、fetch 等等。

一个针对本地文件系统服务器的最小 claude mcp add(-- 之后的一切都是启动命令):

把一个本地文件系统 MCP 服务器添加到 Claude Code

claude mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem /path/to/allowed/dir

如果你更喜欢直接编辑配置,一个 stdio 服务器是由启动它的命令声明的。形态如下:

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

自建一个小小的 MCP 服务器

一个服务器不过是一个程序:它使用一个 MCP SDK、声明一个工具、启动一个 stdio 传输。这是整个思路的 TypeScript 版——一个把两个数字相加的工具(把工具体换成「运行我的脚本」「查询我的数据库」「调用我的本地模型」):

npm install @modelcontextprotocol/sdk zod
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";

const server = new McpServer({ name: "my-local-tools", version: "0.1.0" });

// Declare ONE tool. Inputs are typed; the body runs locally with your privileges.
server.registerTool(
"add",
{
description: "Add two numbers",
inputSchema: { a: z.number(), b: z.number() },
},
async ({ a, b }) => ({
content: [{ type: "text", text: String(a + b) }],
}),
);

// Talk to the client over stdio — this is what makes it a LOCAL server.
await server.connect(new StdioServerTransport());

把它注册到 Claude,和任何其他 stdio 服务器完全一样——让启动命令指向你的文件:

把你自己的本地服务器添加到 Claude Code

claude mcp add my-local-tools -- node /abs/path/to/server.js

这就是完整的闭环:Claude(大脑)看到一个新工具,在相关时调用它,而你的代码(双手)在本地运行并返回结果。因为它说的是同一个开放协议,这个服务器无需改动也能在其他 MCP 客户端里工作。

Watch out
  • MCP 服务器以你的权限运行,并且能采取真实的动作——只安装你信任的服务器,并当心通过工具结果传来的提示注入(prompt-injection)。

自测一下

自测一下

0/4
  1. 用一句话说,MCP 是什么?
  2. 对于一个「本地」MCP 服务器,客户端通常如何与它对话?
  3. 为什么自建一个 MCP 服务器能跨工具带来回报?
  4. 在安装一个服务器之前审查它的主要原因是什么?
按 Enter 或空格键翻转卡片。使用左右方向键在卡片之间切换。已显示术语。
1 / 8
Key takeaways
  • MCP 是一个开放标准,让 AI 客户端能通过 MCP 服务器调用外部工具和数据——Anthropic 从一开始就带着本地服务器支持提出了它。
  • 本地架构很简单:一个 MCP 客户端(Claude Code / Desktop)把一个本地 MCP 服务器作为子进程启动,并通过 stdio 与之对话——你的数据留在你的机器上。
  • 这就是「Claude 作大脑 + 本地提供能力」的协同:Claude 负责编排;本地服务器(文件系统、数据库、一个脚本,甚至一个本地模型或智能体)提供双手。
  • 用一条命令添加一个服务器(claude mcp add ... -- <启动命令>);用一个 MCP SDK 通过注册一个工具并连接一个 stdio 传输来自建一个。
  • MCP 被广泛采用,所以你构建的一个本地服务器能跨众多客户端工作——构建一次,处处复用。
  • 服务器以你的权限行事:只安装你信任的,并把工具结果当作一个可能的提示注入向量。

下一步

来源与延伸阅读