Aiven

公式

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

Aiven MCPで何ができますか?

  • Aiven サービスを管理 — プロジェクト全体で PostgreSQL、Kafka、その他の Aiven サービスの一覧表示、作成、更新、詳細やメトリクスの取得を行います。
  • Kafka を操作 — トピックの一覧表示、作成、更新、削除、メッセージの読み取りや生成、Kafka Connect コネクタと Schema Registry サブジェクトの管理を行います。
  • PostgreSQL クエリを実行 — 読み取り専用の SQL クエリや書き込みステートメントを実行し、クエリ統計を取得し、PgBouncer 接続プールを管理します。
  • アプリケーションをデプロイ — Containerfile/Dockerfile アプリケーションを作成・再デプロイし、VCS 統合を通じて GitHub リポジトリを接続します。
  • Aiven ドキュメントを検索 — 公式 Aiven ドキュメントを自然言語で検索します(ホスト型サーバーのみ)。
  • アクセスを制限 — 読み取り専用モードを有効化し、ツールを特定のサービスタイプにスコープし、個々の書き込みツールを許可リストに登録します。

ドキュメント

Aiven MCP Server

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

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

[!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(プロジェクト/サービスの検出)は常に暗黙的に含まれます。

有効なスコープ: all、core、pg、kafka、application、integrations、opensearch。all を使用すると、すべてのツールを明示的に読み込みます(パラメータを省略した場合と同じ)。all は他のスコープと組み合わせることはできません。opensearch は kafka または pg と同じルールに従います(コアおよび OpenSearch カテゴリのツール)。OpenSearch 専用のツールはまだ存在しないため、現時点ではコアのみを公開します。

{
  "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 API トークンを AIVEN_TOKEN 環境変数で指定する必要があります。ここでトークンを作成してください。

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 Settings > MCP Servers
  • 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いいえ--公開するスコープのカンマ区切りリスト(例: kafka、pg,kafka、または all)。有効な値: all、core、pg、kafka、application、integrations、opensearch。スコープ付きサービスタイプでは core が暗黙的に含まれます。opensearch には専用ツールがまだありません(OpenSearch ツールが追加されるまではコアのみ)。変数を省略するか all に設定すると、すべてのツールを読み込みます。
AIVEN_ALLOW_SECRETSいいえfalsetrue に設定すると、会話に実際の認証情報(パスワード、接続 URI、証明書)を返す aiven_service_connection_info ツールを公開します。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=true で、かつ MCP_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_type_getサービスタイプのデフォルトおよび利用可能なエンジンバージョンを取得
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_initializeGitHub アカウントを接続するためのブラウザベースのフローを開始
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