mcpmongo
1
The MCP MongoDB Integration project combines MongoDB with the Model Context Protocol (MCP) to enable AI-driven database interactions. It features a server that exports MongoDB operations as MCP tools and a client-side chatbot using Gemini AI to perform database queries.
MCP MongoDB Integration
This project demonstrates the integration of MongoDB with the Model Context Protocol (MCP) to provide AI assistants with database interaction capabilities. It consists of two main components:
- MCP MongoDB Server - A server that exposes MongoDB operations as MCP tools
- Client-side Gemini Integration - A terminal-based chatbot that uses Google's Gemini AI with access to MongoDB tools
Project Structure
.
├── client-side/ # Client application using Gemini AI
│ ├── index.js # Main client application
│ └── package.json # Client dependencies
└── mcp-mongo-project/ # MCP server with MongoDB tools
├── src/
│ ├── index.js # Server setup and tool definitions
│ └── services/
│ └── mcp-service.js # MongoDB service implementation
└── package.json # Server dependencies
Features
- MongoDB Integration: Full CRUD operations exposed as MCP tools
- MCP Server: Implements the Model Context Protocol for AI tool use
- Gemini AI Integration: Connects to Google's Gemini models
- Terminal Chatbot: Interactive chat interface for database operations
Prerequisites
- Node.js (v14 or higher)
- MongoDB instance (local or remote)
- Google Gemini API key
Setup Instructions
1. Server Setup
# Navigate to the server directory
cd mcp-mongo-project
# Install dependencies
npm install
# Create a .env file with your MongoDB connection details
echo "MONGODB_URI=mongodb://localhost:27017" > .env
echo "MONGODB_NAME=your_database_name" >> .env
# Start the server
npm start
2. Client Setup
# Navigate to the client directory
cd client-side
# Install dependencies
npm install
# Create a .env file with your Gemini API key
echo "GEMINI_API_KEY=your_gemini_api_key" > .env
# Start the client
node index.js
Available MongoDB Tools
The MCP server exposes the following MongoDB operations as tools:
- findDocuments: Query documents in a collection
- findOneDocument: Find a single document
- insertOneDocument: Insert a document
- insertManyDocuments: Insert multiple documents
- updateOneDocument: Update a single document
- updateManyDocuments: Update multiple documents
- deleteOneDocument: Delete a document
- deleteManyDocuments: Delete multiple documents
- aggregateDocuments: Run aggregation pipelines
- countDocuments: Count documents in a collection
- listCollections: List all collections
- createCollection: Create a new collection
Usage Examples
Once both the server and client are running, you can interact with MongoDB through the chat interface:
You: Show me all collections in the database
AI: Found 3 collections in the database
[
"users",
"products",
"orders"
]
You: Find all users with age greater than 30
AI: Found 2 documents in collection 'users'
[
{
"_id": "6450a7c63020e15b2a1cf5d2",
"name": "John Doe",
"age": 35
},
{
"_id": "6450a7d93020e15b2a1cf5d3",
"name": "Jane Smith",
"age": 42
}
]
How it Works
- The MCP server creates a connection to MongoDB and exposes operations as tools
- The client connects to the MCP server via Server-Sent Events (SSE)
- User queries are sent to Gemini AI, which decides when to use MongoDB tools
- Tool calls are forwarded to the MCP server, executed, and results returned
- Gemini AI incorporates the database results in its response to the user
Environment Variables
Server (.env file in mcp-mongo-project/)
MONGODB_URI
: Connection string for MongoDBMONGODB_NAME
: Name of the database to use
Client (.env file in client-side/)
GEMINI_API_KEY
: API key for Google's Gemini AI
Images
License
ISC
Contributing
Feel free to contribute to this project by opening issues or submitting pull requests.