AnalyticDB for MySQL
An interface for AI agents to interact with AnalyticDB for MySQL databases, allowing them to retrieve metadata and execute SQL operations.
AnalyticDB for MySQL MCP Server
English | 中文
AnalyticDB for MySQL MCP Server is a universal interface between AI Agents and AnalyticDB MySQL. It provides two categories of capabilities:
- OpenAPI Tools (
openapigroup): Manage clusters, whitelists, accounts, networking, monitoring, diagnostics, and audit logs via Alibaba Cloud OpenAPI. - SQL Tools & Resources (
sqlgroup): Connect directly to ADB MySQL clusters to execute SQL, view execution plans, and browse database metadata.
Read-only tools are annotated with ToolAnnotations(readOnlyHint=True) per the MCP protocol, allowing clients to distinguish them from mutating operations.
一、Prerequisites
- Python >= 3.13
- uv (recommended package manager and runner)
- Alibaba Cloud AccessKey (required for OpenAPI tools)
- Optional: ADB MySQL connection credentials (for SQL tools in direct-connection mode)
二、Quick Start
2.1 Using cherry-studio (Recommended)
- Download and install cherry-studio
- Follow the documentation to install
uv, which is required for the MCP environment - Configure and use ADB MySQL MCP according to the documentation. You can quickly import the configuration using the JSON below.

Configuration A — SQL tools only (execute queries, view plans, browse metadata):
{
"mcpServers": {
"adb-mysql-mcp-server": {
"name": "adb-mysql-mcp-server",
"type": "stdio",
"isActive": true,
"command": "uv",
"args": [
"--directory",
"/path/to/alibabacloud-adb-mysql-mcp-server",
"run",
"adb-mysql-mcp-server"
],
"env": {
"ADB_MYSQL_HOST": "your_adb_mysql_host",
"ADB_MYSQL_PORT": "3306",
"ADB_MYSQL_USER": "your_username",
"ADB_MYSQL_PASSWORD": "your_password",
"ADB_MYSQL_DATABASE": "your_database"
}
}
}
}
Configuration B — OpenAPI tools (cluster management, diagnostics, monitoring):
Note: Please set
ALIBABA_CLOUD_ACCESS_KEY_IDandALIBABA_CLOUD_ACCESS_KEY_SECRETto your Alibaba Cloud AccessKey credentials.
{
"mcpServers": {
"adb-mysql-mcp-server": {
"name": "adb-mysql-mcp-server",
"type": "stdio",
"isActive": true,
"command": "uv",
"args": [
"--directory",
"/path/to/alibabacloud-adb-mysql-mcp-server",
"run",
"adb-mysql-mcp-server"
],
"env": {
"ALIBABA_CLOUD_ACCESS_KEY_ID": "your_access_key_id",
"ALIBABA_CLOUD_ACCESS_KEY_SECRET": "your_access_key_secret"
}
}
}
}
You can combine both configurations by setting all environment variables together. When AK/SK is not configured, OpenAPI tools are automatically disabled — only SQL tools remain active.
2.2 Using Claude Code
Download from GitHub and sync dependencies:
git clone https://github.com/aliyun/alibabacloud-adb-mysql-mcp-server
cd alibabacloud-adb-mysql-mcp-server
uv sync
Add the following configuration to the Claude Code MCP config file (project-level: .mcp.json in the project root, or user-level: ~/.claude/settings.json):
stdio transport:
{
"mcpServers": {
"adb-mysql-mcp-server": {
"command": "uv",
"args": [
"--directory",
"/path/to/alibabacloud-adb-mysql-mcp-server",
"run",
"adb-mysql-mcp-server"
],
"env": {
"ALIBABA_CLOUD_ACCESS_KEY_ID": "your_access_key_id",
"ALIBABA_CLOUD_ACCESS_KEY_SECRET": "your_access_key_secret",
"ALIBABA_CLOUD_SECURITY_TOKEN": "",
// Uncomment the following lines to enable SQL tools for direct database connection:
// "ADB_MYSQL_HOST": "your_adb_mysql_host",
// "ADB_MYSQL_PORT": "3306",
// "ADB_MYSQL_USER": "your_username",
// "ADB_MYSQL_PASSWORD": "your_password",
// "ADB_MYSQL_DATABASE": "your_database"
}
}
}
}
SSE transport — start the server first, then configure the client:
export ALIBABA_CLOUD_ACCESS_KEY_ID="your_access_key_id"
export ALIBABA_CLOUD_ACCESS_KEY_SECRET="your_access_key_secret"
# Uncomment the following lines to enable SQL tools for direct database connection:
# export ADB_MYSQL_HOST="your_adb_mysql_host"
# export ADB_MYSQL_PORT="3306"
# export ADB_MYSQL_USER="your_username"
# export ADB_MYSQL_PASSWORD="your_password"
# export ADB_MYSQL_DATABASE="your_database"
export SERVER_TRANSPORT=sse
export SERVER_PORT=8000
uv --directory /path/to/alibabacloud-adb-mysql-mcp-server run adb-mysql-mcp-server
{
"mcpServers": {
"adb-mysql-mcp-server": {
"url": "http://localhost:8000/sse"
}
}
}
Streamable HTTP transport — start the server first, then configure the client:
export ALIBABA_CLOUD_ACCESS_KEY_ID="your_access_key_id"
export ALIBABA_CLOUD_ACCESS_KEY_SECRET="your_access_key_secret"
# Uncomment the following lines to enable SQL tools for direct database connection:
# export ADB_MYSQL_HOST="your_adb_mysql_host"
# export ADB_MYSQL_PORT="3306"
# export ADB_MYSQL_USER="your_username"
# export ADB_MYSQL_PASSWORD="your_password"
# export ADB_MYSQL_DATABASE="your_database"
export SERVER_TRANSPORT=streamable_http
export SERVER_PORT=8000
uv --directory /path/to/alibabacloud-adb-mysql-mcp-server run adb-mysql-mcp-server
{
"mcpServers": {
"adb-mysql-mcp-server": {
"url": "http://localhost:8000/mcp"
}
}
}
Note: When
ADB_MYSQL_USERandADB_MYSQL_PASSWORDare not configured but AK/SK is available, a temporary database account is automatically created via OpenAPI for SQL execution and cleaned up afterward.
2.3 Using Cline
Set environment variables and run the MCP server:
export ALIBABA_CLOUD_ACCESS_KEY_ID="your_access_key_id"
export ALIBABA_CLOUD_ACCESS_KEY_SECRET="your_access_key_secret"
export SERVER_TRANSPORT=sse
export SERVER_PORT=8000
uv --directory /path/to/alibabacloud-adb-mysql-mcp-server run adb-mysql-mcp-server
Then configure the Cline remote server:
remote_server = "http://127.0.0.1:8000/sse"
三、Environment Variables
| Variable | Required | Description |
|---|---|---|
ALIBABA_CLOUD_ACCESS_KEY_ID | Yes (OpenAPI tools) | Alibaba Cloud AccessKey ID |
ALIBABA_CLOUD_ACCESS_KEY_SECRET | Yes (OpenAPI tools) | Alibaba Cloud AccessKey Secret |
ALIBABA_CLOUD_SECURITY_TOKEN | No | STS temporary security token |
ADB_MYSQL_HOST | No | Database host (direct-connection mode) |
ADB_MYSQL_PORT | No | Database port, default 3306 (direct-connection mode) |
ADB_MYSQL_USER | No | Database username (direct-connection mode) |
ADB_MYSQL_PASSWORD | No | Database password (direct-connection mode) |
ADB_MYSQL_DATABASE | No | Default database name (direct-connection mode) |
ADB_MYSQL_CONNECT_TIMEOUT | No | Database connection timeout in seconds, default 2 |
ADB_API_CONNECT_TIMEOUT | No | OpenAPI connection timeout in milliseconds, default 10000 (10s) |
ADB_API_READ_TIMEOUT | No | OpenAPI read timeout in milliseconds, default 300000 (5min) |
SERVER_TRANSPORT | No | Transport protocol: stdio (default), sse, streamable_http |
SERVER_PORT | No | SSE/HTTP server port, default 8000 |
四、Tool List
4.1 Cluster Management (group: openapi)
| Tool | Description |
|---|---|
describe_db_clusters | List ADB MySQL clusters in a region |
describe_db_cluster_attribute | Get detailed cluster attributes |
describe_cluster_access_whitelist | Get cluster IP whitelist |
modify_cluster_access_whitelist | Modify cluster IP whitelist |
describe_accounts | List database accounts in a cluster |
describe_cluster_net_info | Get cluster network connection info |
get_current_time | Get current server time |
4.2 Diagnostics & Monitoring (group: openapi)
| Tool | Description |
|---|---|
describe_db_cluster_performance | Query cluster performance metrics (CPU, memory, QPS, etc.) |
describe_db_cluster_health_status | Query cluster health status |
describe_diagnosis_records | Query SQL diagnosis summary records |
describe_diagnosis_sql_info | Get SQL execution details (plan, runtime info) |
describe_bad_sql_detection | Detect bad SQL impacting cluster stability |
describe_sql_patterns | Query SQL pattern list |
describe_table_statistics | Query table-level statistics |
4.3 Administration & Audit (group: openapi)
| Tool | Description |
|---|---|
create_account | Create a database account |
modify_db_cluster_description | Modify cluster description |
describe_db_cluster_space_summary | Get cluster storage space summary |
describe_audit_log_records | Query SQL audit log records |
4.4 Advanced Diagnostics (group: openapi)
| Tool | Description |
|---|---|
describe_executor_detection | Compute node diagnostics |
describe_worker_detection | Storage node diagnostics |
describe_controller_detection | Access node diagnostics |
describe_available_advices | Get optimization advices |
kill_process | Kill a running query process |
describe_db_resource_group | Get resource group configuration |
describe_excessive_primary_keys | Detect tables with excessive primary keys |
describe_oversize_non_partition_table_infos | Detect oversized non-partition tables |
describe_table_partition_diagnose | Diagnose table partitioning issues |
describe_inclined_tables | Detect data-skewed tables |
4.5 SQL Tools (group: sql)
| Tool | Description |
|---|---|
execute_sql | Execute SQL on an ADB MySQL cluster |
get_query_plan | Get EXPLAIN execution plan |
get_execution_plan | Get EXPLAIN ANALYZE actual execution plan |
4.6 MCP Resources (group: sql)
| Resource URI | Description |
|---|---|
adbmysql:///databases | List all databases |
adbmysql:///{database}/tables | List all tables in a database |
adbmysql:///{database}/{table}/ddl | Get table DDL |
adbmysql:///config/{key}/value | Get a config key value |
五、Local Development
git clone https://github.com/aliyun/alibabacloud-adb-mysql-mcp-server
cd alibabacloud-adb-mysql-mcp-server
uv sync
Run tests:
uv run python -m pytest test/ -v
Debug with MCP Inspector:
npx @modelcontextprotocol/inspector \
-e ALIBABA_CLOUD_ACCESS_KEY_ID=your_ak \
-e ALIBABA_CLOUD_ACCESS_KEY_SECRET=your_sk \
uv --directory /path/to/alibabacloud-adb-mysql-mcp-server run adb-mysql-mcp-server
六、SKILL
In addition to the MCP server above, this project also provides an independent SKILL under the skill/ directory. The Skill can be deployed directly to Claude Code without relying on this MCP server (it calls ADB MySQL OpenAPI through call_adb_api.py in the SKILL directory).
The Skill covers cluster information queries, performance monitoring, slow query diagnosis, SQL Pattern analysis, and SQL execution, with built-in guided diagnostic workflows for common scenarios.
For setup and usage details, see skill/skill_readme.md.
Note: The evolution of this Skill will be aligned with our next-generation Agent in the future. Stay tuned.
License
Apache License 2.0
İlgili Sunucular
air-Q
Allows easy local access to air-Q devices for retrieving air quality data
VictoriaMetrics
A server for writing and querying time series data using the VictoriaMetrics API.
Odoo Accounting MCP Server
Integrates with Odoo Accounting via XML-RPC, allowing AI tools to query and analyze account journal entries for auditing purposes.
Metabase Server
Integrates with Metabase for data visualization and business intelligence. Requires METABASE_URL, METABASE_USERNAME, and METABASE_PASSWORD environment variables.
Local FAISS
About Local FAISS vector store as an MCP server – drop-in local RAG for Claude / Copilot / Agents.
Neo4j Server
Interact with and explore graph data in a Neo4j database.
CData Oracle Eloqua
A read-only MCP server to query live Oracle Eloqua data. Requires a separate CData JDBC Driver for Oracle Eloqua.
InstantDB
Create, manage, and update applications on InstantDB, the modern Firebase.
Pinterest by CData
A read-only MCP server for querying live Pinterest data, powered by the CData JDBC Driver.
MySQL
A server for managing MySQL databases.