MCP データベース サーバー
さまざまなデータベース システムに接続して操作するためのモデル コンテキスト プロトコル (MCP) 実装。
サポートされているデータベース
SQLite
PostgreSQL
マイクロソフトSQLサーバー
モンゴDB
Related MCP server: Database MCP Server
インストール
npm install -g mcp-dbs使用法
MCP データベース サーバーは、次の 2 つのモードで使用できます。
SSEモード(デフォルト)
デフォルトでは、サーバーはポート 3001 で SSE (Server-Sent Events) モードで実行されます。
npx mcp-dbsこれによりhttp://localhost:3001/mcpに SSE エンドポイントを持つ HTTP サーバーが起動します。
カスタムポート
--portオプションを使用してカスタム ポートを指定できます。
npx mcp-dbs --port 8080STDIOモード
標準入出力を介して通信するツールの場合は、 --stdioオプションを使用できます。
npx mcp-dbs --stdioクロードデスクトップ統合
Claude 構成ファイルに mcp-dbs を追加することで、Claude Desktop と統合できます。
設定手順
Claude Desktop 構成ファイルを開くか作成します
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はnodeargsには、mcp-dbs インストール内の cli.js ファイルへの絶対パスを指定します。データベースの種類に応じて適切な環境変数を設定します(以下の環境変数のセクションを参照)。
サポートされているデータベース(SQLite、PostgreSQL、SQL Server、MongoDB)のいずれかに環境変数を使用できます。
クロードと一緒に使う
設定が完了すると、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 サーバー
# 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"モンゴDB
# 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 ツールを公開します。
データベース接続
データベースに接続します。
パラメータ:
connectionId: 接続の一意の識別子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"
}データベースを切断する
データベースから切断します。
パラメータ:
connectionId: 切断する接続ID
クエリ実行
結果を返すクエリを実行します。
パラメータ:
connectionId: 接続IDquery: 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 の例 (raw コマンド):
{
"connectionId": "my-mongodb-db",
"query": "{\"find\": \"users\", \"filter\": {\"age\": {\"$gt\": 21}}}"
}更新実行
結果を返さないクエリ (INSERT、UPDATE、DELETE) を実行します。
パラメータ:
connectionId: 接続IDquery: 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 の例 (raw コマンド):
{
"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 コードをスキャンするか、ここをクリックしてください。
ライセンス
マサチューセッツ工科大学