MongoDB MCP Server for Vercel
Provides read-only access to MongoDB databases, enabling querying documents, running aggregation pipelines, counting documents, listing collections, explaining query execution plans, and inferring collection schemas.
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 for VercelList all collections in the database"
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 for Vercel
A read-only MongoDB MCP (Model Context Protocol) server designed for serverless deployment on Vercel. Provides secure, limited access to MongoDB databases for AI assistants and MCP-compatible clients.
Features
🔒 Secure by default - API key authentication, read-only operations, query limits
⚡ Serverless optimized - Designed for Vercel's edge/serverless environment
🛡️ Safety guardrails - Dangerous operators blocked, query timeouts, result limits
📊 6 MongoDB tools - find, aggregate, count, list-collections, explain, collection-schema
Related MCP server: MongoDB MCP Server by CData
Quick Start
1. Install dependencies
npm install2. Configure environment variables
Create a .env.local file:
# MongoDB Connection (use a read-only user!)
MONGODB_URI=mongodb+srv://readonly_user:password@cluster.mongodb.net
MONGODB_DB=your_database_name
# API Key for authentication (generate with: openssl rand -base64 32)
API_KEY=your_generated_api_key3. Run locally
npm run devThe MCP server will be available at http://localhost:3000/mcp
Tools
Tool | Description |
| Query documents with filtering, projection, sorting, and limiting |
| Run aggregation pipelines for data transformation and analysis |
| Count documents matching a filter |
| List all user collections in the database |
| Get query execution plans for performance analysis |
| Infer schema by sampling documents |
Security
Built-in protections
Fixed database - Only the database specified in
MONGODB_DBis accessibleAPI key required - All requests must include
X-API-KeyheaderQuery limits - Max 100 documents per query, 30s timeout
Blocked operators -
$where,$function,$accumulatorare rejectedBlocked stages -
$out,$merge,$lookupare rejected in aggregationsEJSON serialization - Proper handling of BSON types (ObjectId, Date, etc.)
Recommendations
Use a read-only MongoDB user - Create a user with only
readroleRotate API keys - Generate new keys periodically
Monitor usage - Enable Vercel Analytics to track requests
Usage
With cURL
# Initialize connection
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "X-API-Key: YOUR_API_KEY" \
-d '{"jsonrpc":"2.0","method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}},"id":1}'
# List available tools
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "X-API-Key: YOUR_API_KEY" \
-d '{"jsonrpc":"2.0","method":"tools/list","params":{},"id":2}'
# Call a tool (list collections)
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "X-API-Key: YOUR_API_KEY" \
-d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"list-collections","arguments":{}},"id":3}'
# Find documents
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "X-API-Key: YOUR_API_KEY" \
-d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"find","arguments":{"collection":"users","filter":{"status":"active"},"limit":10}},"id":4}'With MCP Inspector
Open MCP Inspector
Set Transport Type:
Streamable HTTPSet URL:
http://localhost:3000/mcpIn Authentication > Custom Headers, add:
X-API-Key: your API keyAccept:application/json, text/event-stream
Enable both header toggles and click Connect
With Cursor
Add to your .cursor/mcp.json:
{
"mcpServers": {
"mongodb": {
"url": "http://localhost:3000/mcp",
"headers": {
"X-API-Key": "YOUR_API_KEY"
}
}
}
}For production deployment:
{
"mcpServers": {
"mongodb": {
"url": "https://your-app.vercel.app/mcp",
"headers": {
"X-API-Key": "YOUR_API_KEY"
}
}
}
}Deploy to Vercel
1. Push to GitHub
git init
git add .
git commit -m "Initial commit"
git remote add origin https://github.com/your-username/your-repo.git
git push -u origin main2. Import to Vercel
Go to vercel.com/new
Import your GitHub repository
Add environment variables:
MONGODB_URIMONGODB_DBAPI_KEY
Deploy
3. Configure MongoDB Network Access
Make sure your MongoDB Atlas cluster allows connections from Vercel:
Add
0.0.0.0/0to IP Access List (for serverless), or
API Reference
Tool: find
Query documents from a collection.
{
"collection": "users",
"filter": { "status": "active" },
"projection": { "name": 1, "email": 1, "_id": 0 },
"sort": { "createdAt": -1 },
"limit": 10
}Tool: aggregate
Run an aggregation pipeline.
{
"collection": "orders",
"pipeline": [
{ "$match": { "status": "completed" } },
{ "$group": { "_id": "$customerId", "total": { "$sum": "$amount" } } },
{ "$sort": { "total": -1 } }
]
}Tool: count
Count documents matching a filter.
{
"collection": "products",
"filter": { "inStock": true }
}Tool: list-collections
List all collections in the database. No arguments required.
{}Tool: explain
Get the execution plan for a query.
{
"collection": "users",
"operation": "find",
"operationArgs": {
"filter": { "email": "test@example.com" }
}
}Tool: collection-schema
Infer schema by sampling documents.
{
"collection": "users",
"sampleSize": 100
}Environment Variables
Variable | Required | Description |
| Yes | MongoDB connection string |
| Yes | Database name to use |
| Yes | API key for authentication |
Based On
This project combines ideas and code from:
vercel-labs/mcp-for-next.js - Vercel's official template for deploying MCP servers on Next.js. Provides the serverless-compatible architecture and
mcp-handlerintegration.mongodb-js/mongodb-mcp-server - MongoDB's official MCP server. The tool implementations (find, aggregate, count, explain, collection-schema) are adapted from this project with security hardening for public deployment.
This server cannot be deployed
Maintenance
Related MCP Connectors
Read-only MCP for AI usage profiles, leaderboards, stats, and docs; no writes or private data.
Read-only MCP server: let AI agents read your ORANO saved-video library, tasks, and memory.
Hosted MCP server for AI-driven data ops. Create apps, manage schemas, and CRUD structured data.
Query your org's data in natural language — read-only MCP access to SQL, NoSQL, files & warehouses.
Related MCP Servers
- AlicenseAqualityDmaintenanceA Model Context Protocol server that provides read-only access to MongoDB databases, enabling AI assistants to directly query and analyze MongoDB data while maintaining data safety.1424 npm9MIT
- AlicenseNot gradedqualityDmaintenanceThis read-only MCP Server allows you to connect to MongoDB data from Claude Desktop through CData JDBC Drivers. For full CRUD support, check out the first managed MCP platform: CData Connect AI (https://www.cdata.com/ai/).MIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server for MongoDB operations, enabling AI assistants to interact with MongoDB databases through a standardized interface.28 npm4MIT
- AlicenseAqualityDmaintenanceA read-only MCP server for querying MongoDB databases, enabling listing databases, collections, indexes, and running aggregation pipelines.528 npmMIT