Aiven
officielNaviguez vos projets Aiven et interagissez avec les services PostgreSQL®, Apache Kafka®, ClickHouse® et OpenSearch®.
Que pouvez-vous faire avec Aiven MCP ?
- Gérer les services Aiven — Demandez à votre assistant de lister, créer, mettre à jour ou supprimer des services via
aiven_service_create,aiven_service_updateetaiven_service_list. - Travailler avec les sujets Kafka — Demandez à votre assistant de créer, lire ou produire des messages vers des sujets à l'aide de
aiven_kafka_topic_createetaiven_kafka_topic_message_produce. - Exécuter des requêtes PostgreSQL — Laissez votre assistant exécuter des instructions SQL en lecture seule ou en écriture avec
aiven_pg_readetaiven_pg_write, ou optimiser des requêtes viaaiven_pg_optimize_query. - Gérer les connecteurs Kafka — Demandez à votre assistant de créer, mettre en pause, reprendre ou supprimer des connecteurs à l'aide de
aiven_kafka_connect_create_connectoret des outils associés. - Déployer des applications — Demandez à votre assistant de créer ou redéployer des applications depuis un dépôt avec
aiven_application_createetaiven_application_redeploy. - Rechercher dans la documentation Aiven — Demandez à votre assistant de trouver des réponses dans la documentation officielle à l'aide de
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, les 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 effectuées via cet outil.
Autorisations : L'accès est régi par les autorisations utilisateur Aiven associées au compte authentifié. Le serveur MCP ne peut effectuer que les actions que votre utilisateur Aiven est autorisé à réaliser.
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. Examinez 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 : À distance (hébergé par Aiven)
Le serveur MCP est hébergé à 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 (à 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 (à distance)
Réduisez la surface d'outils exposée à votre agent IA en ajoutant ?services_scope= à l'URL. Utile lorsque vous ne travaillez qu'avec un sous-ensemble de services Aiven et que vous souhaitez garder le contexte de l'agent ciblé. 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 chaque outil (équivalent à omettre le 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 (à distance)
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 souhaitez un accès principalement en lecture mais que vous 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 de marketplace (à distance)
Si vous vous êtes abonné à Aiven via un marketplace cloud, ajoutez votre marketplace comme segment de chemin afin que la connexion utilise la bonne console :
| Marketplace | 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 comme 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 | Défaut | Description |
|---|---|---|---|
AIVEN_TOKEN | stdio uniquement | -- | Jeton 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 | -- | 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 chaque outil. |
AIVEN_ALLOW_SECRETS | Non | false | Définissez 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é pendant AIVEN_READ_ONLY=true. |
AIVEN_WRITE_ALLOWLIST | Non | -- | Noms d'outils séparés par des virgules à réactiver pendant 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 | Remplace l'hôte de 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 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éfinissez 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 comme 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 porteur avec chaque requête.
Le trafic HTTP de production est limité en débit sur deux couches : 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 comme X-Edge-Auth entraîne le retour de 403 pour chaque requête (sauf GET /health). Les deux valeurs sont des paramètres d'environnement/configuration de part et d'autre du fil, 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 du secret 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 sont en place et correspondent. Confirmez qu'une requête MCP normale réussit et que l'accès direct à l'origine sansX-Edge-Authest rejeté.- Rotation des secrets — Mettez à jour Cloudflare et
MCP_EDGE_AUTH_SECRETensemble (ou définissez brièvementEXTRA_PROTECTION=false), redéployez, puis réactivez. Ne faites jamais pivoter 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 continuent, le serveur journalise un avertissement de mauvaise configuration au plus une fois toutes les 15 minutes (réinitialisé après une requête avec X-Edge-Auth valide), afin qu'une discordance de secret soit visible dans les journaux sans une ligne par 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 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 la tarification d'un plan dans un cloud spécifique |
aiven_service_create | Créer un service |
aiven_service_get | Obtenir les informations d'un 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 de journal d'un service |
aiven_service_query_activity | Récupérer les requêtes actuelles pour 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 le statut d'un 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 d'un 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 en écriture (INSERT, UPDATE, DELETE, CREATE TABLE, etc.) |
aiven_pg_optimize_query | Optimisation de requêtes assistée 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 de son dépôt configuré sans modifier la configuration du service |
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 |
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 | Trouver les manifestes Containerfile, Dockerfile et Compose candidats |
aiven_vcs_integration_repository_scan_container_manifest | Dériver les configurations de service Aiven candidates à partir d'un Containerfile, Dockerfile ou des parties prises en charge d'un fichier Compose |
Documentation
| Outil | Description |
|---|---|
aiven_docs_search | Rechercher 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.