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?
- Listar e inspeccionar proyectos de Aiven — Usa
aiven_project_listyaiven_project_getpara explorar proyectos y ver sus detalles. - Gestionar servicios de Aiven — Crea, actualiza o recupera servicios con
aiven_service_create,aiven_service_updateyaiven_service_get. - Trabajar con temas y conectores de Kafka — Lista, crea, actualiza, elimina temas, produce/consume mensajes y gestiona conectores de Kafka Connect.
- Ejecutar SQL en servicios PostgreSQL — Ejecuta consultas de solo lectura con
aiven_pg_reado sentencias de escritura conaiven_pg_write. - Desplegar y redesplegar aplicaciones — Usa
aiven_application_deployyaiven_application_redeploypara gestionar aplicaciones Dockerizadas en Aiven. - Buscar documentación de Aiven — Consulta la documentación oficial en lenguaje natural mediante
aiven_docs_search(solo servidor alojado).
Documentación
Servidor MCP de Aiven
Un servidor del Protocolo de Contexto de Modelo (MCP) para la plataforma de datos en la nube Aiven.
Administra PostgreSQL, Apache Kafka, aplicaciones y otros servicios de Aiven directamente desde asistentes de IA como Claude, Cursor y VS Code Copilot.
[!WARNING] Usar con precaución. 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) basándose en su interpretación de tus indicaciones. Eres completamente 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 las acciones que tu usuario de Aiven tenga permitido hacer.
Seguridad del Agente 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 acceso a los agentes de IA 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ñadir manualmente a la configuración MCP de Cursor:
{
"mcpServers": {
"aiven-mcp": {
"url": "https://mcp.aiven.live/mcp"
}
}
}
VS Code / Copilot
Añadir a .vscode/mcp.json en tu espacio de trabajo:
{
"servers": {
"aiven-mcp": {
"type": "http",
"url": "https://mcp.aiven.live/mcp"
}
}
}
Modo Solo Lectura (Remoto)
Habilita el modo 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 (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 valores con comas. core (descubrimiento de proyectos/servicios) siempre se incluye implícitamente.
Alcances válidos: all, core, pg, kafka, application, integrations. Usa all para cargar explícitamente todas las herramientas (igual que omitir el parámetro). all no se puede combinar con otros alcances.
{
"mcpServers": {
"aiven-mcp": {
"url": "https://mcp.aiven.live/mcp?services_scope=kafka"
}
}
}
También puedes combinar con read_only:
https://mcp.aiven.live/mcp?services_scope=pg&read_only=true
Excepciones de Escritura en Modo Solo Lectura (Remoto)
Cuando read_only=true, añade ?write_allowlist= para reactivar herramientas de escritura específicas mientras mantienes
todo lo demás en solo lectura. Útil cuando quieres acceso mayoritariamente de lectura pero aún necesitas permitir una
acción de escritura, por ejemplo, crear temas de Kafka. Combina múltiples 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 un 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 un proceso hijo de tu cliente MCP. Requiere Node.js 18+.
Debes proporcionar tu token de API de Aiven a través de la variable de entorno AIVEN_TOKEN. Crear 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ñadir 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 archivos de configuración:
- Cursor: Configuración de Cursor > Servidores MCP
- 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 por defecto. Conecta tu cliente MCP a http://localhost:3000/mcp.
Para apuntar un despliegue remoto a un host personalizado (por ejemplo, tu compilación local), establece MCP_HOST:
MCP_HOST=http://localhost:3000 node dist/index.js
Variables de Entorno
| Variable | Requerida | Por defecto | Descripción |
|---|---|---|---|
AIVEN_TOKEN | solo stdio | -- | Token de API de Aiven (crear uno aquí) |
AIVEN_READ_ONLY | No | false | Establecer a true para exponer solo herramientas de solo lectura |
AIVEN_SERVICES_SCOPE | No | -- | Alcances separados por comas a exponer (ej. kafka, pg,kafka, o all). Válidos: all, core, pg, kafka, application, integrations. core siempre se incluye. Omitir la variable o establecer all carga todas las herramientas. |
AIVEN_ALLOW_SECRETS | No | false | Establecer a true para exponer la herramienta aiven_service_connection_info, que devuelve credenciales en vivo (contraseñas, URIs de conexión, certificados) en la conversación. Deshabilitado mientras AIVEN_READ_ONLY=true. |
AIVEN_WRITE_ALLOWLIST | No | -- | Nombres de herramientas separados por comas para reactivar mientras AIVEN_READ_ONLY=true (ej. aiven_kafka_topic_create). Se ignora cuando el modo solo lectura no está habilitado. |
MCP_HOST | No | https://mcp.aiven.live | Anular el host del recurso protegido OAuth |
MCP_TRANSPORT | No | stdio | Establecer a 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 limitación de tasa por IP de cliente 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 | Establecer a true en despliegues HTTP para requerir una cabecera X-Edge-Auth válida en cada solicitud excepto GET /health. Ver Despliegue de protección perimetral abajo. |
MCP_EDGE_AUTH_SECRET | Cuando EXTRA_PROTECTION=true | -- | Secreto compartido; debe coincidir con el valor que Cloudflare inyecta como X-Edge-Auth a través de Reglas de Transformación. |
En modo remoto (HTTP), AIVEN_TOKEN no es necesario. Tu cliente MCP envía tu token como un token de portador con cada solicitud.
El tráfico HTTP de producción está limitado en dos capas: Cloudflare impone un límite por IP de cliente (configurado en el panel de Cloudflare), y este servidor impone MCP_HTTP_RATE_LIMIT_* por token de portador en POST /mcp.
Despliegue de protección perimetral
Cuando EXTRA_PROTECTION=true, cualquier discrepancia entre MCP_EDGE_AUTH_SECRET y el valor que Cloudflare inyecta como X-Edge-Auth causa que cada solicitud devuelva 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 redesplegar o actualizar Cloudflare.
Habilitar en este orden:
- Regla de Transformación de Cloudflare — Añade una regla que establezca
X-Edge-Auth(y, si se usa para herramientas PG,X-Client-IP) en el tráfico hacia el origen MCP. Anota el valor secreto que configures. MCP_EDGE_AUTH_SECRET— Despliega el servidor con esta variable de entorno establecida al mismo secreto que la Regla de Transformación. DejaEXTRA_PROTECTIONsin establecer ofalsepor ahora; verifica que el origen aún acepte tráfico.EXTRA_PROTECTION=true— Habilita solo después de que los pasos 1–2 estén activos y coincidan. Confirma que una solicitud MCP normal tenga éxito y que el acceso directo al origen sinX-Edge-Authsea rechazado.- Rotación de secretos — Actualiza Cloudflare y
MCP_EDGE_AUTH_SECRETjuntos (o establece brevementeEXTRA_PROTECTION=false), redespliega, luego vuelve a habilitar. Nunca rotes un solo lado mientras la bandera está activada.
Si EXTRA_PROTECTION=true al inicio y MCP_EDGE_AUTH_SECRET falta, el proceso termina inmediatamente con un error.
Mientras los rechazos continúan, el servidor registra una advertencia de mala configuración como máximo una vez cada 15 minutos (se reinicia después de una solicitud con X-Edge-Auth válido), por lo que una discrepancia de secreto es visible en los registros sin una línea por cada solicitud rechazada.
Herramientas
Principal
| 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 VPCs para un proyecto |
aiven_service_list | Listar servicios |
aiven_service_type_plans | Listar planes con disponibilidad en la nube |
aiven_service_plan_pricing | Obtener precios para 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 energía) |
aiven_service_metrics_fetch | Obtener métricas para servicios de datos gestionados |
aiven_service_application_metrics_get | Obtener métricas para servicios de aplicación |
aiven_project_get_service_logs | Obtener entradas de registro del servicio |
aiven_service_query_activity | Obtener consultas actuales para 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 del 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 tipos de conectores disponibles |
aiven_kafka_connect_list | Listar 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 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 sujetos del Registro de Esquemas |
aiven_kafka_schema_registry_subject_version_get | Obtener versión del sujeto del Registro de Esquemas |
PostgreSQL
| Herramienta | Descripción |
|---|---|
aiven_pg_service_available_extensions | Listar extensiones disponibles |
aiven_pg_service_query_statistics | Obtener estadísticas de consultas |
aiven_pg_bouncer_create | Crear un pool de conexiones PgBouncer |
aiven_pg_bouncer_update | Actualizar un pool de conexiones PgBouncer |
aiven_pg_bouncer_delete | Eliminar un pool de conexiones 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 impulsada por IA (EverSQL) |
Aplicaciones
| Herramienta | Descripción |
|---|---|
aiven_application_deploy | Desplegar una aplicación Dockerizada en Aiven |
aiven_application_redeploy | Reconstruir y redesplegar una aplicación existente |
aiven_vcs_integration_list | Listar cuentas VCS (GitHub) conectadas |
aiven_vcs_integration_repository_list | Listar repositorios para una integración VCS |
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 expuesto en despliegues autoalojados. |
Contribuir
Consulta CONTRIBUTING.md para la configuración de desarrollo, ejecución local y adición de nuevas herramientas.