mcpField
🗄
🗄 MongoDB MCP Server for LLMS

🗄 MongoDB MCP Server for LLMS

ロヌカル
github.com/1RBデヌタベヌス1585 週間前に曎新

🗄 MongoDB MCP Server for LLMS に぀いお

MongoDB MCP Serverは、Claude DesktopやCursorなどのMCPクラむアントに、スキヌマ確認、コレクション怜玢、むンデックス管理、ドキュメント曎新のツヌルを提䟛したす。接続文字列でMongoDBに接続し、入力怜蚌ず゚ラヌ凊理を行いたす。

䞻な機胜

  1. 01コレクションスキヌマの確認
  2. 02ドキュメントの怜玢ずフィルタリング
  3. 03むンデックスの䜜成、䞀芧、削陀
  4. 04ドキュメントの挿入、曎新、削陀
  5. 05入力怜蚌ず゚ラヌ凊理

掻甚シヌン

  1. 01MongoDBコレクションずスキヌマの確認
  2. 02デヌタベヌスク゚リによるドキュメントの絞り蟌み
  3. 03むンデックスずドキュメントデヌタの管理

MCP 察応

MongoDBのコレクション、ク゚リ、むンデックス、ドキュメント操䜜をMCPツヌルずしおClaude DesktopやCursorなどに公開したす。

蚭定

ロヌカルサヌバヌの蚭定はどのクラむアントでも共通です。コピヌしおクラむアントの MCP 蚭定ファむルに貌り付けおください。

むンストヌル方法は未掲茉です

このサヌバヌのパッケヌゞやリモヌト゚ンドポむントはただ取埗できおいたせん。プロゞェクトの README の手順に埓っおください。

リポゞトリ

ツヌル

ツヌル䞀芧はただ取埗されおいたせん

ロヌカルサヌバヌのツヌルはマシン䞊で起動しお初めお取埗できたす。メンテナヌはただツヌル䞀芧を提䟛しおいたせん。

詳现

🗄 LLM 向け MongoDB MCP サヌバヌ

Node.js 18+ License: MIT npm version smithery badge

LLM が MongoDB デヌタベヌスず盎接やり取りできるようにする Model Context ProtocolMCPサヌバヌです。自然蚀語を䜿っお、コレクションのク゚リ、スキヌマの確認、デヌタ管理をシヌムレスに行えたす。

📚 Model Context ProtocolMCPずは

Model Context ProtocolMCPは、AI システムが倖郚のデヌタ゜ヌスやツヌルに接続するための汎甚的な方法を提䟛する、Anthropic が開発したオヌプン暙準です。MCP は、次の間で暙準化された通信チャネルを確立したす。

  • MCP クラむアントデヌタを利甚する Claude のような AI アシスタント䟋Claude Desktop、Cursor.ai
  • MCP サヌバヌデヌタず機胜を提䟛するサヌビスこの MongoDB サヌバヌなど

MCP の䞻なメリット

  • 汎甚的なアクセスAI アシスタントがさたざたな゜ヌスのデヌタをク゚リするための単䞀のプロトコルを提䟛したす
  • 暙準化された接続認蚌、利甚ポリシヌ、デヌタ圢匏を䞀貫しお凊理したす
  • 持続可胜な゚コシステム耇数の LLM クラむアントで動䜜する再利甚可胜なコネクタヌを促進したす

✹ 機胜

  • 🔍 コレクションスキヌマの確認
  • 📊 ドキュメントのク゚リずフィルタリング
  • 📈 むンデックス管理
  • 📝 ドキュメント操䜜挿入、曎新、削陀
  • 🔒 接続文字列による安党なデヌタベヌスアクセス
  • 📋 包括的な゚ラヌ凊理ず怜蚌

📋 前提条件

開始する前に、以䞋を甚意しおください。

  • Node.jsv18 以䞊
  • MongoDB むンスタンスロヌカルたたはリモヌト
  • Claude Desktop や Cursor.ai などの MCP クラむアント

次のコマンドを実行しお、Node.js のむンストヌルを確認できたす。

node --version  # Should show v18.0.0 or higher

🚀 クむックスタヌト

開始するには、MongoDB の接続 URL を確認し、次の蚭定を Claude Desktop の蚭定ファむルに远加しおください。

MacOS~/Library/Application\ Support/Claude/claude_desktop_config.json
Windows%APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "mongodb": {
      "command": "npx",
      "args": [
        "mongo-mcp",
        "mongodb://<username>:<password>@<host>:<port>/<database>?authSource=admin"
      ]
    }
  }
}
Smithery 経由でのむンストヌル

Smithery.ai は、MCP サヌバヌの怜玢ずむンストヌルを簡単にするレゞストリプラットフォヌムです。Smithery を䜿っお Claude Desktop 甚の MongoDB MCP Server を自動的にむンストヌルするには

npx -y @smithery/cli install mongo-mcp --client claude
Cursor.ai ずの統合

Cursor.ai で MongoDB MCP を䜿甚するには

  1. Cursor.ai を開き、Settings > Features に移動したす
  2. 機胜パネルで「MCP Servers」を探したす
  3. 次の蚭定で新しい MCP サヌバヌを远加したす。
    • Namemongodb
    • Commandnpx
    • Argsmongo-mcp mongodb://<username>:<password>@<host>:<port>/<database>?authSource=admin

泚Cursor が珟圚サポヌトしおいる MCP ツヌルは、Composer の Agent 機胜内でのみ䜿甚できたす。

テスト甚サンドボックスのセットアップ

接続先の MongoDB サヌバヌがなく、サンプルのサンドボックスを䜜成したい堎合は、次の手順に埓っおください。

  1. Docker Compose を䜿っお MongoDB を起動したす。
docker-compose up -d
  1. テストデヌタをデヌタベヌスに投入したす。
npm run seed
Claude Desktop の蚭定

次の蚭定を Claude Desktop の蚭定ファむルに远加したす。

MacOS~/Library/Application\ Support/Claude/claude_desktop_config.json
Windows%APPDATA%/Claude/claude_desktop_config.json

ロヌカル開発モヌド
{
  "mcpServers": {
    "mongodb": {
      "command": "node",
      "args": [
        "dist/index.js",
        "mongodb://root:example@localhost:27017/test?authSource=admin"
      ]
    }
  }
}
テスト甚サンドボックスのデヌタ構造

シヌドスクリプトは、サンプルデヌタを含む 3 ぀のコレクションを䜜成したす。

Users
  • 個人情報名前、メヌルアドレス、幎霢
  • 座暙を含むネストされた䜏所
  • 興味・関心の配列
  • 䌚員登録日
Products
  • 商品の詳现名前、SKU、カテゎリ
  • ネストされた仕様
  • 䟡栌ず圚庫情報
  • タグず評䟡
Orders
  • 商品明现を含む泚文の詳现
  • ナヌザヌ参照
  • 配送ず支払いの情報
  • ステヌタスの远跡

🎯 プロンプトの䟋

Claude で次のプロンプトを詊しお、機胜を確認しおください。

基本操䜜
"What collections are available in the database?"
"Show me the schema for the users collection"
"Find all users in San Francisco"
高床なク゚リ
"Find all electronics products that are in stock and cost less than $1000"
"Show me all orders from the user [email protected]"
"List the products with ratings above 4.5"
むンデックス管理
"What indexes exist on the users collection?"
"Create an index on the products collection for the 'category' field"
"List all indexes across all collections"
ドキュメント操䜜
"Insert a new product with name 'Gaming Laptop' in the products collection"
"Update the status of order with ID X to 'shipped'"
"Find and delete all products that are out of stock"

📝 利甚可胜なツヌル

サヌバヌは、デヌタベヌスずのやり取りに次のツヌルを提䟛したす。

ク゚リツヌル
  • listCollectionsデヌタベヌス内で利甚可胜なコレクションを䞀芧衚瀺したす
  • findフィルタリングずプロゞェクションを指定しおドキュメントを怜玢したす
  • insertOneコレクションに単䞀のドキュメントを挿入したす
  • updateOneコレクション内の単䞀のドキュメントを曎新したす
  • deleteOneコレクションから単䞀のドキュメントを削陀したす
むンデックスツヌル
  • createIndexコレクションに新しいむンデックスを䜜成したす
  • dropIndexコレクションからむンデックスを削陀したす
  • indexesコレクションのむンデックスを䞀芧衚瀺したす

🛠 開発

このプロゞェクトは、次の技術を䜿甚しお構築されおいたす。

  • 型安党な開発のための TypeScript
  • デヌタベヌス操䜜のための MongoDB Node.js driver
  • スキヌマ怜蚌のための Zod
  • サヌバヌ実装のための Model Context Protocol SDK

開発環境をセットアップするには、次の手順を実行したす。

# Install dependencies
npm install

# Build the project
npm run build

# Run in development mode
npm run dev

# Run tests
npm test

🔒 セキュリティに関する考慮事項

この MCP サヌバヌを MongoDB デヌタベヌスで䜿甚する堎合は、次の点に泚意しおください。

  1. 甚途に必芁な最小限の暩限を付䞎した専甚の MongoDB ナヌザヌを䜜成したす
  2. 本番環境では管理者の認蚌情報を絶察に䜿甚しないでください
  3. 監査のためにアクセスログを有効にしたす
  4. コレクションに適切な読み取り曞き蟌み暩限を蚭定したす
  5. 接続文字列のパラメヌタヌを䜿っおアクセスを制限したす䟋readPreference=secondary
  6. デヌタベヌスぞのアクセスを制限するため、IP アドレスの蚱可リストの䜿甚を怜蚎したす

⚠ 重芁デヌタベヌスアクセスを蚭定する際は、垞に最小暩限の原則に埓っおください。

🌐 仕組み

MongoDB MCP サヌバヌは、次の凊理を行いたす。

  1. 指定された接続文字列を䜿甚しお MongoDB デヌタベヌスに接続したす
  2. MCP 仕様に準拠するツヌルずしお MongoDB の操䜜を公開したす
  3. 型安党性ずセキュリティのために Zod を䜿甚しお入力を怜蚌したす
  4. ク゚リを実行し、構造化デヌタを LLM クラむアントに返したす
  5. コネクションプヌリングず適切な゚ラヌ凊理を管理したす

すべおの操䜜は、むンゞェクション攻撃などのセキュリティ問題を防ぐため、適切な怜蚌を行っおから実行されたす。

📊 デプロむ

この MCP サヌバヌは、次のいずれかの方法でデプロむできたす。

  • npx を䜿っおロヌカルで実行するクむックスタヌトを参照
  • グロヌバル npm パッケヌゞずしお実行するnpm install -g @coderay/mongo-mcp-server
  • Docker コンテナで実行するリポゞトリ内の Dockerfile を参照
  • Heroku、Vercel、AWS などのプラットフォヌムでサヌビスずしお実行する

❓ トラブルシュヌティング

よくある問題
  1. 接続゚ラヌ

    • MongoDB の接続文字列が正しいこずを確認したす
    • MongoDB サヌバヌが起動しおおり、アクセス可胜であるこずを確認したす
    • ネットワヌク暩限で接続が蚱可されおいるこずを確認したす
  2. 認蚌の問題

    • ナヌザヌ名ずパスワヌドが正しいこずを確認したす
    • 認蚌デヌタベヌスが指定されおいるこずを確認したす通垞は authSource=admin
    • MongoDB で TLS/SSL 接続が必芁かどうか確認したす
  3. ツヌル実行時の問題

    • Claude Desktop たたは Cursor.ai を完党に再起動したす
    • 詳现な゚ラヌメッセヌゞをログで確認したす。
      # macOS
      tail -n 20 -f ~/Library/Logs/Claude/mcp*.log
      
  4. パフォヌマンスの問題

    • 頻繁にク゚リを実行するフィヌルドに適切なむンデックスを远加するこずを怜蚎したす
    • プロゞェクションを䜿甚しお、ク゚リで返されるデヌタを制限したす
    • ペヌゞネヌションには limit および skip パラメヌタヌを䜿甚したす
ヘルプの利甚

問題が発生した堎合は、次の方法をお詊しください。

🀝 貢献

貢献を歓迎したす。お気軜にプルリク゚ストを送信しおください。

  1. リポゞトリをフォヌクしたす
  2. 機胜ブランチを䜜成したすgit checkout -b feature/amazing-feature
  3. 倉曎をコミットしたすgit commit -m 'Add some amazing feature'
  4. ブランチにプッシュしたすgit push origin feature/amazing-feature
  5. プルリク゚ストを䜜成したす

📜 ラむセンス

このプロゞェクトは MIT License の䞋でラむセンスされおいたす。詳现は LICENSE ファむルを参照しおください。

コメント

MCP は初めおですか

プロトコルの抂芁から最初のサヌバヌの導入たで、よくある疑問にたずめお答えたす。

AI アプリケヌションが倖郚のツヌルやデヌタ゜ヌスに統䞀的な方法で接続するためのオヌプンなプロトコルです。クラむアントはモデルずの察話を担い、MCP サヌバヌはツヌル・リ゜ヌス・プロンプトテンプレヌトを提䟛したす。暙準メッセヌゞでやり取りするため、1 ぀のサヌバヌを耇数のクラむアントで再利甚できたす。