Aiven
公式Aivenプロジェクトを操作し、PostgreSQL®、Apache Kafka®、ClickHouse®、OpenSearch®の各サービスと連携できます。
Aiven MCPで何ができますか?
- Aivenサービスの管理 — アシスタントに、
aiven_service_create、aiven_service_update、aiven_service_listを使用してサービスの一覧表示、作成、更新、削除を依頼します。 - Kafkaトピックの操作 — アシスタントに、
aiven_kafka_topic_createとaiven_kafka_topic_message_produceを使用してトピックの作成、読み取り、メッセージの生成を依頼します。 - PostgreSQLクエリの実行 — アシスタントに、
aiven_pg_readとaiven_pg_writeを使用して読み取り専用または書き込みSQLステートメントを実行させたり、aiven_pg_optimize_queryを使用してクエリを最適化させたりします。 - Kafkaコネクタの管理 — アシスタントに、
aiven_kafka_connect_create_connectorおよび関連ツールを使用してコネクタの作成、一時停止、再開、削除を依頼します。 - アプリケーションのデプロイ — アシスタントに、
aiven_application_createとaiven_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
または、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。all を使用してすべてのツールを明示的にロードします(パラメータを省略した場合と同じ)。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 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 設定 > 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_TOKEN | stdio のみ | -- | Aiven API トークン(ここで作成) |
AIVEN_READ_ONLY | いいえ | false | true に設定すると、読み取り専用ツールのみを公開します |
AIVEN_SERVICES_SCOPE | いいえ | -- | 公開するスコープのカンマ区切りリスト(例: kafka、pg,kafka、または all)。有効: all、core、pg、kafka、application、integrations。core は常に含まれます。変数を省略するか、all に設定すると、すべてのツールがロードされます。 |
AIVEN_ALLOW_SECRETS | いいえ | false | true に設定すると、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.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_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_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 を参照してください。