使用说明

项目简介

ModelContextProtocol.NET 是一个使用 C# 开发的 Model Context Protocol (MCP) SDK。它旨在帮助开发者快速构建 MCP 服务器,以便为大型语言模型 (LLM) 客户端提供上下文信息和功能。该 SDK 提供了标准 I/O 通信、工具集成框架,并正在积极开发 WebSocket 支持、资源管理和 Prompt 系统等功能。

主要功能点

  • 标准 I/O 通信: 支持通过标准输入/输出流 (Stdio) 与 MCP 客户端进行通信。
  • 工具集成框架: 提供工具注册和执行框架,允许 LLM 客户端调用外部功能。
  • WebSocket 支持 (开发中): 计划支持 WebSocket 通信协议。
  • 资源管理 (开发中): 计划实现资源托管和管理功能。
  • Prompt 系统 (开发中): 计划提供 Prompt 模板定义和渲染功能。
  • Native AOT 兼容: 兼容 Native AOT,提升性能。
  • 包含计算器演示示例: 提供一个功能完善的计算器演示,展示如何使用 SDK 构建 MCP 服务器。

安装步骤

  1. 安装服务器包: 打开命令行工具,导航到你的项目目录,并执行以下命令安装服务器核心包:
    dotnet add package ModelContextProtocol.NET.Server --prerelease
  2. 安装服务器托管包 (可选): 如果需要将 MCP 服务器集成到 .NET Generic Host 环境中,请执行以下命令安装服务器托管包:
    dotnet add package ModelContextProtocol.NET.Server.Hosting --prerelease

服务器配置

MCP 服务器需要配置启动命令及其参数才能被 MCP 客户端连接。以下是基于 ModelContextProtocol.NET SDK 创建的 MCP 服务器的客户端配置信息示例(JSON 格式),请根据你的实际部署情况进行调整。

{
  "serverName": "Calculator Demo Server",
  "command": "dotnet",
  "args": [
    "run",
    "--project",
    "path/to/your/ModelContextProtocol.NET.Demo.Calculator.csproj"
  ],
  "transport": "stdio"
}

参数注释:

  • 'serverName': MCP 服务器的名称,可以自定义,用于客户端识别。 例如 '"Calculator Demo Server"'。
  • 'command': 启动 MCP 服务器的可执行命令。通常为 'dotnet',表示使用 .NET CLI 运行。
  • 'args': 传递给启动命令的参数列表。
    • '"run"': .NET CLI 的 'run' 命令,用于运行 .NET 项目。
    • '"--project"': 指定要运行的 .NET 项目文件。
    • '"path/to/your/ModelContextProtocol.NET.Demo.Calculator.csproj"': 请替换为你的计算器演示示例项目文件(或你自定义的服务器项目文件)的实际路径。 例如,如果你的项目文件路径是 'C:\projects\MyMcpServer\MyMcpServer.csproj',则应替换为 '"C:\projects\MyMcpServer\MyMcpServer.csproj"'。
  • 'transport': MCP 服务器使用的传输协议。 '"stdio"' 表示使用标准 I/O 流进行通信。

注意:

  • 请确保 MCP 客户端能够执行 'dotnet' 命令,并且指定的项目路径是正确的。
  • 如果你的服务器程序已经编译为可执行文件,'command' 可以直接指向该可执行文件,'args' 则根据实际情况调整。
  • 如果使用 WebSocket 传输协议 (开发中), 'transport' 应设置为 '"websocket"',并且需要配置 WebSocket 相关的地址和端口参数 (SDK 尚未完全实现 WebSocket 功能,请关注项目后续更新)。

基本使用方法

  1. 创建服务器实例: 在你的 C# 代码中,使用 'McpServerBuilder' 构建 MCP 服务器实例。 你可以参考 'README.md' 或示例代码中的 'McpServerBuilder' 用法。
  2. 注册工具、资源或 Prompt Handler (可选): 根据你的服务器功能需求,使用 'builder.Tools.AddHandler<T>()', 'builder.Resources.AddHandler<T>()' 或 'builder.Prompts.AddHandler<T>()' 注册相应的处理器。 你也可以使用 'builder.Tools.AddFunction()' 直接注册函数工具。
  3. 配置日志 (可选): 使用 'builder.Services.AddLogging()' 配置日志记录,以便监控服务器运行状态。
  4. 启动服务器: 调用 'server.Start()' 方法启动 MCP 服务器。
  5. 使用 MCP 客户端连接: 配置 MCP 客户端,使用上面提供的服务器配置信息连接到你的 MCP 服务器。 客户端即可通过 MCP 协议与服务器进行通信,调用注册的工具、访问资源或使用 Prompt 功能。
  6. 停止服务器: 调用 'server.Stop()' 方法停止服务器,并使用 'await server.DisposeAsync()' 释放资源。

示例代码参考: 'src/ModelContextProtocol.NET.Demo.Calculator/Program.cs' 目录下的 'Program.cs' 文件提供了完整的计算器演示示例,包含了服务器构建、工具注册、日志配置和启动停止等关键步骤,是学习和使用的良好参考。

信息

分类

开发者工具