MCP服务器功能实现

Azure Functions (.NET 8) 实现的 Model Context Protocol (MCP) 服务器,用于获取 Tour de Azure 的标题信息。

  • by satodayo
  • C#
  • 本地部署
  • 更新于
在 GitHub 查看 satodayo/azure-functions-mcp-server-sample

使用说明

Azure功能MCP服务器(.NET)

Azure Functions (.NET 8) 使用Model Context Protocol (MCP) 服务器实施示例。

概要

此项目包括:Azure Functions 的,之MCP 在动态输入提示中单击Tour de Azure 标题信息MCP 提供工具。

所需环境

  • .NET 8.0 SDK
  • Azure功能核心工具
  • Docker和Docker Compose(开发容器使用時)

安装,安装

Dev Container 中所述修改相应参数的值

  1. 克隆此存储库
  2. VS Code 打开
  3. "Reopen in Container" 列表框中,此格式对应于条目“无”

Dev Container 启动时,将自动执行以下操作:

  • 安装所需的扩展
  • NuGet 恢复包(dotnet restore)

在本地环境中运行时

  1. local.settings.json 创建文件:
cd mcp-server

local.settings.json 创建以下内容:

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated"
  }
}
  1. 构建并运行项目:
dotnet restore
dotnet build
func start

项目配置

azure-functions-dotnet/
├── .devcontainer/          # Dev Container設定
├── .vscode/                # VS Code設定(tasks, launch)
├── mcp-server/             # Azure Functions プロジェクト
│   ├── Program.cs          # アプリケーションエントリポイント
│   ├── TourDeAzureTrigger.cs   # MCP ツール実装
│   ├── mcp-server.csproj   # プロジェクトファイル
│   ├── host.json           # Functions ホスト設定
│   └── local.settings.json # ローカル開発設定(要作成)
└── README.md

正在使用的包

  • Microsoft.Azure.Functions.Worker (v2.1.0)
  • Microsoft.Azure.Functions.Worker.Extensions.Mcp (v1.0.0)
  • Microsoft.Azure.Functions.Worker.Extensions.Http.AspNetCore (v2.1.0)
  • Microsoft.ApplicationInsights.WorkerService (v2.23.0)

MCP 工具

get_tour_azure_title

Tour de Azure 中所述修改相应参数的值。

参数:

  • edition (int, required): 回数(1, 2, 3...)

使用例:

{
  "edition": 1
}

响应:

AI Document Intelligenceに入門しよう!

开発

构建

cd mcp-server
dotnet build

本地运行

cd mcp-server
func start

注意:首次运行时 local.settings.json 需要文件。请参见上述设置部分。

自动启动本地存储仿真器:

  • Blob:http://localhost:10000
  • 队列:http://localhost:10001
  • 表:http://localhost:10002

调试

VS Code 使用调试功能:

  1. F5 按键
  2. 或者,从调试视图中选择“Attach to.NET Functions”

许可证

这个项目是示例代码。