MCP Scaleway Functions
Unofficial MCP Server for Scaleway Serverless Functions
★ 4Unlicensedevtools
Install
Config snippet generator goes here (5 client tabs)
README
# MCP Scaleway Functions
Model Context Protocol (MCP) server to manage and deploy [Scaleway Serverless Functions](https://www.scaleway.com/en/serverless-functions/) using the [Model Context Protocol](https://modelcontextprotocol.org/) standard.
> [!CAUTION]
> This project is unofficial and not affiliated with or endorsed by Scaleway.
> Some small safety measures are in place to prevent the LLM from doing destructive actions,
> but they're not foolproof.
> Use at your own risk.
## Getting Started
Download the latest release from the [releases page](https://github.com/cyclimse/mcp-scaleway-functions/releases) or build it from source using Go.
Run the MCP server:
```bash
./mcp-scaleway-functions
```
By default, the MCP server runs with the SSE transport on `http://localhost:8080`, but you can also change it to use Standard I/O (stdio) transport via the `--transport stdio` flag.
Then, configure your IDE or tool of choice to connect to the MCP server. Here are some examples:
### VSCode (sse example)
Add a new server configuration in your `.vscode/mcp.json` file:
```json
{
"servers": {
"mcp-scaleway-functions": {
"url": "http://localhost:8080",
"type": "http",
}
},
}
```
### Crush (stdio example)
Crush is an open-source coding agent that supports MCP. You can find more information about in the [Crush repository](https://github.com/charmbracelet/crush).
Add a new server configuration in your `~/.config/crush/crush.json` file:
```json
{
"$schema": "https://charm.land/crush.json",
"mcp": {
"scaleway-functions": {
"type": "stdio",
"command": "mcp-scaleway-functions",
"args": ["--transport", "stdio"],
"timeout": 600,
"disabled": false
}
}
}
```
You can even use Crush with [Scaleway Generative APIs](https://www.scaleway.com/en/generative-apis/) by adding a new provider in the same `~/.config/crush/crush.json` file:
```jsonc
{
"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
}
]
}
}
}
```
That's it 🎉! Have fun vibecoding and vibedevoopsing as you please.
## Configuration
By default, the MCP server reads from the standard Scaleway configuration file located at `~/.config/scw/config.yaml`.
Further configuration can be done via the
[Scaleway environment variables](https://www.scaleway.com/en/docs/scaleway-cli/reference-content/environment-variables/) to configure the MCP server.
For instance, you can set a region to work in via the `SCW_DEFAULT_REGION` environment variable.
```bash
SCW_DEFAULT_REGION=nl-ams ./mcp-scaleway-functions
```
## Available Tools
| **Tool** | **Description** |
| -------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| `create_and_deploy_function_namespace` | Create and deploy a new function namespace. |
| `list_function_namespaces` | List all function namespaces. |
| `delete_function_namespace` | Delete a function namespace. |
| `list_functions` | List all functions in a namespace. |
| `list_function_runtimes` | List all available function runtimes. |
| `create_and_deploy_function` | Create and deploy a new function. |
| `update_function` | Update the code or the configuration of an existing function. |
| `delete_function` | Delete a function. |
| `download_function` | Download the code of a function. This is useful to work on an existing function. |
| `fe