使用说明
项目简介
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 服务器。
安装步骤
- 安装服务器包:
打开命令行工具,导航到你的项目目录,并执行以下命令安装服务器核心包:
dotnet add package ModelContextProtocol.NET.Server --prerelease - 安装服务器托管包 (可选):
如果需要将 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 功能,请关注项目后续更新)。
基本使用方法
- 创建服务器实例: 在你的 C# 代码中,使用 'McpServerBuilder' 构建 MCP 服务器实例。 你可以参考 'README.md' 或示例代码中的 'McpServerBuilder' 用法。
- 注册工具、资源或 Prompt Handler (可选): 根据你的服务器功能需求,使用 'builder.Tools.AddHandler<T>()', 'builder.Resources.AddHandler<T>()' 或 'builder.Prompts.AddHandler<T>()' 注册相应的处理器。 你也可以使用 'builder.Tools.AddFunction()' 直接注册函数工具。
- 配置日志 (可选): 使用 'builder.Services.AddLogging()' 配置日志记录,以便监控服务器运行状态。
- 启动服务器: 调用 'server.Start()' 方法启动 MCP 服务器。
- 使用 MCP 客户端连接: 配置 MCP 客户端,使用上面提供的服务器配置信息连接到你的 MCP 服务器。 客户端即可通过 MCP 协议与服务器进行通信,调用注册的工具、访问资源或使用 Prompt 功能。
- 停止服务器: 调用 'server.Stop()' 方法停止服务器,并使用 'await server.DisposeAsync()' 释放资源。
示例代码参考: 'src/ModelContextProtocol.NET.Demo.Calculator/Program.cs' 目录下的 'Program.cs' 文件提供了完整的计算器演示示例,包含了服务器构建、工具注册、日志配置和启动停止等关键步骤,是学习和使用的良好参考。
信息
分类
开发者工具