Skip to main content

PolarDB-X Cloud Zero MCP Server

Give any AI agent persistent MySQL databases through the Model Context Protocol.

Supports multiple simultaneous instances — create, manage, and query several databases at once.

How It Works

┌──────────────┐       MCP (stdio/http)       ┌──────────────────┐
│   AI Agent   │  ◄──────────────────────────► │  MCP Server      │
│ (Qoder, etc) │                               │  (this project)  │
└──────────────┘                               └────────┬─────────┘
                                                        │
                                     MySQL protocol     │  Zero API (HTTP)
                                     (pymysql + SSL)    │  (on-demand creation)
                                                        │
                                               ┌────────▼─────────┐
                                               │  PolarDB-X Cloud │
                                               │      Zero        │
                                               └──────────────────┘
  1. Agent calls create_instance() to create one or more databases (or provide credentials via env vars)
  2. Server registers instances in a local registry (~/.polardbx-zero-mcp/instances.json)
  3. All tools require an explicit instance_id — use list_instances() to discover them
  4. SQL is executed over the MySQL wire protocol (pymysql + SSL)

Installation

pip install polardbx-zero-mcp

IDE / MCP Client Configuration

Claude Code:

claude mcp add polardbx -- polardbx-zero-mcp

Qoder / Cursor / Windsurf / Claude Desktop — add to mcp.json:

{
  "mcpServers": {
    "polardbx": {
      "command": "polardbx-zero-mcp"
    }
  }
}

From source

git clone https://github.com/polardb/polardbx-zero-mcp.git
cd polardbx-zero-mcp
pip install -e .
polardbx-zero-mcp

HTTP transport: polardbx-zero-mcp --transport http (default http://localhost:8000/mcp)

Configuration

By default, no configuration is needed — just call create_instance() to get a free database.

To connect to your own MySQL or PolarDB-X instance, pass credentials via env. They will be registered as instance_id="env":

{
  "mcpServers": {
    "polardbx": {
      "command": "polardbx-zero-mcp",
      "env": {
        "MYSQL_URL": "mysql://user:password@host:3306/mydb"
      }
    }
  }
}

Or use individual variables:

Variable Description Default
MYSQL_URL Full MySQL connection URL --
MYSQL_HOST MySQL host --
MYSQL_PORT MySQL port 3306
MYSQL_USERNAME MySQL user --
MYSQL_PASSWORD MySQL password --
MYSQL_DATABASE Database name --

Tools

Instance Management

Tool Description
list_instances List all registered instances with edition, status, and expiry
create_instance Create a new PolarDB-X Cloud Zero instance (standard or enterprise)
remove_instance Remove an instance and close all its connections
get_instance_status Check a specific instance's connection info and remaining TTL

SQL Execution

All SQL tools require instance_id. Use execute_sql_tool for any SQL including SHOW TABLES, DESCRIBE, SHOW DATABASES, etc.

Tool Description
execute_sql_tool Execute any SQL statement (no type restrictions)
batch_execute Execute multiple SQL statements sequentially

Stateful Connections

Connections are bound to a specific instance. The conn_id includes the instance name (e.g. db1_conn_1) for easy identification.

Tool Description
acquire_connection Create a persistent connection on a specific instance
release_connection Release a specific connection (rolls back uncommitted transactions)
release_all_connections Release connections (optionally filtered by instance)
list_connections List active connections (optionally filtered by instance)

Key Parameters

create_instance:

Parameter Type Default Description
name string "" Optional name (e.g. "mydb"). Auto-generates inst_N if empty
edition string "standard" "standard" or "enterprise"
ttl_minutes int 720 Instance TTL in minutes (default 12h)
whitelist string "" IP whitelist (e.g. "1.2.3.4,5.6.7.0/24"). Pass "auto" to use the server's public IP

execute_sql_tool:

Parameter Type Default Description
sql string (required) SQL statement to execute
instance_id string (required) Target instance
database string "" Target database (optional)
conn_id string "" Stateful connection ID (optional)

batch_execute:

Parameter Type Default Description
statements list[string] (required) SQL statements to execute in order
instance_id string (required) Target instance
database string "" Target database (optional)
conn_id string "" Stateful connection ID (optional)

acquire_connection:

Parameter Type Default Description
instance_id string (required) Target instance to connect to
database string "" Target database (optional)
idle_timeout_minutes int 30 Auto-release after idle (minutes)

Development

pip install -e .                     # Install in editable mode
mcp dev polardbx_zero_mcp.py          # Test with MCP Inspector
polardbx-zero-mcp --transport http   # Run HTTP server

License

Apache-2.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

polardbx_zero_mcp-0.2.2.tar.gz (11.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

polardbx_zero_mcp-0.2.2-py3-none-any.whl (11.7 kB view details)

Uploaded Python 3

File details

Details for the file polardbx_zero_mcp-0.2.2.tar.gz.

File metadata

  • Download URL: polardbx_zero_mcp-0.2.2.tar.gz
  • Upload date:
  • Size: 11.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for polardbx_zero_mcp-0.2.2.tar.gz
Algorithm Hash digest
SHA256 812b16defb3214546532fcd358be011bece5d59bfcd2205be38bab493e5fb326
MD5 f2ef1720f0eaf6d650efd8441044e8bb
BLAKE2b-256 c2c6ffa08df66b881e19070016d0e693536487db8c4efcfb8f4d75f27b8bf29a

See more details on using hashes here.

File details

Details for the file polardbx_zero_mcp-0.2.2-py3-none-any.whl.

File metadata

File hashes

Hashes for polardbx_zero_mcp-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 3e72cfa9a974b98066dc1ee085dcd7550399f6baa6ab2f94194abde40552fa55
MD5 572688286c6ca836de40859ed7ea92ee
BLAKE2b-256 f16de2bb1d43f48d5d08c49e1a1b8e98f23fafad6aaaf16ec8ce950faded1193

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.2.2 This release

2 files

0.2.0

2 files

0.1.3

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page