关于 Knapcode.SampleMcpServer
基于服务器模板构建的 C# 示例 MCP 服务,用于演示如何创建 MCP 服务并打包为 NuGet 包。它提供生成随机数和随机天气的工具。
主要功能
- 01生成随机数
- 02生成随机天气
- 03基于 C# MCP 服务模板构建
- 04打包为 NuGet 包
适用场景
- 01了解基础 C# MCP 服务
- 02在 VS Code 本地测试 MCP 工具
- 03打包服务并发布到 NuGet
MCP 相关
向 MCP 客户端提供随机数和随机天气功能。README 展示了 VS Code 的 stdio 配置及本地开发方式。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MCP 服务 - Knapcode.SampleMcpServer
此 README 使用 C# MCP 服务模板项目创建,展示了如何轻松使用 C# 创建 MCP 服务,并将其打包为 NuGet 包。
完整指南请参阅 aka.ms/nuget/mcp/guide。
发布到 NuGet.org 前的检查清单
- 按照以下步骤在本地测试 MCP 服务。
- 更新 .csproj 文件中的包元数据,尤其是
<PackageId>。 - 更新
.mcp/server.json以声明 MCP 服务的输入。- 更多详情请参阅配置输入。
- 使用
dotnet pack打包项目。
bin/Release 目录中会包含包文件(.nupkg),你可以将其发布到 NuGet.org。
在 VS Code 中使用 MCP 服务
将 MCP 服务包发布到 NuGet.org 后,你可以使用以下 VS Code 用户配置来下载并安装该 MCP 服务包。有关在 VS Code 中使用 MCP 服务的更多信息,请参阅在 VS Code 中使用 MCP 服务(预览)。
{
"mcp": {
"servers": {
"Knapcode.SampleMcpServer": {
"type": "stdio",
"command": "dnx",
"args": [
"[email protected]",
"--yes",
"--",
"mcp",
"start"
],
"env": {
"WEATHER_CHOICES": "sunny,humid,freezing"
}
}
}
}
}
现在,你可以在 Copilot Chat 中请求一个随机数,例如 Give me 3 random numbers。它应该会提示你使用 Knapcode.SampleMcpServer MCP 服务上的 get_random_number 工具,并显示结果。
在 VS Code 中本地开发
若要直接从源代码(本地)测试此 MCP 服务,而不使用已构建的 MCP 服务包,请在项目目录中创建 .vscode/mcp.json 文件(VS Code 工作区设置文件),并添加以下配置:
{
"servers": {
"Knapcode.SampleMcpServer": {
"type": "stdio",
"command": "dotnet",
"args": [
"run",
"--project",
"<RELATIVE PATH TO PROJECT DIRECTORY>",
"--",
"mcp",
"start"
],
"env": {
"WEATHER_CHOICES": "sunny,humid,freezing"
}
}
}
}
或者,你也可以配置 VS Code 用户设置以使用本地项目:
{
"mcp": {
"servers": {
"Knapcode.SampleMcpServer": {
"type": "stdio",
"command": "dotnet",
"args": [
"run",
"--project",
"<FULL PATH TO PROJECT DIRECTORY>"
"--",
"mcp",
"start"
]
},
"env": {
"WEATHER_CHOICES": "sunny,humid,freezing"
}
}
}
}
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。