mcpField
M
MCP Database Server

MCP Database Server

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

MCP Database Server について

MCP Database Server は、SQLite、PostgreSQL、Microsoft SQL Server、MongoDB に接続して操作するための MCP サーバーです。SSE と STDIO の 2 つのモードで動作し、接続設定は環境変数で行います。

主な機能

  1. 01SQLite、PostgreSQL、SQL Server、MongoDB に対応
  2. 02SSE と STDIO の 2 つの動作モード
  3. 03環境変数によるデータベース接続設定
  4. 04クエリ実行、更新、スキーマ参照

活用シーン

  1. 01Claude Desktop からのデータベース照会と分析
  2. 02自然言語によるテーブル構造の探索
  3. 03MCP クライアントからの追加、更新、削除操作

MCP 対応

MCP サーバーとして、connect-database、execute-query、execute-update の各ツールと、データベーススキーマおよびテーブル一覧のリソースを MCP クライアントに公開します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"dbs": {
"command": "npx",
"args": [
"-y",
"mcp-dbs"
],
"env": {
"MCP_MSSQL_SERVER": "<MCP_MSSQL_SERVER>",
"MCP_MSSQL_PORT": "<MCP_MSSQL_PORT>",
"MCP_MSSQL_DATABASE": "<MCP_MSSQL_DATABASE>",
"MCP_MSSQL_USER": "<MCP_MSSQL_USER>",
"MCP_MSSQL_PASSWORD": "<MCP_MSSQL_PASSWORD>",
"MCP_MSSQL_ENCRYPT": "<MCP_MSSQL_ENCRYPT>",
"MCP_MSSQL_TRUST_SERVER_CERTIFICATE": "<MCP_MSSQL_TRUST_SERVER_CERTIFICATE>",
"MCP_MONGODB_URI": "<MCP_MONGODB_URI>",
"MCP_MONGODB_DATABASE": "<MCP_MONGODB_DATABASE>"
}
}
}
}
起動コマンドnpx -y mcp-dbs
設定が必要な環境変数
MCP_MSSQL_SERVER
MCP_MSSQL_PORT
MCP_MSSQL_DATABASE
MCP_MSSQL_USER
MCP_MSSQL_PASSWORDシークレット
MCP_MSSQL_ENCRYPT
MCP_MSSQL_TRUST_SERVER_CERTIFICATE
MCP_MONGODB_URI
MCP_MONGODB_DATABASE

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

パッケージ
npmmcp-dbs

ツール

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

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

詳細

MseeP.ai セキュリティ評価バッジ

MCP Database Server

さまざまなデータベースシステムに接続し、操作するための Model Context Protocol(MCP)実装です。

README の画像

対応データベース

  • SQLite
  • PostgreSQL
  • Microsoft SQL Server
  • MongoDB

インストール

npm install -g mcp-dbs

使用方法

MCP Database Server は、次の 2 つのモードで使用できます。

SSE モード(デフォルト)

デフォルトでは、サーバーはポート 3001 で SSE(Server-Sent Events)モードで実行されます。

npx mcp-dbs

これにより、http://localhost:3001/mcp に SSE エンドポイントを持つ HTTP サーバーが起動します。

カスタムポート

--port オプションを使ってカスタムポートを指定できます。

npx mcp-dbs --port 8080
STDIO モード

標準入出力を介して通信するツールでは、--stdio オプションを使用できます。

npx mcp-dbs --stdio

Claude Desktop との統合

Claude の設定ファイルに mcp-dbs を追加すると、Claude Desktop と統合できます。

設定手順
  1. Claude Desktop の設定ファイルを開くか、新規作成します
  2. mcpServers セクションに mcp-dbs の設定を追加します。
{
  "mcpServers": {
    "mcp-dbs": {
      "command": "node",
      "args": [
        "/path/to/your/mcp-dbs/dist/cli.js",
        "--stdio"
      ],
      "env": {
        "MCP_MONGODB_URI": "mongodb://localhost:27017",
        "MCP_MONGODB_DATABASE": "your-database-name"
      }
    }
  }
}

環境変数を、ご自身のデータベース接続情報に置き換えてください。

注意事項
  • command は node にしてください
  • args には、mcp-dbs のインストール先にある cli.js ファイルの絶対パスを指定してください
  • データベースの種類に応じた環境変数を設定してください(下記の環境変数のセクションを参照)
  • 対応するすべてのデータベース(SQLite、PostgreSQL、SQL Server、MongoDB)で環境変数を使用できます
Claude での使用

設定が完了すると、Claude は以下で説明する MCP ツールを使ってデータベースにアクセスできるようになります。Claude には次のことを依頼できます。

  • データベースへの接続
  • クエリの実行と結果の取得
  • データベーススキーマの調査
  • テーブルとデータの操作

ツール

  • connect-database:データベースに接続します
  • disconnect-database:データベースから切断します
  • execute-query:クエリを実行し、結果を返します
  • execute-update:結果を返さずにクエリを実行します

リソース

  • database-schema:データベーススキーマ全体を取得します
  • table-schema:特定のテーブルのスキーマを取得します
  • tables-list:すべてのテーブルの一覧を取得します

設定での環境変数の使用

環境変数を使ってデータベース接続を設定できます。

SQLite
# Set these environment variables before connecting
export MCP_SQLITE_FILENAME="path/to/database.db"
export MCP_SQLITE_CREATE_IF_NOT_EXISTS="true"
PostgreSQL
# Set these environment variables before connecting
export MCP_POSTGRES_HOST="your-postgres-host"
export MCP_POSTGRES_PORT="5432"
export MCP_POSTGRES_DATABASE="your-database-name"
export MCP_POSTGRES_USER="your-username"
export MCP_POSTGRES_PASSWORD="your-password"
export MCP_POSTGRES_SSL="false"
SQL Server
# Set these environment variables before connecting
export MCP_MSSQL_SERVER="your-server-address"
export MCP_MSSQL_PORT="1433"
export MCP_MSSQL_DATABASE="your-database-name"
export MCP_MSSQL_USER="your-username"
export MCP_MSSQL_PASSWORD="your-password"
export MCP_MSSQL_ENCRYPT="true"
export MCP_MSSQL_TRUST_SERVER_CERTIFICATE="true"
MongoDB
# Set these environment variables before connecting
export MCP_MONGODB_URI="mongodb://localhost:27017"
export MCP_MONGODB_DATABASE="your-database-name"
export MCP_MONGODB_MAX_POOL_SIZE="10"
export MCP_MONGODB_USE_UNIFIED_TOPOLOGY="true"

これらの環境変数は、connect-database ツールに渡される設定よりも優先されます。

MCP ツール

サーバーは、次の MCP ツールを公開します。

connect-database

データベースに接続します。

パラメーター:

  • connectionId:接続を識別する一意の ID
  • type:データベースの種類(sqlite、postgres、mssql、または mongodb)

SQLite の例:

{
  "connectionId": "my-sqlite-db",
  "type": "sqlite"
}

PostgreSQL の例:

{
  "connectionId": "my-postgres-db",
  "type": "postgres"
}

SQL Server の例:

{
  "connectionId": "my-mssql-db",
  "type": "mssql"
}

MongoDB の例:

{
  "connectionId": "my-mongodb-db",
  "type": "mongodb"
}
disconnect-database

データベースから切断します。

パラメーター:

  • connectionId:切断する接続の ID
execute-query

結果を返すクエリを実行します。

パラメーター:

  • connectionId:接続 ID
  • query:SQL クエリまたは MongoDB の集計パイプライン(JSON 文字列)
  • params:(省略可能)クエリのパラメーターの配列。MongoDB の場合、最初のパラメーターはコレクション名です。

SQL の例:

{
  "connectionId": "my-postgres-db",
  "query": "SELECT * FROM users WHERE age > $1",
  "params": [21]
}

MongoDB の例:

{
  "connectionId": "my-mongodb-db",
  "query": "[{\"$match\": {\"age\": {\"$gt\": 21}}}, {\"$sort\": {\"name\": 1}}]",
  "params": ["users"]
}

MongoDB の例(コレクションを埋め込んだ新しい形式):

{
  "connectionId": "my-mongodb-db",
  "query": "{\"collection\": \"users\", \"pipeline\": [{\"$match\": {\"age\": {\"$gt\": 21}}}, {\"$sort\": {\"name\": 1}}]}"
}

MongoDB の例(シェル構文):

{
  "connectionId": "my-mongodb-db",
  "query": "db.getCollection('users').find({\"age\": {\"$gt\": 21}})"
}

MongoDB の例(コレクションを直接参照するシェル構文):

{
  "connectionId": "my-mongodb-db",
  "query": "db.users.find({\"age\": {\"$gt\": 21}})"
}

MongoDB の例(生のコマンド):

{
  "connectionId": "my-mongodb-db", 
  "query": "{\"find\": \"users\", \"filter\": {\"age\": {\"$gt\": 21}}}"
}
execute-update

結果を返さないクエリ(INSERT、UPDATE、DELETE)を実行します。

パラメーター:

  • connectionId:接続 ID
  • query:SQL クエリまたは MongoDB コマンド(JSON 文字列)
  • params:(任意)クエリのパラメーターの配列。MongoDB の場合、最初のパラメーターはコレクション名です。

SQL の例:

{
  "connectionId": "my-postgres-db",
  "query": "INSERT INTO users (name, age) VALUES ($1, $2)",
  "params": ["John Doe", 30]
}

MongoDB の例:

{
  "connectionId": "my-mongodb-db",
  "query": "{\"insertOne\": {\"name\": \"John Doe\", \"age\": 30}}",
  "params": ["users"]
}

MongoDB の例(コレクションを埋め込んだ新しい形式):

{
  "connectionId": "my-mongodb-db",
  "query": "{\"collection\": \"users\", \"operation\": {\"insertOne\": {\"name\": \"John Doe\", \"age\": 30}}}"
}

MongoDB の例(シェル構文):

{
  "connectionId": "my-mongodb-db",
  "query": "db.getCollection('users').insertOne({\"name\": \"John Doe\", \"age\": 30})"
}

MongoDB の例(シェル構文でのコレクションの直接参照):

{
  "connectionId": "my-mongodb-db",
  "query": "db.users.insertOne({\"name\": \"John Doe\", \"age\": 30})"
}

MongoDB の例(生のコマンド):

{
  "connectionId": "my-mongodb-db",
  "query": "{\"insert\": \"users\", \"documents\": [{\"name\": \"John Doe\", \"age\": 30}]}"
}

MCP リソース

サーバーは以下の MCP リソースを公開します。

データベーススキーマ

URI:database://{connectionId}/schema

すべてのテーブルとそのカラムを含む、データベースのスキーマ情報を返します。

テーブルスキーマ

URI:database://{connectionId}/tables/{tableName}

カラムを含む、特定のテーブルのスキーマ情報を返します。

テーブル一覧

URI:database://{connectionId}/tables

データベース内のすべてのテーブルの一覧を返します。

開発

テスト

テストを実行します:

npm test

プロジェクトを支援する

このプロジェクトがお役に立ちましたら、コーヒーをごちそういただけると幸いです!

コーヒーをごちそうになるための QR コード

上の QR コードをスキャンするか、こちらをクリックして、このプロジェクトの開発をご支援ください。

ライセンス

MIT

コメント

MCP は初めてですか?

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

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