关于 sampledotnetmcpserver
sampledotnetmcpserver 是使用 C# 和 ModelContextProtocol SDK 编写的 .NET MCP 服务示例,面向学习和测试 MCP 服务开发的开发者。它展示工具注册、stdio 传输配置及 NuGet 打包发布。
主要功能
- 01C# MCP 工具示例
- 02随机数与问候工具
- 03美国邮编天气查询与预报
- 04stdio 传输配置
- 05NuGet 打包发布示例
适用场景
- 01学习用 C# 实现 MCP 工具
- 02测试随机数和问候调用
- 03按美国邮编查询天气
- 04将 MCP 服务打包发布到 NuGet
MCP 相关
该项目实现 MCP 服务,使用 stdio 传输向 MCP 客户端提供随机数、问候和天气工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
SampleDotnetMcpServer
此项目是一个使用 .NET 实现的模型上下文协议(MCP)服务示例,旨在演示如何使用 C# 和 ModelContextProtocol SDK 构建、运行和发布 MCP 服务。
mcp-name: io.github.timheuer/sampledotnetmcpserver
这是什么?
SampleDotnetMcpServer 是一个 .NET 参考 MCP 服务,展示了如何:
- 使用 C# 实现 MCP 工具(参见
Tools/RandomNumberTools.cs、Tools/SayHelloName.cs、Tools/WeatherTools.cs) - 注册工具并配置 MCP 服务传输方式(参见
Program.cs) - 将服务打包并发布为 NuGet 包,以便在 VS Code 和 Visual Studio 等 IDE 中使用
其中包含的工具展示了各种 MCP 功能:
get_random_number:在指定范围内生成随机数say_hello_name和say_goodbye_name:简单的问候工具get_weather_by_zip_code:获取美国任意邮政编码对应的当前天气信息get_weather_forecast:获取美国任意邮政编码对应的多日天气预报
功能
- 使用 stdio 传输方式实现 MCP 协议
- 提供多个示例工具:
get_random_number:返回指定范围内的随机整数say_hello_name和say_goodbye_name:简单的问候工具get_weather_by_zip_code:使用 wttr.in API 获取美国任意邮政编码对应的当前天气get_weather_forecast:获取美国任意邮政编码对应的多日天气预报
- 已做好打包并发布为 NuGet MCP 服务的准备
- 包含示例配置文件和元数据
使用方法
本地运行
你可以直接从源代码运行 MCP 服务,以进行开发和测试:
dotnet run --project .
或者将 IDE 配置为使用以下 MCP 服务定义:
{
"servers": {
"SampleDotnetMcpServer": {
"type": "stdio",
"command": "dotnet",
"args": [
"run",
"--project",
"<PATH TO PROJECT DIRECTORY>"
]
}
}
}
测试 MCP 服务
运行后,你可以使用 Copilot Chat 或任何 MCP 客户端调用可用工具:
天气工具:
- 提问:“90210 的天气怎么样?”以获取当前天气
- 提问:“查询 10001 的 3 天天气预报”以获取天气预报
- 提问:“查询 60601 的天气”以使用芝加哥的邮政编码进行测试
其他工具:
- 提问:“给我 3 个随机数”以使用随机数生成器
- 提问:“向 John 问好”以使用问候工具
发布到 NuGet.org
CI 负责发布到 NuGet,使用 NuGet Trusted Publishing 管理密钥,并使用 Nerdbank.GitVersioning 自动进行版本控制。
从 NuGet.org 使用
发布后,将 IDE 配置为使用来自 NuGet.org 的 MCP 服务。配置示例(请替换包 ID 和版本):
{
"servers": {
"SampleDotnetMcpServer": {
"type": "stdio",
"command": "dnx",
"args": [
"TimHeuer.SampleMcpServer",
"--version",
"0.1.0-beta",
"--yes"
]
}
}
}
项目结构
Program.cs:MCP 服务入口点和配置Tools/RandomNumberTools.cs:用于生成随机数的 MCP 工具示例Tools/SayHelloName.cs:用于问候的 MCP 工具示例Tools/WeatherTools.cs:用于按邮政编码查询天气的 MCP 工具.mcp/server.json:MCP 服务元数据和 NuGet 包信息SampleDotnetMcpServer.csproj:项目和 NuGet 打包配置
了解更多
- ModelContextProtocol SDK
- 模型上下文协议文档
- 协议规范
- GitHub 组织
- 在 VS Code 中使用 MCP 服务(预览版)
- 在 Visual Studio 中使用 MCP 服务(预览版)
此项目仅供演示和参考。如需反馈或贡献,请参见 GitHub 仓库。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。