无服务器函数管理工具

一个基于Model Context Protocol标准的工具,用于管理和部署Scaleway无服务器函数。

  • by cyclimse
  • Go
  • 本地部署
  • 7 星标
  • 更新于
在 GitHub 查看 cyclimse/mcp_scaleway_functions

使用说明

MCP Scaleway 函数服务

模型上下文协议(MCP)服务器,用于管理和部署 Scaleway 无服务器函数 使用 模型上下文协议 标准。

[!警告] 此项目非官方项目,与Scaleway无任何关联,也未得到其认可。 已经采取了一些小型安全措施来防止大型语言模型(LLM)执行破坏性行为, 但它们并非万无一失。 自行使用,风险自担。

入门指南/开始使用

从(官方/指定)网站下载最新版本 发布页面 或者使用Go从源代码构建它。

运行MCP服务器:

./mcp-scaleway-functions

默认情况下,MCP服务器启用SSE传输 http://localhost:8080但是,您也可以通过它将其更改为使用标准输入输出(stdio)传输方式 --transport stdio 旗帜。

然后,配置您选择的集成开发环境(IDE)或工具以连接到MCP服务器。以下是一些示例:

VSCode(sse 示例)

在您的(系统/配置中)添加一个新的服务器配置 .vscode/mcp.json 文件:

{
	"servers": {
		"mcp-scaleway-functions": {
			"url": "http://localhost:8080",
			"type": "http",
		}
	},
}

Crush(stdio 示例)

Crush 是一个支持 MCP 的开源编码代理。您可以在(相关网站/文档中)找到更多关于它的信息 “Crush repository”可以翻译为“毁灭性存储库”或根据上下文可能意译为“关键/重要存储库(因语境中“Crush”可能隐含重要性或关键性)”,但直接翻译“Crush repository”最直白的译法是“毁灭性存储库”。不过,具体翻译还需结合上下文来确定最准确的含义.

在您的(系统/配置中)添加一个新的服务器配置 ~/.config/crush/crush.json 文件:

{
  "$schema": "https://charm.land/crush.json",
  "mcp": {
    "scaleway-functions": {
      "type": "stdio",
      "command": "mcp-scaleway-functions",
      "args": ["--transport", "stdio"],
      "timeout": 600,
      "disabled": false
    }
  }
}

你甚至可以使用Crush搭配 Scaleway 生成式 API 通过在同一位置添加一个新的提供商 ~/.config/crush/crush.json 文件:

{
  "mcp": {
	// ... see above ...
  },
  "providers": {
    "scaleway": {
      "name": "Scaleway",
      "base_url": "https://api.scaleway.ai/v1/",
      "type": "openai",
	  // To fetch from environment variables, use the `$VAR_NAME` syntax.
	  // Note: this key requires the "GenerativeApisModelAccess" permission.
      "api_key": "$SCW_SECRET_KEY",
      "models": [
        {
          "name": "Qwen coder",
          "id": "qwen3-coder-30b-a3b-instruct",
          "context_window": 128000,
          "default_max_tokens": 8000
        }
      ]
    }
  }
}

就这样啦🎉!尽情享受你的vibecoding(趣味编码)和vibedevoopsing(趣味DevOps实践)吧。

配置

默认情况下,MCP服务器会从位于(指定路径)的标准Scaleway配置文件中读取数据 ~/.config/scw/config.yaml。

可以通过以下方式进一步进行配置 Scaleway 环境变量 配置MCP服务器。

例如,您可以通过(某种方式)设置一个区域来进行工作 SCW_DEFAULT_REGION 环境变量。

SCW_DEFAULT_REGION=nl-ams ./mcp-scaleway-functions

可用工具

工具 描述
create_and_deploy_function_namespace 创建并部署一个新的函数命名空间。
list_function_namespaces 列出所有函数命名空间。 (此行无实际内容,故无法提供翻译)
delete_function_namespace 删除函数命名空间。
list_functions 列出命名空间中的所有函数。 (这个符号“ ”在中文里通常不直接翻译,而是根据上下文理解其作用,如表示分隔、边界等。如果单独存在,可不翻译或根据具体语境灵活处理。)
list_function_runtimes 列出所有可用的函数运行时。
create_and_deploy_function 创建并部署一个新函数。 (此行无实际内容,若作为占位符翻译,则可表述为) (无对应中文内容)
update_function 更新现有函数的代码或配置。
delete_function 删除一个函数。
download_function 下载函数的代码。这对于处理现有函数非常有用。 (此行无实际内容,若作为分隔线则可译为)
fetch_function_logs 获取函数的日志。
add_dependency 为本地函数添加依赖项。对于依赖于原生代码的依赖项非常有用,因此需要安装Docker。

调试

你可以通过使用以下方法启用调试日志记录: --debug 在启动MCP服务器时设置标志。这将记录所有与Scaleway API之间的请求和响应。

要配置日志级别,请使用 --log-level 标志(默认是 info)。 可用的日志级别有: debug, info, warn, error.

日志存储在 $XDG_STATE_HOME/mcp-scaleway-functions 目录(通常 ~/.local/state/mcp-scaleway-functions)。

发展

运行测试:

go tool gotestsum --format testdox

生成模拟数据:

go tool mockery