GitHub - nabid-pf/mongo-mongoose-mcp (original) (raw)
MongoDB Mongoose MCP
An MCP (Model Context Protocol) server that enables Claude to interact with MongoDB databases, with optional Mongoose schema support.
Features
- Query, aggregation, insert, update, and manage MongoDB collections directly from Claude
- Optional Mongoose schema support for data validation and hooks
- Soft delete implementation for document safety
- Clean separation between schema-based and schemaless operations
Prerequisites
- Node.js (v18 or higher)
- MongoDB
Integrating with Claude Desktop
To add the MCP server to Claude Desktop:
- Go to Settings > Developer > Edit config
- Add the following to your claude_desktop_config.json file:
{
"mcpServers": {
"mongodb-mongoose": {
"command": "npx",
"args": [
"-y",
"mongo-mongoose-mcp",
],
"env": {
"MONGODB_URI": "",
"SCHEMA_PATH" : "
Available MCP Commands
When integrated with Claude, the following commands become available:
Query Tools
find
: Query documents with filtering and projectionlistCollections
: List available collectionsinsertOne
: Insert a single documentupdateOne
: Update a single documentdeleteOne
: Soft delete a single documentcount
: Count documents with filteringaggregate
: Query documents with aggregation pipeline
Index Tools
createIndex
: Create a new indexdropIndex
: Remove an indexindexes
: List indexes for a collection
Example Usage
Once integrated with Claude Desktop, you can use natural language to interact with your MongoDB database:
- "Show me all users in my database who are older than 30"
- "Insert a new product with name 'Widget X', price $29.99, and category 'Electronics'"
- "Count all completed orders from the past week"
- "Create an index on the email field of the users collection"
For Developers
Building from Source
Clone the repository
git clone https://github.com/nabid-pf/mongo-mongoose-mcp.git cd mongo-mongoose-mcp
Install dependencies
npm install
Build the project
npm run build
Test with the MCP inspector
npx @modelcontextprotocol/inspector node dist/index.js
Creating Mongoose Schemas
Place your Mongoose schema object files in the a directory and specify that path in SCHEMA_PATH var Make sure file names reflect the collection name
// models/users.js (for users collection) export default { name: { type: String, required: true }, email: { type: String, required: true, unique: true }, age: Number, createdAt: { type: Date, default: Date.now }, isDeleted: { type: Boolean, default: false }, deletedAt: Date };
How It Works
This project uses:
- MongoDB native driver for direct database operations
- Mongoose for schema-based operations when schemas are available
- The Model Context Protocol (MCP) to communicate with Claude
License
MIT