Skip to main content
Glama
MongoDB MCP

MongoDB MCP

by vishnuweb-a

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

Related MCP server: MongoDB MCP Server

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.

mongo_agent_mcp

Available Tools

8 tools
all_collectionsA

Returns all collections in the database.

Inputs: no named parameters.

count_documentsC

Count matching documents.

Inputs: collection_name (required), query.

delete_documentC

Delete matching document.

Inputs: filter_query (required), collection_name (required).

fetch_collection_dataC

Fetch documents from a collection.

Inputs: collection_name (required), limit.

fetch_collection_schemaB

Returns inferred schema from a sample document.

Inputs: collection_name (required).

find_documentC

Find a single document.

Inputs: query (required), collection_name (required).

insert_documentC

Insert a document.

Inputs: document (required), collection_name (required).

update_documentC

Update matching document.

Inputs: update_data (required), filter_query (required), collection_name (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3/5.0

    Scored across 8 tools

    Disambiguation4/5

    Most tools are clearly distinct: collection listing, schema inference, data fetching, single document find, count, insert, update, delete. The only potential overlap is between fetch_collection_data and find_document, but the former implies multiple documents while the latter explicitly targets a single document.

    Naming Consistency3/5

    The naming mixes patterns: 'all_collections' and 'fetch_collection_*' vs. 'find_document', 'count_documents', 'insert_document', etc. While verb-first naming is used for most, the prefixes 'all' and 'fetch_collection_' are inconsistent. Still readable and not chaotic.

    Tool Count5/5

    With 8 tools, the server covers the core MongoDB operations without unnecessary bloat. Each tool serves a clear purpose in the database workflow, from listing collections to CRUD operations and schema inspection.

    Completeness4/5

    The tool set provides comprehensive coverage for basic MongoDB interactions: listing collections, inspecting schemas, querying documents, counting, inserting, updating, and deleting. Missing advanced features like aggregation or indexing are not critical for a general-purpose MongoDB MCP server.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      An MCP server that enables large language models to interact directly with MongoDB databases, allowing them to query collections, inspect schemas, and manage data through natural language.
      23 npm
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      A Model Context Protocol (MCP) server for MongoDB operations, enabling AI assistants to interact with MongoDB databases through a standardized interface.
      21 npm
      6
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      MCP server for comprehensive MongoDB integration, enabling database operations, document management, schema analysis, and query tools.
      20 npm
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Feature-rich MCP server for MongoDB with multi-connection support, enabling users to interact with multiple MongoDB clusters simultaneously, perform CRUD operations, run aggregations, diagnostics, and more, all through natural language.
      6 npm
      MIT