远程MCP服务器

Devin MCP Server for Azure Functions是一个基于TypeScript构建的远程MCP服务器,用于与Devin API交互,可作为Azure Function App部署,适用于GitHub Copilot等兼容客户端。

  • by RyotaOzawa0
  • TypeScript
  • 混合部署
  • 1 星标
  • 更新于
在 GitHub 查看 ryotaozawa0/devin-mcp-server-for-azure-functions

使用说明

为Azure功能设计MCP服务器

该项目提供了一个远程MCP(模型上下文协议)服务器,用于与Devin API交互。它是用TypeScript构建的,旨在作为Azure Function应用程序部署。

该服务器将Devin API功能公开为自定义工具,可由GitHub Copilot等兼容客户端调用。

特性

实施了以下工具:

  • createSession:创建新的Devin会话。
  • sendMessage:向现有Devin会话发送消息。
  • uploadFile:将文件上传到Devin会话。
  • listSessions:检索所有会话的列表。
  • getSession:获取特定会话的详细信息。
  • updateTags:更新特定会话的标签。

先决条件

入门指南

1.克隆存储库

git clone https://github.com/your-username/devin-mcp.git
cd devin-mcp

2.安装依赖项

npm install

3.配置环境变量

服务器需要将您的Devin API密钥配置为环境变量。对于本地开发,您可以使用 local.settings.json 文件。

打开 local.settings.json 并替换 YOUR_DEVIN_API_KEY_HERE 使用您的实际Devin API密钥。

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "FUNCTIONS_WORKER_RUNTIME": "node",
    "DEVIN_API_KEY": "YOUR_DEVIN_API_KEY_HERE",
    "AzureWebJobsSecretStorageType": "Files"
  }
}

本地运行

要在本地启动功能应用程序,请运行以下命令:

npm start

MCP服务器将在 http://localhost:7071。然后,您可以将MCP客户端连接到此端点。

从客户端连接

您可以从任何兼容的客户端连接到此MCP服务器,例如 MCP检查员 或GitHub Copilot。

连接到本地服务器

在本地运行服务器时,请使用以下SSE端点URL:

http://localhost:7071/runtime/webhooks/mcp/sse

本地连接不需要身份验证。

对于支持配置文件的客户端(例如 .mcp.json 文件),您可以这样定义服务器连接:

{
    "servers": {
        "DevinMCP": {
            "type": "sse",
            "url": "http://localhost:7071/runtime/webhooks/mcp/sse"
        }
    }
}

连接到远程服务器(Azure)

部署到Azure后,服务器需要使用系统密钥进行身份验证。您可以从Terraform输出或Azure门户获取此密钥(Function App -> App Keys -> System Keys -> mcp_extension).

对于支持配置文件的客户端(例如 .mcp.json 文件),您可以这样定义远程服务器连接。将URL替换为功能应用程序的主机名,将密钥替换为 mcp_extension 系统密钥。

{
    "servers": {
        "Devin-MCP-Azure-Functions": {
            "type": "sse",
            "url": "https://<your-function-app-name>.azurewebsites.net/runtime/webhooks/mcp/sse",
            "headers": {
                "x-functions-key": "YOUR_MCP_EXTENSION_SYSTEM_KEY"
            }
        }
    }
}

关于身份验证的注意事项: 此示例使用Azure函数内置的API密钥(系统密钥)身份验证,以简化部署。正式的MCP规范提到符合 OAuth 2.0动态客户端注册协议 以获得更强大的安全性。生产级实现可能需要更复杂的设置,包括身份提供者,以完全遵守此标准。

部署

此功能应用程序已准备好部署到Azure。您可以使用 Azure开发者命令行界面(azd) 或标准Azure Functions部署方法。

使用Terraform部署

对于作为代码部署的自动化基础设施,您可以使用提供的Terraform配置。

详细说明见 地形自述.

参考文献