MCP Database Server について
MCP Database Serverは、LLMから自然言語でデータベースを操作するためのMCPサーバーです。現在はMongoDBに対応し、検索や書き込み、集計を行えます。
主な機能
- 01MongoDBのコレクション一覧
- 02条件指定と射影による検索
- 03ドキュメントの挿入と削除
- 04集計パイプラインの実行
活用シーン
- 01データベース内のコレクション確認
- 02条件に合うドキュメントの検索
- 03レコードの追加や削除
- 04コレクションデータの集計と分析
MCP 対応
MCPサーバーとして、MongoDBのコレクション確認、ドキュメントの検索・変更、集計ツールをクライアントに提供します。現在対応しているのはMongoDBで、他のデータベースは今後の対応予定です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP Database Server
大規模言語モデル(LLM)が自然言語を通じてさまざまなデータベースを操作できるようにする、Model Context Protocol(MCP)サーバーの実装です。現在は MongoDB に対応しており、今後は以下のデータベースにも対応する予定です。
- PostgreSQL
- CockroachDB
- Redis
- その他…
機能
- 自然言語を通じたデータベース操作
- 現在は MongoDB に対応しており、以下の機能を利用できます。
- すべてのコレクションを一覧表示
- フィルタリングとプロジェクションを使ったドキュメントのクエリ
- ドキュメントの挿入
- ドキュメントの削除
- 集計パイプライン操作
- 今後、以下のデータベースにも対応する予定です。
- PostgreSQL:SQL クエリ、テーブル操作
- CockroachDB:分散 SQL 操作
- Redis:キーと値の操作、キャッシュ
前提条件
- Node.js v20.12.2 以上
- データベース(現在は MongoDB に対応。他のデータベースにも今後対応予定)
- Claude Desktop Application
インストール
- リポジトリをクローンします。
git clone https://github.com/manpreet2000/mcp-database-server.git
cd mcp-database-server
- 依存関係をインストールします。
npm install
- TypeScript コードをビルドします。
npm run build
設定
利用を開始するには、Claude Desktop の設定ファイルでデータベース接続を設定する必要があります。
MacOS
~/Library/Application\ Support/Claude/claude_desktop_config.json
Windows
%APPDATA%/Claude/claude_desktop_config.json
次の設定を claude_desktop_config.json に追加します。
{
"mcpServers": {
"database": {
"command": "/path/to/node",
"args": ["/path/to/mcp-database/dist/index.js"],
"env": {
"MONGODB_URI": "your-mongodb-connection-string"
}
}
}
}
以下を置き換えてください。
/path/to/nodeを Node.js の実行ファイルのパスに置き換えるか、nodeをそのまま使用します。/path/to/mcp-databaseをこのリポジトリの絶対パスに置き換えます。your-mongodb-connection-stringを MongoDB の接続 URL に置き換えます。
使用例
MongoDB の例
- データベース内のすべてのコレクションを一覧表示します。
Can you show me all the collections in my database?
- コレクションから特定のレコードを取得します。
Give me 2 records from the chargers collection
- フィルターを使ってクエリを実行します。
Show me all documents in the users collection where status is active
- ドキュメントを挿入します。
Add a new user to the users collection with name John and email [email protected]
- ドキュメントを削除します。
Remove the user with email [email protected] from the users collection
- データを集計します。
Show me the total count of users by status in the users collection
利用可能なツール
1. getCollections
接続先データベースのすべてのコレクションを一覧表示します。
2. getCollection
オプションのクエリパラメーターを指定して、コレクションからドキュメントを取得します。
collectionName:コレクション名limit:返すドキュメントの最大数(デフォルト:10、最大:1000)query:MongoDB のクエリオブジェクトprojection:含める/除外するフィールド
3. insertOne
コレクションに単一のドキュメントを挿入します。
collectionName:コレクション名document:挿入するドキュメントオブジェクト
4. deleteOne
コレクションから単一のドキュメントを削除します。
collectionName:コレクション名query:削除するドキュメントに一致するクエリ
5. aggregate
集計パイプラインを実行します。
collectionName:コレクション名pipeline:集計ステージの配列options:オプションの集計オプション
今後対応予定のデータベース
PostgreSQL
- SQL クエリの実行
- テーブル操作
- スキーマ管理
- トランザクションのサポート
CockroachDB
- 分散 SQL 操作
- マルチリージョンのサポート
- トランザクション管理
- スキーマ操作
Redis
- キーと値の操作
- キャッシュ機能
- Pub/Sub 操作
- データ構造の操作
セキュリティ
- データベース接続文字列をバージョン管理にコミットしないでください。
- 機密情報には環境変数を使用してください。
- データベース固有のセキュリティに関するベストプラクティスに従ってください。
貢献
貢献を歓迎します。お気軽にプルリクエストを送信してください。大きな変更を加える場合は、まずイシューを作成して、変更内容について相談してください。
ライセンス
MIT License — 詳細は LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。