/ ディレクトリ / プレイグラウンド / MongoDB MCP Server
● コミュニティ kiliczsh 🔑 自分のキーが必要

MongoDB MCP Server

作者 kiliczsh · kiliczsh/mcp-mongo-server

MongoDBの接続文字列をClaudeに渡して、クエリ、集計、スキーマ確認を実行 — 本番環境の安全性には--read-onlyフラグを活用。

mcp-mongo-serverはシンプルなMongoDB向けMCPサーバーです。接続URIを唯一の引数として渡すと、Claudeがfind、aggregate、インデックス確認、スキーマ推定、コレクションイントロスペクションを利用できます。--read-onlyフラグで書き込み系ツールをすべて無効化できるため、本番環境を触れずに探索したい場合に有効です。

なぜ使うのか

主な機能

ライブデモ

実際の動作

mongo-mcp-kiliczsh.replay ▶ 準備完了
0/0

インストール

クライアントを選択

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "mongo-mcp-kiliczsh": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-mongo-server",
        "mongodb://localhost:27017/mydb"
      ]
    }
  }
}

Claude Desktop → Settings → Developer → Edit Config を開く。保存後、アプリを再起動。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "mongo-mcp-kiliczsh": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-mongo-server",
        "mongodb://localhost:27017/mydb"
      ]
    }
  }
}

Cursor は Claude Desktop と同じ mcpServers スキーマを使用。プロジェクト設定はグローバルより優先。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "mongo-mcp-kiliczsh": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-mongo-server",
        "mongodb://localhost:27017/mydb"
      ]
    }
  }
}

Cline サイドバーの MCP Servers アイコンをクリックし、"Edit Configuration" を選択。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "mongo-mcp-kiliczsh": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-mongo-server",
        "mongodb://localhost:27017/mydb"
      ]
    }
  }
}

Claude Desktop と同じ形式。Windsurf を再起動して反映。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "mongo-mcp-kiliczsh",
      "command": "npx",
      "args": [
        "-y",
        "mcp-mongo-server",
        "mongodb://localhost:27017/mydb"
      ]
    }
  ]
}

Continue はマップではなくサーバーオブジェクトの配列を使用。

~/.config/zed/settings.json
{
  "context_servers": {
    "mongo-mcp-kiliczsh": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "mcp-mongo-server",
          "mongodb://localhost:27017/mydb"
        ]
      }
    }
  }
}

context_servers に追加。保存時に Zed がホットリロード。

claude mcp add mongo-mcp-kiliczsh -- npx -y mcp-mongo-server mongodb://localhost:27017/mydb

ワンライナー。claude mcp list で確認、claude mcp remove で削除。

ユースケース

実用的な使い方: MongoDB MCP Server

未知のMongoDBデータベースを一切書き込まずに探索する

👤 新しいサービスにオンボーディングする開発者 ⏱ ~15 min beginner

使うタイミング: Mongoインスタンスを引き継いだが、スキーマがドキュメント化されていない場合。

前提条件
  • 読み取り専用MongoDBユーザーdb.createUser({user:'reader', roles:[{role:'read', db:'mydb'}]})
フロー
  1. 読み取り専用で接続
    Use the mongo MCP. List all collections and infer the schema for the top 3 by size.✓ コピーしました
    → コレクション一覧 + コレクションごとのJSONスキーマ
  2. サンプル確認
    Show me 5 sample documents from orders — anonymize emails.✓ コピーしました
    → 5件のドキュメント、PII匿名化済み
  3. リレーションシップのマッピング
    Which collections reference each other by ObjectId? Draw a quick text diagram.✓ コピーしました
    → プレーンテキストのERダイアグラム

結果: DBAなしで10分以内にデータベースの動作モデルを把握。

注意点
  • サンプリングで高カーディナリティなフィールドを見逃す — 推定呼び出しのサンプルサイズを増やす;データが時系列に偏っている場合は日付でサンプリング
組み合わせ: filesystem

Claudeのインデックス提案で遅い集計をチューニングする

👤 バックエンド開発者 ⏱ ~25 min intermediate

使うタイミング: 集計パイプラインに30秒かかっており、どのステージがボトルネックかわからない場合。

フロー
  1. プロファイリング
    Run this aggregation with explain=true. Show the winning plan.✓ コピーしました
    → ステージごとのドキュメントスキャン数を含むexplain出力
  2. 診断
    Which stage is the bottleneck? What index would help?✓ コピーしました
    → 根拠を伴う具体的なインデックス提案
  3. 検証
    Re-explain after I add the index. Did totalDocsExamined drop?✓ コピーしました
    → 数値付きのyes/no回答

結果: 1つのピンポイントなインデックスで10倍高速化した集計。

注意点
  • Claudeが書き込みを肥大化させるインデックスを提案する — 適用前に「このインデックスの書き込みペナルティは?」と確認する

暗黙のスキーマに違反するドキュメントを見つける

👤 データエンジニア ⏱ ~20 min intermediate

使うタイミング: スキーマレスDBにはドリフトが蓄積する;違反ドキュメントを見つける必要がある。

フロー
  1. サンプリング
    Sample 1000 documents from users. What fields are missing or have unexpected types?✓ コピーしました
    → フィールドごとのnull率/型頻度テーブル
  2. 検索
    Find all users where email is null or not a string.✓ コピーしました
    → 件数 + サンプルの_id

結果: マイグレーションスクリプトに渡せる具体的なデータ品質レポート。

注意点
  • 大きなコレクションがタイムアウトする — $sampleを使い、その後の絞り込みは範囲でスコープを限定する

組み合わせ

他のMCPと組み合わせて10倍の力を

mongo-mcp-kiliczsh + filesystem

集計結果をJSONファイルとしてエクスポートし下流のツールに渡す

Run the aggregation and save results to /tmp/orders-by-month.json.✓ コピーしました
mongo-mcp-kiliczsh + github

ドリフト発見後にマイグレーションスクリプトのPRをオープンする

We found 1200 users without email. Open a PR with a backfill migration.✓ コピーしました

ツール

このMCPが提供する機能

ツール入力呼び出すタイミングコスト
find collection, filter, projection?, limit? 特定のドキュメントを検索するとき 1クエリ
aggregate collection, pipeline[], explain? データをグループ化/変換するとき 1クエリ
list_collections (なし) DBの内容を探索するとき free
schema collection, sample_size? サンプルドキュメントからシェイプを推定するとき 1サンプル読み取り
list_indexes collection チューニングの議論時 free
insert_one collection, document --read-onlyモードでないときのみ 1書き込み

コストと制限

運用コスト

APIクォータ
MongoクラスターのRU/IOPSに依存
呼び出しあたりのトークン
結果サイズによって200〜5000 token
金額
無料(オープンソース)
ヒント
必要なフィールドのみをprojectionで取得;早い段階でlimitを設定する

セキュリティ

権限、シークレット、影響範囲

最小スコープ: 対象DBへのread権限
認証情報の保管: URIをCLI引数として渡す — シェル履歴に残さないよう注意
データ送信先: Mongoホストへのみ
絶対に付与しない: dbAdmin root

トラブルシューティング

よくあるエラーと対処法

MongoServerSelectionError

接続性、IPアローリスト、TLS設定を確認

確認: 同じURIでmongoshを実行
認証失敗

URI内のauthSource(多くの場合admin)を確認;そのDB内にユーザーが存在するか確認

読み取り専用モードでツールが見つからない

書き込みが必要な場合は--read-onlyを外す;それ以外は別のMCPで書き込む

代替案

MongoDB MCP Server 他との比較

代替案代わりに使う場面トレードオフ
MongoDB CompassAI不使用のGUI探索エージェント統合なし;手動クエリ
シェルMCP内のmongosh生のmongoshパワーが必要な場合より危険;このMCPは制限されたツールを提供する

その他

リソース

📖 GitHub の公式 README を読む

🐙 オープンな issue を見る

🔍 400以上のMCPサーバーとSkillsを見る