mcpField
D
DBeast PostgreSQL MCP

DBeast PostgreSQL MCP

ローカル
github.com/snss10データベース920 週間前に更新

DBeast PostgreSQL MCP について

DBeast PostgreSQL MCPは、AIアシスタント向けのPostgreSQL分析サーバーで、スキーマ探索、読み取り専用クエリー、運用・セキュリティ・性能の確認を行います。広範なSQL実行口ではなく用途別ツールを提供し、破壊的な書き込みは実行せず影響をプレビューします。

主な機能

  1. 01スキーマ、テーブル、依存関係の探索
  2. 02行数制限付き読み取り専用クエリー
  3. 03クエリーと書き込み影響の分析
  4. 04健全性、性能、保守状況の確認
  5. 05セキュリティ、データ品質、レプリケーション監査
  6. 06ツール呼び出しの監査ログ

活用シーン

  1. 01テーブル構造の確認とERD生成
  2. 02遅いクエリーとインデックス案の調査
  3. 03セキュリティと保守リスクの点検
  4. 04データ整理前の影響プレビュー

MCP 対応

DBeastはローカルのstdio MCP サーバーを介してAIクライアントをPostgreSQLに接続し、21種類の調査・分析ツールを提供します。SELECTは実行し、書き込みや破壊的なSQLは実行せず影響をプレビューします。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"snss10-dbeast": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"DATABASE_URL",
"-e",
"DB_HOST",
"-e",
"DB_PORT",
"-e",
"DB_USER",
"-e",
"DB_PASSWORD",
"-e",
"DB_NAME",
"-e",
"AWS_SECRET_NAME",
"-e",
"AWS_REGION",
"ghcr.io/snss10/dbeast:2.0.2"
],
"env": {
"DATABASE_URL": "<DATABASE_URL>",
"DB_HOST": "<DB_HOST>",
"DB_PORT": "<DB_PORT>",
"DB_USER": "<DB_USER>",
"DB_PASSWORD": "<DB_PASSWORD>",
"DB_NAME": "<DB_NAME>",
"AWS_SECRET_NAME": "<AWS_SECRET_NAME>",
"AWS_REGION": "<AWS_REGION>"
}
}
}
}
起動コマンドdocker run -i --rm -e DATABASE_URL -e DB_HOST -e DB_PORT -e DB_USER -e DB_PASSWORD -e DB_NAME -e AWS_SECRET_NAME -e AWS_REGION ghcr.io/snss10/dbeast:2.0.2
設定が必要な環境変数
DATABASE_URLシークレットPostgreSQL connection URL, for example postgresql://user:password@host:5432/database.
DB_HOSTPostgreSQL host when DATABASE_URL is not used.
DB_PORTPostgreSQL port when DATABASE_URL is not used.
DB_USERPostgreSQL user when DATABASE_URL is not used.
DB_PASSWORDシークレットPostgreSQL password when DATABASE_URL is not used.
DB_NAMEPostgreSQL database name when DATABASE_URL is not used.
AWS_SECRET_NAMEシークレットAWS Secrets Manager secret containing PostgreSQL credentials.
AWS_REGIONAWS region for Secrets Manager lookup.

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
ocighcr.io/snss10/dbeast:2.0.2

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

DBeast

AI アシスタントに熟練 DBA の機能を提供する PostgreSQL MCP サーバーです。

Python 3.11+ PostgreSQL 12+ MCP Compatible License: MIT

クイックスタート · デモ · ツール · 安全性 · 設定 · ドキュメント


DBeast は、Model Context Protocol を通じて、Claude、Cursor、Windsurf、VS Code Copilot などの AI アシスタントを PostgreSQL に接続します。汎用的な execute_sql の抜け道をひとつ公開するのではなく、スキーマの検出、安全なクエリ実行、影響分析、パフォーマンスレビュー、セキュリティチェック、メンテナンスレポート、レプリケーション監視、データ品質の検査に対応する 21 個の専用ツールを提供します。


デモ

Claude が DBeast MCP ツールを使って PostgreSQL データベースを監査し、セキュリティとメンテナンスのリスクを特定し、破壊的な SQL を実行せずにクリーンアップの影響を確認する様子をご覧ください。


動作の仕組み

AI assistant  --MCP stdio-->  DBeast server  --asyncpg-->  PostgreSQL
Claude/Cursor                  Python local                 Local, RDS,
Windsurf/VS Code               subprocess                   Supabase, Neon

DBeast はローカルの stdio MCP サーバーとして動作します。IDE またはデスクトップアシスタントがサブプロセスとして起動し、環境変数を通じてデータベースの認証情報を渡します。アシスタントが DBeast のツールを呼び出し、DBeast が PostgreSQL にクエリを実行し、構造化された結果をアシスタントに返します。HTTP サービスや追加のインフラストラクチャは不要です。


クイックスタート

1. インストール
git clone https://github.com/snss10/DBeast.git
cd DBeast
pip install -e .

開発用の場合:

pip install -e ".[dev]"

任意:.env.example を .env にコピーし、データベースの認証情報を設定します。

2. 確認
dbeast

または、ソースのエントリーポイントを直接実行します。

python src/server.py
3. MCP クライアントを設定する

Cursor または Windsurf の最小構成:

{
  "mcpServers": {
    "dbeast": {
      "type": "stdio",
      "command": "python",
      "args": ["/absolute/path/to/DBeast/src/server.py"],
      "env": {
        "DATABASE_URL": "postgresql://user:password@localhost:5432/mydb"
      }
    }
  }
}

一般的な設定ファイルの場所:

クライアント設定ファイルの場所
Cursorプロジェクトルートの .mcp.json、またはグローバル設定の ~/.cursor/.mcp.json
VS Code.vscode/settings.json、またはキー mcp.servers を指定したユーザー設定
macOS の Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.json
Windows の Claude Desktop%APPDATA%\Claude\claude_desktop_config.json
Windsurf.mcp.json

クライアントごとの設定例、Docker、RDS、Supabase、Neon、SSH トンネル、AWS Secrets Manager、トラブルシューティングについては、SETUP.md をご覧ください。

4. 簡単な質問や複雑な質問をする

接続すると、アシスタントは簡単な検索質問に答えるだけでなく、複数ステップのデータベース調査も実行できます。

簡単な例:

Show me the schema for the orders table.
Which queries are slowest right now?
Run a security audit on the public schema.
Generate a Mermaid ERD for the sales schema.

より複雑な例:

Before I archive old sessions, estimate how many rows would be affected, identify related tables, and tell me the rollback risk.
Investigate why the dashboard query is slow, explain the execution plan, and suggest safe indexes.
Review the public schema for maintenance issues, security risks, and data quality problems, then summarize the top priorities.
Compare table growth, dead tuples, and index health across all schemas and recommend what to vacuum or reindex first.

ツール

DBeast は 10 のカテゴリにわたる 21 個の MCP ツールを公開します。

接続
ツール説明
connectPostgreSQL に接続し、現在のステータスを確認するか、ローカルデータベースを検出します
disconnect現在のデータベース接続を閉じます
health_check接続状態、プールの健全性、PostgreSQL のバージョン、拡張機能を確認します
スキーマ検出
ツール説明
get_schemaスキーマ、テーブル、列、インデックス、リレーションシップ、任意の Mermaid ERD を一覧表示します
dependency_analysisデータベースオブジェクトの名前変更、削除、変更の前に、オブジェクトの依存関係をマッピングします
データアクセス
ツール説明
execute_query行数上限を自動的に適用して、読み取り専用の SELECT クエリを実行します
クエリ分析
ツール説明
analyze_queryクエリ構造、警告、最適化のヒントを解析して確認します
query_optimizer指定したクエリに推奨されるインデックスと書き換えを提示します
analyze_impact実行せずに、書き込みクエリの影響、リスクレベル、影響を受ける行、ロールバック時の情報をプレビューします
データベースの健全性
ツール説明
database_healthキャッシュヒット率、接続数、トランザクションの経過時間、テーブルの健全性、全体的な健全性の指標を確認します
query_performancePostgreSQL の統計情報から、低速または負荷の高いクエリを報告します
セキュリティ
ツール説明
security_auditロール、権限、スーパーユーザーアカウント、公開スキーマへの公開状況を確認します
sensitive_data_scanカラム名とスキーマパターンから、個人情報(PII)やシークレットと思われるデータを検出します
メンテナンス
ツール説明
maintenance_analysisバキュームの状態、デッドタプル、分析のタイムスタンプ、インデックスの健全性を確認します
partition_analysisパーティションの健全性、行の分布、パーティション不足のリスクを確認します
データ品質
ツール説明
data_quality_reportNULL 率、カーディナリティ、値の分布、外れ値を分析します
duplicate_detection選択したキー列を対象に、重複行を検出します
サーバー設定
ツール説明
configuration_reviewPostgreSQL の設定とチューニングの機会を確認します
replication_statusレプリケーションの遅延、WAL 送信側/受信側の状態、レプリケーションスロットを確認します
監査
ツール説明
get_audit_logs指定した日付の MCP ツール呼び出しログを取得します
list_audit_files利用可能な監査ログファイルを一覧表示します

推奨ワークフロー

まず、スキーマを確認します。

get_schema()
get_schema(schema='public')

安全な読み取りクエリを実行します。

execute_query(query='SELECT * FROM orders ORDER BY created_at DESC')

リスクのある書き込みをプレビューします。

analyze_impact(query='DELETE FROM sessions WHERE last_active < now() - interval ''30 days''')

健全性とメンテナンスを確認します。

database_health()
maintenance_analysis(schema='public')
query_performance()

ほとんどの分析ツールでは、schema パラメーターを指定できます。

maintenance_analysis(schema='public')  -> analyze one schema
maintenance_analysis(schema='all')     -> analyze every schema
get_schema(format='mermaid')           -> generate an ERD diagram

対応データベース

プロバイダー接続方法
ローカル PostgreSQLDATABASE_URL または個別の DB_* 変数
Docker PostgreSQL明示的な変数、または connect(discover=true)
AWS RDS / Aurora直接 URL、SSH トンネル、または AWS Secrets Manager
SupabaseDashboard の設定にあるプーラー接続文字列
NeonConsole の接続詳細にある接続文字列
Railway / Render / Fly.ioプロバイダーの接続文字列
任意の PostgreSQL ホスト標準 PostgreSQL URL

設定

接続方法を 1 つ選択してください。

# Full URL
DATABASE_URL=postgresql://user:pass@host:5432/db

# Or individual variables
DB_HOST=localhost
DB_PORT=5432
DB_USER=postgres
DB_PASSWORD=secret
DB_NAME=mydb
DB_SSLMODE=prefer

# Or AWS Secrets Manager
AWS_SECRET_NAME=my-rds-secret
AWS_REGION=us-west-2

実行時に接続することもできます。

connect(url='postgresql://user:pass@host:5432/db')
connect(host='localhost', user='postgres', password='secret', database='mydb')
connect(aws_secret_name='my-secret', aws_region='us-west-2')

主な設定:

変数デフォルト説明
DBEAST_DEFAULT_ROW_LIMIT100execute_query が返す最大行数
DBEAST_QUERY_TIMEOUT300クエリ実行のタイムアウト(秒)
DBEAST_COMMAND_TIMEOUT300SQL コマンドのタイムアウト(秒)
DBEAST_SSL_VERIFYtrue証明書が localhost と一致しない SSH トンネルでは false に設定します
DBEAST_SCHEMA_CACHE_TTL60スキーマキャッシュの TTL(秒)。0 にするとキャッシュを無効にします
DBEAST_AUDIT_ENABLEDtrueMCP ツール呼び出しを記録します
DBEAST_AUDIT_DIRlogs/mcp_audit監査ログのディレクトリ

設定の全項目については、SETUP.md を参照してください。


安全性モデル

クエリの種類DBeast の動作
SELECT行数を自動的に制限して実行します
INSERT / UPDATE / DELETE実行せず、影響をプレビューします
DROP / TRUNCATE実行せず、影響を受けるオブジェクトとリスクを報告します

整形済みのレスポンスと JSON レスポンスでは、一貫したラッパーを使用します。

{
  "success": true,
  "data": { "...": "..." },
  "meta": {
    "connected": true,
    "source": "tool"
  }
}

監査ログ

DBeast は、説明責任の確保とデバッグのために MCP ツール呼び出しを記録します。

DBEAST_AUDIT_ENABLED=true
DBEAST_AUDIT_DIR=logs/mcp_audit

監査ファイルは日ごとの Markdown ファイルとして保存され、タイムスタンプ、ツール名、所要時間、マスクされたパラメーター、切り詰められたレスポンス、エラーが含まれます。


開発

pip install -e ".[dev]"
pre-commit install
pytest tests/ -v
ruff check src/ tests/
ruff format src/ tests/

オプションのローカル PostgreSQL テストデータベースを起動します。

docker compose up -d postgres

旧式の Compose:

docker-compose up -d postgres

ドキュメント

  • SETUP.md - クライアントのセットアップ、接続シナリオ、設定、トラブルシューティングの詳細
  • CONTRIBUTING.md - 開発環境のセットアップ、テスト、スタイル、コミット、PR の手順
  • CODE_OF_CONDUCT.md - コミュニティガイドライン

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。