Metadata-Version: 2.4
Name: scaleway-mcp
Version: 0.1.0
Summary: A comprehensive Model Context Protocol (MCP) server for the Scaleway cloud platform.
Project-URL: Homepage, https://github.com/sndpl/scaleway-mcp
Project-URL: Repository, https://github.com/sndpl/scaleway-mcp
Project-URL: Issues, https://github.com/sndpl/scaleway-mcp/issues
Author: scaleway-mcp contributors
License: Apache-2.0
License-File: LICENSE
Keywords: ai,cloud,fastmcp,llm,mcp,scaleway
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Libraries
Requires-Python: >=3.10
Requires-Dist: aioboto3>=13
Requires-Dist: fastmcp<4,>=3.4
Requires-Dist: scaleway-async<3,>=2.6
Provides-Extra: dev
Requires-Dist: mypy>=1.11; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.24; extra == 'dev'
Requires-Dist: pytest-cov>=5; extra == 'dev'
Requires-Dist: pytest>=8; extra == 'dev'
Requires-Dist: ruff>=0.6; extra == 'dev'
Description-Content-Type: text/markdown

# scaleway-mcp

A comprehensive [Model Context Protocol](https://modelcontextprotocol.io) (MCP)
server for the [Scaleway](https://www.scaleway.com) cloud platform. It exposes
Scaleway's products as MCP tools so an AI agent (Claude Desktop, Claude Code,
Cursor, and any other MCP client) can inspect and manage your cloud
infrastructure.

- **21 products, 155+ tools** spanning compute, containers, storage, databases,
  networking, messaging, and platform services — built on the official
  [`scaleway-async`](https://github.com/scaleway/scaleway-sdk-python) SDK.
- **Namespaced tools** (`instances_list_servers`, `object_storage_list_buckets`)
  so the agent can discover capabilities per product.
- **Safe by default.** Destructive operations are opt-in and, when enabled, only
  touch resources this server created.
- **Structured JSON output**, not formatted text, so agents parse results reliably.
- **One small file per product**, with a documented recipe for adding more.

> Beta. The tool surface may change. Review the [security model](docs/security.md)
> before pointing it at a production account.

## Quick start

The server runs with [`uv`](https://docs.astral.sh/uv/) / `uvx` and needs a
Scaleway [API key](https://www.scaleway.com/en/docs/identity-and-access-management/iam/how-to/create-api-keys/).

### Claude Code

```bash
claude mcp add scaleway \
  -e SCW_ACCESS_KEY=SCWXXXXXXXXXXXXXXXXX \
  -e SCW_SECRET_KEY=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
  -e SCW_DEFAULT_PROJECT_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
  -- uvx scaleway-mcp
```

### Claude Desktop / Cursor / other clients

Add to the client's MCP config (for Claude Desktop:
`~/Library/Application Support/Claude/claude_desktop_config.json`):

```json
{
  "mcpServers": {
    "scaleway": {
      "command": "uvx",
      "args": ["scaleway-mcp"],
      "env": {
        "SCW_ACCESS_KEY": "SCWXXXXXXXXXXXXXXXXX",
        "SCW_SECRET_KEY": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "SCW_DEFAULT_PROJECT_ID": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
      }
    }
  }
}
```

Full client instructions: [docs/adding-to-your-agent.md](docs/adding-to-your-agent.md).

## Authentication

The server authenticates exactly like the `scw` CLI and the official SDK: it
reads `~/.config/scw/config.yaml` when present and overlays the standard
environment variables (`SCW_ACCESS_KEY`, `SCW_SECRET_KEY`,
`SCW_DEFAULT_PROJECT_ID`, `SCW_DEFAULT_REGION`, `SCW_DEFAULT_ZONE`, ...). If you
already use the CLI, it works with no extra setup. See
[docs/configuration.md](docs/configuration.md).

## Product coverage

| Bundle | Products |
| --- | --- |
| Compute & Containers | Instances, Elastic Metal, Kubernetes (Kapsule), Serverless Containers, Serverless Functions, Container Registry |
| Storage & Databases | Object Storage (S3), Block Storage, Managed Databases (RDB), Redis |
| Networking | VPC, Load Balancers, Public Gateway, Domains & DNS, Flexible IP |
| Platform & Ops | IAM, Secret Manager, Cockpit (observability), Billing & Account |
| Messaging & Queuing | Queues (SQS), Topics & Events (SNS) |

The complete, always-current tool list with parameters is in
[docs/TOOLS.md](docs/TOOLS.md). Ask the agent to call `scaleway_list_products`
to see what is enabled at runtime.

Enable only the products you need:

```bash
SCW_ENABLED_PRODUCTS=instance,object_storage,rdb
```

## Safety

- **Reads and creates by default; deletes are opt-in.** Delete tools are not
  even registered unless `SCW_ENABLE_DELETE=true`.
- Resources created through this server are tagged `created_by=scaleway-mcp`.
  With deletes enabled, the server refuses to delete anything lacking that tag
  unless `SCW_ALLOW_DELETE_UNTAGGED=true`.
- Use a least-privilege IAM key scoped to the products you enable. Details in
  [docs/security.md](docs/security.md).

## Local development

```bash
git clone https://github.com/sndpl/scaleway-mcp
cd scaleway-mcp
uv sync --extra dev
uv run pytest          # tests
uv run ruff check .    # lint
uv run mypy            # types

# Run against your account from a local checkout:
uvx --from . scaleway-mcp
```

## Contributing

Adding a Scaleway product is a small, mechanical task. See
[CONTRIBUTING.md](CONTRIBUTING.md) for the step-by-step recipe.

## License

[Apache-2.0](LICENSE). This is an unofficial, community project and is not
affiliated with or endorsed by Scaleway.
