Skip to main content

A mongo mcp that can be used to automate the database query with llm

Project description

MongoDB MCP

A MongoDB Model Context Protocol (MCP) Server that allows AI agents and MCP clients to interact with MongoDB databases through standardized tools.

Features

  • List all collections
  • Discover collection schemas
  • Fetch collection data
  • Query documents
  • Insert documents
  • Update documents
  • Delete documents
  • MongoDB Atlas support
  • Local MongoDB support
  • MCP stdio transport support

Installation

Using pip

pip install mongo-mcp

Using uv

uv add mongo-mcp

Prerequisites

  • Python 3.10+
  • MongoDB Local Instance or MongoDB Atlas Cluster

Examples:

mongodb://localhost:27017

or

mongodb+srv://username:password@cluster.mongodb.net

Configuration

MongoDB MCP uses environment variables to connect to your database.

Create a .env file:

MONGODB_URI=mongodb://localhost:27017
DATABASE_NAME=shipbihar

Environment Variables

Variable Description Required
MONGODB_URI MongoDB connection string Yes
DATABASE_NAME Database name Yes

Running the MCP Server

mongo_mcp

or

python -m mongo_mcp.main

The MCP server will start using stdio transport.


MCP Client Configuration

Example MCP configuration:

{
  "mcpServers": {
    "mongodb": {
      "command": "mongo_mcp",
      "env": {
        "MONGODB_URI": "mongodb://localhost:27017",
        "DATABASE_NAME": "shipbihar"
      }
    }
  }
}

Available Tools

all_collections

Returns all collections in the configured database.

Example Output:

[
  "users",
  "orders",
  "shipments"
]

fetch_collection_schema

Returns an inferred schema from a sample document.

Example:

{
  "_id": "ObjectId",
  "name": "str",
  "email": "str",
  "createdAt": "datetime"
}

fetch_collection_data

Returns documents from a collection.

Parameters:

{
  "collection_name": "users",
  "limit": 100
}

find_document

Find a document using a MongoDB query.

Example:

{
  "collection_name": "users",
  "query": {
    "email": "john@example.com"
  }
}

insert_document

Insert a document.

Example:

{
  "collection_name": "users",
  "document": {
    "name": "John",
    "email": "john@example.com"
  }
}

update_document

Update matching documents.

Example:

{
  "collection_name": "users",
  "filter_query": {
    "email": "john@example.com"
  },
  "update_data": {
    "role": "admin"
  }
}

delete_document

Delete matching documents.

Example:

{
  "collection_name": "users",
  "filter_query": {
    "email": "john@example.com"
  }
}

Common Errors

Error: DATABASE_NAME is None

Error:

TypeError: name must be an instance of str, not <class 'NoneType'>

Reason:

MongoDB MCP cannot find the DATABASE_NAME environment variable.

Solution:

Create a .env file:

MONGODB_URI=mongodb://localhost:27017
DATABASE_NAME=your_database_name

or export variables manually.

Windows PowerShell:

$env:MONGODB_URI="mongodb://localhost:27017"
$env:DATABASE_NAME="shipbihar"

Linux/macOS:

export MONGODB_URI="mongodb://localhost:27017"
export DATABASE_NAME="shipbihar"

Error: Connection Refused

Error:

ServerSelectionTimeoutError

Reason:

MongoDB server is not running.

Solution:

Start MongoDB:

mongod

or verify your Atlas connection string.


Error: Authentication Failed

Error:

Authentication failed

Reason:

Incorrect username or password.

Solution:

Verify your MongoDB credentials.


Security

Recommended:

  • Use dedicated database users
  • Restrict permissions when possible
  • Avoid connecting with admin credentials
  • Store secrets in environment variables

Do NOT:

  • Commit .env files to GitHub
  • Hardcode MongoDB passwords in code

Development

Clone the repository:

git clone <repository-url>
cd mongo-mcp

Create environment:

uv venv
source .venv/bin/activate

Install dependencies:

uv sync

Run locally:

python -m mongo_mcp.main

Roadmap

V1

  • Collection discovery
  • CRUD operations
  • Schema inspection

V2

  • Aggregation pipelines
  • Count documents
  • Regex search

V3

  • Natural language queries
  • Query optimization
  • Schema caching

License

MIT License


Author

Vishnu Bhardwaj

Built for AI Agents, MCP Clients, and MongoDB Developers.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mongo_agent_mcp-0.1.0.tar.gz (4.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mongo_agent_mcp-0.1.0-py3-none-any.whl (4.6 kB view details)

Uploaded Python 3

File details

Details for the file mongo_agent_mcp-0.1.0.tar.gz.

File metadata

  • Download URL: mongo_agent_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 4.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.17 {"installer":{"name":"uv","version":"0.11.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for mongo_agent_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 fc12bfb966f0b5cf57275975152ffe2b311698f983daf12b4fbf322c61957ff9
MD5 c18361ea33641759e4892c61979c49e2
BLAKE2b-256 7eb22d540a106540a88089d8c12bb19fc61d52b15a846de06628be5cf5523a17

See more details on using hashes here.

File details

Details for the file mongo_agent_mcp-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: mongo_agent_mcp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 4.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.17 {"installer":{"name":"uv","version":"0.11.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for mongo_agent_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 94d999db8894673ab04a7ceb0519b8dfef260d5e0d27a0c8c96b348fa8f7301a
MD5 2aa37f504e55916750fa67ae0a05b7f9
BLAKE2b-256 bb2ee60d7e55cbcab23395559f995296ab4aae42c66661bc540a66fa8048a79b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page