先日、Claude Code + DBHub MCPが便利という話を書きました

Claude Code + DBHub MCPの開発体験が良すぎた件
ちょっと複雑なテーブル群の設計をしようと思って、まずはClaudeに相談して大体のDDLを作りました。いままでならそれをDB用のツールを使って実行してテーブルを作って、テストデータを入れてクエリを書いてみて試行錯誤するところですが、今回はそ...
とても便利なのですが、面倒なのがMCPの設定時に接続文字列を入れないといけないこと。
なので、接続先のDBを変更したい場合は、一度MCPを削除して再設定する必要があります。
しかし心配ご無用、DBHubには複数のDBの接続設定を管理する仕組みがあります。
まず、プロジェクト直下にdbhub.tomlを作成します。
TOML Configuration - DBHub, Minimal Database MCP Server
# Define database sources [[sources]] id = "production" dsn = "postgres://user:pass@localhost:5432/mydb" connection_timeout = 60 [[sources]] id = "staging" dsn = "mysql://root:pass@localhost:3306/myapp" # Configure tools for each source [[tools]] name = "execute_sql" source = "production" readonly = true max_rows = 1000 [[tools]] name = "execute_sql" source = "staging" readonly = false
toolsの設定で、読み取り専用などにもできるので、もし重要なDBにMCP経由でアクセスしたい場合も安心ですね。
流石に本番DBに接続するのは怖いのでやめておきましょう。
この状態で、コマンドラインから
npx @bytebase/dbhub
を実行して動作確認しておきましょう。
何も指定しないとプロジェクト直下のdbhub.tomlが読み込まれます。
ではMCPの設定ですが、まず既存のDBHubのMCP設定を削除します。
% claude mcp remove dbhub
次に、もう一度DBHub MCPを設定します。
% claude mcp add -s project --transport stdio dbhub -- npx -y @bytebase/dbhub
-sで、スコープはプロジェクト単位にしています。
プロジェクト単位にすると、プロジェクト直下に .mcp.json が作られます。
ホームディレクトリの.claude以下のファイルは膨大な量で見づらいですが、.mcp.jsonはシンプルです。
{
"mcpServers": {
"dbhub": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@bytebase/dbhub"
],
"env": {}
}
}
}
コメント