Aiven について
Aivenは、Aivenクラウドデータプラットフォームのサービスを管理するMCPサーバーで、AIアシスタントを使ってPostgreSQLやKafkaなどを扱うチーム向けです。サービス操作とデータ関連のツールを備え、読み取り専用や対象サービスの限定もできます。
主な機能
- 01Aivenプロジェクトとサービスの一覧・管理
- 02サービスのメトリクス、ログ、稼働状況の確認
- 03Kafkaトピックの読み書きとコネクター管理
- 04PostgreSQLクエリの実行と統計の確認
- 05サービス範囲または読み取り専用モードによる制限
活用シーン
- 01Aivenサービスの状態やログの確認
- 02Kafkaトピックやコネクターの作成・更新
- 03PostgreSQLデータや統計の照会
- 04エージェントを指定サービスまたは読み取り専用操作に限定
MCP 対応
Aivenプラットフォームの操作をMCPツールとしてAIアシスタントに公開します。クライアントはAivenのホスト型HTTPエンドポイントに接続するか、stdioでサーバーをローカル実行でき、ツールの範囲や読み取り専用設定も指定できます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.aiven.live/mcp?read_only={read_only}&services_scope={services_scope}&allow_secrets={allow_secrets}claude mcp add --transport http aiven https://mcp.aiven.live/mcp?read_only={read_only}&services_scope={services_scope}&allow_secrets={allow_secrets}{"mcpServers":{"aiven":{"type":"http","url":"https://mcp.aiven.live/mcp?read_only={read_only}&services_scope={services_scope}&allow_secrets={allow_secrets}"}}}Cursor で開く{"servers":{"aiven":{"type":"http","url":"https://mcp.aiven.live/mcp?read_only={read_only}&services_scope={services_scope}&allow_secrets={allow_secrets}"}}}VS Code で開く{"mcpServers":{"aiven":{"type":"http","url":"https://mcp.aiven.live/mcp?read_only={read_only}&services_scope={services_scope}&allow_secrets={allow_secrets}"}}}{"mcpServers":{"aiven":{"serverUrl":"https://mcp.aiven.live/mcp?read_only={read_only}&services_scope={services_scope}&allow_secrets={allow_secrets}"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
Aiven MCP サーバー
Aiven クラウドデータプラットフォーム向けのModel Context Protocol(MCP)サーバーです。
Claude、Cursor、VS Code Copilot などの AI アシスタントから、PostgreSQL、Apache Kafka、アプリケーション、その他の Aiven サービスを直接管理できます。
警告
注意して使用してください。 この 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 と同じルール(core と OpenSearch カテゴリーのツール)に従います。OpenSearch 専用のツールはまだないため、現在は core のみが公開されます。
{
"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_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 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 ツールが追加されるまでは core のみです。この変数を省略するか、all に設定すると、すべてのツールが読み込まれます。 |
AIVEN_ALLOW_SECRETS | いいえ | false | ライブ認証情報(パスワード、接続 URI、証明書)を会話に返す aiven_service_connection_info ツールを公開するには、true に設定します。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 | stdio の代わりに HTTP サーバーを起動するには、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 デプロイで、GET /health を除くすべてのリクエストに有効な X-Edge-Auth ヘッダーを必須にするには、true に設定します。下記のエッジ保護の導入を参照してください。 |
MCP_EDGE_AUTH_SECRET | EXTRA_PROTECTION=true の場合 | -- | 共有シークレットです。Transform Rules を介して Cloudflare が X-Edge-Auth として挿入する値と一致させる必要があります。 |
リモート(HTTP)モードでは、AIVEN_TOKEN は不要です。MCP クライアントは、各リクエストにベアラートークンとしてトークンを送信します。
本番環境の HTTP トラフィックは、2 層でレート制限されます。Cloudflare がクライアント IP ごとの制限(Cloudflare ダッシュボードで設定)を適用し、このサーバーが POST /mcp でベアラートークンごとに MCP_HTTP_RATE_LIMIT_* を適用します。
エッジ保護の導入
EXTRA_PROTECTION=true の場合、MCP_EDGE_AUTH_SECRET と Cloudflare が X-Edge-Auth として挿入する値が一致しないと、(GET /health を除く)すべてのリクエストが 403 を返します。両方の値は通信経路のそれぞれ反対側にある環境変数/設定のため、復旧するにはシークレットを修正して再デプロイするか、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 を含むリクエストの後にリセットされます)。そのため、拒否されたリクエストごとにログを出すことなく、シークレットの不一致をログで確認できます。
ツール
コア
| ツール | 説明 |
|---|---|
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 を参照してください。
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。