io.github.bluwork/mongo-scout-mcp
Scout your MongoDB databases with AI - safety features, live monitoring, and data quality
Ask AI about io.github.bluwork/mongo-scout-mcp
Powered by Claude Β· Grounded in docs
I know everything about io.github.bluwork/mongo-scout-mcp. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
Mongo Scout MCP
Scout your MongoDB databases with AI - A production-ready Model Context Protocol server with built-in safety features, live monitoring, and data quality tools.
What You Get
You ask:
"Anything unusual happening with order volume this month?"
Mongo Scout returns:
Volume Analysis: orders
Statistics (last 30 days)
| Metric | Value |
|---|---|
| Daily Average | 2,847 documents |
| Standard Deviation | 412 |
| Min / Max | 1,923 / 3,601 |
Anomalies Detected
- Feb 14 β 5,892 documents (+7.4Ο) β Valentine's Day spike
- Feb 22 β 847 documents (-4.9Ο) β Payment gateway outage window
- Mar 1 β 4,201 documents (+3.3Ο) β Month-start subscription renewals
Recommendations
- Feb 22 drop warrants investigation β possible data loss during outage
- Consider auto-scaling rules for predictable spikes (month boundaries, holidays)
- Set up alerts for volumes exceeding Β±3Ο from rolling average
That's detectVolumeAnomalies β one of 50 tools covering exploration, querying, diagnostics, monitoring, data quality, and safe writes.
Quick Start
Claude Code
claude mcp add mongo-scout -- npx -y mongo-scout-mcp mongodb://localhost:27017 mydb
Then ask: "What collections do I have and what do their schemas look like?"
Claude Desktop
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"mongo-scout": {
"command": "npx",
"args": ["-y", "mongo-scout-mcp", "mongodb://localhost:27017", "mydb"],
"type": "stdio"
}
}
}
Cursor / VS Code
Add to your MCP settings:
{
"mongo-scout": {
"command": "npx",
"args": ["-y", "mongo-scout-mcp", "mongodb://localhost:27017", "mydb"]
}
}
Read-Only vs Read-Write
The server runs in read-only mode by default. For write operations, run a separate instance:
{
"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: Safe exploration, no risk of data modification
- mongo-scout-readwrite: Write operations when explicitly needed
Tools
Explore β understand your database
listDatabasesβ all databases in the instancegetDatabaseStatsβ storage and performance statisticslistCollectionsβ collections in the current databasegetCollectionStatsβ size, document count, index detailsinferSchemaβ schema inference from sampled documents
Query β find and analyze documents
findβ query documents with filtering, sorting, projectionaggregateβ run aggregation pipelinescountβ count documents matching a querydistinctβ unique values for a fieldtextSearchβ full-text search across indexed fieldsexplainQueryβ query execution plan analysis
Diagnose β spot problems early
detectVolumeAnomaliesβ unusual patterns in document volumeanalyzeQueryPerformanceβ query optimization using explain plans
Monitor β watch it live
getServerStatusβ server performance metricsgetCurrentOperationsβ currently running operationsgetConnectionPoolStatsβ connection pool healthgetProfilerStatsβ profiler data and slow operationsgetLiveMetricsβ real-time metrics with continuous updatesgetHottestCollectionsβ collections with highest activitygetCollectionMetricsβ detailed per-collection metricsgetSlowestOperationsβ slow query trackingrunAdminCommandβ execute admin commands
Data Quality β trust your data
findDuplicatesβ duplicate documents by field combinationfindOrphansβ orphaned references across collectionsfindMissingFieldsβ documents missing required fieldsfindInconsistentTypesβ type inconsistencies across documentsvalidateDocumentsβ custom validation with MongoDB$expr
Relationships β follow the references
exploreRelationshipsβ multi-hop relationship traversal
Time Series β temporal analysis
findRecentβ documents within a time windowfindInTimeRangeβ date range queries with optional grouping
Indexes β manage your indexes
listIndexesβ all indexes for a collectioncreateIndexβ create new indexesdropIndexβ remove indexes
Export β get data out
exportCollectionβ JSON, JSONL, or CSVcloneCollectionβ clone with filtering and index copying
Preview β dry-run before changing anything
previewUpdate/previewDeleteβ see what would change before committingpreviewBulkWriteβ preview bulk operations
Write (read-write only) β safe modifications
insertOne/insertManyβ insert documentsupdateOne/updateManyβ update with dryRun and maxDocuments limitsreplaceOneβ replace a single documentfindOneAndUpdateβ find and update atomicallydeleteOne/deleteManyβ delete with dryRun and maxDocuments limitsbulkWriteβ multiple write operations in one callrenameFieldβ rename fields with dry-run and index migrationcreateCollection/dropCollectionβ collection management
Security
- Read-only by default β write operations must be explicitly enabled
- All queries are validated and sanitized
- MongoDB operator injection protection
- Connection string credential redaction in logs
- Rate limiting on all operations
- Response size limits to prevent memory exhaustion
Examples
"What collections do I have and what's the schema of users?"
listCollections()
inferSchema({ collection: "users", sampleSize: 50 })
"Find duplicate emails in the users collection."
findDuplicates({ collection: "users", fields: ["email"], options: { limit: 100 } })
"Show me order volume anomalies over the last month."
detectVolumeAnomalies({ collection: "orders", timestampField: "createdAt", options: { groupBy: "day", lookbackPeriods: 30 } })
"What's happening on the server right now?"
getServerStatus()
getCurrentOperations()
getHottestCollections({ limit: 5, sampleDuration: 5000 })
"Find orders that reference deleted users."
findOrphans({ collection: "orders", localField: "userId", foreignCollection: "users", foreignField: "_id" })
"Export the products collection as CSV."
exportCollection({ collection: "products", options: { format: "csv", flatten: true } })
Configuration
| Variable | Default | Description |
|---|---|---|
ENABLE_LOGGING | false | Enable file logging |
LOG_DIR | ./logs | Log file directory |
CLI flags: --read-only (default), --read-write, --mode <mode>
Logging
File logging is disabled by default. Set ENABLE_LOGGING=true to enable. Two log files are created in LOG_DIR:
- tool-usage.log β every tool call with timestamp, name, and arguments
- error.log β errors with stack traces
Connection strings are automatically redacted in all output.
ObjectId Format
Both formats accepted:
{ "_id": { "$oid": "507f1f77bcf86cd799439011" } }
{ "_id": "507f1f77bcf86cd799439011" }
Development
git clone https://github.com/bluwork/mongo-scout-mcp.git
cd mongo-scout-mcp
pnpm install
pnpm build
pnpm test
License
Apache-2.0
