mcpField
M
mongo-scout-mcp

mongo-scout-mcp

ローカル
github.com/bluworkデータベース034 週間前に更新

mongo-scout-mcp について

Mongo Scout MCPは、MongoDBデータベースの調査、クエリ、監視、保守を行うModel Context Protocolサーバーです。データベース運用者や開発者向けに、既定の読み取り専用モードと、安全性を考慮した書き込みプレビューや制限を備えます。

主な機能

  1. 01データベースとコレクションの調査
  2. 02ドキュメントのクエリと集計
  3. 03異常検出とリアルタイム監視
  4. 04データ品質と関係の検査
  5. 05ドライランプレビューと制限付き書き込み

活用シーン

  1. 01コレクションの確認とドキュメントスキーマの推定
  2. 02件数の異常や遅い操作の検出
  3. 03重複・必須フィールド欠落・孤立参照の検出
  4. 04データのエクスポートや変更の事前確認

MCP 対応

Mongo Scout MCPは、MongoDBの調査、クエリ、監視、データ品質、エクスポート、書き込みのツールをMCPクライアントに公開します。読み取り専用で構成でき、明示的に読み書きを有効化することもできます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"bluwork-mongo-scout": {
"command": "npx",
"args": [
"-y",
"mongo-scout-mcp"
]
}
}
}
起動コマンドnpx -y mongo-scout-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmmongo-scout-mcp1.0.3

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Mongo Scout MCP

AI で MongoDB データベースを調査できます。安全機能、ライブモニタリング、データ品質ツールを内蔵した、本番環境対応の Model Context Protocol サーバーです。

npm License

利用できる機能

次のように質問します。

「今月、注文数に何か異常はありますか?」

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、または CSV
  • cloneCollection — フィルタリングとインデックスのコピーを行って複製
プレビュー — 変更を加える前にドライランする
  • 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_LOGGINGfalseファイルへのログ記録を有効にします
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

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。