MongoDB MCP Server
by jonfreeland
# MongoDB MCP Server
A Model Context Protocol server that provides read-only access to MongoDB databases through standardized MCP tools and resources.
## Overview
This MongoDB MCP server enables AI assistants to directly query and analyze MongoDB databases without write access, maintaining data safety while providing powerful data exploration capabilities.
## Features
### MongoDB Operations
- **Database Exploration**: List databases and collections
- **Schema Discovery**: Infer collection schemas from sample documents
- **Querying**: Execute MongoDB queries with filtering, projection, sorting, and limiting
- **Aggregation**: Run read-only aggregation pipelines with safety validation
- **Text Search**: Perform full-text search on collections with text indexes
- **Geospatial Queries**: Find locations near points, within polygons, or intersecting geometries
- **Document Operations**: Count documents, sample random documents, find documents by IDs
- **Data Analysis**: Get collection statistics, index information, and query execution plans
- **Performance Insights**: Examine query execution plans to optimize performance
- **Data Exploration**: Get distinct values, field distributions, and data samples
- **Format Conversion**: Export query results as JSON or CSV formats
### Enhanced Capabilities
- **Schema Inference**: Automatically detect data types and structure from documents
- **Visualization Hints**: Intelligent suggestions for data visualization based on result content
- **Safety Validation**: Prevents write operations in aggregation pipelines
- **Example-Rich Documentation**: Each tool includes detailed examples in its description
## Requirements
### Environment Variables
- `MONGODB_URI` (required): MongoDB connection string with authentication if needed
- `MONGODB_DEFAULT_DATABASE` (optional): Default database name when not specified in queries
### Prerequisites
- Network access to MongoDB server
- Authentication credentials if required by MongoDB instance
- Appropriate read permissions on target databases
## Installation
### Building from Source
Install dependencies:
```bash
npm install
```
Build the server:
```bash
npm run build
```
For development with auto-rebuild:
```bash
npm run watch
```
### Integration with Claude Desktop
To use with Claude Desktop, add the server configuration:
On MacOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
On Windows: `%APPDATA%/Claude/claude_desktop_config.json`
```json
{
"mcpServers": {
"mongodb": {
"command": "/path/to/mongodb-server/build/index.js",
"env": {
"MONGODB_URI": "mongodb://username:password@hostname:port/database",
"MONGODB_DEFAULT_DATABASE": "your_default_db"
}
}
}
}
```
### Integration with Claude Web
For Claude Web via the MCP Chrome extension, add configuration to Cline MCP settings:
```json
{
"mcpServers": {
"mongodb": {
"command": "node",
"args": ["/path/to/mongodb-server/build/index.js"],
"env": {
"MONGODB_URI": "mongodb://username:password@hostname:port/database",
"MONGODB_DEFAULT_DATABASE": "your_default_db"
}
}
}
}
```
## Security Considerations
- This server provides read-only access by design
- Connection strings may contain sensitive authentication information
- Store connection strings securely in environment variables
- Use a MongoDB user with read-only permissions
## Debugging
Since MCP servers communicate over stdio, debugging can be challenging. Use the [MCP Inspector](https://github.com/modelcontextprotocol/inspector), which is available as a package script:
```bash
npm run inspector
```
The Inspector will provide a URL to access debugging tools in your browser.