关于 Knapcode.SampleMcpServer
Knapcode.SampleMcpServer 是一个 C# MCP 服务模板示例,演示如何将服务打包为 NuGet 包。示例工具可生成随机数和随机天气数据。
主要功能
- 01基于 MCP C# SDK 构建
- 02演示 NuGet 打包流程
- 03提供随机数工具
- 04提供随机天气数据
适用场景
- 01了解 C# MCP 服务示例
- 02在 VS Code 中测试随机数工具
- 03使用 dotnet 构建并打包服务
MCP 相关
该项目是一个 MCP 服务,提供随机数和随机天气工具,可在 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 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。