项目简介

MCP Toolkit for .NET 是一个用于在 .NET 中构建 MCP(Model Context Protocol)服务器和客户端的框架。它旨在提供一个轻量、高性能且易于使用的开发体验,特别支持 .NET 的 NativeAOT 编译,以减小部署体积和提高启动速度。通过利用 Source Generators 技术,该框架能够大幅减少开发者需要手动编写的 boilerplate 代码。

主要功能点

  • MCP 服务器开发: 轻松定义和托管 LLM 应用所需的上下文信息和服务。
    • 工具 (Tools): 注册和管理可由 LLM 调用的外部函数或操作,为 LLM 提供执行特定任务的能力。
    • 资源 (Resources): 托管和提供结构化或非结构化的数据,允许 LLM 访问和理解外部信息。
    • Prompt 模板 (Prompts): 定义可复用的 Prompt 结构和内容,帮助 LLM 进行有针对性的交互。
  • 标准协议支持: 完全基于 MCP 标准的 JSON-RPC 协议实现通信,确保与符合 MCP 规范的客户端互操作。
  • 多种传输方式: 支持标准输入输出 (Stdio) 等传输协议,未来计划支持更多(如 SSE, WebSocket)。
  • 简化的开发体验: 利用 Source Generators 自动生成大量底层协议处理代码,开发者只需关注业务逻辑。
  • 高性能与轻量: 依赖项少,避免不必要的开销,兼容 NativeAOT 编译,适用于对性能和体积有要求的场景。
  • MCP 客户端功能: 除了服务器,也提供用于构建 MCP 客户端的 API,方便与其他 MCP 服务器进行交互。

安装步骤

要在你的 .NET 项目中使用 MCP Toolkit,你需要通过 NuGet 包管理器或 .NET CLI 添加相应的库。

  1. 如果你要开发 MCP 服务器,请安装 'McpToolkit.Server' 包。
  2. 如果你要开发 MCP 客户端,请安装 'McpToolkit.Client' 包。

使用 .NET CLI 安装示例:

# 安装 MCP 服务器包
dotnet add package McpToolkit.Server

# 安装 MCP 客户端包 (如果需要)
dotnet add package McpToolkit.Client

服务器配置 (供 MCP 客户端参考)

一个 MCP 客户端在连接 MCP 服务器时,需要知道如何定位和启动该服务器进程,并与其建立通信。这些配置信息通常由客户端负责管理。以下是 MCP 客户端连接基于 MCP Toolkit 构建的 MCP 服务器时可能需要配置的关键信息:

  • 服务器名称 ('serverName'): 一个标识 MCP 服务器的字符串名称(例如:"我的本地服务")。
  • 启动命令 ('command'): 用于启动 MCP 服务器进程的可执行文件或命令(例如:'"dotnet"')。
  • 命令参数 ('args'): 传递给启动命令的参数列表(一个字符串数组)。这通常包括指向服务器项目文件(如 '.csproj')或已发布的可执行文件的路径,以及任何必要的命令行参数(例如:'["run", "--project", "/path/to/your/ServerProject.csproj"]')。
  • 传输协议 ('transport'): 指明客户端应使用哪种方式与服务器通信,例如 '"stdio"' 表示标准输入输出。

具体的配置格式和加载方式取决于你使用的 MCP 客户端实现。

基本使用方法 (服务器端)

使用 MCP Toolkit 构建 MCP 服务器通常包含以下步骤:

  1. 在你的应用程序中创建一个 MCP 服务器的核心实例。
  2. 通过服务器实例提供的 API,注册你希望暴露给 LLM 客户端的功能:
    • 调用方法添加 工具 (Tools):提供工具名称、描述以及对应的处理函数(可以是 lambda 或特定特性的方法),框架会自动生成必要的协议适配代码。
    • 调用方法添加 资源 (Resources):提供资源的 URI、名称和处理函数,该函数负责在客户端请求时读取资源内容。
    • 调用方法添加 Prompt 模板 (Prompts):提供 Prompt 的名称、描述和处理函数,用于根据需要生成对话消息列表。
  3. 实例化一个实现了 'IMcpTransport' 接口的传输对象,例如 'StdioServerTransport' 用于标准输入输出通信。
  4. 调用服务器实例的 'ConnectAsync' 方法,传入配置好的传输对象,启动服务器的监听和消息处理循环。
  5. 保持服务器进程运行,它将通过选定的传输方式接收并响应来自 MCP 客户端的 JSON-RPC 请求。

MCP Toolkit 的 Source Generators 会在编译时分析你注册工具的方式,并生成相应的代码,极大地简化了工具的定义和注册过程。

信息

分类

开发者工具