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
または、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 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>"
}
}
}
パスセグメントは上記のクエリパラメータと組み合わせられます。たとえば 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_TOKEN | stdio のみ | -- | Aiven API トークン(ここで作成) |
AIVEN_READ_ONLY | いいえ | false | true に設定すると、読み取り専用ツールのみを公開します |
AIVEN_SERVICES_SCOPE | いいえ | -- | 公開するスコープのカンマ区切りリスト(例: kafka、pg,kafka、または all)。有効な値: all、core、pg、kafka、application、integrations、opensearch。スコープ付きサービスタイプでは core が暗黙的に含まれます。opensearch には専用ツールがまだありません(OpenSearch ツールが追加されるまではコアのみ)。変数を省略するか all に設定すると、すべてのツールを読み込みます。 |
AIVEN_ALLOW_SECRETS | いいえ | false | true に設定すると、会話に実際の認証情報(パスワード、接続 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.live | OAuth 保護リソースのホストを上書きします |
MCP_TRANSPORT | いいえ | stdio | http に設定すると、stdio の代わりに HTTP サーバーを起動します |
MCP_HTTP_RATE_LIMIT_MAX | いいえ | 1000 | POST /mcp(HTTP トランスポート)でのベアラートークンごとのウィンドウあたりの最大リクエスト数。クライアント IP のレート制限は Cloudflare 側で行われる想定です。 |
MCP_HTTP_RATE_LIMIT_WINDOW_MS | いいえ | 60000 | MCP_HTTP_RATE_LIMIT_MAX のウィンドウ長(ミリ秒)。 |
EXTRA_PROTECTION | いいえ | false | HTTP デプロイで true に設定すると、GET /health を除くすべてのリクエストで有効な X-Edge-Auth ヘッダーを要求します。以下のエッジ保護のロールアウトを参照してください。 |
MCP_EDGE_AUTH_SECRET | EXTRA_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 を更新することです。
次の順序で有効にしてください:
- Cloudflare Transform Rule — MCP オリジンへのトラフィックに
X-Edge-Auth(および PG ツールで使用する場合はX-Client-IP)を設定するルールを追加します。設定したシークレットの値を控えておいてください。 MCP_EDGE_AUTH_SECRET— この環境変数を Transform Rule と同じシークレットに設定してサーバーをデプロイします。今はEXTRA_PROTECTIONは未設定またはfalseのままにし、オリジンが引き続きトラフィックを受け付けることを確認します。EXTRA_PROTECTION=true— 手順 1〜2 が稼働し一致した後にのみ有効にします。通常の MCP リクエストが成功し、X-Edge-Authなしのオリジンへの直接アクセスが拒否されることを確認します。- シークレットのローテーション — 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_list | Kafka トピックを一覧表示 |
aiven_kafka_topic_create | Kafka トピックを作成 |
aiven_kafka_topic_get | Kafka トピックの情報を取得 |
aiven_kafka_topic_update | Kafka トピックを更新 |
aiven_kafka_topic_delete | Kafka トピックを削除 |
aiven_kafka_topic_message_list | Kafka トピックからメッセージを読み取る |
aiven_kafka_topic_message_produce | Kafka トピックにメッセージを送信 |
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 | Schema Registry のサブジェクトを一覧表示 |
aiven_kafka_schema_registry_subject_version_get | Schema Registry のサブジェクトバージョンを取得 |
PostgreSQL
| ツール | 説明 |
|---|---|
aiven_pg_service_available_extensions | 利用可能な拡張機能を一覧表示 |
aiven_pg_service_query_statistics | クエリ統計を取得 |
aiven_pg_bouncer_create | PgBouncer 接続プールを作成 |
aiven_pg_bouncer_update | PgBouncer 接続プールを更新 |
aiven_pg_bouncer_delete | PgBouncer 接続プールを削除 |
aiven_pg_read | 読み取り専用の SQL クエリを実行 |
aiven_pg_write | 書き込み SQL ステートメントを実行(INSERT、UPDATE、DELETE、CREATE TABLE など) |
aiven_pg_optimize_query | AI によるクエリ最適化(EverSQL) |
アプリケーション
| ツール | 説明 |
|---|---|
aiven_application_create | Containerfile/Dockerfile アプリケーションを作成し、初回デプロイを実行。サービスが既に存在する場合は 409 を返します |
aiven_application_redeploy | サービス設定を変更せずに、設定済みリポジトリから既存のアプリケーションを再ビルド |
aiven_vcs_integration_initialize | GitHub アカウントを接続するためのブラウザベースのフローを開始 |
aiven_vcs_integration_list | 接続済みの VCS(GitHub)アカウントを一覧表示 |
aiven_vcs_integration_repository_list | VCS 連携のリポジトリを一覧表示 |
aiven_vcs_integration_repository_branch_list | リポジトリのブランチとその現在のコミット SHA を一覧表示 |
aiven_vcs_integration_repository_container_manifest_files_list | 候補となる Containerfile、Dockerfile、Compose マニフェストを検索 |
aiven_vcs_integration_repository_scan_container_manifest | Containerfile、Dockerfile、または Compose ファイルのサポート対象部分から、候補となる Aiven サービス設定を導出 |
ドキュメント
| ツール | 説明 |
|---|---|
aiven_docs_search | 公式 Aiven ドキュメントを自然言語で検索。ホスト型サーバー(https://mcp.aiven.live/mcp)でのみ利用可能で、セルフホスト型デプロイでは公開されません。 |
コントリビューション
開発環境のセットアップ、ローカルでの実行、新しいツールの追加については、CONTRIBUTING.md を参照してください。