AlibabaCloud DMS MCP Server
Una puerta de enlace impulsada por IA para gestionar más de 40 fuentes de datos como Alibaba Cloud y bases de datos convencionales, con funciones de NL2SQL, generación de código y migración de datos.
Documentación
English | 中文
AlibabaCloud DMS MCP Server
Puerta de enlace de acceso seguro a datos de la era de la IA |Motor inteligente de consulta de datos |Soporta más de 40 fuentes de datos
Características principales
Acceso seguro
- Gestión segura de cuentas y contraseñas: Gestiona de forma segura las contraseñas de las cuentas de bases de datos sin mantenimiento manual, previniendo eficazmente la fuga de información sensible.
- Soporte de acceso a intranet: Permite el acceso a bases de datos a través de una red interna, manteniendo los datos dentro de las instalaciones y mejorando significativamente la seguridad de los datos y la protección de la privacidad.
- Control de permisos de grano fino: Soporta control de acceso a nivel de instancia, base de datos, tabla, campo y fila, restringiendo con precisión los permisos de los llamadores para prevenir operaciones no autorizadas y garantizar la seguridad de los datos.
- Identificación y bloqueo de SQL de alto riesgo: Motor de reglas integrado que identifica y bloquea SQL potencialmente de alto riesgo en tiempo real para mitigar riesgos de seguridad.
- Registro de auditoría de SQL: Registra todos los registros de operaciones SQL, soportando trazabilidad completa y auditorías de cumplimiento para satisfacer los requisitos regulatorios.
Consulta inteligente de datos
- Algoritmo NL2SQL integrado: Basado en preguntas de entrada en lenguaje natural, empareja inteligentemente tablas de datos, comprende la semántica empresarial dentro de las tablas, genera y ejecuta consultas SQL, y obtiene resultados rápidamente.
- Base de conocimiento personalizada: Metadatos integrados y base de conocimiento para consulta de datos, soporta conocimiento empresarial personalizado y patrones de consulta para construir capacidades de consulta inteligente de datos adaptadas a los escenarios empresariales.
Soporte de múltiples fuentes de datos
- Amplia gama de soporte de fuentes de datos: Soporta más de 40 bases de datos/almacenes de datos principales, permitiendo acceso unificado e integración desde múltiples fuentes.
- Gestión unificada entre entornos: Soporta gestión centralizada de instancias de bases de datos en entornos de desarrollo, prueba y producción para mejorar la eficiencia operativa.
- Integración perfecta entre plataformas: Cubre las principales plataformas en la nube como Alibaba Cloud y AWS, así como bases de datos/almacenes de datos autoalojados, reduciendo eficazmente los costos de mantenimiento.
Ecosistema soportado
- Soporta todas las fuentes de datos de Alibaba Cloud: RDS, PolarDB, serie ADB, serie Lindorm, serie TableStore, serie Maxcompute.
- Soporta bases de datos/almacenes de datos principales: MySQL, MariaDB, PostgreSQL, Oracle, SQLServer, Redis, MongoDB, StarRocks, Clickhouse, SelectDB, DB2, OceanBase, Gauss, BigQuery, etc.
Arquitectura principal
Métodos de uso
DMS MCP Server actualmente soporta dos modos de uso.
Modo uno: Modo multi-instancia
- Soporta agregar instancias a DMS, permitiendo el acceso a múltiples instancias de bases de datos.
- Adecuado para escenarios donde se requiere gestionar y acceder a múltiples instancias de bases de datos.
Ejemplo de escenario:
Eres un DBA de empresa que necesita gestionar y acceder a varios tipos de instancias de bases de datos (por ejemplo, MySQL, Oracle, PostgreSQL) en entornos de producción, prueba y desarrollo. Con DMS MCP Server, puedes lograr acceso unificado y gestión centralizada de estas bases de datos heterogéneas.
Ejemplos de preguntas típicas:
- ¿Cuáles de mis instancias están en el entorno de producción?
- Obtén una lista de todas las bases de datos llamadas
test. - Recupera los detalles de la base de datos
test_dbde la instanciamyHost:myPort. - ¿Qué tablas hay en la base de datos
test_db? - Usa una herramienta para consultar datos de la base de datos
test_dby responde: "¿Cuál es el tráfico de usuarios de hoy?"
Modo dos: Modo de base de datos única
- Especifica directamente la base de datos objetivo configurando el parámetro
CONNECTION_STRINGen el servidor (formato:dbName@host:port). - Adecuado para escenarios que se centran en acceder a una sola base de datos.
Ejemplo de escenario 1:
Eres un desarrollador que accede frecuentemente a una base de datos fija (por ejemplo, mydb@192.168.1.100:3306) para desarrollo y pruebas. Configura el parámetro CONNECTION_STRING en la configuración de DMS MCP Server de la siguiente manera:
CONNECTION_STRING = mydb@192.168.1.100:3306
Después, cada vez que el servicio se inicie, DMS MCP Server accederá directamente a esta base de datos especificada sin necesidad de cambiar de instancia.
Ejemplos de preguntas típicas:
- ¿Qué tablas tengo?
- Muestra la estructura de campos de la tabla
test_table. - Recupera las primeras 20 filas de la tabla
test_table. - Usa una herramienta para responder: "¿Cuál es el tráfico de usuarios de hoy?"
Ejemplo de escenario 2:
Eres un analista de datos en una empresa de comercio electrónico, necesitando consultar y analizar frecuentemente datos empresariales como pedidos, usuarios y productos. La base de datos empresarial principal de la empresa se encuentra en ecommerce@10.20.30.40:3306.
Configura los siguientes parámetros en DMS MCP Server:
CONNECTION_STRING = ecommerce@10.20.30.40:3306
Simplemente haz preguntas en lenguaje natural, y DMS MCP analizará la pregunta en SQL y devolverá los resultados.
Ejemplos de preguntas típicas:
- ¿Cuál es el número total de pedidos hoy?
- ¿Cómo se clasifican los recuentos de pedidos por provincia?
- ¿Cuál es el número de nuevos usuarios cada día en los últimos 7 días?
- ¿Qué categoría de producto tiene los mayores ingresos por ventas?
Lista de herramientas
| Nombre de la herramienta | Descripción | Modo aplicable |
|---|---|---|
| addInstance | Agrega una instancia a DMS. Solo se soportan instancias de Aliyun. | Modo multi-instancia |
| listInstances | Busca instancias desde DMS. | Modo multi-instancia |
| getInstance | Recupera información detallada sobre una instancia basada en host y puerto. | Modo multi-instancia |
| searchDatabase | Busca bases de datos basándose en schemaName. | Modo multi-instancia |
| getDatabase | Recupera información detallada sobre una base de datos específica. | Modo multi-instancia |
| listTables | Lista tablas bajo una base de datos especificada. | Modo multi-instancia y modo de base de datos única |
| getTableDetailInfo | Recupera información detallada sobre una tabla específica. | Modo multi-instancia y modo de base de datos única |
| executeScript | Ejecuta un script SQL y devuelve el resultado. | Modo multi-instancia y modo de base de datos única |
| createDataChangeOrder | Crea una orden de cambio de datos en DMS. | Modo multi-instancia y modo de base de datos única |
| getOrderInfo | Recupera información de orden desde DMS. | Modo multi-instancia y modo de base de datos única |
| submitOrderApproval | Envía la orden para aprobación en DMS. | Modo multi-instancia y modo de base de datos única |
| approveOrder | Aprueba o rechaza una orden en DMS. | Modo multi-instancia y modo de base de datos única |
| generateSql | Convierte preguntas en lenguaje natural en consultas SQL. | Modo multi-instancia |
| askDatabase | Consulta de base de datos en lenguaje natural (NL2SQL + ejecutar SQL). | Modo de base de datos única |
| fixSql | Analiza y corrige errores de SQL. | Modo multi-instancia y modo de base de datos única |
| answerSqlSyntax | Responde preguntas relacionadas con la sintaxis de SQL. | Modo multi-instancia y modo de base de datos única |
| optimizeSql | Analiza y optimiza el rendimiento de SQL. | Modo multi-instancia y modo de base de datos única |
Para obtener la lista completa de herramientas, consulta: Lista de herramientas
Fuentes de datos compatibles
| DataSource/Tool | NL2SQL nlsql | Ejecutar script executeScript | Mostrar esquema getTableDetailInfo | Control de acceso default | Registro de auditoría default |
|---|---|---|---|---|---|
| MySQL | ✅ | ✅ | ✅ | ✅ | ✅ |
| MariaDB | ✅ | ✅ | ✅ | ✅ | ✅ |
| PostgreSQL | ✅ | ✅ | ✅ | ✅ | ✅ |
| Oracle | ✅ | ✅ | ✅ | ✅ | ✅ |
| SQLServer | ✅ | ✅ | ✅ | ✅ | ✅ |
| Redis | ❌ | ❌ | ✅ | ✅ | ✅ |
| MongoDB | ❌ | ❌ | ✅ | ✅ | ✅ |
| StarRocks | ✅ | ✅ | ✅ | ✅ | ✅ |
| Clickhouse | ✅ | ✅ | ✅ | ✅ | ✅ |
| SelectDB | ✅ | ✅ | ✅ | ✅ | ✅ |
| DB2 | ✅ | ✅ | ✅ | ✅ | ✅ |
| OceanBase | ✅ | ✅ | ✅ | ✅ | ✅ |
| Gauss | ✅ | ✅ | ✅ | ✅ | ✅ |
| BigQuery | ✅ | ✅ | ✅ | ✅ | ✅ |
| PolarDB | ✅ | ✅ | ✅ | ✅ | ✅ |
| PolarDB-X | ✅ | ✅ | ✅ | ✅ | ✅ |
| AnalyticDB | ✅ | ✅ | ✅ | ✅ | ✅ |
| Lindorm | ✅ | ✅ | ✅ | ✅ | ✅ |
| TableStore | ❌ | ❌ | ✅ | ✅ | ✅ |
| Maxcompute | ✅ | ✅ | ✅ | ✅ | ✅ |
| Hologres | ✅ | ✅ | ✅ | ✅ | ✅ |
Requisitos previos
- uv está instalado
- Python 3.10+ está instalado
- Un AK/SK o Token STS con derechos de acceso a Alibaba Cloud DMS (AliyunDMSFullAccess). Para agregar operaciones de permisos, consulte Gestión de autorización.
Configuración previa
Antes de acceder a una instancia de base de datos a través de DMS, primero debe agregar la instancia a DMS.
Existen dos métodos para agregar una instancia:
Método uno: Usar la herramienta addInstance proporcionada por DMS MCP para agregar una instancia
El servidor DMS MCP proporciona la herramienta addInstance para agregar rápidamente una instancia a DMS.
Para más detalles, consulte la descripción de la herramienta addInstance en la "Lista de herramientas".
Método dos: Agregar una instancia a través de la consola de DMS
- Inicie sesión en la Consola de DMS.
- En la página de inicio de la consola, haga clic en el icono Agregar instancia en el área de instancias de base de datos a la izquierda.
- En la página Agregar instancia, ingrese la información de la instancia (por ejemplo, dirección de la instancia, puerto, nombre de usuario, contraseña).
- Haga clic en Enviar para completar la adición de la instancia.
Primeros pasos
Opción 1: Ejecutar desde el código fuente
Descargar el código
git clone https://github.com/aliyun/alibabacloud-dms-mcp-server.git
Configurar el cliente MCP
Agregue el siguiente contenido al archivo de configuración:
Modo multi-instancia
{
"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 de base de datos única
{
"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"
}
}
}
}
Opción 2: Ejecutar a través del paquete PyPI
Modo multi-instancia
{
"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 de base de datos única
{
"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"
}
}
}
}
Contáctenos
Para cualquier pregunta o sugerencia, únase al Grupo MCP de Alibaba Cloud DMS (ID del grupo DingTalk: 129600002740) .
Seguridad
Enlace de red
Este servidor MCP solo se vincula a 127.0.0.1 (localhost). No admite acceso remoto a la red. Todas las conexiones deben originarse desde la máquina local. Este diseño garantiza que, incluso si el servidor se inicia accidentalmente, no estará expuesto a la red.
Descargo de responsabilidad sobre la ejecución de SQL
IMPORTANTE: Esta herramienta está diseñada para proporcionar capacidades completas de ejecución de SQL, incluidas sentencias SELECT, INSERT, UPDATE, DELETE y DDL.
Al usar este servidor MCP, usted reconoce y acepta lo siguiente:
- Usted es el único responsable de garantizar que el AK/SK (AccessKey) utilizado tenga permisos apropiados y mínimos configurados en Alibaba Cloud RAM.
- Se recomienda encarecidamente habilitar el Modo de alojamiento seguro de DMS para sus instancias de base de datos, que proporciona revisión de SQL integrada, identificación de riesgos y flujos de aprobación.
- Los mantenedores de este proyecto no son responsables de ninguna pérdida de datos, corrupción o incidentes de seguridad resultantes de la ejecución de SQL a través de esta herramienta.
- Mejores prácticas:
- Use AK/SK de solo lectura para escenarios de solo consulta
- Habilite el control de permisos detallado de DMS
- Habilite el registro de auditoría de SQL para cumplimiento
- Revise y rote regularmente las credenciales de acceso
Diseño de seguridad
- Sin riesgo de inyección de comandos: El código base no usa
subprocess,os.system,eval()oexec(). Todas las operaciones se realizan a través del SDK de Alibaba Cloud. - Sin riesgo de SSRF: Todas las solicitudes de red se envían a un endpoint fijo de Alibaba Cloud (
dms-enterprise.cn-hangzhou.aliyuncs.com) a través del SDK. No se obtienen URL controladas por el usuario. - Validación de entrada: Las interfaces de búsqueda validan la longitud de la entrada y rechazan patrones SQL potencialmente peligrosos para prevenir la inyección a través de interfaces que no son de ejecución de SQL.
Licencia
Este proyecto está licenciado bajo la Licencia Apache 2.0.
Habilidades del agente (independientes de MCP)
Además del servidor MCP, este proyecto también aloja habilidades de agente de IA para DMS Enterprise. Estas habilidades permiten que cualquier agente de IA (Codex, ChatGPT, Cursor, etc.) gestione recursos de DMS directamente a través de OpenAPI — sin necesidad de protocolo MCP.
Inicio rápido (habilidades)
-
Lea la definición de la habilidad:
skills/database/dms/alicloud-database-dms-enterprise/SKILL.md -
Descubra las API disponibles:
python3 skills/database/dms/alicloud-database-dms-enterprise/scripts/list_openapi_meta_apis.py -
Configure AccessKey:
export ALICLOUD_ACCESS_KEY_ID="your-ak" export ALICLOUD_ACCESS_KEY_SECRET="your-sk" export ALICLOUD_REGION_ID="cn-hangzhou"
Capacidades de las habilidades
| Categoría | Operaciones |
|---|---|
| Gestión de instancias | Registrar, listar, actualizar, eliminar instancias de base de datos |
| Ejecución y auditoría de SQL | Ejecutar scripts, NL2SQL, revisión y optimización de SQL |
| Gestión de permisos | Crear órdenes de permisos, otorgar/revocar permisos de usuario |
| Seguridad de datos | Identificación de columnas sensibles, enmascaramiento de datos, registros de auditoría |
| Orquestación de tareas | Crear, ejecutar, monitorear flujos de tareas (DAG) |
| Conocimiento de metadatos | Obtener/editar conocimiento empresarial de tablas |
Ejemplos de indicaciones
Consulte skills/examples/prompts/ para plantillas de indicaciones basadas en escenarios de DMS:
- Gestión de instancias y consulta de recursos
- Ejecución y auditoría de SQL
- Gestión de permisos y seguridad
- Orquestación de tareas y cambios de datos
- Descubrimiento de API y metadatos
Índice de habilidades
| Categoría | Habilidad | Descripción | Ruta |
|---|---|---|---|
| database/dms | alicloud-database-dms-enterprise | Gestionar el Servicio de Gestión de Datos de Alibaba Cloud (DMS Enterprise) a través de OpenAPI. Úselo para la gestión de instancias de base de datos, auditoría de SQL, seguridad de datos, orquestación de tareas, protección de datos sensibles, gestión de permisos y flujos de trabajo de operaciones de base de datos. | skills/database/dms/alicloud-database-dms-enterprise |
Para pautas específicas del agente, consulte AGENTS.md.