AlibabaCloud DMS MCP Server

Um gateway com inteligência artificial para gerenciar mais de 40 fontes de dados, como Alibaba Cloud e bancos de dados populares, com recursos de NL2SQL, geração de código e migração de dados.

Documentação

English | 中文

AlibabaCloud DMS MCP Server

Gateway de Acesso Seguro a Dados para a Era de IA |Mecanismo Inteligente de Consulta de Dados|Suporta mais de 40 Fontes de Dados


Recursos Principais

Acesso Seguro

  • Gerenciamento de Segurança de Conta e Senha: Gerencie com segurança as senhas de contas de banco de dados sem manutenção manual, prevenindo efetivamente o vazamento de informações sensíveis.
  • Suporte a Acesso via Rede Interna: Permite o acesso ao banco de dados por meio de uma rede interna, mantendo os dados dentro das instalações e aumentando significativamente a segurança dos dados e a proteção da privacidade.
  • Controle de Permissões Granular: Suporta controle de acesso em nível de instância, banco de dados, tabela, campo e linha, restringindo com precisão as permissões do chamador para evitar operações não autorizadas e garantir a segurança dos dados.
  • Identificação e Bloqueio de SQL de Alto Risco: Mecanismo de regras integrado e robusto que identifica e bloqueia SQL potencialmente de alto risco em tempo real para mitigar riscos de segurança.
  • Trilha de Auditoria de SQL: Registra todos os logs de operações SQL, suportando rastreabilidade completa e auditorias de conformidade para atender aos requisitos regulatórios.

Consulta Inteligente de Dados

  • Algoritmo NL2SQL Integrado: Com base em perguntas em linguagem natural, ele combina inteligentemente tabelas de dados, entende a semântica de negócios dentro das tabelas, gera e executa consultas SQL e obtém resultados rapidamente.
  • Base de Conhecimento Personalizada: Metadados integrados e base de conhecimento para consulta de dados, suporta conhecimento de negócios personalizado e padrões de consulta para construir capacidades de consulta inteligente de dados adaptadas aos cenários de negócios.

Suporte a Múltiplas Fontes de Dados

  • Ampla Gama de Fontes de Dados Suportadas: Suporta mais de 40 bancos de dados/data warehouses populares, permitindo acesso e integração unificados de múltiplas fontes.
  • Gerenciamento Unificado entre Ambientes: Suporta gerenciamento centralizado de instâncias de banco de dados em ambientes de desenvolvimento, teste e produção para melhorar a eficiência operacional.
  • Integração Perfeita entre Plataformas: Abrange as principais plataformas de nuvem, como Alibaba Cloud e AWS, bem como bancos de dados/data warehouses auto-hospedados, reduzindo efetivamente os custos de manutenção.

Ecossistema Suportado

  • Suporta todas as fontes de dados da Alibaba Cloud: RDS, PolarDB, série ADB, série Lindorm, série TableStore, série Maxcompute.
  • Suporta bancos de dados/data warehouses populares: MySQL, MariaDB, PostgreSQL, Oracle, SQLServer, Redis, MongoDB, StarRocks, Clickhouse, SelectDB, DB2, OceanBase, Gauss, BigQuery, etc.

Arquitetura Principal

Architecture

Métodos de Uso

O DMS MCP Server atualmente suporta dois modos de uso.

Modo Um: Modo Multi-instância

  • Suporta adicionar instâncias ao DMS, permitindo acesso a múltiplas instâncias de banco de dados.
  • Adequado para cenários em que é necessário gerenciar e acessar múltiplas instâncias de banco de dados.

Exemplo de Cenário:

Você é um DBA de empresa que precisa gerenciar e acessar vários tipos de instâncias de banco de dados (por exemplo, MySQL, Oracle, PostgreSQL) em ambientes de produção, teste e desenvolvimento. Com o DMS MCP Server, você pode alcançar acesso unificado e gerenciamento centralizado desses bancos de dados heterogêneos.

Exemplos de Perguntas Típicas:

  • Quais das minhas instâncias estão no ambiente de produção?
  • Obtenha uma lista de todos os bancos de dados chamados test.
  • Recupere detalhes do banco de dados test_db da instância myHost:myPort.
  • Quais tabelas existem no banco de dados test_db?
  • Use uma ferramenta para consultar dados do banco de dados test_db e responda: "Qual é o tráfego de usuários de hoje?"

Modo Dois: Modo Banco de Dados Único

  • Especifique diretamente o banco de dados de destino configurando o parâmetro CONNECTION_STRING no servidor (formato: dbName@host:port).
  • Adequado para cenários que focam no acesso a um único banco de dados.

Exemplo de Cenário 1:

Você é um desenvolvedor que acessa frequentemente um banco de dados fixo (por exemplo, mydb@192.168.1.100:3306) para desenvolvimento e testes. Configure o parâmetro CONNECTION_STRING na configuração do DMS MCP Server da seguinte forma:

CONNECTION_STRING = mydb@192.168.1.100:3306

Depois disso, toda vez que o serviço iniciar, o DMS MCP Server acessará diretamente este banco de dados especificado, sem precisar alternar instâncias.

Exemplos de Perguntas Típicas:

  • Quais tabelas eu tenho?
  • Mostre a estrutura de campos da tabela test_table.
  • Recupere as primeiras 20 linhas da tabela test_table.
  • Use uma ferramenta para responder: "Qual é o tráfego de usuários de hoje?"

Exemplo de Cenário 2:

Você é um analista de dados em uma empresa de e-commerce e precisa consultar e analisar frequentemente dados de negócios, como pedidos, usuários e produtos. O banco de dados de negócios principal da empresa está localizado em ecommerce@10.20.30.40:3306.

Configure os seguintes parâmetros no DMS MCP Server:

CONNECTION_STRING = ecommerce@10.20.30.40:3306

Basta fazer perguntas em linguagem natural, e o DMS MCP analisará a pergunta em SQL e retornará os resultados.

Exemplos de Perguntas Típicas:

  • Qual é o número total de pedidos hoje?
  • Como os números de pedidos são classificados por estado?
  • Qual é o número de novos usuários por dia nos últimos 7 dias?
  • Qual categoria de produto tem a maior receita de vendas?

Lista de Ferramentas

Nome da FerramentaDescriçãoModo Aplicável
addInstanceAdiciona uma instância ao DMS. Apenas instâncias Aliyun são suportadas.Modo Multi-instância
listInstancesBusca instâncias do DMS.Modo Multi-instância
getInstanceRecupera informações detalhadas sobre uma instância com base no host e porta.Modo Multi-instância
searchDatabaseBusca bancos de dados com base no schemaName.Modo Multi-instância
getDatabaseRecupera informações detalhadas sobre um banco de dados específico.Modo Multi-instância
listTablesLista tabelas sob um banco de dados especificado.Modo Multi-instância e Modo Banco de Dados Único
getTableDetailInfoRecupera informações detalhadas sobre uma tabela específica.Modo Multi-instância e Modo Banco de Dados Único
executeScriptExecuta um script SQL e retorna o resultado.Modo Multi-instância e Modo Banco de Dados Único
createDataChangeOrderCria uma ordem de alteração de dados no DMS.Modo Multi-instância e Modo Banco de Dados Único
getOrderInfoRecupera informações de ordem do DMS.Modo Multi-instância e Modo Banco de Dados Único
submitOrderApprovalSubmete a ordem para aprovação no DMS.Modo Multi-instância e Modo Banco de Dados Único
approveOrderAprova ou rejeita uma ordem no DMS.Modo Multi-instância e Modo Banco de Dados Único
generateSqlConverte perguntas em linguagem natural em consultas SQL.Modo Multi-instância
askDatabaseConsulta de banco de dados em linguagem natural (NL2SQL + execução de SQL).Modo Banco de Dados Único
fixSqlAnalisa e corrige erros de SQL.Modo Multi-instância e Modo Banco de Dados Único
answerSqlSyntaxResponde perguntas relacionadas à sintaxe SQL.Modo Multi-instância e Modo Banco de Dados Único
optimizeSqlAnalisa e otimiza o desempenho de SQL.Modo Multi-instância e Modo Banco de Dados Único

Para a lista completa de ferramentas, consulte: Lista de Ferramentas


Fontes de Dados Suportadas

DataSource/ToolNL2SQL nlsqlExecute script executeScriptShow schema getTableDetailInfoAccess control defaultAudit log default
MySQL✅✅✅✅✅
MariaDB✅✅✅✅✅
PostgreSQL✅✅✅✅✅
Oracle✅✅✅✅✅
SQLServer✅✅✅✅✅
Redis❌❌✅✅✅
MongoDB❌❌✅✅✅
StarRocks✅✅✅✅✅
Clickhouse✅✅✅✅✅
SelectDB✅✅✅✅✅
DB2✅✅✅✅✅
OceanBase✅✅✅✅✅
Gauss✅✅✅✅✅
BigQuery✅✅✅✅✅
PolarDB✅✅✅✅✅
PolarDB-X✅✅✅✅✅
AnalyticDB✅✅✅✅✅
Lindorm✅✅✅✅✅
TableStore❌❌✅✅✅
Maxcompute✅✅✅✅✅
Hologres✅✅✅✅✅

Pré-requisitos


Pré-configuração

Antes de acessar uma instância de banco de dados via DMS, você deve primeiro adicionar a instância ao DMS.

Existem dois métodos para adicionar uma instância:

Método Um: Use a ferramenta addInstance fornecida pelo DMS MCP para adicionar uma instância
O DMS MCP Server fornece a ferramenta addInstance para adicionar rapidamente uma instância ao DMS.
Para mais detalhes, consulte a descrição da ferramenta addInstance na "Lista de Ferramentas".

Método Dois: Adicione uma instância via console do DMS

  1. Faça login no Console do DMS.
  2. Na página inicial do console, clique no ícone Adicionar Instância na área de instâncias de banco de dados à esquerda.
  3. Na página Adicionar Instância, insira as informações da instância (por exemplo, endereço da instância, porta, nome de usuário, senha).
  4. Clique em Enviar para concluir a adição da instância.

Primeiros Passos

Opção 1: Executar a partir do Código Fonte

Baixar o Código

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

Configurar o Cliente MCP

Adicione o seguinte conteúdo ao arquivo de configuração:

Modo Multi-instância

{
  "mcpServers": {
    "dms-mcp-server": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/alibabacloud-dms-mcp-server/src/alibabacloud_dms_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"
      }
    }
  }
}

Modo Banco de Dados Único

{
  "mcpServers": {
    "dms-mcp-server": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/alibabacloud-dms-mcp-server/src/alibabacloud_dms_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",
        "CONNECTION_STRING": "dbName@host:port"
      }
    }
  }
}

Opção 2: Executar via Pacote PyPI

Modo Multi-instância

{
  "mcpServers": {
    "dms-mcp-server": {
      "command": "uvx",
      "args": [
        "alibabacloud-dms-mcp-server@latest"
      ],
      "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"
      }
    }
  }
}

Modo Banco de Dados Único

{
  "mcpServers": {
    "dms-mcp-server": {
      "command": "uvx",
      "args": [
        "alibabacloud-dms-mcp-server@latest"
      ],
      "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",
        "CONNECTION_STRING": "dbName@host:port"
      }
    }
  }
}

Fale Conosco

Para quaisquer dúvidas ou sugestões, junte-se ao Grupo Alibaba Cloud DMS MCP (ID do Grupo DingTalk: 129600002740) .

DingTalk

Segurança

Vínculo de Rede

Este MCP Server vincula-se apenas a 127.0.0.1 (localhost). Ele não suporta acesso remoto à rede. Todas as conexões devem originar-se da máquina local. Esse design garante que, mesmo que o servidor seja iniciado acidentalmente, ele não será exposto à rede.

Aviso de Execução de SQL

IMPORTANTE: Esta ferramenta foi projetada para fornecer capacidades completas de execução de SQL, incluindo instruções SELECT, INSERT, UPDATE, DELETE e DDL.

Ao usar este MCP Server, você reconhece e aceita o seguinte:

  1. Você é o único responsável por garantir que o AK/SK (AccessKey) usado tenha permissões apropriadas e mínimas configuradas no Alibaba Cloud RAM.
  2. É fortemente recomendado habilitar o Modo de Hospedagem Segura do DMS para suas instâncias de banco de dados, que fornece revisão de SQL integrada, identificação de riscos e fluxos de aprovação.
  3. Os mantenedores deste projeto não são responsáveis por qualquer perda de dados, corrupção ou incidentes de segurança resultantes da execução de SQL através desta ferramenta.
  4. Melhores práticas:
    • Use AK/SK somente leitura para cenários de apenas consulta
    • Habilite o controle de permissão refinado do DMS
    • Habilite o registro de auditoria de SQL para conformidade
    • Revise e rotacione regularmente as credenciais de acesso

Design de Segurança

  • Sem risco de injeção de comandos: O código não usa subprocess, os.system, eval() ou exec(). Todas as operações são realizadas através do SDK do Alibaba Cloud.
  • Sem risco de SSRF: Todas as solicitações de rede são enviadas a um endpoint fixo do Alibaba Cloud (dms-enterprise.cn-hangzhou.aliyuncs.com) via SDK. Nenhuma URL controlada pelo usuário é buscada.
  • Validação de entrada: As interfaces de busca validam o comprimento da entrada e rejeitam padrões de SQL potencialmente perigosos para prevenir injeção através de interfaces que não executam SQL.

Licença

Este projeto está licenciado sob a Licença Apache 2.0.


Habilidades do Agente (Independentes do MCP)

Além do MCP Server, este projeto também hospeda habilidades de Agente de IA para o DMS Enterprise. Essas habilidades permitem que qualquer agente de IA (Codex, ChatGPT, Cursor, etc.) gerencie recursos do DMS diretamente via OpenAPI — sem necessidade de protocolo MCP.

Início Rápido (Habilidades)

  1. Leia a definição da habilidade:
    skills/database/dms/alicloud-database-dms-enterprise/SKILL.md

  2. Descubra APIs disponíveis:

    python3 skills/database/dms/alicloud-database-dms-enterprise/scripts/list_openapi_meta_apis.py
    
  3. Configure o AccessKey:

    export ALICLOUD_ACCESS_KEY_ID="your-ak"
    export ALICLOUD_ACCESS_KEY_SECRET="your-sk"
    export ALICLOUD_REGION_ID="cn-hangzhou"
    

Capacidades das Habilidades

CategoriaOperações
Gerenciamento de InstânciasRegistrar, listar, atualizar, excluir instâncias de banco de dados
Execução e Auditoria de SQLExecutar scripts, NL2SQL, revisão e otimização de SQL
Gerenciamento de PermissõesCriar ordens de permissão, conceder/revogar permissões de usuário
Segurança de DadosIdentificação de colunas sensíveis, mascaramento de dados, logs de auditoria
Orquestração de TarefasCriar, executar, monitorar fluxos de tarefas (DAG)
Conhecimento de MetadadosObter/editar conhecimento de negócios de tabelas

Exemplos de Prompts

Consulte skills/examples/prompts/ para modelos de prompts baseados em cenários do DMS:

  • Gerenciamento de instâncias e consulta de recursos
  • Execução e auditoria de SQL
  • Gerenciamento de permissões e segurança
  • Orquestração de tarefas e alterações de dados
  • Descoberta de APIs e metadados

Índice de Habilidades

CategoriaHabilidadeDescriçãoCaminho
database/dmsalicloud-database-dms-enterpriseGerencie o Alibaba Cloud Data Management Service (DMS Enterprise) via OpenAPI. Use para gerenciamento de instâncias de banco de dados, auditoria de SQL, segurança de dados, orquestração de tarefas, proteção de dados sensíveis, gerenciamento de permissões e fluxos de trabalho de operação de banco de dados.skills/database/dms/alicloud-database-dms-enterprise

Para diretrizes específicas do agente, consulte AGENTS.md.