🗄️ LLMS 向け MongoDB MCP サーバー
LLMがMongoDBデータベースと直接やり取りできるようにするモデルコンテキストプロトコル(MCP)サーバー。コレクションのクエリ、スキーマの検査、そして自然言語によるシームレスなデータ管理を実現します。
📚 モデルコンテキストプロトコル (MCP) とは何ですか?
モデルコンテキストプロトコル(MCP)は、Anthropicが開発したオープンスタンダードであり、AIシステムが外部のデータソースやツールに接続するための普遍的な方法を提供します。MCPは、以下の間で標準化された通信チャネルを確立します。
- MCP クライアント: データを消費する Claude のような AI アシスタント (例: Claude Desktop、Cursor.ai)
- MCP サーバー: データと機能を公開するサービス (この MongoDB サーバーなど)
MCP の主な利点:
- ユニバーサルアクセス: AIアシスタントがさまざまなソースからデータを照会するための単一のプロトコルを提供します
- 標準化された接続: 認証、使用ポリシー、データ形式を一貫して処理します
- 持続可能なエコシステム: 複数の LLM クライアントで機能する再利用可能なコネクタを推進します。
✨ 特徴
- 🔍 コレクションスキーマ検査
- 📊 ドキュメントのクエリとフィルタリング
- 📈 インデックス管理
- 📝 ドキュメント操作(挿入、更新、削除)
- 🔒 接続文字列によるデータベースアクセスのセキュリティ確保
- 📋 包括的なエラー処理と検証
📋 前提条件
始める前に、次のものを用意してください。
- Node.js (v18以上)
- MongoDBインスタンス (ローカルまたはリモート)
- Claude DesktopやCursor.aiのようなMCPクライアント
次のコマンドを実行して、Node.js のインストールを確認できます。
🚀 クイックスタート
開始するには、MongoDB 接続 URL を見つけて、次の構成を Claude Desktop 構成ファイルに追加します。
MacOS : ~/Library/Application\ Support/Claude/claude_desktop_config.json
Windows : %APPDATA%/Claude/claude_desktop_config.json
Smithery経由でインストール
Smithery.aiは、MCPサーバーのレジストリプラットフォームであり、検出とインストールを簡素化します。Smithery.ai経由でClaude Desktop用のMongoDB MCPサーバーを自動的にインストールするには、以下の手順に従ってください。
Cursor.ai 統合
Cursor.ai で MongoDB MCP を使用するには:
- Cursor.aiを開き、「設定」>「機能」に移動します
- 機能パネルで「MCPサーバー」を探します
- 次の構成で新しい MCP サーバーを追加します。
- 名前:
mongodb
- コマンド:
npx
- 引数:
mongo-mcp mongodb://<username>:<password>@<host>:<port>/<database>?authSource=admin
- 名前:
注: Cursor は現在、Composer の Agent 機能でのみ MCP ツールをサポートしています。
テストサンドボックスのセットアップ
接続する MongoDB サーバーがなく、サンプル サンドボックスを作成する場合は、次の手順に従います。
- Docker Compose を使用して MongoDB を起動します。
- データベースにテストデータを入力します。
Claudeデスクトップの設定
この構成を Claude Desktop 構成ファイルに追加します。
MacOS : ~/Library/Application\ Support/Claude/claude_desktop_config.json
Windows : %APPDATA%/Claude/claude_desktop_config.json
ローカル開発モード:
テストサンドボックスのデータ構造
シード スクリプトは、サンプル データを含む 3 つのコレクションを作成します。
ユーザー
- 個人情報(名前、メールアドレス、年齢)
- 座標を含むネストされた住所
- さまざまな興味
- 会員期間
製品
- 製品の詳細(名前、SKU、カテゴリ)
- ネストされた仕様
- 価格と在庫情報
- タグと評価
注文
- 注文の詳細と商品
- ユーザーリファレンス
- 配送と支払い情報
- ステータス追跡
🎯 プロンプトの例
機能を確認するには、Claude と一緒に次のプロンプトを試してください。
基本操作
高度なクエリ
インデックス管理
ドキュメント操作
📝 利用可能なツール
サーバーは、データベースとの対話用に次のツールを提供します。
クエリツール
listCollections
: データベース内の利用可能なコレクションを一覧表示しますfind
: フィルタリングと投影を使ってドキュメントを照会するinsertOne
: コレクションに単一のドキュメントを挿入しますupdateOne
: コレクション内の単一のドキュメントを更新するdeleteOne
: コレクションから単一のドキュメントを削除します
インデックスツール
createIndex
: コレクションに新しいインデックスを作成しますdropIndex
: コレクションからインデックスを削除しますindexes
: コレクションのインデックスを一覧表示します
🛠️ 開発
このプロジェクトは以下を使用して構築されています:
- 型安全な開発のためのTypeScript
- データベース操作用の MongoDB Node.js ドライバー
- スキーマ検証のためのZod
- サーバー実装用のモデルコンテキストプロトコルSDK
開発環境をセットアップするには:
🔒 セキュリティに関する考慮事項
この MCP サーバーを MongoDB データベースで使用する場合:
- ユースケースに必要な最小限の権限を持つ専用の MongoDB ユーザーを作成します。
- 本番環境では管理者の資格情報を使用しない
- 監査目的でアクセスログを有効にする
- コレクションに適切な読み取り/書き込み権限を設定する
- アクセスを制限するには接続文字列パラメータを使用します(例:
readPreference=secondary
) - データベースへのアクセスを制限するためにIP許可リストを検討する
⚠️重要: データベース アクセスを構成するときは、常に最小権限の原則に従ってください。
🌐 仕組み
MongoDB MCP サーバー:
- 提供された接続文字列を使用してMongoDBデータベースに接続します
- MongoDB 操作を MCP 仕様に準拠したツールとして公開します。
- 型の安全性とセキュリティのために Zod を使用して入力を検証します
- クエリを実行し、構造化されたデータをLLMクライアントに返します。
- 接続プールと適切なエラー処理を管理します
すべての操作は、インジェクション攻撃などのセキュリティ問題を防ぐために適切な検証を行って実行されます。
📦 デプロイメント
この MCP サーバーはいくつかの方法で展開できます。
- npx 経由でローカルに(クイックスタートに示されているように)
- グローバル npm パッケージとして:
npm install -g @coderay/mongo-mcp-server
- Dockerコンテナ内(リポジトリ内のDockerfileを参照)
- Heroku、Vercel、AWSなどのプラットフォーム上のサービスとして
❓ トラブルシューティング
よくある問題
- 接続エラー
- MongoDB接続文字列が正しいことを確認する
- MongoDBサーバーが稼働していてアクセス可能であることを確認する
- ネットワーク権限で接続が許可されていることを確認する
- 認証の問題
- ユーザー名とパスワードが正しいことを確認してください
- 認証データベースが指定されていることを確認します(通常は
authSource=admin
) - MongoDB が TLS/SSL 接続を必要とするかどうかを確認する
- ツール実行の問題
- Claude DesktopまたはCursor.aiを完全に再起動します
- 詳細なエラー メッセージについてはログを確認してください。
- パフォーマンスの問題
- 頻繁にクエリされるフィールドに適切なインデックスを追加することを検討してください
- クエリで返されるデータを制限するには投影を使用します
- ページ区切りにlimitパラメータとskipパラメータを使用する
ヘルプの取得
問題が発生した場合:
- MCPドキュメントを確認する
- GitHubリポジトリに問題を提出する
🤝 貢献する
貢献を歓迎します!お気軽にプルリクエストを送信してください。
- リポジトリをフォークする
- 機能ブランチを作成します(
git checkout -b feature/amazing-feature
) - 変更をコミットします (
git commit -m 'Add some amazing feature'
) - ブランチにプッシュする (
git push origin feature/amazing-feature
) - プルリクエストを開く
📜 ライセンス
このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細についてはLICENSEファイルを参照してください。
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Claude のような LLM が MongoDB データベースと対話できるようにし、Cursor の自然言語によるスキーマ探索、集計クエリ、データ分析のためのツールを提供するプロトコル サーバーです。
- 📚 モデルコンテキストプロトコル (MCP) とは何ですか?
- ✨ 特徴
- 📋 前提条件
- 🚀 クイックスタート
- 🎯 プロンプトの例
- 📝 利用可能なツール
- 🛠️ 開発
- 🔒 セキュリティに関する考慮事項
- 🌐 仕組み
- 📦 デプロイメント
- ❓ トラブルシューティング
- 🤝 貢献する
- 📜 ライセンス
Related Resources
Related MCP Servers
- -securityAlicense-qualityA Model Context Protocol (MCP) server that enables LLMs to interact directly with MongoDB databases. Query collections, inspect schemas, and manage data seamlessly through natural language.Last updated -34075TypeScriptMIT License
- AsecurityAlicenseAqualityA Model Context Protocol server that provides access to MongoDB databases. This server enables LLMs to inspect collection schemas and execute read-only queries.Last updated -8817217TypeScriptMIT License
- -securityAlicense-qualityA Model Context Protocol server that enables LLMs to interact directly with MongoDB databases, allowing users to query collections, inspect schemas, and manage data through natural language.Last updated -340TypeScriptMIT License
- -securityAlicense-qualityA Model Context Protocol server that enables LLMs to interact directly with MongoDB databases, allowing users to query collections, inspect schemas, and manage data through natural language.Last updated -340MIT License