MCP Scaleway Functions
Unofficial MCP Server for Scaleway Serverless Functions
Open source Open in the app JSON README (API)
About
Unofficial MCP Server for Scaleway Serverless Functions
Details
- Kind
- MCP servers
- Topic
- Cloud & DevOps
- Publisher
- cyclimse
- Origin
- official
- Category
- ferramentas
- Transport
- local
- Version
- 0.3.4
- Stars
- 7
- Forks
- 2
- Last push
- 2026-04-12T20:50:14Z
- Repository state
- ativo
- Language
- Go
- License
- Unlicense
- Added
- 2026-08-29 03:02:39
- Updated
- 2026-08-29 03:02:39
- Origin id
io.github.cyclimse/mcp-scaleway-functions
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. |
| `fetch_function_logs` | Fetch the logs of a function. |
| `add_dependency` | Add a dependency to a local function. Useful for dependencies that rely on native code and therefore need Docker to be installed. |
## Debugging
You can enable debug logging by using the `--debug` flag when starting the MCP server. This will log all requests and responses to/from the Scaleway API.
To configure the log level, use the `--log-level` flag (default is `info`). Available log levels are: `debug`, `info`, `warn`, `error`.
Logs are stored in the `$XDG_STATE_HOME/mcp-scaleway-functions` directory (usually `~/.local/state/mcp-scaleway-functions`).
## Development
Running tests:
```bash
go tool gotestsum --format testdox
```
Generating mocks:
```bash
go tool mockery
```