Aiven

公式

Aivenプロジェクトを操作し、PostgreSQL®、Apache Kafka®、ClickHouse®、OpenSearch®の各サービスと連携できます。

Aiven MCPで何ができますか?

  • Aivenサービスの管理 — アシスタントに、aiven_service_createaiven_service_updateaiven_service_list を使用してサービスの一覧表示、作成、更新、削除を依頼します。
  • Kafkaトピックの操作 — アシスタントに、aiven_kafka_topic_createaiven_kafka_topic_message_produce を使用してトピックの作成、読み取り、メッセージの生成を依頼します。
  • PostgreSQLクエリの実行 — アシスタントに、aiven_pg_readaiven_pg_write を使用して読み取り専用または書き込みSQLステートメントを実行させたり、aiven_pg_optimize_query を使用してクエリを最適化させたりします。
  • Kafkaコネクタの管理 — アシスタントに、aiven_kafka_connect_create_connector および関連ツールを使用してコネクタの作成、一時停止、再開、削除を依頼します。
  • アプリケーションのデプロイ — アシスタントに、aiven_application_createaiven_application_redeploy を使用してリポジトリからアプリケーションを作成または再デプロイさせます。
  • Aivenドキュメントの検索 — アシスタントに、aiven_docs_search(ホスト型サーバーのみ)を使用して公式ドキュメント内の回答を探すよう依頼します。

ドキュメント

Aiven MCP サーバー

Aiven クラウドデータプラットフォーム向けの Model Context Protocol (MCP) サーバーです。

PostgreSQL、Apache Kafka、アプリケーション、その他の Aiven サービスを、Claude、Cursor、VS Code Copilot などの AI アシスタントから直接管理できます。

[!WARNING] 注意して使用してください。 この MCP サーバーは、あなたの代わりに Aiven サービスやデータを作成、変更、削除できます。AI エージェントは、あなたのプロンプトの解釈に基づいて破壊的なアクション(データベースの削除、サービスの削除、メッセージの生成など)を実行する可能性があります。このツールを通じて実行されるアクションについては、すべてお客様の責任となります。

権限: アクセスは、認証されたアカウントに関連付けられた Aiven ユーザー権限によって管理されます。MCP サーバーは、お客様の Aiven ユーザーに許可されたアクションのみを実行できます。

AI エージェントのセキュリティ: AI エージェントは、お客様の代わりに行動するためにアクセス資格情報(データベース接続文字列、ストリーミングトークン)を必要とする場合があります。特に本番環境では、エージェントが何をしているかを確認してください。組織のセキュリティポリシーに従い、AI エージェントに機密リソースへのアクセスを許可する前にリスク評価を行ってください。

クイックスタート

オプション 1: リモート(Aiven がホスト)

MCP サーバーは https://mcp.aiven.live/mcp でホストされています。MCP クライアントは、Aiven での認証を求められます。

Claude Code

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

Cursor

Install MCP Server

または、Cursor の MCP 設定に手動で追加します:

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

VS Code / Copilot

ワークスペースの .vscode/mcp.json に追加します:

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

読み取り専用モード(リモート)

URL に ?read_only=true を追加して読み取り専用モードを有効にします。すべての書き込み操作は MCP から除外されます:

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

スコープ付きツール(リモート)

URL に ?services_scope= を追加して、AI エージェントに公開されるツールの範囲を減らします。Aiven サービスのサブセットのみを操作し、エージェントのコンテキストを絞り込みたい場合に便利です。値はカンマで区切って組み合わせます。core(プロジェクト/サービス検出)は常に暗黙的に含まれます。

有効なスコープ: allcorepgkafkaapplicationintegrationsall を使用してすべてのツールを明示的にロードします(パラメータを省略した場合と同じ)。all は他のスコープと組み合わせることはできません。

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

read_only と組み合わせることもできます:

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

読み取り専用モードでの書き込み例外(リモート)

read_only=true の場合、?write_allowlist= を追加して特定の書き込みツールを再び有効にし、他のすべてを読み取り専用に保ちます。主に読み取りアクセスが必要だが、Kafka トピックの作成など、1 つの書き込みアクションを許可したい場合に便利です。複数のツール名をカンマで区切って組み合わせます。read_only が有効でない場合は無視されます。

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

マーケットプレイス カスタマー(リモート)

クラウドマーケットプレイスを通じて Aiven に登録した場合は、サインインが正しいコンソールを使用するように、マーケットプレイスをパスセグメントとして追加します:

マーケットプレイスパスセグメント
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>"
    }
  }
}

パスセグメントは上記のクエリパラメータと組み合わされます。例: https://mcp.aiven.live/mcp/gcp?services_scope=pg&read_only=true

オプション 2: stdio(ローカル)

MCP クライアントの子プロセスとしてサーバーをローカルで実行します。Node.js 18+ が必要です。

AIVEN_TOKEN 環境変数を使用して Aiven API トークンを提供する必要があります。ここでトークンを作成 します。

Claude Code

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

Cursor、VS Code -- MCP クライアント設定に追加します:

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

設定ファイルの場所:

  • Cursor: Cursor 設定 > MCP サーバー
  • VS Code: ワークスペースの .vscode/mcp.json

オプション 3: ローカル開発

サーバーのローカルビルドを実行します(開発とテストに便利):

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

サーバーはデフォルトでポート 3000 でリッスンします。MCP クライアントを http://localhost:3000/mcp に接続します。

リモートデプロイメントをカスタムホスト(例: ローカルビルド)に向けるには、MCP_HOST を設定します:

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

環境変数

変数必須デフォルト説明
AIVEN_TOKENstdio のみ--Aiven API トークン(ここで作成
AIVEN_READ_ONLYいいえfalsetrue に設定すると、読み取り専用ツールのみを公開します
AIVEN_SERVICES_SCOPEいいえ--公開するスコープのカンマ区切りリスト(例: kafkapg,kafka、または all)。有効: allcorepgkafkaapplicationintegrationscore は常に含まれます。変数を省略するか、all に設定すると、すべてのツールがロードされます。
AIVEN_ALLOW_SECRETSいいえfalsetrue に設定すると、aiven_service_connection_info ツールが公開され、ライブ資格情報(パスワード、接続 URI、証明書)が会話に返されます。AIVEN_READ_ONLY=true の間は無効です。
AIVEN_WRITE_ALLOWLISTいいえ--AIVEN_READ_ONLY=true の間に再び有効にするツール名のカンマ区切りリスト(例: aiven_kafka_topic_create)。読み取り専用モードが有効でない場合は無視されます。
MCP_HOSTいいえhttps://mcp.aiven.liveOAuth 保護リソースのホストを上書きします
MCP_TRANSPORTいいえstdiohttp に設定すると、stdio の代わりに HTTP サーバーを起動します
MCP_HTTP_RATE_LIMIT_MAXいいえ1000POST /mcp(HTTP トランスポート)でのベアラートークンごとのウィンドウあたりの最大リクエスト数。クライアント IP レート制限は Cloudflare で想定されています。
MCP_HTTP_RATE_LIMIT_WINDOW_MSいいえ60000MCP_HTTP_RATE_LIMIT_MAX のウィンドウ長(ミリ秒)。
EXTRA_PROTECTIONいいえfalseHTTP デプロイメントで true に設定すると、GET /health を除くすべてのリクエストで有効な X-Edge-Auth ヘッダーが必要になります。以下の エッジ保護のロールアウト を参照してください。
MCP_EDGE_AUTH_SECRETEXTRA_PROTECTION=true の場合--共有シークレット。Cloudflare が Transform Rules を介して X-Edge-Auth として注入する値と一致する必要があります。

リモート(HTTP)モードでは、AIVEN_TOKEN は必要ありません。MCP クライアントは、各リクエストでトークンを Bearer トークンとして送信します。

本番 HTTP トラフィックは 2 層でレート制限されます: Cloudflare はクライアント IP ごとの制限(Cloudflare ダッシュボードで設定)を適用し、このサーバーは POST /mcp でベアラートークンごとに MCP_HTTP_RATE_LIMIT_* を適用します。

エッジ保護のロールアウト

EXTRA_PROTECTION=true の場合、MCP_EDGE_AUTH_SECRET と Cloudflare が X-Edge-Auth として注入する値の不一致により、すべてのリクエストが 403 を返しますGET /health を除く)。両方の値はワイヤの反対側の環境/設定であるため、回復方法はシークレットを修正して再デプロイするか、Cloudflare を更新することだけです。

次の順序で有効にします:

  1. Cloudflare Transform Rule — MCP オリジンへのトラフィックに X-Edge-Auth(および PG ツールに使用する場合は X-Client-IP)を設定するルールを追加します。設定したシークレット値をメモします。
  2. MCP_EDGE_AUTH_SECRET — この環境変数を Transform Rule と同じシークレットに設定してサーバーをデプロイします。今のところ EXTRA_PROTECTION は未設定または false のままにし、オリジンがまだトラフィックを受け入れていることを確認します。
  3. EXTRA_PROTECTION=true — 手順 1〜2 が稼働して一致した後にのみ有効にします。通常の MCP リクエストが成功し、X-Edge-Auth なしの直接オリジンアクセスが拒否されることを確認します。
  4. シークレットのローテーション — Cloudflare と MCP_EDGE_AUTH_SECRET を一緒に更新し(または EXTRA_PROTECTION=false を一時的に設定し)、再デプロイしてから再び有効にします。フラグがオンの間は、片側だけをローテーションしないでください。

起動時に EXTRA_PROTECTION=trueMCP_EDGE_AUTH_SECRET が欠落している場合、プロセスはエラーで即座に終了します。

拒否が続く間、サーバーは設定ミスの警告を最大でも 15 分に 1 回ログに記録します(有効な X-Edge-Auth を持つリクエストの後にリセットされます)。そのため、シークレットの不一致は、拒否されたリクエストごとに 1 行を記録することなく、ログで確認できます。

ツール

コア

ツール説明
aiven_project_listプロジェクトを一覧表示
aiven_project_getプロジェクトの詳細を取得
aiven_list_project_cloudsプロジェクトのクラウドプラットフォームを一覧表示
aiven_project_vpc_listプロジェクトの VPC を一覧表示
aiven_service_listサービスを一覧表示
aiven_service_type_plansクラウドの可用性を含むプランを一覧表示
aiven_service_plan_pricing特定のクラウドでのプランの価格を取得
aiven_service_createサービスを作成
aiven_service_getサービス情報を取得
aiven_service_updateサービスを更新(プラン、設定、電源状態)
aiven_service_metrics_fetch管理データサービスのメトリクスを取得
aiven_service_application_metrics_getアプリケーションサービスのメトリクスを取得
aiven_project_get_service_logsサービスのログエントリを取得
aiven_service_query_activityサービスの現在のクエリを取得
aiven_project_get_event_logsプロジェクトのイベントログエントリを取得

Kafka

ツール説明
aiven_kafka_topic_listKafka トピックを一覧表示
aiven_kafka_topic_createKafka トピックを作成
aiven_kafka_topic_getKafka トピック情報を取得
aiven_kafka_topic_updateKafka トピックを更新
aiven_kafka_topic_deleteKafka トピックを削除
aiven_kafka_topic_message_listKafka トピックからメッセージを読み取る
aiven_kafka_topic_message_produceKafka トピックにメッセージを生成
aiven_kafka_connect_available_connectors利用可能なコネクタタイプを一覧表示
aiven_kafka_connect_list実行中のコネクタを一覧表示
aiven_kafka_connect_create_connectorコネクタを作成
aiven_kafka_connect_edit_connectorコネクタを編集
aiven_kafka_connect_get_connector_statusコネクタのステータスを取得
aiven_kafka_connect_pause_connectorコネクタを一時停止
aiven_kafka_connect_resume_connectorコネクタを再開
aiven_kafka_connect_restart_connectorコネクタを再起動
aiven_kafka_connect_delete_connectorコネクタを削除
aiven_kafka_schema_registry_subjectsSchema Registry のサブジェクトを一覧表示
aiven_kafka_schema_registry_subject_version_getSchema Registry のサブジェクトバージョンを取得

PostgreSQL

ツール説明
aiven_pg_service_available_extensions利用可能な拡張機能を一覧表示
aiven_pg_service_query_statisticsクエリ統計を取得
aiven_pg_bouncer_createPgBouncer 接続プールを作成
aiven_pg_bouncer_updatePgBouncer 接続プールを更新
aiven_pg_bouncer_deletePgBouncer 接続プールを削除
aiven_pg_read読み取り専用 SQL クエリを実行
aiven_pg_write書き込み SQL ステートメントを実行(INSERT、UPDATE、DELETE、CREATE TABLE など)
aiven_pg_optimize_queryAI を活用したクエリ最適化(EverSQL)

アプリケーション

ツール説明
aiven_application_createContainerfile/Dockerfile アプリケーションを作成して最初にデプロイします。サービスがすでに存在する場合は 409 を返します
aiven_application_redeploy設定済みのリポジトリから既存のアプリケーションをサービス設定を変更せずに再ビルドします
aiven_vcs_integration_list接続された VCS(GitHub)アカウントを一覧表示
aiven_vcs_integration_repository_listVCS 統合のリポジトリを一覧表示
aiven_vcs_integration_repository_branch_listリポジトリのブランチと現在のコミット SHA を一覧表示
aiven_vcs_integration_repository_container_manifest_files_list候補となる Containerfile、Dockerfile、Compose マニフェストを検索
aiven_vcs_integration_repository_scan_container_manifestContainerfile、Dockerfile、または Compose ファイルのサポートされている部分から候補となる Aiven サービス設定を導出

ドキュメント

ツール説明
aiven_docs_search公式 Aiven ドキュメントを自然言語で検索します。ホスト型サーバー(https://mcp.aiven.live/mcp)でのみ利用可能です。セルフホスト型デプロイメントでは公開されません。

貢献

開発環境のセットアップ、ローカルでの実行、新しいツールの追加については、CONTRIBUTING.md を参照してください。

ライセンス

Apache-2.0