Aiven

公式

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

Aiven MCPで何ができますか?

  • List and inspect Aiven projectsaiven_project_listaiven_project_get を使用してプロジェクトを一覧表示し、詳細を確認します。
  • Manage Aiven servicesaiven_service_createaiven_service_updateaiven_service_get を使用してサービスを作成、更新、または取得します。
  • Work with Kafka topics and connectors — トピックの一覧表示、作成、更新、削除、メッセージの生成/消費、Kafka Connect コネクターの管理を行います。
  • Run SQL on PostgreSQL servicesaiven_pg_read で読み取り専用クエリを実行するか、aiven_pg_write で書き込みステートメントを実行します。
  • Deploy and redeploy applicationsaiven_application_deployaiven_application_redeploy を使用して、Aiven 上の Docker 化されたアプリケーションを管理します。
  • Search Aiven documentationaiven_docs_search を使用して自然言語で公式ドキュメントを検索します(ホストサーバーのみ)。

ドキュメント

Aiven MCP Server

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

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_subjectsスキーマレジストリのサブジェクトを一覧表示
aiven_kafka_schema_registry_subject_version_getスキーマレジストリのサブジェクトバージョンを取得

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_deployDocker 化されたアプリケーションを Aiven にデプロイ
aiven_application_redeploy既存のアプリケーションを再構築して再デプロイ
aiven_vcs_integration_list接続された VCS (GitHub) アカウントを一覧表示
aiven_vcs_integration_repository_listVCS 統合のリポジトリを一覧表示

ドキュメント

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

貢献

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

ライセンス

Apache-2.0