MongoDB MCP Server
An MCP server providing tools and prompts for interacting with a MongoDB database.
MongoDB MCP Server
A robust Model Context Protocol (MCP) server that provides tools and prompts for interacting with a MongoDB database. Built with Node.js and MongoDB, featuring graceful shutdown handling and comprehensive error management.
Features
- MongoDB integration using Mongoose
- User management tools:
create-user: Create a new userget-user: Retrieve user by emaillist-users: List all users with pagination
- Interactive prompts for guided operations
- Graceful shutdown handling
- Comprehensive error management
- Clean single-file implementation
Prerequisites
- Node.js (Latest LTS version)
- MongoDB (v8.0 or higher)
- Claude for Desktop (latest version)
- Visual Studio Code with Cursor extension (for development)
Development Setup
-
Install MongoDB:
# Using Homebrew on macOS brew tap mongodb/brew brew install mongodb-community # Start MongoDB service brew services start mongodb-community -
Install Cursor in VS Code:
- Open VS Code
- Go to Extensions (Ctrl+Shift+X)
- Search for "Cursor"
- Click Install
-
Clone and Setup:
git clone <repository-url> cd learn-mcp-mongo npm install -
Configure Environment:
cp .env.example .env # Edit .env with your MongoDB URI if different from default
Quick Start
-
Clone or download this repository
-
Install dependencies:
npm install -
Configure MongoDB:
- Make sure MongoDB is running locally (default: mongodb://localhost:27017)
- Or update the
.envfile with your MongoDB connection string:MONGODB_URI=your_mongodb_connection_string
-
Configure Claude for Desktop:
- Open or create
~/Library/Application Support/Claude/claude_desktop_config.json - Add the following configuration:
{ "mcpServers": { "mcp-mongo": { "command": "node", "args": ["/absolute/path/to/server.js"] } } }
- Open or create
-
Start Claude for Desktop
- The MCP server will start automatically
- Look for the "Search and tools" icon to access the tools
Using Cursor with MCP Server
-
Install Cursor (AI Code Editor):
- Download from https://www.cursor.so/
- Install and open Cursor on your machine
-
Add MCP Server to Cursor:
- Open Cursor
- Go to
Settings>Integrations>MCP Servers - Click
Add MCP Server - Fill in:
- Name: mcp-mongo
- Command: node
- Arguments: /absolute/path/to/server.js
- Working Directory: /absolute/path/to/learn-mcp-mongo
- Save and enable the integration
-
Use Cursor's AI Features:
- Open your project folder in Cursor
- Use
/helpin the command palette for available AI commands - Use
/edit,/fix,/doc, and other AI features to interact with your code and MCP tools - You can now test, debug, and develop your MCP server directly in Cursor with AI assistance
Usage Examples
Creating a User
Create a new user with:
- name: "John Doe"
- email: "john@example.com"
- age: 30
Finding a User
Get user information for email: john@example.com
Project Structure
learn-mcp-mongo/
├── server.js # Main server file with all functionality
├── .env # Environment variables
└── package.json # Project dependencies and scripts
Available Tools
create-user
Creates a new user in the database.
- Parameters:
- name: User's full name (string, required)
- email: User's email address (string, required, unique)
- age: User's age (number, required)
- Response:
{ "_id": "user_id", "name": "John Doe", "email": "john@example.com", "age": 30, "createdAt": "2025-06-26T00:00:00.000Z" }
get-user
Retrieves a user by their email address.
- Parameters:
- email: User's email address (string, required)
- Response:
{ "_id": "user_id", "name": "John Doe", "email": "john@example.com", "age": 30, "createdAt": "2025-06-26T00:00:00.000Z" }
list-users
Lists all users in the database with pagination.
- Parameters:
- limit: Maximum number of users to return (number, optional, default: 10)
- Response:
[ { "_id": "user_id", "name": "John Doe", "email": "john@example.com", "age": 30, "createdAt": "2025-06-26T00:00:00.000Z" }, // ... more users ]
Available Prompts
create-new-user
An interactive prompt that guides you through the process of creating a new user by asking for:
- Full Name
- Email Address
- Age
Development Guide
Running the Server
-
Start in Development Mode:
# Run with inspector for debugging npx @modelcontextprotocol/inspector node mcp-server.js # Or run directly npm start -
Using Cursor in VS Code:
- Open the project in VS Code
- Use Cursor's AI features:
- Type
/helpfor Cursor commands - Use
/editfor code suggestions - Use
/docto generate documentation - Use
/fixto get error fixes
- Type
Debugging
-
Check Server Logs:
# Watch server logs in real-time tail -f ~/Library/Logs/Claude/mcp*.log -
MongoDB Operations:
# Check MongoDB status mongosh use mcp-mongo db.users.find() # List all users -
Test Tools Manually:
# Using curl to test tools (when running in HTTP mode) curl -X POST http://localhost:3000/tools/list-users
Server Features
-
Graceful Shutdown:
- Handles SIGINT, SIGTERM, SIGHUP signals
- Closes MongoDB connections properly
- Logs shutdown process
-
Error Handling:
- MongoDB connection errors
- Tool execution errors
- Uncaught exceptions
- Unhandled rejections
-
Performance Options:
- MongoDB connection timeout: 5s
- Heartbeat frequency: 2s
- User listing pagination
Troubleshooting
- Make sure MongoDB is running and accessible
- Check Claude for Desktop logs at
~/Library/Logs/Claude/mcp*.log - Verify the server.js path in claude_desktop_config.json is correct
- Restart Claude for Desktop after configuration changes
Related Servers
Firebolt
Connect your LLM to the Firebolt Data Warehouse for data querying and analysis.
MySQL MCP Server
A read-only MySQL database server for LLMs to inspect schemas and execute queries.
Timeplus
Interact with the Timeplus real-time data platform for querying and managing data streams.
Supabase
Access and manage your Supabase projects through the Model Context Protocol (MCP).
Neo4j
A server for accessing and interacting with a Neo4j graph database, configured via environment variables.
SchemaFlow
Real-time PostgreSQL & Supabase database schema access for AI-IDEs via Model Context Protocol. Provides live database context through secure SSE connections with three powerful tools: get_schema, analyze_database, and check_schema_alignment.
Open Census MCP Server
Access and query U.S. Census demographic data using natural language.
MongoDB
Interact with MongoDB databases using natural language to query collections, inspect schemas, and manage data.
Octodet Elasticsearch MCP Server
An MCP server for interacting with Elasticsearch clusters, enabling LLM-powered applications to search, update, and manage data.
F1Data
Access Formula 1 data, including race results, driver standings, and circuit information.