mcpField
D
db-gateway

db-gateway

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

db-gateway について

db-gatewayは、AIエージェント向けにリレーショナル、NoSQL、検索、ストリーミング系データベースのツールを提供するMCPサーバーです。利用するエンジンを選択でき、読み取り専用モードでは書き込みツールを非表示にします。

主な機能

  1. 018種類のデータベースエンジンに対応
  2. 02145以上のデータベースツール
  3. 03有効なエンジンのツールを登録
  4. 04読み取り専用モードで書き込みツールを非表示
  5. 05エイリアスによる複数インスタンス接続

活用シーン

  1. 01エージェントによるスキーマ確認とデータ検索
  2. 02単一サーバーから複数種類のデータベースへ接続
  3. 03本番接続を読み取り専用に制限

MCP 対応

MCPサーバーとして、MCPクライアントにデータベースツールを公開します。設定で有効なエンジンとツールを選び、読み取り専用モードでは書き込みツールを除外します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"sijunkim-db-gateway": {
"command": "npx",
"args": [
"-y",
"db-gateway"
],
"env": {
"DBS": "<DBS>",
"READ_ONLY": "<READ_ONLY>",
"MYSQL": "<MYSQL>",
"POSTGRESQL": "<POSTGRESQL>",
"REDSHIFT": "<REDSHIFT>",
"MONGODB": "<MONGODB>",
"REDIS": "<REDIS>",
"ELASTICSEARCH": "<ELASTICSEARCH>",
"KAFKA": "<KAFKA>",
"DYNAMODB_REGION": "<DYNAMODB_REGION>",
"DYNAMODB_ACCESS_KEY_ID": "<DYNAMODB_ACCESS_KEY_ID>",
"DYNAMODB_SECRET_ACCESS_KEY": "<DYNAMODB_SECRET_ACCESS_KEY>"
}
}
}
}
起動コマンドnpx -y db-gateway
設定が必要な環境変数
DBSEngines to enable, comma-separated. Only the listed engines get their tools registered. Example: mysql,redis,kafka
READ_ONLYSet to true to hide every write tool and restrict *_execute_query to SELECT-style statements. Recommended when pointing at production.
MYSQLシークレットMySQL connection string(s), semicolon-separated for multiple instances. Format: mysql://<user>:<password>@<host>:3306/<database>?alias=dev&default=true — alias is required.
POSTGRESQLシークレットPostgreSQL connection string(s), semicolon-separated. Format: postgresql://<user>:<password>@<host>:5432/<database>?alias=dev&ssl=true — alias is required.
REDSHIFTシークレットRedshift connection string(s), semicolon-separated. Format: redshift://<user>:<password>@<host>:5439/<database>?alias=dev&ssl=true — alias is required.
MONGODBシークレットMongoDB connection string(s), semicolon-separated. Format: mongodb://<user>:<password>@<host>:27017/<database>?alias=dev — alias is required.
REDISシークレットRedis connection string(s), semicolon-separated. Format: redis://:<password>@<host>:6379/0?alias=dev — leave the password empty for a no-auth instance. alias is required.
ELASTICSEARCHシークレットElasticsearch connection string(s), semicolon-separated. Format: elasticsearch://<user>:<password>@<host>:9200?alias=dev, or http(s)://<host>:9200?alias=dev for no auth. alias is required.
KAFKAシークレットKafka connection string(s), semicolon-separated. Format: kafka://<user>:<password>@<broker1>:9092,<broker2>:9092?alias=dev&mechanism=plain — alias is required.
DYNAMODB_REGIONAWS region for DynamoDB. DynamoDB is configured with discrete variables instead of a connection string.
DYNAMODB_ACCESS_KEY_IDシークレットAWS access key ID for DynamoDB.
DYNAMODB_SECRET_ACCESS_KEYシークレットAWS secret access key for DynamoDB.

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

パッケージ
npmdb-gateway1.0.4

ツール

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

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

詳細

DB Gateway MCP Server

npm MCP Registry 8 databases license

英語 | 韓国語

AI エージェントにデータベースへの直接アクセスを提供する MCP サーバーです。8 種類のエンジンに対応した 145 以上のツールを備えています。

このサーバーのポイントは、プロンプトに DDL を貼り付ける代わりに、エージェント自身がスキーマを読み取ることです。

You: "Find users who signed up last month and never placed an order"

  1. mysql_get_all_schemas          → reads every table definition
  2. mysql_get_table_relationships  → finds the users ↔ orders foreign key
  3. mysql_execute_query            → runs the LEFT JOIN

db-gateway を選ぶ理由

多くのデータベース MCP サーバーは、単一のエンジンか、少数のリレーショナルデータベースにしか対応していません。アプリに MySQL、分析に Redshift、キャッシュに Redis、イベントに Kafka を使っている場合、設定方法がそれぞれ異なる 4 つのサーバーが必要になります。

このサーバーなら、サーバーは 1 つ、設定ブロックも 1 つです。

エンジンツール
リレーショナルMySQL, PostgreSQL, Redshift59
NoSQLMongoDB, Redis, DynamoDB48
検索Elasticsearch19
ストリーミングKafka19

有効にするエンジンは DBS で指定します。有効にしたエンジンのツールだけが登録されるため、MySQL だけの環境では、ツール一覧も MySQL 専用になります。

動作を確認する

以下のスクリーンショットはすべて、249 行のデータを含む開発用 MySQL データベースに対する実際のセッションです。出力は編集しておらず、モックデータではありません。エージェントが呼び出すツールは mysql_execute_query の 1 つだけで、ホスト、ポート、パスワードは一切表示されません。これらはクライアントの設定に保存され、エージェントが指定するのは alias だけです。

ステップ 1 — 読み取り:最も新しく追加されたアイテムをクエリする

ステップ 2 — 作成:新しいアイテムを挿入し、MySQL が insertId を返す

ステップ 3 — 更新:主キーで正確に 1 行に一致させて、アイテムを冷凍庫に移動する

ステップ 4 — 削除:主キーでその行を削除する

ステップ 5 — 検証:テーブルの行数が元の 249 行に戻っている

同じサーバーを READ_ONLY=true にして本番環境に接続すると、ステップ 2 から 4 は実行できません。書き込みツールは登録されないため、エージェントから見えず、呼び出すこともできません。

クイックスタート

Node.js 18 以上が必要です。インストールせずに、MCP クライアントに登録してください。

{
  "mcpServers": {
    "db-gateway": {
      "command": "npx",
      "args": ["-y", "db-gateway"],
      "env": {
        "DBS": "mysql,redis",
        "MYSQL": "mysql://<user>:<password>@<host>:3306/<database>?alias=dev&default=true",
        "REDIS": "redis://:@<host>:6379/0?alias=dev&default=true"
      }
    }
  }
}

有効にするエンジンは DBS で指定します。有効にしたエンジンのツールだけが登録されます。

接続文字列

エンジンごとに1つの文字列を指定します。セミコロンで複数のインスタンスを区切ります。

変数形式
MYSQLmysql://<user>:<password>@<host>:<port>/<db>?alias=name
POSTGRESQLpostgresql://<user>:<password>@<host>:<port>/<db>?alias=name&ssl=true
REDISredis://:<password>@<host>:<port>/<db-index>?alias=name
MONGODBmongodb://<user>:<password>@<host>:<port>/<db>?alias=name
REDSHIFTredshift://<user>:<password>@<host>:<port>/<db>?alias=name&ssl=true
ELASTICSEARCHelasticsearch://<user>:<password>@<host>:<port>?alias=name、または http(s)://<host>:<port>?alias=name
KAFKAkafka://<user>:<password>@<broker>:<port>,<broker2>:<port>?alias=name&mechanism=plain

alias は必須です。 ツールが特定のインスタンスにアクセスするために使用します。省略すると、そのエンジンへの接続に失敗します。

同じエンジンの複数のインスタンス — 接続文字列をセミコロンで区切ります。エージェントは、任意のツールに alias 引数を渡してインスタンスを選択します。default=true は、alias が指定されていない場合に使用されるインスタンスを示します。

MYSQL="mysql://<user>:<password>@<dev-host>:3306/<db>?alias=dev&default=true;mysql://<user>:<password>@<prod-host>:3306/<db>?alias=prod"

DynamoDB は例外で、代わりに DYNAMODB_REGION、DYNAMODB_ACCESS_KEY_ID、DYNAMODB_SECRET_ACCESS_KEY を指定します。すべてのオプションについては .env.example を参照してください。

読み取り専用モード

READ_ONLY=true にすると、書き込みツールはツール一覧に表示されなくなり、*_execute_query は SELECT スタイルのステートメントに制限されます。

このフラグを有効にして、本番環境を2つ目の MCP サーバーとして登録してください。エージェントから本番データを変更できなくなります。エージェントからは書き込みツールが存在しない状態になるためです。

"db-gateway-prod": {
  "command": "npx",
  "args": ["-y", "db-gateway"],
  "env": { "READ_ONLY": "true", "DBS": "mysql", "MYSQL": "..." }
}

ドキュメント

  • ツールリファレンス — エンジン別の全145以上のツール
  • 接続管理 — プーリング、ヘルスチェック、connectionLimit がセッションごとに乗算される理由
  • デプロイ — SSE モード、Nginx、PM2、チームで1つのゲートウェイを共有する方法

ライセンス

MIT

コメント

MCP は初めてですか?

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

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