模型上下文协议(MCP)服务器。NET实现
此项目包含一个。NET web应用程序实现模型上下文协议(MCP)服务器。该应用程序旨在部署到Azure应用程序服务。
该项目使用OAuth OBO,它允许用户通过MCP进行身份验证,然后使MCP能够代表用户访问下游API。在此示例中,它已被授予访问Azure资源管理器API的权限。
MCP服务器提供遵循模型上下文协议规范的API,允许AI模型在推理期间请求附加上下文。
主要特点
- 在C#中完整实现MCP协议。NET使用 MCP csharp sdk
- Azure应用服务集成
- 自定义工具支持
- 支持OAUth OBO,使服务器能够在用户上下文中访问经过身份验证的下游API。
项目结构
src/-包含主要的C#项目文件
- Program.cs -MCP服务器的入口点 - Tools/ -包含模型可以通过MCP协议使用的自定义工具 - AzureResourceManagerTools.cs -用于执行基本Azure资源管理器操作的工具
infra/-使用二头肌将Azure基础架构作为代码包含在内
- main.bicep -主要基础设施定义 - resources.bicep -资源定义 - main.bicepparam -部署参数
先决条件
- Azure开发者命令行界面
- .NET 9 SDK
- 对于使用VS Code的本地开发:
地方发展
在本地运行服务器
- 克隆此存储库
- 导航到项目目录
cd src- 安装所需的软件包
dotnet restore- 运行项目:
dotnet run- MCP服务器将在
http://localhost:5000 - 完成后,在终端中按Ctrl+C停止应用程序
测试可用工具
服务器提供以下工具:
- AzureResource管理器:
- get_subscriptions -获取Azure订阅列表 - get_resource_groups -获取特定Azure订阅中的Azure资源组列表
连接到本地MCP服务器
使用VS代码-复制代理模式
- 添加MCP服务器 从命令面板中,将URL添加到正在运行的服务器的HTTP端点:
http://localhost:5000- 列出MCP服务器 从命令面板启动服务器
- 在Copilot聊天代理模式下,输入提示以触发工具:
Fetch my Azure subscriptions- 当系统提示运行该工具时,点击同意 继续
使用MCP检查器
- 在一个 新终端窗口,安装并运行MCP检查器:
npx @modelcontextprotocol/inspector- 按住CTRL键并单击应用程序显示的URL(例如。http://localhost:5173/#resources)
- 将运输类型设置为
HTTP - 将URL设置为正在运行的服务器的HTTP端点,然后 连接:
http://localhost:5000- 列出工具,单击工具,然后 运行工具
部署到Azure
- 登录到Azure:
azd auth login- 初始化您的环境:
azd env new- 部署应用程序:
azd up- 授予管理员同意(Entra门户用户界面)-仅限首次:
- 在应用程序注册中打开Entra应用程序 - 选择“管理”->“API权限”,然后按“授予管理员同意”
这将:
- 建造。net应用 - 提供在二头肌模板中定义的Azure资源 - 将应用程序部署到Azure应用服务
连接到远程MCP服务器
使用MCP检查器
使用web应用程序的URL:
https://.azurewebsites.net使用VS代码-GitHub Copilot
遵循与本地应用程序相同的过程,但使用您的应用程序服务URL:
https://.azurewebsites.net清理资源
使用完应用程序和相关资源后,您可以使用此命令从Azure中删除功能应用程序及其相关资源,从而避免产生任何进一步的成本:
azd down