Skip to content

开始使用 MCP

无论您是想构建一个能为大型语言模型(LLM)提供上下文信息的应用程序(作为服务器开发者),将 LLM 上下文集成到您现有应用程序中(作为客户端开发者),还是仅仅使用一个支持 MCP 的应用程序,本指南都将为您提供一个起点。

作为服务器开发者,您的目标是通过模型上下文协议(Model Context Protocol,MCP)从您的应用程序、数据源或服务中暴露上下文信息和功能。

  • 理解核心概念:熟悉 MCP 的资源(Resources)、提示(Prompts)和工具(Tools)。决定您的服务可以向 LLM 提供哪些数据(Resources)、预定义交互(Prompts)和操作(Tools)。
  • 选择一个 SDK:选择一个您偏好的语言(例如 TypeScript、Python)的 MCP 服务器 SDK。这些 SDK 提供了实现 MCP 协议、处理请求和管理连接所需的工具。
  • 定义您的能力:设计并实现您的服务器将如何暴露其资源、提示和工具。这涉及将您的内部数据和函数映射到 MCP 的抽象层。
    • 资源 (Resources):实现逻辑来列出并提供资源内容(例如,暴露工作区中的文件、数据库中的行)。
    • 提示 (Prompts):创建与您服务器领域相关的提示模板或动态提示生成器。
    • 工具 (Tools):实现可供 LLM 调用的函数,确保它们安全且定义良好。
  • 实现服务器:使用所选的 SDK 编写服务器逻辑。这包括设置服务器端点(例如 WebSocket 服务器)、处理传入的 JSON-RPC 消息,并将它们路由到您的能力实现中。
  • 测试您的服务器:使用 MCP 客户端或专用测试工具(如果可用,例如 MCP Inspector)连接到您的服务器,发现其能力并测试其响应。
  • 文档化和发布:为您的服务器能力提供清晰的文档,以便客户端开发者和用户理解如何使用它。

设想将您项目的文件系统暴露为资源,或者暴露您应用程序的内部状态。工具可以包括运行构建命令或从专门的 API 获取数据。

作为客户端开发者,您将构建应用程序(宿主,Hosts)或插件,这些应用程序或插件会从 MCP 服务器消费信息和能力,以增强 LLM 交互。

  • 理解客户端职责:您的客户端需要发现 MCP 服务器,连接到它们,请求资源、提示和工具,并处理响应。
  • 选择一个 SDK:选择一个适合您应用程序语言的 MCP 客户端 SDK(例如 TypeScript、Python)。
  • 服务器发现与连接:实现发现和连接 MCP 服务器的逻辑。这可能涉及预配置的服务器地址或动态发现机制。
  • 与服务器交互:使用 SDK 来:
    • 列出并检索**资源(Resources)**以向 LLM 提供上下文。
    • 实现**采样(Sampling)**策略来选择资源的相关部分。
    • 发现并利用服务器定义的**提示(Prompts)**来指导 LLM 交互。
    • 允许 LLM 请求执行**工具(Tools)**并处理其结果。
  • 与 LLM 集成:将通过 MCP 获取的上下文传递给您的 LLM。解释 LLM 请求,这些请求可能转换为 MCP 工具调用或资源查询。
  • 管理状态和用户界面:如果您的客户端是面向用户应用程序的一部分,请管理上下文信息的显示,并提供用于与 MCP 功能交互的 UI 元素。
  • 错误处理与弹性:为网络问题、服务器错误或意外响应实现健壮的错误处理。

您的 IDE 插件可以作为一个 MCP 客户端,从本地 MCP 服务器获取有关当前打开项目的上下文信息,并将其提供给 AI 编码助手。

如果您正在使用像 Claude Desktop 这样内置 MCP 支持的应用程序,通常需要配置它以连接到可用的 MCP 服务器。

  • 检查 MCP 支持:确保您的 Claude Desktop 版本(或类似的宿主应用程序)支持 MCP。请查阅其文档。
  • 发现/添加 MCP 服务器:应用程序可能会自动发现本地 MCP 服务器,或者您可能需要在其设置中手动添加服务器地址。例如,如果您为您的代码库开发了一个本地 MCP 服务器,您需要将 Claude Desktop 指向其地址(例如 ws://localhost:3000)。
  • 启用 MCP 集成:应用程序中可能有一个设置用于启用或禁用 MCP 上下文源。
  • 在提示中利用上下文:连接后,当您与 LLM 交互时,应用程序应该能够利用来自 MCP 服务器的上下文。这可能表现为更相关的答案、更好的建议,或者 LLM 能够“看到”您的本地文件或数据。
  • 探索暴露的能力:宿主应用程序可能会提供一个 UI 来浏览来自已连接 MCP 服务器的可用资源、提示或工具,从而帮助您理解 LLM 可以访问哪些上下文。

具体细节可能因宿主应用程序(如 Claude Desktop)实现 MCP 客户端功能的方式而大相径庭。请务必查阅应用程序的特定文档以获取详细说明。