Aiven
officielNaviguez vos projets Aiven et interagissez avec les services PostgreSQL®, Apache Kafka®, ClickHouse® et OpenSearch®.
Que pouvez-vous faire avec Aiven MCP ?
- Parcourir et inspecter les services — Répertorier les projets, les services, les offres, les clouds, les VPC et les détails des services dans votre compte Aiven.
- Gérer Kafka — Répertorier, créer, mettre à jour et supprimer des topics, lire ou produire des messages, et gérer les connecteurs et les sujets du Schema Registry.
- Interroger PostgreSQL — Exécuter des requêtes SQL en lecture seule ou en écriture, consulter les statistiques des requêtes et les extensions disponibles, et gérer les pools PgBouncer.
- Déployer des applications — Créer et redéployer des applications Containerfile/Dockerfile, vérifier les domaines personnalisés et connecter des dépôts GitHub.
- Consulter les métriques et les journaux — Récupérer les métriques des services, l’activité des requêtes, les journaux des services et les journaux des événements du projet.
- Rechercher dans la documentation Aiven — Rechercher la documentation officielle d’Aiven en langage naturel (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 (supprimer des bases de données ou des services, produire des messages) selon leur interprétation de vos prompts. Vous êtes entièrement responsable des actions effectuées au moyen de cet outil.
Autorisations : l’accès est régi par les autorisations de l’utilisateur Aiven associées au compte authentifié. Le serveur MCP ne peut effectuer que les actions autorisées pour votre utilisateur Aiven.
Sécurité des agents IA : les agents IA peuvent avoir besoin d’identifiants d’accès (chaînes de connexion à la base de données, jetons de streaming) pour agir en votre nom. Vérifiez les actions de votre agent, en particulier dans les environnements de production. Respectez les politiques de sécurité de votre organisation et évaluez les risques avant de donner aux agents IA accès à des ressources sensibles.
Démarrage rapide
Option 1 : à distance (hébergé par Aiven)
Le serveur MCP est hébergé à l’adresse https://mcp.aiven.live/mcp. Votre client MCP vous invitera à vous authentifier auprès d’Aiven.
Claude Code
claude mcp add --scope user --transport http aiven-mcp "https://mcp.aiven.live/mcp"
Cursor
Vous pouvez aussi l’ajouter manuellement aux paramètres MCP de Cursor :
{
"mcpServers": {
"aiven-mcp": {
"url": "https://mcp.aiven.live/mcp"
}
}
}
VS Code / Copilot
Ajoutez-le à .vscode/mcp.json dans votre espace de travail :
{
"servers": {
"aiven-mcp": {
"type": "http",
"url": "https://mcp.aiven.live/mcp"
}
}
}
Mode lecture seule (à distance)
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 limités à certains périmètres (à distance)
Réduisez l’ensemble des outils exposés à votre agent IA en ajoutant ?services_scope= à l’URL. Cette option est utile si vous ne travaillez qu’avec un sous-ensemble des services Aiven et souhaitez que le contexte de l’agent reste ciblé. Séparez les valeurs par des virgules. core (découverte des projets et des services) est toujours inclus implicitement.
Périmètres valides : all, core, pg, kafka, application, integrations, opensearch. Utilisez all pour charger explicitement tous les outils (comme si le paramètre était omis). all ne peut pas être combiné à d’autres périmètres. opensearch suit les mêmes règles que kafka ou pg (outils principaux et outils de la catégorie OpenSearch) ; il n’existe pas encore d’outils spécifiques à OpenSearch, il n’expose donc actuellement que les outils principaux.
{
"mcpServers": {
"aiven-mcp": {
"url": "https://mcp.aiven.live/mcp?services_scope=kafka"
}
}
}
Vous pouvez également le combiner avec read_only :
https://mcp.aiven.live/mcp?services_scope=pg&read_only=true
Exceptions d’écriture en mode lecture seule (à distance)
Lorsque read_only=true, ajoutez ?write_allowlist= pour réactiver certains outils d’écriture tout en gardant
tout le reste en lecture seule. Cette option est utile si vous souhaitez principalement un accès en lecture, mais devez tout de même autoriser une action d’écriture, par exemple la création de sujets Kafka. Séparez les noms des outils par des virgules. Ignoré
si read_only n’est pas activé.
https://mcp.aiven.live/mcp?read_only=true&write_allowlist=aiven_kafka_topic_create
Clients de places de marché (à distance)
Si vous avez souscrit à Aiven par l’intermédiaire d’une place de marché cloud, ajoutez votre place de marché comme segment de chemin afin que la connexion utilise la console appropriée :
| Place de marché | Segment de chemin |
|---|---|
| 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>"
}
}
}
Le segment de chemin peut être combiné aux 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. Node.js 18+ est requis.
Vous devez fournir votre jeton d’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-le à 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.jsondans 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
Par défaut, le serveur écoute sur le port 3000. Connectez votre client MCP à http://localhost:3000/mcp.
Pour diriger 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
| Variable | Obligatoire | Valeur par défaut | Description |
|---|---|---|---|
AIVEN_TOKEN | stdio uniquement | -- | Jeton d’API Aiven (créez-en un ici) |
AIVEN_READ_ONLY | Non | false | Définissez sur true pour n’exposer que les outils en lecture seule |
AIVEN_SERVICES_SCOPE | Non | -- | Périmètres à exposer, séparés par des virgules (par exemple kafka, pg,kafka ou all). Valeurs valides : all, core, pg, kafka, application, integrations, opensearch. core est inclus implicitement pour les types de services limités à certains périmètres. opensearch ne dispose pas encore d’outils dédiés (outils principaux uniquement, jusqu’à l’ajout des outils OpenSearch). Si cette variable est omise ou définie sur all, tous les outils sont chargés. |
AIVEN_ALLOW_SECRETS | Non | false | Définissez sur true pour exposer l’outil aiven_service_connection_info, qui renvoie des identifiants actifs (mots de passe, URI de connexion, certificats) dans la conversation. Désactivé lorsque AIVEN_READ_ONLY=true. |
AIVEN_WRITE_ALLOWLIST | Non | -- | Noms des outils à réactiver, séparés par des virgules, lorsque AIVEN_READ_ONLY=true (par exemple aiven_kafka_topic_create). Ignoré si le mode lecture seule n’est pas activé. |
MCP_HOST | Non | https://mcp.aiven.live | Remplace l’hôte de la ressource protégée OAuth |
MCP_TRANSPORT | Non | stdio | Définissez sur http pour démarrer un serveur HTTP au lieu de stdio |
MCP_HTTP_RATE_LIMIT_MAX | Non | 1000 | Nombre maximal de requêtes par fenêtre sur POST /mcp (transport HTTP), par jeton Bearer. La limitation du débit par adresse IP du client est assurée par Cloudflare. |
MCP_HTTP_RATE_LIMIT_WINDOW_MS | Non | 60000 | Durée de la fenêtre en millisecondes pour MCP_HTTP_RATE_LIMIT_MAX. |
EXTRA_PROTECTION | Non | false | Définissez sur true pour exiger, sur les déploiements HTTP, un en-tête X-Edge-Auth valide dans chaque requête, sauf GET /health. Voir Déploiement de la protection en périphérie ci-dessous. |
MCP_EDGE_AUTH_SECRET | Lorsque EXTRA_PROTECTION=true | -- | Secret partagé ; doit correspondre à la valeur que Cloudflare injecte sous la forme 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 comme jeton Bearer avec chaque requête.
Le trafic HTTP de production est limité à deux niveaux : Cloudflare applique une limite par adresse IP du client (configurée dans le tableau de bord Cloudflare), et ce serveur applique MCP_HTTP_RATE_LIMIT_* par jeton Bearer sur POST /mcp.
Déploiement de la protection en périphérie
Lorsque EXTRA_PROTECTION=true, toute différence entre MCP_EDGE_AUTH_SECRET et la valeur injectée par Cloudflare sous la forme X-Edge-Auth entraîne le renvoi d’une réponse 403 pour chaque requête (sauf GET /health). Les deux valeurs sont des paramètres d’environnement ou de configuration situés de part et d’autre de la connexion ; la seule façon de rétablir le service est de corriger le secret et de redéployer le serveur ou de mettre à jour Cloudflare.
Activez dans cet ordre :
- Règle de transformation Cloudflare — Ajoutez une règle qui définit
X-Edge-Auth(et, si elle est utilisée pour les outils PG,X-Client-IP) pour le trafic vers l’origine MCP. Notez la valeur du secret configuré. MCP_EDGE_AUTH_SECRET— Déployez le serveur avec cette variable d’environnement définie sur le même secret que celui de la règle de transformation. Pour l’instant, laissezEXTRA_PROTECTIONnon défini ou définissez-le surfalse; vérifiez que l’origine accepte toujours le trafic.EXTRA_PROTECTION=true— Activez uniquement après la mise en place des étapes 1 et 2 et la vérification de leur concordance. Vérifiez qu’une requête MCP normale aboutit et que l’accès direct à l’origine sansX-Edge-Authest rejeté.- Rotation du secret — Mettez à jour Cloudflare et
MCP_EDGE_AUTH_SECRETsimultanément (ou définissez brièvementEXTRA_PROTECTION=false), redéployez, puis réactivez. Ne faites jamais tourner le secret d’un seul côté lorsque l’indicateur est activé.
Si EXTRA_PROTECTION=true au démarrage et que MCP_EDGE_AUTH_SECRET est manquant, le processus s’arrête immédiatement avec une erreur.
Tant que les rejets persistent, le serveur consigne un avertissement de mauvaise configuration au maximum toutes les 15 minutes (le compteur est réinitialisé après une requête avec un X-Edge-Auth valide), afin qu’une différence de secret soit visible dans les journaux sans générer une ligne pour chaque requête rejetée.
Outils
Principaux
| Outil | Description |
|---|---|
aiven_project_list | Lister les projets |
aiven_project_get | Obtenir les détails d’un projet |
aiven_list_project_clouds | Lister les plateformes cloud d’un projet |
aiven_project_vpc_list | Lister les VPC d’un projet |
aiven_service_list | Lister les services |
aiven_service_type_plans | Lister les offres avec leur disponibilité dans le cloud |
aiven_service_type_get | Obtenir les versions par défaut et disponibles du moteur pour un type de service |
aiven_service_plan_pricing | Obtenir le tarif d’une offre dans un cloud donné |
aiven_service_create | Créer un service |
aiven_service_get | Obtenir des informations sur un service |
aiven_service_update | Mettre à jour un service (offre, configuration, état d’alimentation) |
aiven_service_metrics_fetch | Récupérer les métriques des services de données gérés |
aiven_service_application_metrics_get | Récupérer les métriques des services applicatifs |
aiven_project_get_service_logs | Obtenir les entrées du journal d’un service |
aiven_service_query_activity | Récupérer les requêtes en cours d’un service |
aiven_project_get_event_logs | Obtenir les entrées du journal des événements d’un projet |
Kafka
| Outil | Description |
|---|---|
aiven_kafka_topic_list | Lister les sujets Kafka |
aiven_kafka_topic_create | Créer un sujet Kafka |
aiven_kafka_topic_get | Obtenir les informations d’un sujet Kafka |
aiven_kafka_topic_update | Mettre à jour un sujet Kafka |
aiven_kafka_topic_delete | Supprimer un sujet Kafka |
aiven_kafka_topic_message_list | Lire les messages d’un sujet Kafka |
aiven_kafka_topic_message_produce | Produire des messages dans un sujet Kafka |
aiven_kafka_connect_available_connectors | Lister les types de connecteurs disponibles |
aiven_kafka_connect_list | Lister les connecteurs en cours d’exécution |
aiven_kafka_connect_create_connector | Créer un connecteur |
aiven_kafka_connect_edit_connector | Modifier un connecteur |
aiven_kafka_connect_get_connector_status | Obtenir l’état d’un connecteur |
aiven_kafka_connect_pause_connector | Mettre un connecteur en pause |
aiven_kafka_connect_resume_connector | Reprendre un connecteur |
aiven_kafka_connect_restart_connector | Redémarrer un connecteur |
aiven_kafka_connect_delete_connector | Supprimer un connecteur |
aiven_kafka_schema_registry_subjects | Lister les sujets Schema Registry |
aiven_kafka_schema_registry_subject_version_get | Obtenir la version d’un sujet Schema Registry |
PostgreSQL
| Outil | Description |
|---|---|
aiven_pg_service_available_extensions | Lister les extensions disponibles |
aiven_pg_service_query_statistics | Récupérer les statistiques des requêtes |
aiven_pg_bouncer_create | Créer un pool de connexions PgBouncer |
aiven_pg_bouncer_update | Mettre à jour un pool de connexions PgBouncer |
aiven_pg_bouncer_delete | Supprimer un pool de connexions PgBouncer |
aiven_pg_read | Exécuter une requête SQL en lecture seule |
aiven_pg_write | Exécuter une instruction SQL d’écriture (INSERT, UPDATE, DELETE, CREATE TABLE, etc.) |
aiven_pg_optimize_query | Optimisation des requêtes par IA (EverSQL) |
Applications
| Outil | Description |
|---|---|
aiven_application_create | Créer et déployer initialement une application Containerfile/Dockerfile ; renvoie 409 si le service existe déjà |
aiven_application_redeploy | Reconstruire une application existante à partir du dépôt configuré, sans modifier la configuration du service |
aiven_application_custom_domain_verify | Vérifier à nouveau l’enregistrement CNAME d’un domaine personnalisé d’application ; le résultat apparaît ultérieurement dans aiven_service_get |
aiven_vcs_integration_initialize | Démarrer le processus dans le navigateur pour connecter un compte GitHub |
aiven_vcs_integration_list | Lister les comptes VCS (GitHub) connectés |
aiven_vcs_integration_repository_list | Lister les dépôts d’une intégration VCS |
aiven_vcs_integration_repository_branch_list | Lister les branches d’un dépôt et leurs SHA de commit actuels |
aiven_vcs_integration_repository_container_manifest_files_list | Rechercher des fichiers Containerfile, Dockerfile et des manifestes Compose candidats |
aiven_vcs_integration_repository_scan_container_manifest | Déduire des configurations de services Aiven candidates à partir d’un Containerfile, d’un Dockerfile ou des parties prises en charge d’un fichier Compose |
Documentation
| Outil | Description |
|---|---|
aiven_docs_search | Rechercher en langage naturel dans la documentation officielle d’Aiven. Disponible uniquement sur le serveur hébergé (https://mcp.aiven.live/mcp) — non exposé dans les déploiements auto-hébergés. |
Contribution
Consultez CONTRIBUTING.md pour les instructions de configuration du développement, d’exécution en local et d’ajout de nouveaux outils.