Rbdc Mcp について
SQLite、MySQL、PostgreSQL、MSSQL、DuckDB、Turso に対応したMCP データベースサーバーです。AI アシスタントからデータベースの照会や更新を行いたい利用者向けで、1 つのプロセスから複数のデータベースを扱えます。
主な機能
- 016 種類のデータベースを共通インターフェースで操作
- 02実行時のデータベースの登録と削除
- 03alias によるデータベースへのクエリのルーティング
- 04リードオンリーモードによる書き込み操作の無効化
- 05ドライバーを選択してビルド時間を短縮
活用シーン
- 01自然言語によるテーブルやデータの照会
- 022 つのデータベース間の行数の比較
- 03Claude Desktop や Codex からローカルデータベースに接続
MCP 対応
本プロジェクトは MCP サーバーであり、sql_query、sql_exec、list_databases などのデータベース操作ツールを MCP クライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
RBDC MCP Server
Model Context Protocol (MCP) に基づくデータベースサーバーです。SQLite、MySQL、PostgreSQL、MSSQL、DuckDB、Turso データベースをサポートしています。
🇨🇳 中文文档 / 中国語ドキュメント:readme_cn.md
利点
- 複数のデータベースをサポート:統一されたインターフェースを使用して、SQLite、MySQL、PostgreSQL、MSSQL、DuckDB、Turso をシームレスに利用できます
- AI との連携:Model Context Protocol を通じて Claude AI とネイティブに連携します
- 設定不要:データベース接続とリソースを自動的に管理します
- セキュリティ:AI を活用した自然言語クエリによって、データベースへのアクセスを制御します
- シンプルさ:SQL を記述せずに、自然言語でデータベースをクエリおよび変更できます
インストール
🚀 方法 1:Cargo 経由でインストール(推奨)
前提条件: まず Rust をインストールしてください。
ニーズに応じてインストールコマンドを選択してください。
# All drivers (default, ~10-15 minutes build)
cargo install --git https://github.com/rbatis/rbdc-mcp.git
# Minimal: SQLite only (fastest build, ~2-3 minutes)
cargo install --git https://github.com/rbatis/rbdc-mcp.git --no-default-features --features sqlite
# Single driver (e.g., MySQL):
cargo install --git https://github.com/rbatis/rbdc-mcp.git --no-default-features --features mysql
# Multiple drivers:
cargo install --git https://github.com/rbatis/rbdc-mcp.git --no-default-features --features "mysql postgres"
💡 ビルド速度のヒント: SQLite など、1 つのデータベースのみが必要な場合は、--no-default-features --features sqlite を追加して未使用のドライバーのコンパイルを省略すると、ビルド時間を約 15 分から約 2 分に短縮できます。
利用可能な機能
| 機能 | ドライバー | 説明 |
|---|---|---|
sqlite | rbdc-sqlite | SQLite のサポート |
mysql | rbdc-mysql | MySQL のサポート |
postgres | rbdc-pg | PostgreSQL のサポート |
mssql | rbdc-mssql | MSSQL/SQL Server のサポート |
duckdb | rbdc-duckdb | DuckDB のサポート |
turso | rbdc-turso | Turso/libsql のサポート |
full | (上記すべて) | すべてのデータベースドライバーを有効化 |
📦 方法 2:ビルド済みバイナリをダウンロード
GitHub Releases から、お使いのプラットフォーム向けの最新リリースをダウンロードしてください。
| プラットフォーム | ダウンロード |
|---|---|
| Windows (x64) | rbdc-mcp-windows-x86_64.exe |
| macOS (Intel) | rbdc-mcp-macos-x86_64 |
| macOS (Apple Silicon) | rbdc-mcp-macos-aarch64 |
| Linux (x64) | rbdc-mcp-linux-x86_64 |
ダウンロード後、ファイル名を rbdc-mcp(Windows では rbdc-mcp.exe)に変更し、システムの PATH に追加してください。
🔧 エージェントクライアントの設定
MCP サーバーのリストに追加して、MCP 対応クライアントで rbdc-mcp を設定してください。
Claude Desktop
設定ファイルの場所:
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
基本設定:
{
"mcpServers": {
"rbdc-mcp": {
"command": "rbdc-mcp",
"args": []
}
}
}
args: [] の場合、サーバーはデータベースが事前設定されていない状態で起動します。
AI は実行時に add_database ツールを使ってデータベースを登録します(後述の
動的な複数データベースを参照)。
起動時にデータベースを事前設定するには:
{
"mcpServers": {
"rbdc-mcp": {
"command": "rbdc-mcp",
"args": ["--database-url", "sqlite://./database.db"]
}
}
}
データベースの例:
単一サーバーでの複数データベース設定
1 つの rbdc-mcp プロセスで、多数のデータベースをホストできます。最初の --database-url は default エイリアスとして登録されます。追加の URL には --alias を組み合わせることで、固定のデータベース一覧を宣言でき、AI は起動時から list_databases を通じて確認できます(動的な複数データベースを参照)。AI は add_database MCP ツールを使って、実行時にさらにデータベースを登録することもできます。
default データベースを 1 つ起動する(残りは AI が実行時に登録):
{
"mcpServers": {
"rbdc-mcp": {
"command": "rbdc-mcp",
"args": [
"--database-url", "sqlite://./database.db"
]
}
}
}
明示的なエイリアスで複数のデータベースを事前宣言する(1 つのプロセス、複数のプール):
{
"mcpServers": {
"rbdc-mcp": {
"command": "rbdc-mcp",
"args": [
"--database-url", "sqlite://./local.db", "--alias", "local",
"--database-url", "mysql://user:password@db1:3306/orders", "--alias", "orders",
"--database-url", "postgres://user:password@db2:5432/bi", "--alias", "bi",
"--database-url", "duckdb://./warehouse.duckdb", "--alias", "warehouse"
]
}
}
}
最初の --alias の値は無視されます(最初の URL は常に default になります)。2 つ目以降の URL に指定するエイリアスは、それぞれ一意で空ではなく、default 以外である必要があります。
従来の方法 — データベースごとに 1 つのプロセスを使用(引き続き動作しますが、複数データベースへのアクセスには不要になりました):
{
"mcpServers": {
"rbdc-mcp-sqlite": {
"command": "rbdc-mcp",
"args": ["--database-url", "sqlite://./database.db"]
},
"rbdc-mcp-mysql": {
"command": "rbdc-mcp",
"args": ["--database-url", "mysql://user:password@localhost:3306/database"]
},
"rbdc-mcp-postgres": {
"command": "rbdc-mcp",
"args": ["--database-url", "postgres://user:password@localhost:5432/database"]
},
"rbdc-mcp-mssql": {
"command": "rbdc-mcp",
"args": ["--database-url", "mssql://user:password@localhost:1433/database"]
},
"rbdc-mcp-duckdb": {
"command": "rbdc-mcp",
"args": ["--database-url", "duckdb://path/to/database.duckdb"]
},
"rbdc-mcp-turso": {
"command": "rbdc-mcp",
"args": ["--database-url", "turso://database-url?token=your-token"]
}
}
}
Windows のフルパス(PATH にない場合)
{
"mcpServers": {
"rbdc-mcp": {
"command": "C:\\tools\\rbdc-mcp.exe",
"args": ["--database-url", "sqlite://C:\\path\\to\\database.db"]
}
}
}
**再起動:**保存後、Claude Desktop を再起動して MCP サーバーを読み込みます。
**テスト:**Claude Desktop で、次のように質問してみてください。
- 「データベースの接続状態を表示して」
- 「データベースにはどんなテーブルがある?」
Codex
設定ファイルの場所:
- グローバル:
~/.codex/mcp.toml - プロジェクトレベル:
.codex/mcp.toml(プロジェクトのルートに配置)
基本設定(.codex/mcp.toml または ~/.codex/mcp.toml):
[mcp_servers.rbdc-mcp]
command = "rbdc-mcp"
args = ["--database-url", "sqlite://./database.db"]
type = "stdio"
enabled = true
データベースの例(単一プロセス、複数データベース):
# Pre-declare several databases with explicit aliases
[mcp_servers.rbdc-mcp]
command = "rbdc-mcp"
args = [
"--database-url", "sqlite://./local.db", "--alias", "local",
"--database-url", "mysql://user:password@db1:3306/orders", "--alias", "orders",
"--database-url", "postgres://user:password@db2:5432/bi", "--alias", "bi",
"--database-url", "duckdb://./warehouse.duckdb", "--alias", "warehouse",
]
type = "stdio"
enabled = true
最初の URL は default エイリアスになります(その URL の --alias は指定されていても無視されます)。追加の URL には、宣言する順に --alias を組み合わせる必要があります。AI は起動時に list_databases MCP ツールを通じて登録済みのすべてのエイリアスを確認でき、add_database を使って実行時にさらにデータベースを登録することもできます。
**再起動:**設定ファイルの保存後、Codex を再起動して MCP サーバーを読み込みます。Codex がすでに起動している場合は、codex reconnect を実行して再読み込みを強制します。
**テスト:**Codex のチャットで、次のように質問してみてください。
- 「データベースの接続状態を表示して」
- 「データベースにはどんなテーブルがある?」
📊 使用例
自然言語によるデータベース操作
- データの照会:「データベース内のすべてのユーザーを表示して」
- データの変更:「[email protected] をメールアドレスとする John という新しいユーザーを追加して」
- 状態の確認:「データベースの接続状態は?」
- スキーマ情報:「データベースにはどんなテーブルがある?」
- 複数データベース:「MySQL の orders データベースに接続して、ローカルの SQLite キャッシュと行数を比較して」
🗄️ データベースのサポート
| データベース | 接続 URL の形式 |
|---|---|
| SQLite | sqlite://path/to/database.db |
| MySQL | mysql://user:password@host:port/database |
| PostgreSQL | postgres://user:password@host:port/database |
| MSSQL | mssql://user:password@host:port/database |
| DuckDB | duckdb://path/to/database.duckdb |
| Turso | turso://database-url?token=your-token |
⚙️ 設定オプション
| パラメーター | 説明 | デフォルト |
|---|---|---|
--database-url, -d | データベース接続 URL です。省略すると空の状態で起動します(データベースは実行時に add_database で追加します)。起動時に複数のデータベースを事前登録する場合は、繰り返し指定します。 | None(任意) |
--alias | 対応する --database-url のエイリアスです(宣言順)。最初のエイリアスは無視されます。それ以降のエイリアスは一意で、空でなく、default 以外である必要があります。 | 自動(db2、db3、...) |
--max-connections | 接続プールの最大サイズ | 1 |
--timeout | 接続タイムアウト(秒) | 30 |
--log-level | ログレベル(error/warn/info/debug) | info |
--read-only | sql_exec を無効にし、読み取り専用 SQL 検証を強制します | false |
🛠️ 利用可能なツール
sql_query:読み取り専用の SQL 文を 1 つ実行します。デフォルト以外のデータベースを指定するには、任意でaliasを渡します。デフォルトはdefaultです。sql_exec:サーバーが読み取り専用モードでない場合に、INSERT/UPDATE/DELETE 操作を実行します。デフォルト以外のデータベースを指定するには、任意でaliasを渡します。db_status:データベースの接続プールの状態を確認します。aliasは任意です。test_connection:登録済みのデータベースに ping を送信します。aliasは任意です。list_databases:登録されているすべてのデータベースのエイリアスと URL、検出された種類を一覧表示します。add_database:aliasの下に新しいデータベース接続を登録し、実行時にプールを起動します。対応する URL スキーム:sqlite://、mysql://、pg:///postgres://、mssql:///sqlserver://、duckdb://、turso:///libsql://。remove_database:以前に追加したエイリアスの登録を解除します。予約済みのdefaultエイリアスは削除できません。
🔌 動的なマルチデータベース
rbdc-mcp は、単一プロセスで動作するマルチデータベースサーバーです。データベース URL を指定せずに(MCP クライアントの設定で args: [])起動し、MCP ツールを通じて AI にデータベースをその場で登録させることができます。--database-url で URL を指定すると、その URL は default エイリアスになります。その後、AI は実行時にデータベースを追加登録し、alias で指定して任意のデータベースにクエリを振り分けられます。
URL なしでの起動(動的モード)
--database-url を指定せずにサーバーを起動すると、list_databases ツールは空のリストを返します。また、default エイリアスを対象とする操作では、まず add_database を使用するよう案内されます。AI は任意のエイリアスを選び、最初のデータベース(または任意のデータベース)を登録できます。
add_database(alias="inventory", url="sqlite://./inventory.db")— データベースを登録します。list_databases— 登録されたことを確認します。sql_query({ alias: "inventory", sql: "SELECT * FROM products" })— クエリを実行します。
ヒント:後続のクエリで
aliasを省略したい場合は、alias="default"としてデータベースを登録することもできます。
事前宣言による起動(静的モード)
AI が従うツールの流れ:
list_databases— 現在登録されているすべてのエイリアスを確認します。add_database(alias="orders_mysql", url="mysql://user:pass@host/orders")— 新しいデータベースを登録し、その接続プールを開始します。sql_query({ alias: "orders_mysql", sql: "SELECT COUNT(*) FROM orders" })— クエリをそのデータベースに振り分けます。defaultを使用する場合は、aliasを省略します。remove_database(alias="orders_mysql")— 完了したら、接続プールを終了し、エイリアスの登録を解除します。
データベースを登録する 2 つの方法
| 方法 | 使用する状況 | 方法 |
|---|---|---|
| CLI による事前宣言 | データベースの一覧が固定されており、起動時に AI にすべてのデータベースを認識させたい場合 | --database-url を繰り返し指定し、--alias と組み合わせます(最初の URL が default になります)。 |
実行時の add_database | 臨時の探索的な利用、または URL を指定せずに起動する場合 | AI が add_database MCP ツールを呼び出します。 |
どちらの方法でも、同じインメモリの alias → pool レジストリに登録されます。そのため、AI から見た結果は同じです。どこで登録されたかにかかわらず、list_databases はすべてのエイリアスを返します。
重要な理由
- 1 つの MCP サーバープロセスで複数のデータベースを扱えます。データベースごとに
rbdc-mcp-mysql、rbdc-mcp-postgresなどを起動する必要はありません。 - すべてのエイリアスは
list_databasesから確認できるため、AI はクエリごとに適切な接続先を動的に選択できます。 --database-urlが指定されている場合、defaultエイリアスはその URL 用に予約され、削除できません。- 各エイリアスには独立した接続プールが割り当てられます。異なるエイリアスに対する同時クエリが互いにブロックすることはありません。
AI に送るプロンプトの例
「
mysql://root:[email protected]/ordersにある MySQL の orders データベースに接続し、月ごとの総売上を教えてください。」
AI は add_database(...) を呼び出した後、そのエイリアスを使って sql_query(...) を実行します。MCP サーバーを再起動する必要はありません。起動時に --database-url を指定した場合も、指定しなかった場合も、同じように動作します。
読み取り専用モード
--read-only を指定すると sql_exec ツールが無効になり、データの変更を防止できます。さらに、sql_query は送信された SQL を検証し、書き込みキーワード(INSERT、UPDATE、DELETE など)を含むステートメントや、複数ステートメントの入力を拒否します。
📸 スクリーンショット
ステップ 1:設定

ステップ 2:Claude での使用

ライセンス
Apache-2.0
- 1 つのサーバーで複数のデータベースを利用:AI は実行時に
add_databaseツールを使って追加のデータベース接続を登録し、登録済みの任意のデータベースにaliasでクエリを振り分けられます。追加の MCP サーバープロセスを起動する必要はありません。 |--database-url, -d| データベース接続 URL です。指定しない場合は空の状態で起動します(データベースは実行時にadd_databaseから追加します)。複数のデータベースを起動時に事前登録する場合は、繰り返し指定します。 |None(省略可) |
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。