Aiven
公式Aivenプロジェクトを操作し、PostgreSQL®、Apache Kafka®、ClickHouse®、OpenSearch®の各サービスと連携できます。
Aiven MCPで何ができますか?
- List and inspect Aiven projects —
aiven_project_listとaiven_project_getを使用してプロジェクトを一覧表示し、詳細を確認します。 - Manage Aiven services —
aiven_service_create、aiven_service_update、aiven_service_getを使用してサービスを作成、更新、または取得します。 - Work with Kafka topics and connectors — トピックの一覧表示、作成、更新、削除、メッセージの生成/消費、Kafka Connect コネクターの管理を行います。
- Run SQL on PostgreSQL services —
aiven_pg_readで読み取り専用クエリを実行するか、aiven_pg_writeで書き込みステートメントを実行します。 - Deploy and redeploy applications —
aiven_application_deployとaiven_application_redeployを使用して、Aiven 上の Docker 化されたアプリケーションを管理します。 - Search Aiven documentation —
aiven_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
または、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 | スキーマレジストリのサブジェクトを一覧表示 |
aiven_kafka_schema_registry_subject_version_get | スキーマレジストリのサブジェクトバージョンを取得 |
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_deploy | Docker 化されたアプリケーションを Aiven にデプロイ |
aiven_application_redeploy | 既存のアプリケーションを再構築して再デプロイ |
aiven_vcs_integration_list | 接続された VCS (GitHub) アカウントを一覧表示 |
aiven_vcs_integration_repository_list | VCS 統合のリポジトリを一覧表示 |
ドキュメント
| ツール | 説明 |
|---|---|
aiven_docs_search | 自然言語で Aiven の公式ドキュメントを検索します。ホストされたサーバー (https://mcp.aiven.live/mcp) でのみ利用可能で、セルフホストデプロイメントでは公開されません。 |
貢献
開発セットアップ、ローカルでの実行、新しいツールの追加については、CONTRIBUTING.md を参照してください。