项目简介
MCP Scaleway Functions 是一个非官方的 Model Context Protocol (MCP) 服务器实现,旨在让大型语言模型(LLM)客户端能够方便地管理和部署 Scaleway Serverless Functions。它将 Scaleway 的函数和命名空间操作封装为 LLM 可调用的工具,支持创建、列出、更新、删除函数和命名空间,以及列出函数运行时和下载函数代码。
主要功能点
- 命名空间管理: 提供创建、列出和删除 Scaleway 函数命名空间的功能。
- 函数管理: 支持创建、列出、更新和删除 Scaleway 函数。
- 运行时查询: 能够列出所有可用的 Scaleway 函数运行时环境。
- 代码操作: 支持上传本地目录中的函数代码以部署和更新函数,以及下载现有函数的代码到指定本地目录。
- 进度通知: 在函数部署等耗时操作中,服务器会向 MCP 客户端发送实时进度通知,提供操作的即时反馈。
- 安全措施: 内置安全标签,仅允许删除由本工具创建的资源,以防止 LLM 意外删除其他重要的 Scaleway 资源。
安装步骤
- 下载或构建: 您可以从项目的 GitHub Releases 页面下载最新版本的可执行文件,或者使用 Go 语言从源代码构建。
- Scaleway 配置: 确保您的环境中已正确配置 Scaleway API 凭据。这通常通过设置以下环境变量来完成:
- 'SCW_ACCESS_KEY': 您的 Scaleway 访问密钥。
- 'SCW_SECRET_KEY': 您的 Scaleway 秘密密钥。
- 'SCW_DEFAULT_REGION': 您希望操作的默认 Scaleway 区域,例如 'fr-par' 或 'nl-ams'。 例如:
强烈建议您创建一个具有 'FunctionsFullAccess' 最小权限集的 Scaleway API 密钥,以增强安全性。export SCW_DEFAULT_REGION=fr-par # export SCW_ACCESS_KEY=YOUR_ACCESS_KEY # export SCW_SECRET_KEY=YOUR_SECRET_KEY
服务器配置
MCP 服务器支持通过 HTTP SSE 或 Standard I/O (Stdio) 传输协议与客户端通信。默认情况下,它会在 'http://localhost:8080' 端口以 SSE 模式启动。
您的 MCP 客户端(例如 VSCode 中的 GitHub Copilot)需要进行配置才能连接到此服务器。以下是配置信息及参数注释,请根据您的实际安装路径和偏好进行调整:
// 在MCP客户端的配置文件中 (例如 .vscode/mcp.json) { "servers": { "mcp_scaleway_functions": { // 服务器的名称,可以根据您的喜好自定义 "command": "/path/to/your/mcp_scaleway_functions_executable", // MCP 服务器可执行文件的完整路径 "args": [ "--transport", "stdio", // 可选参数:指定使用 Stdio 传输协议。如果省略此参数,将默认使用 SSE 传输。 "--log-level", "info" // 可选参数:设置服务器的日志级别,例如 "debug", "info", "warn", "error"。 // 注意:Scaleway 区域等配置可以通过环境变量(如 SCW_DEFAULT_REGION)在启动服务器前设置, // 而不是作为命令行参数传递给 MCP 服务器本身。 ], "type": "stdio" // 服务器的传输类型。如果 "--transport" 参数设置为 "stdio",则此处应为 "stdio"。 // 如果使用默认的 SSE 传输(未设置 "--transport" 参数),则此处应为 "http"。 } } }
基本使用方法
- 启动服务器:
打开您的终端,导航到 'mcp_scaleway_functions' 可执行文件所在的目录,然后运行:
- 默认 SSE 模式 (服务器将在 'http://localhost:8080' 监听):
./mcp_scaleway_functions - Stdio 模式 (服务器将通过标准输入/输出与客户端通信):
./mcp_scaleway_functions --transport stdio
- 默认 SSE 模式 (服务器将在 'http://localhost:8080' 监听):
- 通过 LLM 客户端交互:
一旦 MCP 服务器正在运行并且您的 LLM 客户端已按上述步骤配置,您就可以通过自然语言提示 LLM 执行 Scaleway 函数相关的操作。例如:
- "创建一个名为 'my-test-namespace' 的 Scaleway 函数命名空间。"
- "列出我所有的 Scaleway 函数命名空间。"
- "在 'my-test-namespace' 中部署一个 Python 函数,其代码位于本地目录 './my-function-code',处理器为 'handler.handle',超时时间为5秒。"
- "删除名为 'my-test-namespace' 的命名空间。"
信息
分类
开发者工具