使用说明

项目简介

本项目是一个基于 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 等客户端与服务器进行交互。

安装步骤

  1. 安装 Prerequisites: 确保已安装 Node.js (v18+), Azure Functions Core Tools, Azure Developer CLI, 以及 Docker (用于 Azurite 存储模拟器)。
  2. 克隆仓库: 将仓库克隆到本地开发环境。
    git clone https://github.com/Azure-Samples/remote-mcp-functions-typescript.git
    cd remote-mcp-functions-typescript
  3. 启动 Azurite 存储模拟器 (可选): 如果需要在本地测试代码片段功能,启动 Azurite Docker 容器。
    docker run -p 10000:10000 -p 10001:10001 -p 10002:10002 mcr.microsoft.com/azure-storage/azurite
  4. 安装 Function 扩展:
    func extensions install
  5. 安装依赖:
    npm install
  6. 构建项目:
    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)。

基本使用方法

  1. 本地运行服务器:
    func start
    服务器将在本地 'http://0.0.0.0:7071' 启动。
  2. 使用 MCP 客户端连接: 配置 MCP 客户端(如 VS Code Copilot 或 MCP Inspector)连接到服务器配置中指定的 URL。
  3. 调用工具: 客户端连接成功后,可以列出并调用服务器提供的工具,例如:
    • 调用 "hello" 工具,服务器返回 "Hello I am MCP Tool!"。
    • 调用 "saveSnippet" 工具,保存代码片段到 Blob Storage。
    • 调用 "getSnippet" 工具,从 Blob Storage 检索代码片段。
  4. 部署到 Azure (可选): 使用 Azure Developer CLI 将 MCP 服务器部署到 Azure 云平台。
    azd up
    部署成功后,在 Azure Portal 中 Function App 的 "函数密钥" 中获取 'mcp_extension' 的密钥 (系统密钥),并更新客户端配置中的 URL。

清理资源 (可选)

当不再需要部署的 Azure 资源时,可以使用以下命令清理:

azd down

信息

分类

开发者工具