mcpField
S
sampledotnetmcpserver

sampledotnetmcpserver

本地服务
github.com/timheuer开发工具458 周前更新

关于 sampledotnetmcpserver

sampledotnetmcpserver 是使用 C# 和 ModelContextProtocol SDK 编写的 .NET MCP 服务示例,面向学习和测试 MCP 服务开发的开发者。它展示工具注册、stdio 传输配置及 NuGet 打包发布。

主要功能

  1. 01C# MCP 工具示例
  2. 02随机数与问候工具
  3. 03美国邮编天气查询与预报
  4. 04stdio 传输配置
  5. 05NuGet 打包发布示例

适用场景

  1. 01学习用 C# 实现 MCP 工具
  2. 02测试随机数和问候调用
  3. 03按美国邮编查询天气
  4. 04将 MCP 服务打包发布到 NuGet

MCP 相关

该项目实现 MCP 服务,使用 stdio 传输向 MCP 客户端提供随机数、问候和天气工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库
安装包
nugetTimHeuer.SampleDotnetMcpServer0.1.57-beta

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

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 打包配置

了解更多


此项目仅供演示和参考。如需反馈或贡献,请参见 GitHub 仓库。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。