Alibaba Cloud RDS OpenAPI MCP Server

Gerencie o Alibaba Cloud Relational Database Service (RDS) usando a OpenAPI.

Documentação

English | 中文

Alibaba Cloud RDS OpenAPI MCP Server

Servidor MCP para serviços RDS via OPENAPI

Pré-requisitos

  1. Instale o uv a partir do Astral ou do README no GitHub
  2. Instale o Python usando uv python install 3.12
  3. Credenciais da Alibaba Cloud com acesso aos serviços RDS da Alibaba Cloud

Início Rápido

Usando o cherry-studio (Recomendado)

  1. Baixe e instale o cherry-studio
  2. Siga a documentação para instalar o uv, que é necessário para o ambiente MCP
  3. Configure e use o RDS MCP de acordo com a documentação. Você pode importar rapidamente a configuração do RDS MCP usando o JSON abaixo. Defina ALIBABA_CLOUD_ACCESS_KEY_ID e ALIBABA_CLOUD_ACCESS_KEY_SECRET com sua AK/SK da Alibaba Cloud.

O seguinte erro pode aparecer durante a importação e pode ser ignorado: 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. Por fim, clique para ativar o MCP

    mcp_turn_on
  2. Você pode usar o modelo de prompt fornecido abaixo para melhorar sua experiência.

Usando o Cline

Defina suas variáveis de ambiente e execute o 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

Após executar o servidor MCP, você verá a seguinte saída:

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)

E então configure o Cline.

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

Quando API_KEY estiver configurado, os clientes MCP devem enviar Authorization: Bearer <API_KEY>.

Se você encontrar um erro de 401 Incorrect API key provided ao usar o Qwen, consulte a documentação para soluções.

Usando o Claude

Baixe do Github

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

Adicione a seguinte configuração ao arquivo de configuração do 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

Ferramentas OpenAPI

  • add_tags_to_db_instance: Adiciona tags a uma instância RDS.
  • allocate_instance_public_connection: Aloca uma conexão pública para uma instância RDS.
  • attach_whitelist_template_to_instance: Anexa um modelo de whitelist a uma instância RDS.
  • create_db_instance: Cria uma instância RDS.
  • create_db_instance_account: Cria uma conta para a instância RDS.
  • describe_all_whitelist_template: Consulta a lista de modelos de whitelist.
  • describe_available_classes: Consulta classes de instância disponíveis e faixas de armazenamento.
  • describe_available_zones: Consulta zonas disponíveis para instâncias RDS.
  • describe_bills: Consulta o resumo de consumo de todas as instâncias de produto ou itens de cobrança de um usuário em um período de cobrança específico.
  • describe_db_instance_accounts: Recupera em lote informações de conta para múltiplas instâncias RDS.
  • describe_db_instance_attribute: Consulta os detalhes de uma instância.
  • describe_db_instance_databases: Recupera em lote informações de banco de dados para múltiplas instâncias RDS.
  • describe_db_instance_ip_allowlist: Recupera em lote configurações de whitelist de IP para múltiplas instâncias RDS.
  • describe_db_instance_net_info: Recupera em lote detalhes de configuração de rede para múltiplas instâncias RDS.
  • describe_db_instance_parameters: Recupera em lote informações de parâmetros para múltiplas instâncias RDS.
  • describe_db_instance_performance: Consulta os dados de desempenho de uma instância.
  • describe_db_instances: Consulta instâncias.
  • describe_error_logs: Consulta o log de erros de uma instância.
  • describe_instance_linked_whitelist_template: Consulta a lista de modelos de whitelist.
  • describe_monitor_metrics: Consulta métricas de desempenho e diagnóstico de uma instância usando a API DAS (Database Autonomy Service).
  • describe_slow_log_records: Consulta registros de slow log para uma instância RDS.
  • describe_sql_insight_statistic: Consulta estatísticas de log SQL, incluindo tempo de custo de SQL, número de execuções e conta.
  • describe_vpcs: Consulta a lista de VPC.
  • describe_vswitches: Consulta a lista de VSwitch.
  • modify_security_ips: Modifica a whitelist de IP de segurança da instância RDS.
  • get_current_time: Obtém a hora atual.
  • modify_db_instance_description: Modifica descrições da instância RDS.
  • modify_db_instance_spec: Modifica especificações da instância RDS.
  • modify_parameter: Modifica parâmetros da instância RDS.
  • restart_db_instance: Reinicia uma instância RDS.

Ferramentas SQL

O servidor MCP criará automaticamente uma conta somente leitura, executará a instrução SQL e, em seguida, excluirá automaticamente a conta. Esse processo requer que o servidor MCP possa se conectar à instância.

  • explain_sql: Executa EXPLAIN para uma única instrução SELECT e retorna o plano de execução.
  • show_engine_innodb_status: Executa sql show engine innodb status e retorna o resultado do sql.
  • show_create_table: Executa SHOW CREATE TABLE para identificadores de banco de dados e tabelas validados.
  • show_largest_table: Consulta as poucas tabelas com maior ocupação de espaço.
  • show_largest_table_fragment: Consulta as tabelas com os maiores fragmentos de tabela.
  • query_sql: Executa uma única instrução SQL somente leitura (SELECT, SHOW, DESCRIBE ou EXPLAIN) e retorna o resultado do sql.

Conjuntos de Ferramentas

Os conjuntos de ferramentas agrupam as ferramentas MCP disponíveis para que você possa habilitar apenas o que precisa. Configure os conjuntos de ferramentas ao iniciar o servidor usando:

  • Linha de comando: parâmetro --toolsets
  • Variável de ambiente: MCP_TOOLSETS

Conjuntos de Ferramentas Disponíveis

Aqui está uma lista de conjuntos de ferramentas e suas funções:

  • rds: Habilita todas as ferramentas para o serviço RDS padrão gerenciado

  • rds_custom_read: Habilita ferramentas somente leitura para o RDS Custom.

  • rds_custom_all: Habilita ferramentas completas de leitura e escrita para o RDS Custom.

Formato

Use nomes de conjuntos de ferramentas separados por vírgula (sem espaços ao redor das vírgulas):

rds,rds_custom_all

Exemplos

# Single toolset
--toolsets rds

# Multiple tools
--toolsets rds,rds_mssql_custom

# Environment variable
export MCP_TOOLSETS=rds,rds_custom_all

Comportamento Padrão

Se nenhum conjunto de ferramentas for especificado, o grupo padrão rds é carregado automaticamente.

Recursos

Nenhum no momento

Skills

Este projeto suporta a extensão das capacidades do RDS Copilot por meio de Skills. Duas skills estão disponíveis:

  • alibabacloud-rds-copilot: Invoca a API do Assistente de IA do RDS para Q&A inteligente, otimização de SQL e solução de problemas.
  • alibabacloud-rds-instances-manage: Expõe as ferramentas OpenAPI e ferramentas SQL deste projeto como um script/CLI para uso com OpenClaw, Claude Code e plataformas similares. O modelo executa alibabacloud-rds-instances-manage list e alibabacloud-rds-instances-manage run <tool_name> '<JSON args>' para gerenciar instâncias RDS (consultar instâncias, monitoramento, slow logs, parâmetros, executar SQL somente leitura, etc.). Após instalar o pacote, o comando alibabacloud-rds-instances-manage está disponível; o diretório da skill é skill/alibabacloud-rds-instances-manage/.

Para informações detalhadas sobre o uso de Skills, consulte: Documentação de Skills

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.

Guia de Implantação Segura

Não exponha o endpoint MCP à Internet pública. O servidor pode invocar ferramentas OpenAPI do RDS da Alibaba Cloud e pode usar credenciais sensíveis da nuvem, portanto, um endpoint MCP voltado para a Internet pode criar sérios riscos de segurança.

O modelo de implantação fortemente recomendado é executar o servidor MCP apenas no endereço de loopback local:

export SERVER_HOST=127.0.0.1

Se você precisar usar um endereço não loopback, restrinja-o a uma rede privada confiável, aplique controles de acesso à rede, configure API_KEY e evite habilitar ferramentas com capacidade de escrita, a menos que seja explicitamente necessário.

Contribuindo

Contribuições são bem-vindas! Sinta-se à vontade para enviar um Pull Request.

  1. Faça um fork do repositório
  2. Crie sua branch de funcionalidade (git checkout -b feature/amazing-feature)
  3. Faça commit das suas alterações (git commit -m 'Add some amazing feature')
  4. Envie para a branch (git push origin feature/amazing-feature)
  5. Abra um Pull Request

Licença

Este projeto é licenciado sob a Licença Apache 2.0.

Informações de Contato

Para qualquer dúvida ou preocupação, entre em contato conosco pelo grupo DingTalk: 106730017609

store