MongoDB MCP Server
The MongoDB MCP Server provides read-only access to MongoDB databases via standardized MCP tools, enabling safe data exploration and analysis capabilities including:
Database Operations: List databases and collections
Schema Discovery: Infer collection schemas from document samples
Querying: Execute read-only queries with filtering, projection, sorting, and limiting
Aggregation: Run safe aggregation pipelines with stages like $match, $group, $sort, $project, $lookup, and $unwind
Advanced Search: Perform full-text and geospatial queries
Document Operations: Count documents, find by IDs, and retrieve random samples
Analysis Tools: Get collection statistics, index information, and query execution plans
Data Exploration: Extract distinct values and field distributions
Export Options: Format results as JSON or CSV
Performance Optimization: Analyze query execution plans
All operations include safety validation to prevent write operations.
Provides read-only access to MongoDB databases, allowing for querying, aggregation, schema discovery, geospatial operations, text search, and data analysis without write permissions.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MongoDB MCP Server show me the top 5 customers by order count"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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.
Related MCP server: MongoDB MCP Server for LLMs
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 neededMONGODB_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:
npm installBuild the server:
npm run buildFor development with auto-rebuild:
npm run watchIntegration 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
{
"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:
{
"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"
}
}
}
}Integration with Claude Code
To use with Claude Code, use the following commands:
cd /path/to/my/project
claude mcp add mongo-server /path/to/mongodb-mcp/build/index.js -e "MONGODB_URI=mongodb://user@password:27017/dbname?authSource=authDbName" -e MONGO_DEFAULT_DATABASE=dbname Make sure to replace the placeholders with your actual MongoDB connection string and default database name.
If configured correctly, you should see the following when you run claude:
╭───────────────────────────────────────────────────────╮
│ ✻ Welcome to Claude Code research preview! │
│ │
│ /help for help │
│ │
│ cwd: <path-to-project-directory> │
│ │
│ ─────────────────────────────────────────────────── │
│ │
│ MCP Servers: │
│ │
│ • mongo-server connected │
╰───────────────────────────────────────────────────────╯
If you run into issues, see the Claude Code documentation.
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, which is available as a package script:
npm run inspectorThe Inspector will provide a URL to access debugging tools in your browser.
Available Tools
14 toolsaggregateA
Execute a read-only aggregation pipeline on a collection.
Supported Stages:
$match: Filter documents
$group: Group documents by a key
$sort: Sort documents
$project: Shape the output
$addFields - Include additional or calculated fields
$lookup: Perform left outer joins
$unwind: Deconstruct array fields
Unsafe/Blocked Stages:
$out: Write results to collection
$merge: Merge results into collection
$set: Set field values
$unset: Remove fields
$replaceRoot: Replace document structure
$replaceWith: Replace document
Example - User Statistics by Role: use_mcp_tool with server_name: "mongodb", tool_name: "aggregate", arguments: { "collection": "users", "pipeline": [ { "$match": { "active": true } }, { "$group": { "_id": "$role", "count": { "$sum": 1 }, "avgAge": { "$avg": "$age" } }}, { "$sort": { "count": -1 } } ], "limit": 100 }
Example - Posts with Author Details: use_mcp_tool with server_name: "mongodb", tool_name: "aggregate", arguments: { "collection": "posts", "pipeline": [ { "$match": { "published": true } }, { "$lookup": { "from": "users", "localField": "authorId", "foreignField": "_id", "as": "author" }}, { "$unwind": "$author" }, { "$project": { "title": 1, "authorName": "$author.name", "publishDate": 1 }} ] }
Inputs: collection (required), pipeline (required), database, limit.
count_documentsA
Count documents in a collection that match a filter.
Benefits:
More efficient than retrieving full documents
Good for understanding data volume
Can help planning query strategies
Optimize pagination implementation
Example: use_mcp_tool with server_name: "mongodb", tool_name: "count_documents", arguments: { "collection": "users", "filter": { "active": true, "age": { "$gte": 21 } } }
Inputs: collection (required), database, filter.
explain_queryA
Get the execution plan for a query.
Helps understand:
How MongoDB will execute the query
Which indexes will be used
Number of documents examined
Execution stages and timing
Use this to optimize slow queries.
Inputs: collection (required), filter (required), database, projection, +1 more.
find_by_idsA
Find multiple documents by their IDs in a single request.
Advantages:
More efficient than multiple single document lookups
Preserves ID order in results when possible
Can filter specific fields with projection
Handles both string and ObjectId identifiers
Example: use_mcp_tool with server_name: "mongodb", tool_name: "find_by_ids", arguments: { "collection": "products", "ids": ["5f8d0f3c", "5f8d0f3d", "5f8d0f3e"], "idField": "_id", "projection": { "name": 1, "price": 1 } }
Inputs: collection (required), ids (required), database, idField, +1 more.
geo_queryA
Execute geospatial queries on a MongoDB collection.
Supports:
Finding points near a location
Finding documents within a polygon, circle, or box
Calculating distances between points
GeoJSON and legacy coordinate pair formats
Requirements:
Collection must have a geospatial index (2dsphere recommended)
Coordinates should follow MongoDB conventions (longitude first, then latitude)
Examples:
Find locations near a point (2 miles radius): use_mcp_tool with server_name: "mongodb", tool_name: "geo_query", arguments: { "collection": "restaurants", "operation": "near", "point": [-73.9667, 40.78], "maxDistance": 3218.69, // 2 miles in meters "distanceField": "distance" }
Find locations within a polygon: use_mcp_tool with server_name: "mongodb", tool_name: "geo_query", arguments: { "collection": "properties", "operation": "geoWithin", "geometry": { "type": "Polygon", "coordinates": [ [[-73.958, 40.8], [-73.94, 40.79], [-73.95, 40.76], [-73.97, 40.76], [-73.958, 40.8]] ] } }
Inputs: collection (required), operation (required), database, locationField, +8 more.
get_collection_statsC
Get detailed statistics about a collection.
Returns information about:
Document count and size
Storage metrics
Index sizes and usage
Average document size
Padding factor
Inputs: collection (required), database.
get_distinct_valuesA
Get distinct values for a field in a collection.
Useful for:
Understanding data distribution
Finding unique categories
Data quality checks
Identifying outliers
Example: use_mcp_tool with server_name: "mongodb", tool_name: "get_distinct_values", arguments: { "collection": "users", "field": "role", "filter": { "active": true } }
Inputs: collection (required), field (required), database, filter.
get_indexesB
Get information about indexes on a collection.
Returns details about:
Index names and fields
Index types (single field, compound, text, etc.)
Index sizes
Index options
Usage statistics
Inputs: collection (required), database.
get_schemaA
Infer schema from a collection by analyzing sample documents.
Best Practice: Use this before querying to understand collection structure.
Example: use_mcp_tool with server_name: "mongodb", tool_name: "get_schema", arguments: { "collection": "users", "sampleSize": 100 }
Inputs: collection (required), database, sampleSize.
list_collectionsA
List all collections in a database.
Start here to understand what collections are available before querying.
Inputs: database.
list_databasesB
List all databases in the MongoDB server.
Inputs: no named parameters.
queryA
Execute a read-only query on a collection using MongoDB query syntax.
Supports both JSON and CSV output formats:
Use outputFormat="json" for standard JSON (default)
Use outputFormat="csv" for comma-separated values export
Best Practices:
Use projections to fetch only needed fields
Add limits for large collections
Use sort for consistent ordering
Example - Standard Query: use_mcp_tool with server_name: "mongodb", tool_name: "query", arguments: { "collection": "users", "filter": { "age": { "$gte": 21 } }, "projection": { "name": 1, "email": 1 }, "sort": { "name": 1 }, "limit": 100 }
Example - CSV Export: use_mcp_tool with server_name: "mongodb", tool_name: "query", arguments: { "collection": "users", "filter": { "active": true }, "outputFormat": "csv", "formatOptions": { "includeHeaders": true, "delimiter": "," } }
Inputs: collection (required), filter (required), database, projection, +4 more.
sample_dataA
Get a random sample of documents from a collection.
Supports both JSON and CSV output formats:
Use outputFormat="json" for standard JSON (default)
Use outputFormat="csv" for comma-separated values export
Useful for:
Exploratory data analysis
Testing with representative data
Understanding data distribution
Performance testing with realistic data subsets
Example - JSON Sample: use_mcp_tool with server_name: "mongodb", tool_name: "sample_data", arguments: { "collection": "users", "size": 50 }
Example - CSV Export: use_mcp_tool with server_name: "mongodb", tool_name: "sample_data", arguments: { "collection": "users", "size": 100, "outputFormat": "csv", "formatOptions": { "includeHeaders": true, "delimiter": "," } }
Inputs: collection (required), database, size, outputFormat, +1 more.
text_searchB
Perform a full-text search on a collection.
Requirements:
Collection must have a text index
Only one text index per collection is allowed
Features:
Supports phrases and keywords
Word stemming
Stop words removal
Text score ranking
Example: use_mcp_tool with server_name: "mongodb", tool_name: "text_search", arguments: { "collection": "articles", "searchText": "mongodb database", "filter": { "published": true }, "limit": 10, "includeScore": true }
Inputs: collection (required), searchText (required), database, filter, +2 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 14 tools
Most tools have distinct purposes, such as aggregate for complex pipelines, query for basic queries, and geo_query for spatial operations. However, query and sample_data both retrieve documents with overlapping functionality, and get_schema might be confused with get_collection_stats for understanding collection structure, leading to some potential confusion.
The naming follows a consistent verb_noun pattern throughout, like count_documents, explain_query, and get_indexes. There are minor deviations with list_collections and list_databases using 'list' instead of 'get', but overall the pattern is clear and predictable.
With 14 tools, this is well-scoped for a MongoDB server, covering a comprehensive range of read-only operations from basic queries to advanced analytics. Each tool serves a specific purpose, such as aggregation, indexing, geospatial queries, and schema analysis, without feeling bloated or incomplete.
The tool set provides complete coverage for read-only MongoDB operations, including querying, aggregation, indexing, geospatial queries, text search, and metadata inspection. There are no obvious gaps; it supports everything from data retrieval to performance optimization and schema exploration for the domain.
Maintenance
Related MCP Connectors
The HubSpot MCP Server acts as a bridge that enables AI assistants and Large Language Models to securely interact with HubSpot CRM data through natural conversation, without requiring users to understand complex API structures. It provides read-only access to standard CRM objects (contacts, companies, deals, tickets, products, invoices, and more) and their associations, secured via OAuth 2.0, allowing AI agents to perform tasks like summarizing deals, fetching company updates, and looking up record changes.
Query your org's data in natural language — read-only MCP access to SQL, NoSQL, files & warehouses.
The BigQuery remote MCP server is a fully managed service that uses the Model Context Protocol to connect AI applications and LLMs to BigQuery data sources. It provides secure, standardized tools for AI agents to list datasets and tables, retrieve schemas, generate and execute SQL queries through natural language, and analyze data—enabling direct access to enterprise analytics data without requiring manual SQL coding.
Draxlr's remote MCP server connects AI assistants to your SQL databases and dashboards. Explore schemas, run read-only queries, manage saved queries and dashboards, and export results, all with row-level security so each user sees only their own data.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables LLMs to interact directly with MongoDB databases, allowing users to query collections, inspect schemas, and manage data through natural language.23 npm1MIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables LLMs to interact directly with MongoDB databases, allowing users to query collections, inspect schemas, and manage data through natural language.23 npmMIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server for MongoDB operations, enabling AI assistants to interact with MongoDB databases through a standardized interface.21 npm6MIT
- FlicenseNot gradedqualityDmaintenanceA read-only MongoDB MCP server designed for serverless deployment on Vercel, providing secure, limited access to MongoDB databases for AI assistants.1-