Skip to main content

MCP server that gives AI agents persistent MySQL databases via PolarDB-X Cloud Zero

Project description

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

Project details


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.

Supported by

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