hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Integrations
Enables LLMs to interact directly with MongoDB databases, allowing querying collections, inspecting schemas, and managing data through natural language interfaces.
🗄️ 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を完全に再起動します
- 詳細なエラー メッセージについてはログを確認してください。Copy
- パフォーマンスの問題
- 頻繁にクエリされるフィールドに適切なインデックスを追加することを検討してください
- クエリで返されるデータを制限するには投影を使用します
- ページ区切りに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
Claude のような LLM が MongoDB データベースと対話できるようにし、Cursor の自然言語によるスキーマ探索、集計クエリ、データ分析のためのツールを提供するプロトコル サーバーです。
- 📚 What is Model Context Protocol (MCP)?
- ✨ Features
- 📋 Prerequisites
- 🚀 Quick Start
- 🎯 Example Prompts
- 📝 Available Tools
- 🛠️ Development
- 🔒 Security Considerations
- 🌐 How It Works
- 📦 Deployment
- ❓ Troubleshooting
- 🤝 Contributing
- 📜 License