项目简介
'SampleDotnetMcpServer' 是一个使用 C# 和 .NET 开发的模型上下文协议(MCP)服务器参考实现。它演示了如何创建、注册和运行自定义工具,并通过标准输入/输出 (stdio) 传输与 MCP 客户端(如 Copilot Chat)进行通信。该项目旨在帮助开发者理解和构建自己的 MCP 服务器。
主要功能点
- 随机数生成: 提供一个工具,可以在指定范围内生成随机整数。
- 问候语工具: 包含问候工具,用于根据提供的姓名生成“Hello World”或“Goodbye”消息。
- 天气查询: 提供工具,通过美国邮政编码获取当前天气信息和多日天气预报。这些工具通过调用外部 'wttr.in' API 获取数据。
- 标准化通信: 使用 MCP SDK 实现 JSON-RPC 协议,通过标准输入/输出与兼容的 LLM 客户端进行通信。
- 易于部署: 可以打包成 NuGet 包并发布,方便集成到开发环境和 LLM 应用中。
安装步骤
- 克隆仓库: 首先,将此 GitHub 仓库克隆到您的本地机器。
- 运行服务器: 打开命令行工具,导航到仓库的根目录,然后运行以下命令启动服务器:
服务器将通过标准输入输出等待 MCP 客户端连接。dotnet run --project .
服务器配置
MCP 客户端需要配置服务器的启动方式才能连接。以下是一个示例配置,您需要根据实际的项目路径进行调整。
{ "servers": { "SampleDotnetMcpServer": { "type": "stdio", // MCP服务器的通信方式,这里是标准输入/输出 "command": "dotnet", // 启动MCP服务器的命令 "args": [ // 传递给启动命令的参数 "run", // dotnet命令的参数,表示运行一个项目 "--project", // dotnet run命令的参数,指定项目路径 "<PATH TO PROJECT DIRECTORY>" // 请替换为您的 'SampleDotnetMcpServer' 项目的实际路径,例如:"/Users/youruser/Projects/SampleDotnetMcpServer" ] } } }
如果您选择将此服务器发布到 NuGet.org,MCP 客户端的配置示例如下(请注意替换版本号和服务器名称):
{ "servers": { "SampleDotnetMcpServer": { "type": "stdio", "command": "dnx", // 发布到NuGet后,通过dnx工具运行MCP服务器 "args": [ "TimHeuer.SampleMcpServer", // 发布到NuGet后MCP服务器的包名称 "--version", "0.1.0-beta", // 请替换为实际的服务器版本号 "--yes" // 自动确认安装依赖 ] } } }
基本使用方法
当 MCP 服务器运行并配置到您的 LLM 客户端(如 Copilot Chat)后,您可以通过自然语言与其交互,调用其提供的工具:
- 查询天气: 询问“90210 的天气怎么样?”来获取当前天气。
- 获取天气预报: 询问“给我 10001 地区 3 天的天气预报。”
- 生成随机数: 询问“给我 3 个随机数。”
- 问候他人: 询问“向 John 打个招呼。”
信息
分类
开发者工具