mongo-scout-mcp について
Mongo Scout MCPは、MongoDBデータベースの調査、クエリ、監視、保守を行うModel Context Protocolサーバーです。データベース運用者や開発者向けに、既定の読み取り専用モードと、安全性を考慮した書き込みプレビューや制限を備えます。
主な機能
- 01データベースとコレクションの調査
- 02ドキュメントのクエリと集計
- 03異常検出とリアルタイム監視
- 04データ品質と関係の検査
- 05ドライランプレビューと制限付き書き込み
活用シーン
- 01コレクションの確認とドキュメントスキーマの推定
- 02件数の異常や遅い操作の検出
- 03重複・必須フィールド欠落・孤立参照の検出
- 04データのエクスポートや変更の事前確認
MCP 対応
Mongo Scout MCPは、MongoDBの調査、クエリ、監視、データ品質、エクスポート、書き込みのツールをMCPクライアントに公開します。読み取り専用で構成でき、明示的に読み書きを有効化することもできます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Mongo Scout MCP
AI で MongoDB データベースを調査できます。安全機能、ライブモニタリング、データ品質ツールを内蔵した、本番環境対応の Model Context Protocol サーバーです。
利用できる機能
次のように質問します。
「今月、注文数に何か異常はありますか?」
Mongo Scout は次のように回答します。
件数分析:orders
統計(過去 30 日間)
| 指標 | 値 |
|---|---|
| 1 日あたりの平均 | 2,847 ドキュメント |
| 標準偏差 | 412 |
| 最小値/最大値 | 1,923 / 3,601 |
検出された異常
- 2 月 14 日 — 5,892 ドキュメント(+7.4σ)— バレンタインデーによる急増
- 2 月 22 日 — 847 ドキュメント(-4.9σ)— 決済ゲートウェイの障害発生時間帯
- 3 月 1 日 — 4,201 ドキュメント(+3.3σ)— 月初のサブスクリプション更新
推奨事項
- 2 月 22 日の減少は調査が必要です。障害中にデータが失われた可能性があります
- 月の境目や祝日など、予測可能な急増に備えて自動スケーリングルールを検討してください
- 移動平均から ±3σ を超える件数に対するアラートを設定してください
これは detectVolumeAnomalies の機能です。探索、クエリ、診断、モニタリング、データ品質、安全な書き込みを網羅する 50 個のツールの 1 つです。
クイックスタート
Claude Code
claude mcp add mongo-scout -- npx -y mongo-scout-mcp mongodb://localhost:27017 mydb
次に、「どのようなコレクションがあり、そのスキーマはどのようになっていますか?」と尋ねてください。
Claude Desktop
Claude Desktop の設定に追加します(macOS では ~/Library/Application Support/Claude/claude_desktop_config.json)。
{
"mcpServers": {
"mongo-scout": {
"command": "npx",
"args": ["-y", "mongo-scout-mcp", "mongodb://localhost:27017", "mydb"],
"type": "stdio"
}
}
}
Cursor / VS Code
MCP 設定に追加します。
{
"mongo-scout": {
"command": "npx",
"args": ["-y", "mongo-scout-mcp", "mongodb://localhost:27017", "mydb"]
}
}
読み取り専用と読み書き
サーバーはデフォルトで読み取り専用モードで実行されます。書き込み操作を行うには、別のインスタンスを実行してください。
{
"mcpServers": {
"mongo-scout-readonly": {
"command": "npx",
"args": ["-y", "mongo-scout-mcp", "--read-only", "mongodb://localhost:27017", "mydb"],
"type": "stdio"
},
"mongo-scout-readwrite": {
"command": "npx",
"args": ["-y", "mongo-scout-mcp", "--read-write", "mongodb://localhost:27017", "mydb_dev"],
"type": "stdio"
}
}
}
- mongo-scout-readonly:安全な探索用。データ変更のリスクはありません
- mongo-scout-readwrite:明示的に必要な場合の書き込み操作用
ツール
探索 — データベースを把握する
listDatabases— インスタンス内のすべてのデータベースgetDatabaseStats— ストレージとパフォーマンスの統計情報listCollections— 現在のデータベース内のコレクションgetCollectionStats— サイズ、ドキュメント数、インデックスの詳細inferSchema— サンプルドキュメントからスキーマを推定
クエリ — ドキュメントを検索、分析する
find— フィルタリング、ソート、プロジェクションを指定してドキュメントをクエリaggregate— 集計パイプラインを実行count— クエリに一致するドキュメントをカウントdistinct— フィールドの一意な値textSearch— インデックス付きフィールドを対象とする全文検索explainQuery— クエリ実行計画を分析
診断 — 問題を早期に発見する
detectVolumeAnomalies— ドキュメント数の異常なパターンを検出analyzeQueryPerformance— explain プランを使ってクエリを最適化
モニタリング — ライブで監視する
getServerStatus— サーバーのパフォーマンス指標getCurrentOperations— 現在実行中の操作getConnectionPoolStats— コネクションプールの状態getProfilerStats— プロファイラーデータと低速な操作getLiveMetrics— 継続的に更新されるリアルタイム指標getHottestCollections— アクティビティが最も多いコレクションgetCollectionMetrics— コレクションごとの詳細な指標getSlowestOperations— 低速なクエリを追跡runAdminCommand— 管理コマンドを実行
データ品質 — データの信頼性を確保する
findDuplicates— フィールドの組み合わせで重複ドキュメントを検索findOrphans— コレクション間の孤立した参照を検索findMissingFields— 必須フィールドが欠落したドキュメントを検索findInconsistentTypes— ドキュメント間の型の不整合を検索validateDocuments— MongoDB の$exprを使ったカスタム検証
リレーションシップ — 参照をたどる
exploreRelationships— 複数ホップのリレーションシップをたどる
時系列 — 時系列分析
findRecent— 指定した時間枠内のドキュメントfindInTimeRange— オプションのグループ化に対応した日付範囲クエリ
インデックス — インデックスを管理する
listIndexes— コレクションのすべてのインデックスcreateIndex— 新しいインデックスを作成dropIndex— インデックスを削除
エクスポート — データを取り出す
exportCollection— JSON、JSONL、または CSVcloneCollection— フィルタリングとインデックスのコピーを行って複製
プレビュー — 変更を加える前にドライランする
previewUpdate/previewDelete— 確定前に変更内容を確認previewBulkWrite— 一括操作をプレビュー
書き込み(読み書きモードのみ)— 安全な変更
insertOne/insertMany— ドキュメントを挿入updateOne/updateMany— dryRun と maxDocuments の制限を指定して更新replaceOne— 単一のドキュメントを置換findOneAndUpdate— ドキュメントを検索してアトミックに更新deleteOne/deleteMany— dryRun と maxDocuments の制限を指定して削除bulkWrite— 1 回の呼び出しで複数の書き込み操作を実行renameField— ドライランとインデックス移行を行ってフィールド名を変更createCollection/dropCollection— コレクションを管理
セキュリティ
- デフォルトは読み取り専用 — 書き込み操作は明示的に有効にする必要があります
- すべてのクエリを検証およびサニタイズします
- MongoDB オペレーターインジェクションを防止します
- ログ内の接続文字列の認証情報をマスキングします
- すべての操作にレート制限を適用します
- メモリ枯渇を防ぐためにレスポンスサイズを制限します
使用例
「どのコレクションがあり、users のスキーマは何ですか?」
listCollections()
inferSchema({ collection: "users", sampleSize: 50 })
「users コレクション内の重複したメールアドレスを検索してください。」
findDuplicates({ collection: "users", fields: ["email"], options: { limit: 100 } })
「過去 1 か月の注文数の異常を表示してください。」
detectVolumeAnomalies({ collection: "orders", timestampField: "createdAt", options: { groupBy: "day", lookbackPeriods: 30 } })
「現在、サーバーで何が起きていますか?」
getServerStatus()
getCurrentOperations()
getHottestCollections({ limit: 5, sampleDuration: 5000 })
「削除済みのユーザーを参照している注文を検索してください。」
findOrphans({ collection: "orders", localField: "userId", foreignCollection: "users", foreignField: "_id" })
「products コレクションを CSV としてエクスポートしてください。」
exportCollection({ collection: "products", options: { format: "csv", flatten: true } })
設定
| 変数 | デフォルト | 説明 |
|---|---|---|
ENABLE_LOGGING | false | ファイルへのログ記録を有効にします |
LOG_DIR | ./logs | ログファイルのディレクトリ |
CLI フラグ:--read-only(デフォルト)、--read-write、--mode <mode>
ログ記録
ファイルへのログ記録はデフォルトで無効です。有効にするには ENABLE_LOGGING=true を設定します。LOG_DIR に 2 つのログファイルが作成されます。
- tool-usage.log — タイムスタンプ、名前、引数を含むすべてのツール呼び出し
- error.log — スタックトレースを含むエラー
すべての出力で接続文字列が自動的にマスキングされます。
ObjectId の形式
どちらの形式も使用できます。
{ "_id": { "$oid": "507f1f77bcf86cd799439011" } }
{ "_id": "507f1f77bcf86cd799439011" }
開発
git clone https://github.com/bluwork/mongo-scout-mcp.git
cd mongo-scout-mcp
pnpm install
pnpm build
pnpm test
ライセンス
Apache-2.0
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。