如何构建首个.NET MCP服务器并成功发布至NuGet包仓库?
摘要:用 .NET 构建你的第一个 MCP 服务器并发布到 NuGet 引言 随着人工智能技术的快速发展,AI 助手在各行各业的应用越来越广泛。然而,AI 模型本身往往缺乏与外部系统和数据源直接交互的能力。Model Context Protoc
用 .NET 构建你的第一个 MCP 服务器并发布到 NuGet
引言
随着人工智能技术的快速发展,AI 助手在各行各业的应用越来越广泛。然而,AI 模型本身往往缺乏与外部系统和数据源直接交互的能力。Model Context Protocol (MCP) 正是为解决这一问题而生的开放标准,它作为连接 AI 模型与现实世界的桥梁,使 AI 助手能够安全地访问数据库、API、文件系统和自定义业务逻辑。
借助 .NET 10 和全新的 MCP 模板,开发者现在可以轻松构建强大的 MCP 服务器来扩展 AI 能力,并通过 NuGet 发布这些工具,让整个 .NET 社区都能发现和使用。本文将详细介绍如何使用 .NET 10 构建你的第一个 MCP 服务器,并将其发布到 NuGet 平台。
正文内容
1. 准备工作与环境配置
1.1 先决条件
在开始构建 MCP 服务器之前,请确保你的开发环境满足以下要求:
.NET 10.0 SDK(预览版 6 或更高版本)
Visual Studio Code
GitHub Copilot 扩展
NuGet.org 账号
1.2 安装 MCP 模板
第一步是安装 MCP Server 项目模板。打开终端或命令行工具,执行以下命令:
dotnet new install Microsoft.Extensions.AI.Templates
请确保安装的是 9.7.0-preview.2.25356.2 或更新版本。这个模板包含了构建 MCP 服务器所需的基本结构和配置。
2. 创建 MCP 服务器项目
2.1 初始化项目
使用以下命令创建一个新的 MCP 服务器项目:
dotnet new mcpserver -n SampleMcpServer
cd SampleMcpServer
dotnet build
这个命令会生成一个包含基本功能的工作 MCP 服务器,其中已经包含了一个示例的 get_random_number 工具。
2.2 添加自定义工具
为了让我们的 MCP 服务器更有实用价值,让我们添加一个天气查询工具。在项目的 Tools 目录下创建一个新的 WeatherTools.cs 文件,并添加以下代码:
[McpServerTool]
[Description("Describes random weather in the provided city.")]
public string GetCityWeather(
[Description("Name of the city to return weather for")] string city)
{
// 从环境变量读取天气选项
var weather = Environment.GetEnvironmentVariable("WEATHER_CHOICES");
if (string.IsNullOrWhiteSpace(weather))
{
weather = "balmy,rainy,stormy";
}
var weatherChoices = weather.Split(",");
var selectedWeatherIndex = Random.Shared.Next(0, weatherChoices.Length);
return $"The weather in {city} is {weatherChoices[selectedWeatherIndex]}.";
}
然后更新 Program.cs 文件,在现有的 WithTools 调用后添加 .WithTools<WeatherTools>()。
这个工具演示了如何:
接受来自 AI 助手的参数
使用环境变量进行配置
返回有意义的响应
3. 测试 MCP 服务器
3.1 配置 GitHub Copilot
为了测试我们的 MCP 服务器,需要配置 GitHub Copilot 来使用它。
