MCP Vertica について
MCP Vertica は、MCP クライアントから Vertica データベースへのクエリ実行とスキーマ操作を可能にします。結果のストリーミング、一括ロード、接続制御に加え、操作別・スキーマ別の権限を設定できます。
主な機能
- 01SQL クエリの実行
- 02クエリ結果のバッチストリーミング
- 03COPY によるデータの一括ロード
- 04テーブル、インデックス、ビューの確認
- 05トランザクションと接続の管理
- 06操作別・スキーマ別の権限設定
活用シーン
- 01Vertica データベースへの SQL 実行
- 02大量のクエリ結果のバッチ処理
- 03COPY による大規模データセットのロード
- 04操作とスキーマによる書き込みや DDL 権限の制限
MCP 対応
Vertica のクエリ、データロード、スキーマ管理ツールを MCP クライアントに公開します。uvx または Docker でクライアント向けに設定できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP Vertica
🏆 Vertica MCP サーバーの初の実装 • 詳細を見る
✅ Model Context Protocol 公式レジストリに掲載
Vertica 用の MCP(model-context-protocol)サーバー
例:MCP サーバーの設定
以下の内容を使用して、MCP クライアントの設定ファイルを作成または編集します。
UVX
{
"mcpServers": {
"vertica": {
"command": "uvx",
"args": ["mcp-vertica"],
"env": {
"VERTICA_HOST": "localhost",
"VERTICA_PORT": 5433,
"VERTICA_DATABASE": "VMart",
"VERTICA_USER": "dbadmin",
"VERTICA_PASSWORD": "test_password",
"VERTICA_CONNECTION_LIMIT": 10,
"VERTICA_SSL": false,
"VERTICA_SSL_REJECT_UNAUTHORIZED": true
}
}
}
}
または、引数を指定する場合
{
"mcpServers": {
"vertica": {
"command": "uvx",
"args": [
"mcp-vertica",
"--host=localhost",
"--db-port=5433",
"--database=VMart",
"--user=dbadmin",
"--password=test_password",
"--connection-limit=10"
]
}
}
}
Docker
{
"mcpServers": {
"vertica": {
"command": "docker",
"args": ["run", "-i", "--rm", "nolleh/mcp-vertica"],
"env": {
"VERTICA_HOST": "localhost",
"VERTICA_PORT": 5433,
"VERTICA_DATABASE": "VMart",
"VERTICA_USER": "dbadmin",
"VERTICA_PASSWORD": "test_password",
"VERTICA_CONNECTION_LIMIT": 10,
"VERTICA_SSL": false,
"VERTICA_SSL_REJECT_UNAUTHORIZED": true
}
}
}
}
メモ
--sslや--ssl-reject-unauthorizedなどのブール値フラグを有効にするには、フラグ(例:"--ssl")を追加します。無効にするには、省略します。- 空のパスワードを指定する場合は、上記のように空文字列を使用します。
機能
データベース接続の管理
- 設定可能な上限を備えた接続プール
- SSL/TLS のサポート
- 接続の自動クリーンアップ
- 接続タイムアウトの処理
クエリ操作
- SQL クエリの実行
- 大きなクエリ結果をバッチでストリーミング
- データのコピー操作
- トランザクション管理
スキーマ管理
- テーブル構造の確認
- インデックス管理
- ビュー管理
- 制約情報
- カラムの詳細
セキュリティ機能
- 操作レベルの権限(INSERT、UPDATE、DELETE、DDL)
- スキーマ固有の権限
- SSL/TLS のサポート
- ログ内のパスワードのマスキング
ツール
データベース操作
-
execute_query- SQL クエリを実行
- すべての SQL 操作に対応
-
stream_query- 大きなクエリ結果をバッチでストリーミング
- バッチサイズを設定可能
-
copy_data- COPY コマンドを使用した一括データ読み込み
- 大規模なデータセットに効率的
スキーマ管理
-
get_table_structure- テーブル構造の詳細を取得
- カラム情報
- 制約
-
list_indexes- テーブルのすべてのインデックスを一覧表示
- インデックスの種類と一意性
- カラム情報
-
list_views- スキーマ内のすべてのビューを一覧表示
- ビュー定義
設定
環境変数
VERTICA_HOST=localhost
VERTICA_PORT=5433
VERTICA_DATABASE=VMart
VERTICA_USER=newdbadmin
VERTICA_PASSWORD=vertica
VERTICA_CONNECTION_LIMIT=10
VERTICA_SSL=false
VERTICA_SSL_REJECT_UNAUTHORIZED=true
操作権限
ALLOW_INSERT_OPERATION=false
ALLOW_UPDATE_OPERATION=false
ALLOW_DELETE_OPERATION=false
ALLOW_DDL_OPERATION=false
スキーマ権限
SCHEMA_INSERT_PERMISSIONS=schema1:true,schema2:false
SCHEMA_UPDATE_PERMISSIONS=schema1:true,schema2:false
SCHEMA_DELETE_PERMISSIONS=schema1:true,schema2:false
SCHEMA_DDL_PERMISSIONS=schema1:true,schema2:false
インストール
Smithery 経由でインストール
Smithery 経由で Vertica Database Connector for Claude Desktop を自動的にインストールするには:
npx -y @smithery/cli install @nolleh/mcp-vertica --client claude
手動でインストール
お使いの MCP クライアントの設定ファイルを開き、uvx mcp-vertica を設定します。
開発
デバッグモード
Docker で実行する際、DEBUG 環境変数を設定するとデバッグログを有効にできます。
# Run with maximum verbosity (-vvv)
docker run -e DEBUG=3 -e VERTICA_HOST=localhost ... nolleh/mcp-vertica:latest
# Run with medium verbosity (-vv)
docker run -e DEBUG=2 -e VERTICA_HOST=localhost ... nolleh/mcp-vertica:latest
# Pass additional arguments
docker run -e EXTRA_ARGS="--connection-limit=20" -e VERTICA_HOST=localhost ... nolleh/mcp-vertica:latest
docker-compose.yml 内:
environment:
DEBUG: 3 # 0=none, 1=-v, 2=-vv, 3=-vvv
EXTRA_ARGS: "--connection-limit=20" # Optional additional arguments
付録:テスト用 VerticaDB Docker Compose の例
version: "3.8"
services:
vertica:
# image: vertica/vertica-ce:11.1.0-0
image: vertica/vertica-ce:latest
platform: linux/amd64
container_name: vertica-ce
environment:
VERTICA_MEMDEBUG: 2
ports:
- "5433:5433"
- "5444:5444"
volumes:
- vertica_data:/home/dbadmin/VMart
healthcheck:
test:
[
"CMD",
"/opt/vertica/bin/vsql",
"-h",
"localhost",
"-d",
"VMart",
"-U",
"dbadmin",
"-c",
"SELECT 1",
]
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
restart: unless-stopped
mcp-vertica:
image: nolleh/mcp-vertica:latest
container_name: mcp-vertica
ports:
- "8081:8081"
environment:
# Transport mode
TRANSPORT: http
PORT: 8081
# Debug settings (0=none, 1=-v, 2=-vv, 3=-vvv)
DEBUG: 3 # Set to 3 for maximum verbosity
# Extra command line arguments (optional)
# EXTRA_ARGS: "--some-flag"
# Vertica connection settings
VERTICA_HOST: vertica
VERTICA_PORT: 5433
VERTICA_DATABASE: VMart
VERTICA_USER: dbadmin
VERTICA_PASSWORD: ""
VERTICA_CONNECTION_LIMIT: 10
VERTICA_SSL: "false"
depends_on:
vertica:
condition: service_healthy
volumes:
vertica_data:
driver: local
次に、例:MCP サーバーの設定の手順に従ってサーバーを起動し、 すべてが正常に動作することを確認します。
ライセンス
このプロジェクトは MIT ライセンスのもとでライセンスされています。詳細は LICENSE ファイルを参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
