db-view-mcp について
db-view-mcpは、AIアシスタントからPostgreSQLやClickHouseにアクセスするためのMCPサーバーです。クエリ、スキーマ、分析ツールを備え、stdioとHTTPに対応し、読み取り専用操作にはSQL検証を適用します。
主な機能
- 01複数のPostgreSQLとClickHouseへの接続
- 02SQLの読み取りと書き込み
- 03スキーマ確認とDDL出力
- 04クエリ分析とスロークエリ追跡
- 05stdioまたはHTTPトランスポート
活用シーン
- 01IDE連携アシスタントからデータベースを検索する
- 02HTTPでリモートデータベースアクセスを提供する
- 03検索前にテーブルや列を確認する
- 04クエリプランとスロークエリを調査する
MCP 対応
MCPサーバーは、データベース検索、スキーマ確認、クエリ分析ツールをMCPクライアントに公開します。stdioとHTTPに対応し、HTTPではBearer認証を任意で設定できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
db-view-mcp
AI アシスタントが PostgreSQL と ClickHouse のデータベースに直接アクセスできる MCP サーバーです。 ローカルの IDE 連携やリモートネットワークアクセス向けに、stdio と HTTP の両方のトランスポートに 対応しています。
機能
- マルチデータベース — PostgreSQL と ClickHouse の任意の数のインスタンスに同時に接続できます
- デュアルトランスポート — IDE 連携(Cursor、Claude Code)には stdio、リモート/複数クライアントアクセスには HTTP を使用します
- 読み取り・書き込みツール — 行数制限付きの SELECT、INSERT/UPDATE/DELETE、DDL、トランザクション
- スキーマのイントロスペクション — テーブルの一覧表示、カラムの説明、DDL 全体のエクスポート
- クエリ分析 — EXPLAIN / EXPLAIN ANALYZE、低速クエリの追跡
- SQL の安全性 — 読み取り専用ツールが SQL を検証し、誤った書き込みをブロックします
- 柔軟なツールモード —
databaseパラメーターを持つ単一のツール、またはデータベースごとに個別のツール - 遅延接続 — デフォルトでは、初回使用時にデータベースへ接続します
- Bearer 認証 — HTTP トランスポートで任意のトークン認証を使用できます
- セッション管理 — ステートフル(セッションごとの MCP サーバー)またはステートレス HTTP モード
インストール
npm install @conte777/db-view-mcp
または、ソースをクローンしてビルドします。
git clone <repo-url>
cd db-view-mcp
npm install
npm run build
クイックスタート
1. 設定
サンプル設定をコピーして編集します。
cp config.example.json config.json
最小限の stdio 設定:
{
"databases": [
{
"id": "main_pg",
"type": "postgresql",
"host": "localhost",
"port": 5432,
"database": "myapp",
"user": "admin",
"password": "secret123"
}
]
}
すべてのフィールド、デフォルト値、および設定の完全なリファレンス(SSL/TLS、データベースごとのオーバーライド、環境変数の置換、HTTP トランスポート)については、docs/configuration.md を参照してください。
2. 実行
# Stdio (default)
npm start -- --config config.json
# HTTP (set transport.type to "http" in config, or override on the CLI)
npm start -- --config config.json --transport http
# Development (no build needed)
npm run dev -- --config config.json
3. MCP クライアントを追加
Claude Desktop(claude_desktop_config.json)または Claude Code(.mcp.json)、stdio:
{
"mcpServers": {
"database": {
"command": "npx",
"args": ["-y", "@conte777/db-view-mcp", "--config", "/path/to/config.json"]
}
}
}
任意の MCP クライアント、HTTP:
node dist/index.js --config config.json --transport http
# Server listens on http://127.0.0.1:3000/mcp
セッション、認証、curl の例については、docs/http-transport.md を参照してください。
ドキュメント
| ドキュメント | 内容 |
|---|---|
| docs/configuration.md | すべての設定フィールド、デフォルト値、SSL/TLS、rowFormat、環境変数の置換、ホットリロード |
| docs/tools.md | 9 つのツール:パラメーター、出力、例、エラーコード、データベースごとのモード |
| docs/http-transport.md | stdio と HTTP の比較、セッション、Bearer 認証、/health、curl |
| docs/security.md | 読み取り専用 SQL バリデーター、拒否リスト、レスポンス上限、ネットワークへの公開 |
| docs/architecture.md | ソースツリー、レイヤー、コネクターモデル、ライフサイクル(ホットリロード、シャットダウン) |
| CONTRIBUTING.md | ビルド、テスト、Lint、フック、CI |
ClickHouse の制限事項
- トランザクションはサポートされていません(
transaction beginは例外をスローします)。 - クエリの
paramsは無視されます。SQL では ClickHouse のネイティブな{name:Type}構文を使用してください。
開発
ビルド/テスト/Lint コマンド、カバレッジのしきい値、Git フック、CI については、CONTRIBUTING.md を参照してください。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。