使用说明
项目简介
本项目是一个基于 Azure Functions 和 TypeScript 的 MCP 服务器快速启动模板。它旨在帮助开发者轻松构建和部署自定义的远程 MCP 服务器到 Azure 云平台。该模板预配置了安全机制,支持密钥认证和 HTTPS,并可扩展支持 OAuth 和 VNET 网络隔离。
主要功能点
- 工具注册与执行: 提供 "hello" 示例工具以及 "getSnippet" 和 "saveSnippet" 代码片段管理工具,演示了如何注册和调用工具函数。
- 资源管理 (代码片段): 使用 Azure Blob Storage 存储和检索代码片段,展示了 MCP 服务器管理资源的能力。
- 远程部署: 通过 Azure Developer CLI (azd) 快速部署到 Azure 云平台,方便远程 LLM 客户端访问。
- 安全特性: 默认使用密钥进行安全保护,并提供集成 API 管理、EasyAuth 和 VNET 的选项,增强服务器安全性。
- 多种客户端支持: 可以通过 VS Code Copilot 编辑器或 MCP Inspector 等客户端与服务器进行交互。
安装步骤
- 安装 Prerequisites: 确保已安装 Node.js (v18+), Azure Functions Core Tools, Azure Developer CLI, 以及 Docker (用于 Azurite 存储模拟器)。
- 克隆仓库: 将仓库克隆到本地开发环境。
git clone https://github.com/Azure-Samples/remote-mcp-functions-typescript.git cd remote-mcp-functions-typescript - 启动 Azurite 存储模拟器 (可选): 如果需要在本地测试代码片段功能,启动 Azurite Docker 容器。
docker run -p 10000:10000 -p 10001:10001 -p 10002:10002 mcr.microsoft.com/azure-storage/azurite - 安装 Function 扩展:
func extensions install - 安装依赖:
npm install - 构建项目:
npm run build
服务器配置
MCP 客户端需要配置以下信息以连接到此 MCP 服务器。以下是一个示例 JSON 配置,请根据实际部署情况修改 URL 和密钥。
{ "serverName": "AzureFunctionsMCP", "command": "http", "args": { "url": "http://0.0.0.0:7071/runtime/webhooks/mcp/sse" // 本地运行时使用此 URL。部署到 Azure 后,需要替换为 Azure Function App 的 SSE 端点 URL, // 并可能需要添加 function key,例如: // "url": "https://<your-function-app-name>.azurewebsites.net/runtime/webhooks/mcp/sse?code=<your-function-key>" // function key 可以从 Azure Portal 获取,用于安全访问 Azure Function。 } }
配置参数说明:
- 'serverName': MCP 服务器的名称,客户端用于标识连接。
- 'command': 连接 MCP 服务器的命令协议,此处使用 "http" 表示 SSE over HTTP。
- 'args': 连接参数,包含以下字段:
- 'url': MCP 服务器的 SSE 端点 URL。 本地运行时 使用 'http://0.0.0.0:7071/runtime/webhooks/mcp/sse'。 部署到 Azure 后,需要替换为 Function App 的实际 URL,并根据安全配置添加 'code' 参数 (function key)。
基本使用方法
- 本地运行服务器:
服务器将在本地 'http://0.0.0.0:7071' 启动。func start - 使用 MCP 客户端连接: 配置 MCP 客户端(如 VS Code Copilot 或 MCP Inspector)连接到服务器配置中指定的 URL。
- 调用工具: 客户端连接成功后,可以列出并调用服务器提供的工具,例如:
- 调用 "hello" 工具,服务器返回 "Hello I am MCP Tool!"。
- 调用 "saveSnippet" 工具,保存代码片段到 Blob Storage。
- 调用 "getSnippet" 工具,从 Blob Storage 检索代码片段。
- 部署到 Azure (可选): 使用 Azure Developer CLI 将 MCP 服务器部署到 Azure 云平台。
部署成功后,在 Azure Portal 中 Function App 的 "函数密钥" 中获取 'mcp_extension' 的密钥 (系统密钥),并更新客户端配置中的 URL。azd up
清理资源 (可选)
当不再需要部署的 Azure 资源时,可以使用以下命令清理:
azd down
信息
分类
开发者工具