Aiven

officiel

Naviguez vos projets Aiven et interagissez avec les services PostgreSQL®, Apache Kafka®, ClickHouse® et OpenSearch®.

Que pouvez-vous faire avec Aiven MCP ?

  • Lister et inspecter les projets Aiven — Utilisez aiven_project_list et aiven_project_get pour parcourir les projets et consulter leurs détails.
  • Gérer les services Aiven — Créez, mettez à jour ou récupérez des services avec aiven_service_create, aiven_service_update et aiven_service_get.
  • Travailler avec les topics et connecteurs Kafka — Listez, créez, mettez à jour, supprimez des topics, produisez/consommez des messages et gérez les connecteurs Kafka Connect.
  • Exécuter du SQL sur les services PostgreSQL — Effectuez des requêtes en lecture seule avec aiven_pg_read ou des instructions en écriture avec aiven_pg_write.
  • Déployer et redéployer des applications — Utilisez aiven_application_deploy et aiven_application_redeploy pour gérer les applications dockerisées sur Aiven.
  • Rechercher dans la documentation Aiven — Interrogez la documentation officielle en langage naturel via aiven_docs_search (serveur hébergé uniquement).

Documentation

Serveur MCP Aiven

Un serveur Model Context Protocol (MCP) pour la plateforme de données cloud Aiven.

Gérez PostgreSQL, Apache Kafka, des applications et d'autres services Aiven directement depuis des assistants IA comme Claude, Cursor et VS Code Copilot.

[!WARNING] À utiliser avec précaution. Ce serveur MCP peut créer, modifier et supprimer des services et des données Aiven en votre nom. Les agents IA peuvent exécuter des actions destructrices (suppression de bases de données, suppression de services, production de messages) en fonction de leur interprétation de vos invites. Vous êtes entièrement responsable des actions entreprises via cet outil.

Permissions : L'accès est régi par les permissions utilisateur Aiven associées au compte authentifié. Le serveur MCP ne peut effectuer que les actions que votre utilisateur Aiven est autorisé à faire.

Sécurité des agents IA : Les agents IA peuvent avoir besoin d'informations d'identification d'accès (chaînes de connexion à la base de données, jetons de streaming) pour agir en votre nom. Vérifiez ce que fait votre agent, en particulier dans les environnements de production. Suivez les politiques de sécurité de votre organisation et effectuez une évaluation des risques avant de donner aux agents IA l'accès à des ressources sensibles.

Démarrage rapide

Option 1 : Distant (hébergé par Aiven)

Le serveur MCP est hébergé à l'adresse https://mcp.aiven.live/mcp. Votre client MCP vous demandera de vous autoriser sur Aiven.

Claude Code

claude mcp add --scope user --transport http aiven-mcp "https://mcp.aiven.live/mcp"

Cursor

Install MCP Server

Ou ajoutez manuellement aux paramètres MCP de Cursor :

{
  "mcpServers": {
    "aiven-mcp": {
      "url": "https://mcp.aiven.live/mcp"
    }
  }
}

VS Code / Copilot

Ajoutez à .vscode/mcp.json dans votre espace de travail :

{
  "servers": {
    "aiven-mcp": {
      "type": "http",
      "url": "https://mcp.aiven.live/mcp"
    }
  }
}

Mode lecture seule (Distant)

Activez le mode lecture seule en ajoutant ?read_only=true à l'URL. Toutes les opérations d'écriture seront exclues du MCP :

{
  "mcpServers": {
    "aiven-mcp": {
      "url": "https://mcp.aiven.live/mcp?read_only=true"
    }
  }
}

Outils délimités (Distant)

Réduisez la surface d'outils exposée à votre agent IA en ajoutant ?services_scope= à l'URL. Utile lorsque vous travaillez uniquement avec un sous-ensemble de services Aiven et souhaitez garder le contexte de l'agent concentré. Combinez les valeurs avec des virgules. core (découverte de projet/service) est toujours inclus implicitement.

Portées valides : all, core, pg, kafka, application, integrations. Utilisez all pour charger explicitement tous les outils (identique à l'omission du paramètre). all ne peut pas être combiné avec d'autres portées.

{
  "mcpServers": {
    "aiven-mcp": {
      "url": "https://mcp.aiven.live/mcp?services_scope=kafka"
    }
  }
}

Vous pouvez également combiner avec read_only :

https://mcp.aiven.live/mcp?services_scope=pg&read_only=true

Exceptions d'écriture en mode lecture seule (Distant)

Lorsque read_only=true, ajoutez ?write_allowlist= pour réactiver des outils d'écriture spécifiques tout en gardant tout le reste en lecture seule. Utile lorsque vous voulez un accès principalement en lecture mais devez quand même autoriser une action d'écriture, par exemple la création de sujets Kafka. Combinez plusieurs noms d'outils avec des virgules. Ignoré lorsque read_only n'est pas activé.

https://mcp.aiven.live/mcp?read_only=true&write_allowlist=aiven_kafka_topic_create

Clients Marketplace (Distant)

Si vous vous êtes abonné à Aiven via une place de marché cloud, ajoutez votre place de marché comme segment de chemin afin que la connexion utilise la console correcte :

Place de marchéSegment de chemin
AWS Marketplacehttps://mcp.aiven.live/mcp/aws
Azure Marketplacehttps://mcp.aiven.live/mcp/azure
Google Cloud Marketplacehttps://mcp.aiven.live/mcp/gcp
{
  "mcpServers": {
    "aiven-mcp": {
      "url": "https://mcp.aiven.live/mcp/<marketplace>"
    }
  }
}

Le segment de chemin se combine avec les paramètres de requête ci-dessus, par exemple https://mcp.aiven.live/mcp/gcp?services_scope=pg&read_only=true.

Option 2 : stdio (local)

Exécutez le serveur localement en tant que processus enfant de votre client MCP. Nécessite Node.js 18+.

Vous devez fournir votre jeton API Aiven via la variable d'environnement AIVEN_TOKEN. Créez un jeton ici.

Claude Code

claude mcp add --scope user aiven-mcp -e AIVEN_TOKEN=your-token-here -- npx -y mcp-aiven

Cursor, VS Code -- ajoutez à la configuration de votre client MCP :

{
  "mcpServers": {
    "aiven-mcp": {
      "command": "npx",
      "args": ["-y", "mcp-aiven"],
      "env": {
        "AIVEN_TOKEN": "your-token-here"
      }
    }
  }
}

Emplacements des fichiers de configuration :

  • Cursor : Paramètres Cursor > Serveurs MCP
  • VS Code : .vscode/mcp.json dans votre espace de travail

Option 3 : Développement local

Exécutez une version locale du serveur (utile pour le développement et les tests) :

pnpm install && pnpm generate:api-types && pnpm generate && pnpm build && AIVEN_TOKEN="<YOUR_TOKEN>" MCP_TRANSPORT="http" PORT=3000 node dist/index.js

Le serveur écoute sur le port 3000 par défaut. Connectez votre client MCP à http://localhost:3000/mcp.

Pour pointer un déploiement distant vers un hôte personnalisé (par exemple, votre version locale), définissez MCP_HOST :

MCP_HOST=http://localhost:3000 node dist/index.js

Variables d'environnement

VariableRequisePar défautDescription
AIVEN_TOKENstdio uniquement--Jeton API Aiven (créez-en un ici)
AIVEN_READ_ONLYNonfalseDéfinir sur true pour exposer uniquement les outils en lecture seule
AIVEN_SERVICES_SCOPENon--Portées séparées par des virgules à exposer (par ex. kafka, pg,kafka, ou all). Valides : all, core, pg, kafka, application, integrations. core est toujours inclus. Omettre la variable ou définir all charge tous les outils.
AIVEN_ALLOW_SECRETSNonfalseDéfinir sur true pour exposer l'outil aiven_service_connection_info, qui renvoie des informations d'identification en direct (mots de passe, URI de connexion, certificats) dans la conversation. Désactivé lorsque AIVEN_READ_ONLY=true.
AIVEN_WRITE_ALLOWLISTNon--Noms d'outils séparés par des virgules à réactiver lorsque AIVEN_READ_ONLY=true (par ex. aiven_kafka_topic_create). Ignoré lorsque le mode lecture seule n'est pas activé.
MCP_HOSTNonhttps://mcp.aiven.liveRemplacer l'hôte de la ressource protégée OAuth
MCP_TRANSPORTNonstdioDéfinir sur http pour démarrer un serveur HTTP au lieu de stdio
MCP_HTTP_RATE_LIMIT_MAXNon1000Requêtes maximales par fenêtre sur POST /mcp (transport HTTP), par jeton porteur. La limitation de débit par IP client est attendue au niveau de Cloudflare.
MCP_HTTP_RATE_LIMIT_WINDOW_MSNon60000Durée de la fenêtre en millisecondes pour MCP_HTTP_RATE_LIMIT_MAX.
EXTRA_PROTECTIONNonfalseDéfinir sur true sur les déploiements HTTP pour exiger un en-tête X-Edge-Auth valide sur chaque requête sauf GET /health. Voir Déploiement de la protection Edge ci-dessous.
MCP_EDGE_AUTH_SECRETLorsque EXTRA_PROTECTION=true--Secret partagé ; doit correspondre à la valeur que Cloudflare injecte en tant que X-Edge-Auth via les règles de transformation.

En mode distant (HTTP), AIVEN_TOKEN n'est pas nécessaire. Votre client MCP envoie votre jeton en tant que jeton porteur à chaque requête.

Le trafic HTTP de production est limité en débit à deux niveaux : Cloudflare applique une limite par IP client (configurée dans le tableau de bord Cloudflare), et ce serveur applique MCP_HTTP_RATE_LIMIT_* par jeton porteur sur POST /mcp.

Déploiement de la protection Edge

Lorsque EXTRA_PROTECTION=true, toute discordance entre MCP_EDGE_AUTH_SECRET et la valeur que Cloudflare injecte en tant que X-Edge-Auth entraîne le retour d'une erreur 403 pour chaque requête (sauf GET /health). Les deux valeurs sont des variables d'environnement/config de part et d'autre de la connexion, donc la seule voie de récupération est de corriger le secret et de redéployer ou de mettre à jour Cloudflare.

Activez dans cet ordre :

  1. Règle de transformation Cloudflare — Ajoutez une règle qui définit X-Edge-Auth (et, si utilisé pour les outils PG, X-Client-IP) sur le trafic vers l'origine MCP. Notez la valeur secrète que vous configurez.
  2. MCP_EDGE_AUTH_SECRET — Déployez le serveur avec cette variable d'environnement définie sur le même secret que la règle de transformation. Laissez EXTRA_PROTECTION non défini ou false pour l'instant ; vérifiez que l'origine accepte toujours le trafic.
  3. EXTRA_PROTECTION=true — Activez uniquement après que les étapes 1–2 soient en production et correspondent. Confirmez qu'une requête MCP normale réussit et que l'accès direct à l'origine sans X-Edge-Auth est rejeté.
  4. Rotation du secret — Mettez à jour Cloudflare et MCP_EDGE_AUTH_SECRET ensemble (ou définissez brièvement EXTRA_PROTECTION=false), redéployez, puis réactivez. Ne faites jamais tourner un seul côté pendant que le drapeau est activé.

Si EXTRA_PROTECTION=true au démarrage et que MCP_EDGE_AUTH_SECRET est manquant, le processus se termine immédiatement avec une erreur.

Tant que les rejets persistent, le serveur enregistre un avertissement de mauvaise configuration au maximum une fois toutes les 15 minutes (réinitialisé après une requête avec un X-Edge-Auth valide), de sorte qu'une discordance de secret soit visible dans les journaux sans une ligne par requête rejetée.

Outils

Cœur

OutilDescription
aiven_project_listLister les projets
aiven_project_getObtenir les détails du projet
aiven_list_project_cloudsLister les plateformes cloud pour un projet
aiven_project_vpc_listLister les VPC pour un projet
aiven_service_listLister les services
aiven_service_type_plansLister les plans avec disponibilité cloud
aiven_service_plan_pricingObtenir le prix d'un plan dans un cloud spécifique
aiven_service_createCréer un service
aiven_service_getObtenir les informations du service
aiven_service_updateMettre à jour un service (plan, configuration, état d'alimentation)
aiven_service_metrics_fetchRécupérer les métriques pour les services de données gérés
aiven_service_application_metrics_getRécupérer les métriques pour les services d'application
aiven_project_get_service_logsObtenir les entrées du journal de service
aiven_service_query_activityRécupérer les requêtes en cours pour un service
aiven_project_get_event_logsObtenir les entrées du journal des événements du projet

Kafka

OutilDescription
aiven_kafka_topic_listLister les sujets Kafka
aiven_kafka_topic_createCréer un sujet Kafka
aiven_kafka_topic_getObtenir les informations d'un sujet Kafka
aiven_kafka_topic_updateMettre à jour un sujet Kafka
aiven_kafka_topic_deleteSupprimer un sujet Kafka
aiven_kafka_topic_message_listLire les messages d'un sujet Kafka
aiven_kafka_topic_message_produceProduire des messages dans un sujet Kafka
aiven_kafka_connect_available_connectorsLister les types de connecteurs disponibles
aiven_kafka_connect_listLister les connecteurs en cours d'exécution
aiven_kafka_connect_create_connectorCréer un connecteur
aiven_kafka_connect_edit_connectorModifier un connecteur
aiven_kafka_connect_get_connector_statusObtenir le statut du connecteur
aiven_kafka_connect_pause_connectorMettre en pause un connecteur
aiven_kafka_connect_resume_connectorReprendre un connecteur
aiven_kafka_connect_restart_connectorRedémarrer un connecteur
aiven_kafka_connect_delete_connectorSupprimer un connecteur
aiven_kafka_schema_registry_subjectsLister les sujets du registre de schémas
aiven_kafka_schema_registry_subject_version_getObtenir la version du sujet du registre de schémas

PostgreSQL

OutilDescription
aiven_pg_service_available_extensionsLister les extensions disponibles
aiven_pg_service_query_statisticsRécupérer les statistiques de requêtes
aiven_pg_bouncer_createCréer un pool de connexions PgBouncer
aiven_pg_bouncer_updateMettre à jour un pool de connexions PgBouncer
aiven_pg_bouncer_deleteSupprimer un pool de connexions PgBouncer
aiven_pg_readExécuter une requête SQL en lecture seule
aiven_pg_writeExécuter une instruction SQL d'écriture (INSERT, UPDATE, DELETE, CREATE TABLE, etc.)
aiven_pg_optimize_queryOptimisation de requêtes alimentée par l'IA (EverSQL)

Applications

OutilDescription
aiven_application_deployDéployer une application Dockerisée sur Aiven
aiven_application_redeployReconstruire et redéployer une application existante
aiven_vcs_integration_listLister les comptes VCS (GitHub) connectés
aiven_vcs_integration_repository_listLister les dépôts pour une intégration VCS

Documentation

OutilDescription
aiven_docs_searchRechercher dans la documentation officielle Aiven en langage naturel. Disponible uniquement sur le serveur hébergé (https://mcp.aiven.live/mcp) — non exposé dans les déploiements auto-hébergés.

Contribution

Voir CONTRIBUTING.md pour la configuration de développement, l'exécution locale et l'ajout de nouveaux outils.

Licence

Apache-2.0