MongoDB MCP
by raviraj-ntp
README.md
# MongoDB MCP
Feature-rich MCP server for **MongoDB** with **multi-connection** support. Connect many clusters at once — no switching, no duplicate MCP processes.
- **npm:** `@raviraj87/mongodb-mcp`
- **GitHub:** https://github.com/raviraj-ntp/mongodb-mcp
- Runs locally via stdio (any MCP-compatible client)
---
## Quick start
Add to your **MCP client configuration** (path depends on client — e.g. Claude Desktop, VS Code, Windsurf):
```json
{
"mcpServers": {
"mongodb": {
"command": "npx",
"args": ["-y", "@raviraj87/mongodb-mcp"],
"env": {
"MONGODB_URI": "mongodb://localhost:27017/mydb"
}
}
}
}
```
**Option B — multiple connections** (copy `config.example.yaml` → `~/.mongodb-mcp.yaml`):
```yaml
default_connection: local
connections:
local:
uri_env: MONGODB_URI
staging:
uri_env: MONGODB_URI_STAGING
prod:
uri_env: MONGODB_URI_PROD
read_only: true
```
Set URIs in `mcp.json` env. Every tool accepts optional `connection: "staging"`.
**Extra connections via env** (no YAML):
```bash
MONGODB_EXTRA_CONNECTIONS=staging:MONGODB_URI_STAGING,prod:MONGODB_URI_PROD
```
---
## vs official `mongodb-mcp-server`
| Feature | Official | This server |
|---------|----------|-------------|
| Multiple clusters simultaneously | Switch or N processes | Named `connection` param |
| Composite tools | No | `explore_collection`, `database_overview`, `compare_collections` |
| Diagnostics | `mongodb-logs` | + `server_status`, `current_ops`, `repl_set_status` |
| Knowledge search | Yes | Yes (`search_knowledge`, optional) |
| Atlas API | Full | Core read ops (optional) |
| Per-connection `read_only` | No | Yes |
---
## Tools (~45)
**Connection:** `list_connections`, `ping`, `connect`
**Read:** `find`, `find_one`, `aggregate`, `aggregate_db`, `count`, `explain`, `distinct`, `sample_documents`, `text_search`, `export_query`
**Metadata:** `list_databases`, `list_collections`, `collection_schema`, `collection_indexes`, `collection_storage_size`, `collection_stats`, `db_stats`, `validate_collection`
**Write:** `insert_many`, `update_many`, `delete_many`, `bulk_write`, `find_one_and_*`
**Admin:** `create_collection`, `drop_collection`, `rename_collection`, `create_index`, `drop_index`, `drop_database`, `coll_mod`
**Diagnostics:** `server_status`, `current_ops`, `repl_set_status`, `mongodb_logs`, `list_commands`
**Composite:** `explore_collection`, `database_overview`, `analyze_query`, `compare_collections`, `index_health`
**Assistant:** `list_knowledge_sources`, `search_knowledge` (disable with `assistant.enabled: false`)
**Atlas:** `atlas_list_*`, `atlas_inspect_cluster`, `atlas_performance_advisor` (set `atlas.enabled: true`)
---
## Safety
- Global or per-connection `read_only`
- `index_check` — reject collection scans
- `disable_server_side_js` — block `$where`, `$function`
- `confirmation_required_tools` — destructive ops need `confirmed: true`
- `max_documents_per_query`, `max_payload_bytes`
- `connection_filter` — expose only specific connections per project
---
## Install from source
```bash
cd mongodb-mcp
npm install
npm run build
```
Clone from GitHub:
```bash
git clone https://github.com/raviraj-ntp/mongodb-mcp.git
```
```json
{
"command": "node",
"args": ["/path/to/mongodb-mcp/dist/index.js"]
}
```
## License
Copyright © 2026 Ravi Raj. Licensed under the [MIT License](LICENSE).
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues