如何在 Claude Desktop 上构建 MCP 服务器 — 实用指南

CometAPI
AnnaNov 16, 2025
如何在 Claude Desktop 上构建 MCP 服务器 — 实用指南

自 Anthropic 于 2024 年 11 月 25 日公开推出 Model Context Protocol (MCP) 以来,MCP 已迅速从概念走向实用生态:开放规范与多个参考服务器已可用,社区实现(内存服务器、文件系统访问、网页抓取器)已在 GitHub 和 NPM 上发布,且 MCP 已被 Claude for Desktop 与第三方工具等客户端支持。该协议不断演进(规范与服务器示例在 2025 年持续更新),厂商与工程师也在发布更安全、令牌高效的集成模式。

本文将手把手带你构建一个 MCP 服务器、将其连接到 Claude Desktop,以及你在生产环境中需要的实践 / 安全 / 内存技巧。

什么是 Model Context Protocol (MCP)?

通俗定义

Model Context Protocol (MCP) 是一种开放、标准化的协议,让运行模型的宿主(例如 Claude Desktop 等应用)能够方便地调用暴露出“资源”(文件、数据库行)、“工具”(模型可调用的函数)与“提示词”(模型可用的模板)的外部服务。MCP 不再需要为每个模型与每个工具分别实现 N×M 的集成,而是提供一致的客户端–服务器模式与运行时约定,使任何支持 MCP 的模型宿主都可以使用任何符合 MCP 的服务器——开发者只需构建一次服务,任何支持 MCP 的模型或 UI(如 Claude Desktop)都能使用。

MCP 现在为何重要

自 Anthropic 在 2024 年底开源 MCP 以来,该协议迅速成为工具集成的事实互操作层(Claude、VS Code 扩展与其他代理环境)。MCP 降低重复工作、加速连接器(Google Drive、GitHub、Slack 等)的开发,并使为助手附加持久化内存存储更加容易。

MCP 的架构是什么、如何工作?

在高层,MCP 定义了三个角色组与若干交互模式。

核心组件:客户端、服务器与注册表

  • MCP 客户端(宿主): 希望获取上下文数据的 LLM 宿主或应用——Claude Desktop、VS Code 代理或网页应用。客户端会发现并连接一个或多个 MCP 服务器。
  • MCP 服务器(资源提供者): 一个网络服务,通过 MCP 模式暴露资源(文件、记忆、数据库、操作)。服务器声明其能力,并提供客户端可调用的端点。
  • 注册表 / 发现: 可选的组件或配置文件,帮助客户端发现可用的 MCP 服务器、列出能力并管理权限或安装(桌面“扩展”是其中一种用户体验层)。

消息流与能力协商

MCP 交互通常遵循以下模式:

  1. 发现 / 注册: 客户端了解可用的服务器(本地、网络或经策展的注册表)。
  2. 能力宣告: 服务器共享一个清单,描述资源、方法与授权要求。
  3. 请求 / 响应: 客户端发出结构化请求(例如“读取文件 X”、“搜索关于 Y 的记忆”或“用这些文件创建 PR”),服务器以类型化的上下文数据响应。
  4. 操作结果与流式传输: 服务器可流式返回结果或提供长时运行操作端点。规范定义了类型化的资源描述符与响应的模式。

安全模型与信任边界

MCP 有意标准化控制面,让 LLM 能在用户数据上行动并执行操作。这种能力需要谨慎的安全控制:

  • 当服务器可访问私有数据或执行特权操作(例如写入代码仓库)时,建议使用明确的用户同意 / 提示
  • 最小权限清单: 服务器应声明最低范围,客户端应仅请求必要能力。
  • 传输与认证: 对敏感集成使用 TLS、令牌化凭据与仅本地端点。社区与平台厂商(例如 Microsoft 在 Windows)正在试验注册表与 UI 机制以降低风险。

为何将 Claude 与 MCP 服务器集成?

将 Claude 与 MCP 服务器集成可解锁三类实用能力:

实时、可执行的上下文

不必再将过期快照复制进提示词;Claude 可在查询时请求最新上下文(文件、会话历史、数据库行)。这意味着更少的模糊检索与更新鲜的输出。Anthropic 的演示展示了 Claude 如何通过 MCP 创建 GitHub PR 或读取本地文件。

小而可组合的工具,而非一个巨型适配器

你可以编写聚焦的 MCP 服务器——一个用于日历、一个用于文件系统、一个用于向量内存存储——并在不同的 Claude 实例或客户端(桌面、IDE、网页)间复用。这种模块化比定制集成更易扩展。

持久且标准化的记忆

MCP 支持记忆服务:持久化存储,用于编码会话历史、个人偏好与结构化用户状态。因为 MCP 标准化了资源模型,多个客户端可以复用同一个记忆服务器,并在应用间保持一致的用户上下文。社区已有若干记忆服务与扩展模式。

更好的用户体验与本地控制(Claude Desktop)

在桌面客户端上,MCP 支持具有直接本地文件系统访问(经用户同意)的本地服务器,使隐私敏感的集成无需云端 API 即可实现。Anthropic 的 Desktop Extensions 是在本机上简化 MCP 服务器安装与发现的一种示例。

如何创建一个 MCP 服务器

开始前需要准备

  1. Claude Desktop:为你的操作系统安装最新的 Claude Desktop 版本,并在设置中确保启用 MCP/Extensions 支持。部分功能可能需要付费计划(Claude Pro 或同等)。
  2. 开发机:Node.js(建议 >=16/18)或 Python 3.10+,若要将本地服务器暴露到互联网以便测试,准备 ngrok 或本地隧道方案。生产环境使用 TLS。
  3. MCP 项目在主文档与 GitHub 仓库提供了 SDK 与模板;按官方说明安装 Python 或 Node SDK。

选项 A — 安装现有(示例)MCP 服务器

Anthropic 提供示例服务器,包括记忆、文件系统与工具。

克隆参考服务器:

git clone https://github.com/modelcontextprotocol/servers.git
cd servers

其中可见如下目录:

filesystem/
fetch/
memory/
weather/

安装示例服务器:

cd memory
npm install
npm run dev

这会启动 MCP 服务器,通常位于:

http://localhost:3000

确认清单端点可用,并且调用某个工具能返回类型正确的 JSON。

选项 B — 创建你自己的 MCP 服务器(学习推荐)

1) 创建项目文件夹

mkdir my-mcp-server
cd my-mcp-server
npm init -y

2) 安装 MCP 服务器 SDK

npm install @modelcontextprotocol/server

3) 创建一个基础服务器文件

创建 server.js

touch server.js

粘贴最小 MCP 服务器实现:

import { createServer } from "@modelcontextprotocol/server";

const server = createServer({
  name: "my-custom-server",
  version: "0.1.0",

  tools: [
    {
      name: "hello_world",
      description: "Returns a simple greeting",
      input_schema: {
        type: "object",
        properties: {
          name: { type: "string" }
        },
        required: 
      },
      output_schema: {
        type: "object",
        properties: {
          message: { type: "string" }
        }
      },
      handler: async ({ name }) => {
        return { message: `Hello, ${name}!` };
      }
    }
  ]
});

server.listen(3000);
console.log("MCP server running on http://localhost:3000");

这是一个完整的 MCP 服务器,暴露了单个工具:hello_world

如何将 Claude Desktop 连接到 MCP 服务器?

下面是一个将简单 MCP 服务器注册到 Claude Desktop 的实操流程。本节涵盖环境搭建、创建服务器清单、暴露客户端期望的端点,以及配置 Claude Desktop 使用该服务器。

1) 打开 Claude Desktop 的开发者连接区域

在 Claude Desktop:Settings → Developer(或根据构建版本为 Settings → Connectors)。可以添加远程/本地 MCP 服务器或“Add connector”。具体 UI 可能随版本变化——若未看到,请检查桌面应用的 “Developer” 菜单或最新发行说明。

Claude Desktop 中的 MCP 服务器

2) 若配置本地服务器:创建或定位配置文件

启动 Claude 桌面应用后,它会自动在名为 ClaudeDesktopConfig.json 的文件中配置发现到的所有 MCP 服务器。第一步是定位并打开此文件,若不存在则创建:

Windows 用户:文件位于 “%APPDATA%\Claude\claude_desktop_config.json”。

Mac 用户:文件位于 “~/Library/Application Support/Claude/claude_desktop_config.json”。

3) 将服务器添加到 Claude Desktop

让 Claude Desktop 识别 MCP 服务器有两种用户体验路径:

Desktop Extensions / 一键安装器:Anthropic 提供了“Desktop Extensions”的文档,可打包清单与安装器,让用户通过一键流程添加服务器(用于广泛分发时推荐)。你可以打包清单与服务器元数据,便于安装。

本地服务器注册(开发者模式):用于本地测试:

  • 将清单放置于本地约定路径,或在 https://localhost:PORT/.well-known/mcp-manifest.json 提供。
  • 在 Claude Desktop 设置中打开 MCP/Extensions 面板,选择 “Add local server” 或 “Add server by URL”,并粘贴清单 URL 或令牌。
  • 当客户端提示时授予所需权限。Claude 将枚举服务器资源,并将其作为可用工具/记忆呈现。

现在选择安装本地 MCP:添加一个 mcpServers 部分,列出你的服务器名称与用于启动它的绝对路径/命令。保存并重启 Claude Desktop。

重启后,Claude 的 UI 会呈现 MCP 工具(Search & Tools 图标),并允许你测试所暴露的操作(例如,“What’s the weather in Sacramento?”)。若宿主未检测到你的服务器,请查看 mcp.log 文件与 mcp-server-<name>.log 的 STDERR 输出。

4) 测试集成

在 Claude 对话中输入:

Call the hello_world tool with name="Alice"

Claude 会调用你的 MCP 服务器,并用工具输出进行响应。

如何通过 MCP 实现一个记忆服务(进阶技巧)?

记忆服务是最强大的 MCP 服务器之一,因为它能在会话间持久化并呈现用户上下文。以下最佳实践与实现建议源自规范、Claude 文档与社区模式。

记忆数据模型与设计

  • 结构化 vs 非结构化: 同时存储结构化事实(例如姓名、偏好标记)与非结构化会话片段。使用类型化元数据用于快速过滤。
  • 分块与向量嵌入: 将长文档或对话拆分为语义连贯的片段,并存储向量嵌入以支持相似度搜索。这能提升召回率并在检索时减少令牌使用。
  • 新近性与显著性信号: 记录时间戳与显著性分数;允许偏好更近期或高显著性的记忆项的查询。
  • 隐私标签: 用敏感性标签(私有、共享、临时)标注条目,便于客户端提示用户同意。

记忆操作的 API 模式

至少实现三类操作:

  • write:接受带元数据的记忆项,返回确认与存储 ID。
  • query:接受自然语言查询或结构化过滤器,返回 top-k 匹配的记忆(可选包含可解释性元数据)。
  • delete/update:支持生命周期操作与用户的明确遗忘请求。

设计响应时包含溯源信息(记忆来源)与置信度/相似度分数,便于客户端与模型决定使用记忆的力度。

面向 Claude 的检索增强策略

  • 短上下文窗口: 返回简洁的记忆片段而非全文;必要时让 Claude 再请求完整上下文。
  • 摘要层: 可为每条记忆存储短摘要以减少令牌。在写入时进行增量摘要。
  • 受控注入: 将记忆作为可附加的“上下文包”提供,客户端可选择性注入提示,而非一次性灌入所有内容。

记忆 MCP 的安全与治理

  • 同意与审计轨迹: 记录记忆创建时间以及用户是否同意与模型共享。为 Claude Desktop 呈现清晰的 UI,便于查看与撤销记忆。
  • 速率限制与验证: 防御提示注入或数据外泄,对类型进行验证,并禁止来自服务器的意外代码执行请求。
  • 静态与传输加密: 为存储项使用强加密,并对所有 MCP 端点使用 TLS。若使用云后端存储,尽可能采用包封加密或客户自管密钥。

结论:如何在 Claude Desktop 中构建 MCP 服务器

这份指南是从零到在你的笔记本上跑通 Claude + 记忆服务器的精要配方:

  • 测试一个工作流: 让 Claude “记住”一个简短事实并验证服务器已存储;随后在后续提示中让 Claude 回忆该事实。观察日志并调优检索排序。
  • 安装先决条件: Node.js >= 18、Git、最新 Claude Desktop。
  • 克隆参考服务器: fork modelcontextprotocol/servers 示例或 GitHub 上的社区记忆服务器。
  • 安装并运行: npm installnpm run dev(或遵循仓库 README)。确认清单端点(例如 http://localhost:3000/manifest)返回 JSON。()
  • 在 Claude Desktop 中注册连接器: Settings → Developer / Connectors → Add connector → 指向 http://localhost:3000 并批准范围。

将 Claude(或任意宿主)与 MCP 服务器集成,让你构建一次连接器即可在各 MCP 客户端间可用——Claude Desktop、IDE 或其他代理框架——显著降低维护成本并加速跨工具的功能对齐。

开发者可通过 CometAPI 访问截至本文发布日期的 claude AI 最新 API,如 Claude Sonnet 4.5 APIClaude Opus 4.1 API最新版模型 会与官方网站保持同步更新。开始之前,请先登录 CometAPI 并获取 API key。CometAPI 提供远低于官方价格的方案,帮助你进行集成。

准备就绪?→ Sign up for CometAPI today

如果你想了解更多 AI 技巧、指南与资讯,请关注我们的 VKXDiscord

阅读更多

一个 API 中超 500 个模型

最高 20% 折扣