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
.env
file 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
/help
in 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
/help
for Cursor commands - Use
/edit
for code suggestions - Use
/doc
to generate documentation - Use
/fix
to 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
MySQL Server Pro
A MySQL server with CRUD operations, database anomaly analysis, and support for SSE and STDIO.
Databricks
Fetch enterprise data and automate developer actions on the Databricks platform.
AlphaFold MCP Server
Access the AlphaFold Protein Structure Database for protein structure prediction and analysis.
Snowflake
Snowflake database integration with read/write capabilities and insight tracking
BigQuery
BigQuery database integration with schema inspection and query capabilities
MCP Memory Toolkit
Provides persistent memory for Claude using ChromaDB for semantic search and storage.
CoinGecko
Official CoinGecko API MCP Server for Crypto Price & Market Data, across 200+ blokchain networks and 8M+ tokens.
Redis Cloud
Interact with the Redis Cloud API to manage your Redis databases.
Trino MCP Server
A Go implementation of a Model Context Protocol (MCP) server for Trino, enabling LLM models to query distributed SQL databases through standardized tools.
SolanaBot
Interact with the Solana blockchain to check balances, send SOL, and airdrop SOL.