Alibaba Cloud RDS OpenAPI MCP Server

Gestiona el servicio de base de datos relacional (RDS) de Alibaba Cloud mediante la OpenAPI.

Documentación

English | 中文

Alibaba Cloud RDS OpenAPI MCP Server

Servidor MCP para servicios RDS a través de OPENAPI

Requisitos previos

  1. Instale uv desde Astral o el README de GitHub
  2. Instale Python usando uv python install 3.12
  3. Credenciales de Alibaba Cloud con acceso a los servicios RDS de Alibaba Cloud

Inicio rápido

Usando cherry-studio (Recomendado)

  1. Descargue e instale cherry-studio
  2. Siga la documentación para instalar uv, que es necesario para el entorno MCP
  3. Configure y use RDS MCP según la documentación. Puede importar rápidamente la configuración de RDS MCP usando el JSON a continuación. Establezca ALIBABA_CLOUD_ACCESS_KEY_ID y ALIBABA_CLOUD_ACCESS_KEY_SECRET con su AK/SK de Alibaba Cloud.

El siguiente error puede aparecer durante la importación, puede ignorarse: xxx settings.mcp.addServer.importFrom.connectionFailed

cherry_config
{
  "mcpServers": {
    "rds-openapi": {
      "name": "rds-openapi",
      "type": "stdio",
      "description": "",
      "isActive": true,
      "registryUrl": "",
      "command": "uvx",
      "args": [
        "alibabacloud-rds-openapi-mcp-server@latest"
      ],
      "env": {
        "ALIBABA_CLOUD_ACCESS_KEY_ID": "$you_access_id",
        "ALIBABA_CLOUD_ACCESS_KEY_SECRET": "$you_access_key"
      }
    }
  }
}
  1. Finalmente, haga clic para activar MCP

    mcp_turn_on
  2. Puede usar la plantilla de prompt proporcionada a continuación para mejorar su experiencia.

Usando Cline

Configure su entorno y ejecute el servidor MCP.

# set env
export SERVER_TRANSPORT=sse;
export SERVER_HOST=127.0.0.1; # Default: 127.0.0.1. API_KEY is required when binding to a non-loopback host.
export ALIBABA_CLOUD_ACCESS_KEY_ID=$you_access_id;
export ALIBABA_CLOUD_ACCESS_KEY_SECRET=$you_access_key;
export ALIBABA_CLOUD_SECURITY_TOKEN=$you_sts_security_token; # optional, required when using STS Token 
export API_KEY=$you_mcp_server_api_key; # Required when SERVER_HOST is not a loopback address.
export ENABLE_WRITE_TOOLS=false; # Set true only when intentionally exposing write-capable tools on a non-loopback host.
export ALLOW_HEADER_CREDENTIALS=false; # Default false. Set true only in trusted deployments that require per-request credentials.

# run mcp server
uvx alibabacloud-rds-openapi-mcp-server@latest

Después de ejecutar el servidor MCP, verá la siguiente salida:

INFO:     Started server process [91594]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)

Y luego configure Cline.

remote_server = "http://127.0.0.1:8000/sse";

Cuando API_KEY esté configurado, los clientes MCP deben enviar Authorization: Bearer <API_KEY>.

Si encuentra un error de 401 Incorrect API key provided al usar Qwen, consulte la documentación para soluciones.

Usando Claude

Descargue desde Github

git clone https://github.com/aliyun/alibabacloud-rds-openapi-mcp-server.git

Agregue la siguiente configuración al archivo de configuración del cliente MCP:

{
  "mcpServers": {
    "rds-openapi-mcp-server": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/alibabacloud-rds-openapi-mcp-server/src/alibabacloud_rds_openapi_mcp_server",
        "run",
        "server.py"
      ],
      "env": {
        "ALIBABA_CLOUD_ACCESS_KEY_ID": "access_id",
        "ALIBABA_CLOUD_ACCESS_KEY_SECRET": "access_key",
        "ALIBABA_CLOUD_SECURITY_TOKEN": "sts_security_token",
        // optional, required when using STS Token
      }
    }
  }
}

Componentes

Herramientas OpenAPI

  • add_tags_to_db_instance: Agregar etiquetas a una instancia RDS.
  • allocate_instance_public_connection: Asignar una conexión pública para una instancia RDS.
  • attach_whitelist_template_to_instance: Adjuntar una plantilla de lista blanca a una instancia RDS.
  • create_db_instance: Crear una instancia RDS.
  • create_db_instance_account: Crear una cuenta para una instancia RDS.
  • describe_all_whitelist_template: Consultar la lista de plantillas de lista blanca.
  • describe_available_classes: Consultar clases de instancia disponibles y rangos de almacenamiento.
  • describe_available_zones: Consultar zonas disponibles para instancias RDS.
  • describe_bills: Consultar el resumen de consumo de todas las instancias de producto o elementos de facturación para un usuario dentro de un período de facturación específico.
  • describe_db_instance_accounts: Recuperar por lotes la información de cuentas de múltiples instancias RDS.
  • describe_db_instance_attribute: Consultar los detalles de una instancia.
  • describe_db_instance_databases: Recuperar por lotes la información de bases de datos de múltiples instancias RDS.
  • describe_db_instance_ip_allowlist: Recuperar por lotes las configuraciones de lista blanca de IP de múltiples instancias RDS.
  • describe_db_instance_net_info: Recuperar por lotes los detalles de configuración de red de múltiples instancias RDS.
  • describe_db_instance_parameters: Recuperar por lotes la información de parámetros de múltiples instancias RDS.
  • describe_db_instance_performance: Consultar los datos de rendimiento de una instancia.
  • describe_db_instances: Consultar instancias.
  • describe_error_logs: Consultar el registro de errores de una instancia.
  • describe_instance_linked_whitelist_template: Consultar la lista de plantillas de lista blanca.
  • describe_monitor_metrics: Consultar métricas de rendimiento y diagnóstico de una instancia usando la API DAS (Database Autonomy Service).
  • describe_slow_log_records: Consultar registros de consultas lentas para una instancia RDS.
  • describe_sql_insight_statistic: Consultar estadísticas de registros SQL, incluyendo tiempo de costo SQL, tiempos de ejecución y cuenta.
  • describe_vpcs: Consultar la lista de VPC.
  • describe_vswitches: Consultar la lista de VSwitch.
  • modify_security_ips: Modificar la lista blanca de IP de seguridad de la instancia RDS.
  • get_current_time: Obtener la hora actual.
  • modify_db_instance_description: Modificar las descripciones de la instancia RDS.
  • modify_db_instance_spec: Modificar las especificaciones de la instancia RDS.
  • modify_parameter: Modificar los parámetros de la instancia RDS.
  • restart_db_instance: Reiniciar una instancia RDS.

Herramientas SQL

El servidor MCP creará automáticamente una cuenta de solo lectura, ejecutará la declaración SQL y luego eliminará automáticamente la cuenta. Este proceso requiere que el servidor MCP pueda conectarse a la instancia.

  • explain_sql: Ejecutar EXPLAIN para una sola declaración SELECT y devolver el plan de ejecución.
  • show_engine_innodb_status: Ejecutar sql show engine innodb status y devolver el resultado sql.
  • show_create_table: Ejecutar SHOW CREATE TABLE para identificadores de base de datos y tablas validados.
  • show_largest_table: Consultar las primeras tablas con mayor ocupación de espacio.
  • show_largest_table_fragment: Consultar las tablas con los fragmentos de tabla más grandes.
  • query_sql: Ejecutar una sola declaración SQL de solo lectura (SELECT, SHOW, DESCRIBE o EXPLAIN) y devolver el resultado sql.

Conjuntos de herramientas

Los conjuntos de herramientas agrupan las herramientas MCP disponibles para que pueda habilitar solo lo que necesita. Configure los conjuntos de herramientas al iniciar el servidor usando cualquiera de:

  • Línea de comandos: parámetro --toolsets
  • Variable de entorno: MCP_TOOLSETS

Conjuntos de herramientas disponibles

Aquí hay una lista de conjuntos de herramientas y sus funciones:

  • rds: Habilita todas las herramientas para el servicio RDS estándar administrado

  • rds_custom_read: Habilita herramientas de solo lectura para RDS Custom.

  • rds_custom_all: Habilita herramientas completas de lectura y escritura para RDS Custom.

Formato

Use nombres de conjuntos de herramientas separados por comas (sin espacios alrededor de las comas):

rds,rds_custom_all

Ejemplos

# Single toolset
--toolsets rds

# Multiple tools
--toolsets rds,rds_mssql_custom

# Environment variable
export MCP_TOOLSETS=rds,rds_custom_all

Comportamiento predeterminado

Si no se especifica ningún conjunto de herramientas, el grupo predeterminado rds se carga automáticamente.

Recursos

Ninguno por ahora

Habilidades

Este proyecto admite la extensión de las capacidades de RDS Copilot a través de Habilidades. Hay dos habilidades disponibles:

  • alibabacloud-rds-copilot: Invoca la API del Asistente de IA de RDS para preguntas y respuestas inteligentes, optimización de SQL y resolución de problemas.
  • alibabacloud-rds-instances-manage: Expone las herramientas OpenAPI y herramientas SQL de este proyecto como un script/CLI para usar con OpenClaw, Claude Code y plataformas similares. El modelo ejecuta alibabacloud-rds-instances-manage list y alibabacloud-rds-instances-manage run <tool_name> '<JSON args>' para administrar instancias RDS (consultar instancias, monitoreo, registros lentos, parámetros, ejecutar SQL de solo lectura, etc.). Después de instalar el paquete, el comando alibabacloud-rds-instances-manage está disponible; el directorio de habilidades es skill/alibabacloud-rds-instances-manage/.

Para información detallada sobre el uso de Habilidades, consulte: Documentación de Habilidades

Prompts

# Role  
You are a professional Alibaba Cloud RDS Copilot, specializing in providing customers with efficient technical support and solutions for RDS (Relational Database Service). Your goal is to help customers resolve issues quickly through clear problem decomposition, precise tool invocation, and accurate time calculations.

## Skills  

### Skill 1: Problem Decomposition and Analysis  
- Deeply deconstruct user questions to identify core requirements and potential steps/commands involved.  
- Provide clear task breakdowns to ensure each step contributes to the final solution.
- Please organize your answers in a table format as much as possible.

### Skill 2: RDS MCP Tool Invocation  
- Proficiently invoke the RDS MCP tool to retrieve database information or execute operations.  
- Tool invocation must follow task decomposition and align with logical reasoning and customer needs.  
- Select appropriate MCP modules (e.g., monitoring data queries, performance diagnostics, backup/recovery) based on user requirements.  

### Skill 3: Time Interpretation and Calculation  
- Accurately parse relative time concepts like "today," "yesterday," or "the last hour."  
- Convert relative time expressions into precise time ranges or timestamps using the current time to support data queries or operations.  

## Constraints  
- **Task Decomposition First**: Always provide detailed task breakdowns.  
- **Tool Dependency Clarity**: All MCP tool invocations must be justified by clear task requirements and logical reasoning.  
- **Time Precision**: Calculate exact time ranges for time-sensitive queries.  
- **Professional Focus**: Discuss only Alibaba Cloud RDS-related technical topics.  
- **Safety Awareness**: Ensure no operations negatively impact customer databases.

Guía de implementación de seguridad

No exponga el endpoint MCP a Internet público. El servidor puede invocar herramientas OpenAPI de Alibaba Cloud RDS y puede usar credenciales de nube sensibles, por lo que un endpoint MCP expuesto a Internet puede crear riesgos de seguridad graves.

El modelo de implementación fuertemente recomendado es ejecutar el servidor MCP solo en la dirección de loopback local:

export SERVER_HOST=127.0.0.1

Si debe usar una dirección que no sea de loopback, restrínjala a una red privada de confianza, aplique controles de acceso a la red, configure API_KEY y evite habilitar herramientas con capacidad de escritura a menos que sea explícitamente necesario.

Contribuciones

¡Las contribuciones son bienvenidas! No dude en enviar una Solicitud de Extracción (Pull Request).

  1. Haga un fork del repositorio
  2. Cree su rama de características (git checkout -b feature/amazing-feature)
  3. Haga commit de sus cambios (git commit -m 'Add some amazing feature')
  4. Haga push a la rama (git push origin feature/amazing-feature)
  5. Abra una Solicitud de Extracción (Pull Request)

Licencia

Este proyecto está licenciado bajo la Licencia Apache 2.0.

Información de contacto

Para cualquier pregunta o inquietud, contáctenos a través del grupo DingTalk: 106730017609

store