Aiven
oficialNavega por tus proyectos de Aiven e interactúa con los servicios de PostgreSQL®, Apache Kafka®, ClickHouse® y OpenSearch®
¿Qué puedes hacer con Aiven MCP?
- Gestionar servicios de Aiven — Enumera, crea, actualiza y obtén detalles o métricas de PostgreSQL, Kafka y otros servicios de Aiven en tus proyectos.
- Trabajar con Kafka — Enumera, crea, actualiza y elimina temas, lee o produce mensajes, y gestiona conectores de Kafka Connect y sujetos de Schema Registry.
- Ejecutar consultas de PostgreSQL — Ejecuta consultas SQL de solo lectura o sentencias de escritura, obtén estadísticas de consultas y gestiona grupos de conexiones de PgBouncer.
- Desplegar aplicaciones — Crea y vuelve a desplegar aplicaciones Containerfile/Dockerfile y conecta repositorios de GitHub mediante integraciones de VCS.
- Buscar en la documentación de Aiven — Busca en la documentación oficial de Aiven en lenguaje natural (solo servidor alojado).
- Restringir el acceso — Habilita el modo de solo lectura, limita las herramientas a tipos de servicio específicos o permite herramientas de escritura individuales mediante una lista de permitidos.
Documentación
Servidor MCP de Aiven
Un servidor de Model Context Protocol (MCP) para la plataforma de datos en la nube Aiven.
Gestiona PostgreSQL, Apache Kafka, aplicaciones y otros servicios de Aiven directamente desde asistentes de IA como Claude, Cursor y VS Code Copilot.
[!WARNING] Úsalo con cuidado. Este servidor MCP puede crear, modificar y eliminar servicios y datos de Aiven en tu nombre. Los agentes de IA pueden ejecutar acciones destructivas (eliminar bases de datos, borrar servicios, producir mensajes) según su interpretación de tus indicaciones. Eres totalmente responsable de las acciones realizadas a través de esta herramienta.
Permisos: El acceso se rige por los permisos de usuario de Aiven asociados a la cuenta autenticada. El servidor MCP solo puede realizar acciones que tu usuario de Aiven tenga permitido hacer.
Seguridad de los agentes de IA: Los agentes de IA pueden necesitar credenciales de acceso (cadenas de conexión a bases de datos, tokens de streaming) para actuar en tu nombre. Revisa lo que hace tu agente, especialmente en entornos de producción. Sigue las políticas de seguridad de tu organización y realiza una evaluación de riesgos antes de dar a los agentes de IA acceso a recursos sensibles.
Inicio rápido
Opción 1: Remoto (alojado por Aiven)
El servidor MCP está alojado en https://mcp.aiven.live/mcp. Tu cliente MCP te pedirá que autorices en Aiven.
Claude Code
claude mcp add --scope user --transport http aiven-mcp "https://mcp.aiven.live/mcp"
Cursor
O añade manualmente a la configuración MCP de Cursor:
{
"mcpServers": {
"aiven-mcp": {
"url": "https://mcp.aiven.live/mcp"
}
}
}
VS Code / Copilot
Añade a .vscode/mcp.json en tu espacio de trabajo:
{
"servers": {
"aiven-mcp": {
"type": "http",
"url": "https://mcp.aiven.live/mcp"
}
}
}
Modo de solo lectura (remoto)
Activa el modo de solo lectura añadiendo ?read_only=true a la URL. Todas las operaciones de escritura se excluirán del MCP:
{
"mcpServers": {
"aiven-mcp": {
"url": "https://mcp.aiven.live/mcp?read_only=true"
}
}
}
Herramientas con alcance limitado (remoto)
Reduce la superficie de herramientas expuesta a tu agente de IA añadiendo ?services_scope= a la URL. Útil cuando solo trabajas con un subconjunto de servicios de Aiven y quieres mantener el contexto del agente enfocado. Combina los valores con comas. core (descubrimiento de proyectos/servicios) siempre se incluye de forma implícita.
Alcances válidos: all, core, pg, kafka, application, integrations, opensearch. Usa all para cargar explícitamente todas las herramientas (igual que omitir el parámetro). all no se puede combinar con otros alcances. opensearch sigue las mismas reglas que kafka o pg (herramientas principales más las de la categoría OpenSearch); todavía no hay herramientas específicas de OpenSearch, por lo que actualmente solo expone las principales.
{
"mcpServers": {
"aiven-mcp": {
"url": "https://mcp.aiven.live/mcp?services_scope=kafka"
}
}
}
También puedes combinarlo con read_only:
https://mcp.aiven.live/mcp?services_scope=pg&read_only=true
Excepciones de escritura en modo de solo lectura (remoto)
Cuando read_only=true, añade ?write_allowlist= para volver a habilitar herramientas de escritura específicas mientras mantienes
todo lo demás en solo lectura. Útil cuando quieres un acceso mayoritariamente de lectura pero aún necesitas permitir una
acción de escritura, por ejemplo crear temas de Kafka. Combina varios nombres de herramientas con comas. Se ignora
cuando read_only no está habilitado.
https://mcp.aiven.live/mcp?read_only=true&write_allowlist=aiven_kafka_topic_create
Clientes de Marketplace (remoto)
Si te suscribiste a Aiven a través de un marketplace en la nube, añade tu marketplace como segmento de ruta para que el inicio de sesión use la consola correcta:
| Marketplace | Segmento de ruta |
|---|---|
| AWS Marketplace | https://mcp.aiven.live/mcp/aws |
| Azure Marketplace | https://mcp.aiven.live/mcp/azure |
| Google Cloud Marketplace | https://mcp.aiven.live/mcp/gcp |
{
"mcpServers": {
"aiven-mcp": {
"url": "https://mcp.aiven.live/mcp/<marketplace>"
}
}
}
El segmento de ruta se combina con los parámetros de consulta anteriores, por ejemplo https://mcp.aiven.live/mcp/gcp?services_scope=pg&read_only=true.
Opción 2: stdio (local)
Ejecuta el servidor localmente como proceso hijo de tu cliente MCP. Requiere Node.js 18+.
Debes proporcionar tu token de API de Aiven mediante la variable de entorno AIVEN_TOKEN. Crea un token aquí.
Claude Code
claude mcp add --scope user aiven-mcp -e AIVEN_TOKEN=your-token-here -- npx -y mcp-aiven
Cursor, VS Code -- añade a la configuración de tu cliente MCP:
{
"mcpServers": {
"aiven-mcp": {
"command": "npx",
"args": ["-y", "mcp-aiven"],
"env": {
"AIVEN_TOKEN": "your-token-here"
}
}
}
}
Ubicaciones de los archivos de configuración:
- Cursor: Cursor Settings > MCP Servers
- VS Code:
.vscode/mcp.jsonen tu espacio de trabajo
Opción 3: Desarrollo local
Ejecuta una compilación local del servidor (útil para desarrollo y pruebas):
pnpm install && pnpm generate:api-types && pnpm generate && pnpm build && AIVEN_TOKEN="<YOUR_TOKEN>" MCP_TRANSPORT="http" PORT=3000 node dist/index.js
El servidor escucha en el puerto 3000 de forma predeterminada. Conecta tu cliente MCP a http://localhost:3000/mcp.
Para apuntar un despliegue remoto a un host personalizado (p. ej., tu compilación local), establece MCP_HOST:
MCP_HOST=http://localhost:3000 node dist/index.js
Variables de entorno
| Variable | Obligatoria | Predeterminado | Descripción |
|---|---|---|---|
AIVEN_TOKEN | solo stdio | -- | Token de API de Aiven (crea uno aquí) |
AIVEN_READ_ONLY | No | false | Establécelo en true para exponer solo herramientas de solo lectura |
AIVEN_SERVICES_SCOPE | No | -- | Alcances separados por comas que se expondrán (p. ej., kafka, pg,kafka o all). Válidos: all, core, pg, kafka, application, integrations, opensearch. core se incluye de forma implícita para los tipos de servicio con alcance. opensearch aún no tiene herramientas dedicadas (solo las principales hasta que se añadan las herramientas de OpenSearch). Omitir la variable o establecerla en all carga todas las herramientas. |
AIVEN_ALLOW_SECRETS | No | false | Establécelo en true para exponer la herramienta aiven_service_connection_info, que devuelve credenciales en vivo (contraseñas, URI de conexión, certificados) a la conversación. Deshabilitado mientras AIVEN_READ_ONLY=true. |
AIVEN_WRITE_ALLOWLIST | No | -- | Nombres de herramientas separados por comas que se volverán a habilitar mientras AIVEN_READ_ONLY=true (p. ej., aiven_kafka_topic_create). Se ignora cuando el modo de solo lectura no está habilitado. |
MCP_HOST | No | https://mcp.aiven.live | Sobrescribe el host del recurso protegido de OAuth |
MCP_TRANSPORT | No | stdio | Establécelo en http para iniciar un servidor HTTP en lugar de stdio |
MCP_HTTP_RATE_LIMIT_MAX | No | 1000 | Máximo de solicitudes por ventana en POST /mcp (transporte HTTP), por token de portador. Se espera que la limitación de velocidad por IP del cliente se realice en Cloudflare. |
MCP_HTTP_RATE_LIMIT_WINDOW_MS | No | 60000 | Duración de la ventana en milisegundos para MCP_HTTP_RATE_LIMIT_MAX. |
EXTRA_PROTECTION | No | false | Establécelo en true en despliegues HTTP para exigir un encabezado X-Edge-Auth válido en cada solicitud excepto GET /health. Consulta Despliegue de la protección perimetral a continuación. |
MCP_EDGE_AUTH_SECRET | Cuando EXTRA_PROTECTION=true | -- | Secreto compartido; debe coincidir con el valor que Cloudflare inyecta como X-Edge-Auth mediante Transform Rules. |
En modo remoto (HTTP), AIVEN_TOKEN no es necesario. Tu cliente MCP envía tu token como token de portador con cada solicitud.
El tráfico HTTP de producción está limitado en dos capas: Cloudflare aplica un límite por IP de cliente (configurado en el panel de Cloudflare), y este servidor aplica MCP_HTTP_RATE_LIMIT_* por token de portador en POST /mcp.
Despliegue de la protección perimetral
Cuando EXTRA_PROTECTION=true, cualquier discrepancia entre MCP_EDGE_AUTH_SECRET y el valor que Cloudflare inyecta como X-Edge-Auth provoca que todas las solicitudes devuelvan 403 (excepto GET /health). Ambos valores son entorno/configuración en lados opuestos de la conexión, por lo que la única vía de recuperación es corregir el secreto y volver a desplegar o actualizar Cloudflare.
Habilítalo en este orden:
- Regla de Transformación de Cloudflare — Añade una regla que establezca
X-Edge-Auth(y, si se usa para las herramientas de PG,X-Client-IP) en el tráfico hacia el origen de MCP. Anota el valor del secreto que configures. MCP_EDGE_AUTH_SECRET— Despliega el servidor con esta variable de entorno establecida en el mismo secreto que la Regla de Transformación. DejaEXTRA_PROTECTIONsin establecer o enfalsepor ahora; verifica que el origen siga aceptando tráfico.EXTRA_PROTECTION=true— Habilítalo solo después de que los pasos 1 y 2 estén activos y coincidan. Confirma que una solicitud MCP normal se realiza correctamente y que el acceso directo al origen sinX-Edge-Authse rechaza.- Rotación de secretos — Actualiza Cloudflare y
MCP_EDGE_AUTH_SECRETjuntos (o establece brevementeEXTRA_PROTECTION=false), vuelve a desplegar y luego vuelve a habilitarlo. Nunca rotes un solo lado mientras el indicador esté activo.
Si EXTRA_PROTECTION=true al iniciar y falta MCP_EDGE_AUTH_SECRET, el proceso finaliza inmediatamente con un error.
Mientras continúen los rechazos, el servidor registra una advertencia de mala configuración como máximo una vez cada 15 minutos (se restablece tras una solicitud con un X-Edge-Auth válido), de modo que una discrepancia de secretos sea visible en los registros sin una línea por cada solicitud rechazada.
Herramientas
Principales
| Herramienta | Descripción |
|---|---|
aiven_project_list | Listar proyectos |
aiven_project_get | Obtener detalles del proyecto |
aiven_list_project_clouds | Listar plataformas en la nube para un proyecto |
aiven_project_vpc_list | Listar VPC para un proyecto |
aiven_service_list | Listar servicios |
aiven_service_type_plans | Listar planes con disponibilidad en la nube |
aiven_service_type_get | Obtener las versiones de motor predeterminadas y disponibles para un tipo de servicio |
aiven_service_plan_pricing | Obtener el precio de un plan en una nube específica |
aiven_service_create | Crear un servicio |
aiven_service_get | Obtener información del servicio |
aiven_service_update | Actualizar un servicio (plan, configuración, estado de encendido) |
aiven_service_metrics_fetch | Obtener métricas de servicios de datos gestionados |
aiven_service_application_metrics_get | Obtener métricas de servicios de aplicaciones |
aiven_project_get_service_logs | Obtener entradas del registro del servicio |
aiven_service_query_activity | Obtener las consultas actuales de un servicio |
aiven_project_get_event_logs | Obtener entradas del registro de eventos del proyecto |
Kafka
| Herramienta | Descripción |
|---|---|
aiven_kafka_topic_list | Listar temas de Kafka |
aiven_kafka_topic_create | Crear un tema de Kafka |
aiven_kafka_topic_get | Obtener información de un tema de Kafka |
aiven_kafka_topic_update | Actualizar un tema de Kafka |
aiven_kafka_topic_delete | Eliminar un tema de Kafka |
aiven_kafka_topic_message_list | Leer mensajes de un tema de Kafka |
aiven_kafka_topic_message_produce | Producir mensajes en un tema de Kafka |
aiven_kafka_connect_available_connectors | Listar los tipos de conector disponibles |
aiven_kafka_connect_list | Listar los conectores en ejecución |
aiven_kafka_connect_create_connector | Crear un conector |
aiven_kafka_connect_edit_connector | Editar un conector |
aiven_kafka_connect_get_connector_status | Obtener el estado del conector |
aiven_kafka_connect_pause_connector | Pausar un conector |
aiven_kafka_connect_resume_connector | Reanudar un conector |
aiven_kafka_connect_restart_connector | Reiniciar un conector |
aiven_kafka_connect_delete_connector | Eliminar un conector |
aiven_kafka_schema_registry_subjects | Listar los sujetos de Schema Registry |
aiven_kafka_schema_registry_subject_version_get | Obtener la versión de un sujeto de Schema Registry |
PostgreSQL
| Herramienta | Descripción |
|---|---|
aiven_pg_service_available_extensions | Listar las extensiones disponibles |
aiven_pg_service_query_statistics | Obtener estadísticas de consultas |
aiven_pg_bouncer_create | Crear un grupo de conexiones de PgBouncer |
aiven_pg_bouncer_update | Actualizar un grupo de conexiones de PgBouncer |
aiven_pg_bouncer_delete | Eliminar un grupo de conexiones de PgBouncer |
aiven_pg_read | Ejecutar una consulta SQL de solo lectura |
aiven_pg_write | Ejecutar una sentencia SQL de escritura (INSERT, UPDATE, DELETE, CREATE TABLE, etc.) |
aiven_pg_optimize_query | Optimización de consultas con IA (EverSQL) |
Aplicaciones
| Herramienta | Descripción |
|---|---|
aiven_application_create | Crear y desplegar inicialmente una aplicación Containerfile/Dockerfile; devuelve 409 si el servicio ya existe |
aiven_application_redeploy | Recompilar una aplicación existente desde su repositorio configurado sin cambiar la configuración del servicio |
aiven_vcs_integration_initialize | Iniciar el flujo basado en navegador para conectar una cuenta de GitHub |
aiven_vcs_integration_list | Listar las cuentas de VCS (GitHub) conectadas |
aiven_vcs_integration_repository_list | Listar los repositorios de una integración de VCS |
aiven_vcs_integration_repository_branch_list | Listar las ramas del repositorio y sus SHA de commit actuales |
aiven_vcs_integration_repository_container_manifest_files_list | Encontrar manifiestos candidatos de Containerfile, Dockerfile y Compose |
aiven_vcs_integration_repository_scan_container_manifest | Derivar configuraciones candidatas de servicios de Aiven a partir de un Containerfile, Dockerfile o partes compatibles de un archivo Compose |
Documentación
| Herramienta | Descripción |
|---|---|
aiven_docs_search | Buscar en la documentación oficial de Aiven en lenguaje natural. Solo disponible en el servidor alojado (https://mcp.aiven.live/mcp); no se expone en despliegues autoalojados. |
Contribuir
Consulta CONTRIBUTING.md para la configuración del desarrollo, la ejecución local y la adición de nuevas herramientas.