Skip to main content
Glama
stackblaze
by stackblaze
README.md
# CQL MCP Server

Stackblaze MCP server for **Cassandra / Scylla** (CQL). Built for the kubero
chat feature-MCP broker: one long-lived Deployment serves every CQL add-on via
per-request `X-Kubero-DB-URI` / `X-Kubero-Access-Mode` headers.

See [FORK.md](FORK.md) for kubero integration details.

## Tools

**Read** (restricted + unrestricted):

- `cluster_info` — release version + connection details
- `list_keyspaces`
- `list_tables`
- `describe_table`
- `execute_cql` — SELECT only in restricted mode

**Write** (unrestricted only):

- `execute_cql` — INSERT/UPDATE/DELETE and other DML/DDL
- `create_keyspace` / `drop_keyspace`
- `create_table` / `drop_table` / `truncate_table`

In chat these are prefixed `cql__*` (e.g. `cql__list_keyspaces`).

## Local dev

```bash
pip install -r requirements.txt
export CQL_HOST=localhost CQL_PORT=9042 CQL_USER=cassandra CQL_PASSWORD=cassandra
python main.py
```

HTTP + connection-from-request (matches k8s Deployment):

```bash
python main.py --transport streamable-http --connection-from-request \
  --streamable-http-host 0.0.0.0 --streamable-http-port 3010
```

## Deploy

`deploy/` manifests → ClusterIP `cql-mcp:3010` in `kubero-mcp`. Image:
`ghcr.io/stackblaze/cql-mcp:<tag>`.