@severalnines/ccx-mcp
MCP (Model Context Protocol) server for managing CCX database clusters through AI assistants like Claude Code, Claude Desktop, Cursor, and Windsurf.
Quick Start
Install from npm
Add this to your MCP client configuration:
{
"mcpServers": {
"ccx": {
"command": "npx",
"args": ["-y", "@severalnines/ccx-mcp"],
"env": {
"CCX_BASE_URL": "https://app.myccx.io",
"CCX_USERNAME": "your-email@example.com",
"CCX_PASSWORD": "your-password"
}
}
}
}
Alternative: install as a project dependency
If npx causes issues (e.g. spawning errors or version caching problems), you can install the package as a dependency and reference it directly:
npm install @severalnines/ccx-mcp
Then use this configuration:
{
"mcpServers": {
"ccx": {
"command": "node",
"args": ["node_modules/@severalnines/ccx-mcp/build/index.js"],
"env": {
"CCX_BASE_URL": "https://app.myccx.io",
"CCX_USERNAME": "your-email@example.com",
"CCX_PASSWORD": "your-password"
}
}
}
}
Install from source
git clone https://github.com/severalnines/ccx-mcp.git
cd ccx-mcp
npm install
npm run build
Then point your MCP client to the built server (replace the path with where you cloned the repo):
{
"mcpServers": {
"ccx": {
"command": "node",
"args": ["/home/user/ccx-mcp/build/index.js"],
"env": {
"CCX_BASE_URL": "https://app.myccx.io",
"CCX_USERNAME": "your-email@example.com",
"CCX_PASSWORD": "your-password"
}
}
}
}
Or use OAUTH2 credentials (create them under Accounts -> Security in the CCX UI):
"CCX_CLIENT_ID": "your-client-id",
"CCX_CLIENT_SECRET": "your-client-secret"
Where to put the configuration
| MCP Client | Config file |
|---|---|
| Claude Code | .mcp.json in your project root, or ~/.claude/.mcp.json for global |
| Claude Desktop | ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) |
| Cursor | .cursor/mcp.json in your project root |
| Windsurf | ~/.codeium/windsurf/mcp_config.json |
`CCX_BASE_URL`
This is the URL of your CCX deployment. If you're using the hosted CCX service, it's typically https://app.myccx.io. If you're running a self-hosted CCX instance, use its URL instead.
Using OAuth2 instead of password
Replace CCX_USERNAME and CCX_PASSWORD with CCX_CLIENT_ID and CCX_CLIENT_SECRET:
{
"mcpServers": {
"ccx": {
"command": "npx",
"args": ["-y", "@severalnines/ccx-mcp"],
"env": {
"CCX_BASE_URL": "https://app.myccx.io",
"CCX_CLIENT_ID": "your-client-id",
"CCX_CLIENT_SECRET": "your-client-secret"
}
}
}
}
You can create OAuth2 credentials in the CCX UI under Account > Security.
Then ask your AI assistant things like:
- "List my datastores"
- "Create a PostgreSQL cluster on AWS in eu-west-1"
- "Get the connection string for my production database"
- "Add 10.0.0.0/24 as a trusted source on my cluster"
- "Create a new database user called appuser"
- "Scale my cluster to a medium instance"
- "Show me the slowest queries on my database"
- "List backups for my production cluster"
- "What's the CPU usage on my database?"
- "List the default parameters for PostgreSQL 16"
- "Create a parameter group for MySQL 8.4 with max_connections set to 500"
Authentication
Password Auth
Set CCX_USERNAME and CCX_PASSWORD:
{
"env": {
"CCX_BASE_URL": "https://app.myccx.io",
"CCX_USERNAME": "your-email@example.com",
"CCX_PASSWORD": "your-password"
}
}
OAuth2 (Client Credentials)
For programmatic or CI/CD use, set CCX_CLIENT_ID and CCX_CLIENT_SECRET instead:
{
"env": {
"CCX_BASE_URL": "https://app.myccx.io",
"CCX_CLIENT_ID": "your-client-id",
"CCX_CLIENT_SECRET": "your-client-secret"
}
}
Available Tools
Datastore Management
| Tool | Description |
|---|---|
ccx_list_datastores |
List all database clusters with status, vendor, and cloud provider |
ccx_get_datastore |
Get detailed cluster info including credentials and job progress |
ccx_create_datastore |
Create a new cluster (only vendor, cloud provider, and region required) |
ccx_delete_datastore |
Delete a cluster (requires explicit confirmation) |
ccx_get_nodes |
Get cluster nodes with roles, status, and IP addresses |
ccx_get_connection_string |
Connection strings in URI, CLI, JDBC, and env formats |
ccx_scale_datastore |
Scale instance size (CPU/RAM) or expand storage volume |
ccx_add_node |
Add a new replica node to a cluster |
Cloud & Plans
| Tool | Description |
|---|---|
ccx_list_clouds |
List available cloud providers and regions |
ccx_list_plans |
List instance sizes, volume types, a |
Tools 10
ccx_list_datastoresList all database clusters with status, vendor, and cloud providerccx_get_datastoreGet detailed cluster info including credentials and job progressccx_create_datastoreCreate a new clusterccx_delete_datastoreDelete a clusterccx_get_nodesGet cluster nodes with roles, status, and IP addressesccx_get_connection_stringConnection strings in URI, CLI, JDBC, and env formatsccx_scale_datastoreScale instance size or expand storage volumeccx_add_nodeAdd a new replica node to a clusterccx_list_cloudsList available cloud providers and regionsccx_list_plansList instance sizes and volume typesEnvironment Variables
CCX_BASE_URLrequiredThe URL of your CCX deploymentCCX_USERNAMEYour CCX account emailCCX_PASSWORDYour CCX account passwordCCX_CLIENT_IDOAuth2 client IDCCX_CLIENT_SECRETOAuth2 client secret