Aiven
officielNaviguez 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_listetaiven_project_getpour 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_updateetaiven_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_readou des instructions en écriture avecaiven_pg_write. - Déployer et redéployer des applications — Utilisez
aiven_application_deployetaiven_application_redeploypour 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
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 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 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.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
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
| Variable | Requise | Par défaut | Description |
|---|---|---|---|
AIVEN_TOKEN | stdio uniquement | -- | Jeton API Aiven (créez-en un ici) |
AIVEN_READ_ONLY | Non | false | Définir sur true pour exposer uniquement les outils en lecture seule |
AIVEN_SERVICES_SCOPE | Non | -- | 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_SECRETS | Non | false | Dé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_ALLOWLIST | Non | -- | 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_HOST | Non | https://mcp.aiven.live | Remplacer l'hôte de la ressource protégée OAuth |
MCP_TRANSPORT | Non | stdio | Définir sur http pour démarrer un serveur HTTP au lieu de stdio |
MCP_HTTP_RATE_LIMIT_MAX | Non | 1000 | Requê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_MS | Non | 60000 | Durée de la fenêtre en millisecondes pour MCP_HTTP_RATE_LIMIT_MAX. |
EXTRA_PROTECTION | Non | false | Dé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_SECRET | Lorsque 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 :
- 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. 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. LaissezEXTRA_PROTECTIONnon défini oufalsepour l'instant ; vérifiez que l'origine accepte toujours le trafic.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 sansX-Edge-Authest rejeté.- Rotation du secret — Mettez à jour Cloudflare et
MCP_EDGE_AUTH_SECRETensemble (ou définissez brièvementEXTRA_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
| Outil | Description |
|---|---|
aiven_project_list | Lister les projets |
aiven_project_get | Obtenir les détails du projet |
aiven_list_project_clouds | Lister les plateformes cloud pour un projet |
aiven_project_vpc_list | Lister les VPC pour un projet |
aiven_service_list | Lister les services |
aiven_service_type_plans | Lister les plans avec disponibilité cloud |
aiven_service_plan_pricing | Obtenir le prix d'un plan dans un cloud spécifique |
aiven_service_create | Créer un service |
aiven_service_get | Obtenir les informations du service |
aiven_service_update | Mettre à jour un service (plan, configuration, état d'alimentation) |
aiven_service_metrics_fetch | Récupérer les métriques pour les services de données gérés |
aiven_service_application_metrics_get | Récupérer les métriques pour les services d'application |
aiven_project_get_service_logs | Obtenir les entrées du journal de service |
aiven_service_query_activity | Récupérer les requêtes en cours pour un service |
aiven_project_get_event_logs | Obtenir les entrées du journal des événements du 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 le statut du connecteur |
aiven_kafka_connect_pause_connector | Mettre en pause un connecteur |
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 du registre de schémas |
aiven_kafka_schema_registry_subject_version_get | Obtenir la version du sujet du registre de schémas |
PostgreSQL
| Outil | Description |
|---|---|
aiven_pg_service_available_extensions | Lister les extensions disponibles |
aiven_pg_service_query_statistics | Récupérer les statistiques de 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 de requêtes alimentée par l'IA (EverSQL) |
Applications
| Outil | Description |
|---|---|
aiven_application_deploy | Déployer une application Dockerisée sur Aiven |
aiven_application_redeploy | Reconstruire et redéployer une application existante |
aiven_vcs_integration_list | Lister les comptes VCS (GitHub) connectés |
aiven_vcs_integration_repository_list | Lister les dépôts pour une intégration VCS |
Documentation
| Outil | Description |
|---|---|
aiven_docs_search | Rechercher 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.