mcpField
M
MCP MongoDB Server

MCP MongoDB Server

Local
npmjs.comDatabases283Updated 13w ago

About MCP MongoDB Server

MCP MongoDB Server is an MCP server that lets AI assistants query and modify MongoDB databases. It infers collection schemas and offers a read-only mode, suiting developers who want to explore data in plain language.

Key features

  1. 01Schema inference with queries and aggregations
  2. 02Read-only mode blocks all write operations
  3. 03Restrictions on cross-database and server-side JavaScript
  4. 04Supports stdio and HTTP transports
  5. 05Helper for converting timestamps and date strings

Use cases

  1. 01Exploring MongoDB collections in plain language
  2. 02Letting an assistant analyse data in read-only mode
  3. 03Serving database access to several clients over HTTP

MCP support

This is an MCP server exposing collection query, aggregation, write and time conversion tools to MCP clients such as Claude Desktop and Cursor. It supports local stdio and remote HTTP connections.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"mongo-server": {
"command": "npx",
"args": [
"-y",
"github:kiliczsh/mcp-mongo-server"
]
}
}
}
Run commandnpx -y github:kiliczsh/mcp-mongo-server

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npmgithub:kiliczsh/mcp-mongo-server

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

MCP MongoDB Server


NPM Version NPM Downloads NPM License

A Model Context Protocol (MCP) server that lets AI assistants work with your MongoDB databases. It exposes your collections, infers their schemas, and runs queries, aggregations, and writes through a standard interface — so tools like Claude Desktop and Cursor can read and reason about your data.

Demo

MCP MongoDB Server Demo | Claude Desktop

Why use it

  • Talk to your database in plain language — the assistant discovers your collections and their shape automatically.
  • Safe by default — turn on read-only mode to let an assistant explore without any risk of changing data.
  • Works everywhere — connects to standalone, replica set, sharded, and Atlas deployments, over plain or TLS connections.

Key Features

  • Read-Only Mode — blocks every write path (insert, update, index creation, and aggregation stages like $out/$merge that could modify data).
  • Smart ObjectId Handling — configurable auto/none/force conversion of 24-character hex strings to ObjectIds.
  • Schema Inference — automatic collection schema detection from document samples.
  • Query & Aggregation — full query and aggregation pipeline support, with optional explain plans.
  • Write Operations — insert, update, and index creation (when read-only mode is off).
  • Time Conversion — a convertTime helper turns Unix timestamps and date strings into UTC/GMT/ISO, so date queries stay unambiguous across timezones.
  • Progress & Cancellation — long operations report progress and can be cancelled mid-flight.
  • Two Transports — run locally over stdio, or expose an HTTP endpoint for remote access.

Requirements

  • Node.js 20 or newer

Quick Start

Point the server at your database — no install step needed:

npx -y mcp-mongo-server mongodb://localhost:27017/mydatabase

Explore safely, without any chance of changing data:

npx -y mcp-mongo-server mongodb://localhost:27017/mydatabase --read-only

Usage

Local (stdio)

This is the default, used by Claude Desktop, Cursor, and other local clients:

npx -y mcp-mongo-server "mongodb://user:pass@localhost:27017/mydatabase"
Remote (HTTP)

Expose an HTTP endpoint at /mcp for remote or multi-client access:

npx -y mcp-mongo-server "mongodb://user:pass@localhost:27017/mydatabase" --transport http --port 3001

By default, only requests without a browser Origin (CLIs, IDEs) and requests from localhost are accepted; everything else is rejected with 403 to guard against DNS-rebinding attacks. Allow specific browser origins with --allowed-origins:

npx -y mcp-mongo-server "mongodb://..." --transport http --port 3001 --allowed-origins "https://app.example.com"
Options
FlagDescription
--read-only, -rBlock all write operations
--allow-cross-dbAllow aggregation $out/$merge/$lookup to target other databases (off by default)
--allow-server-jsAllow server-side JavaScript operators $function/$where/$accumulator (off by default)
--transport, -tstdio (default) or http
--port, -pHTTP port (default 3001)
--allowed-originsComma-separated browser origins to allow in HTTP mode
--json-limitMax HTTP request body size (default 10mb)
--auth-tokenRequire Authorization: Bearer <token> on the HTTP endpoint
Environment Variables
VariableDescription
MCP_MONGODB_URIMongoDB connection URI (alternative to the argument)
MCP_MONGODB_READONLYEnable read-only mode ("true")
MCP_MONGODB_ALLOW_CROSS_DBAllow cross-database aggregation stages ("true")
MCP_MONGODB_ALLOW_SERVER_JSAllow server-side JavaScript operators ("true")
MCP_PORTHTTP port
MCP_HTTP_ALLOWED_ORIGINSComma-separated browser origins to allow in HTTP mode
MCP_HTTP_JSON_LIMITMax HTTP request body size (default 10mb)
MCP_HTTP_AUTH_TOKENBearer token required to access the HTTP endpoint

Security

Database scope. The server operates on the database in your connection string. Aggregation stages that reach another database ($out, $merge, $lookup with an explicit db) are rejected by default, so a pipeline can't quietly read from or write to databases you didn't point it at. Enable them with --allow-cross-db if you need them.

Server-side JavaScript. The aggregation operators $function, $where, and $accumulator run arbitrary JavaScript on the MongoDB server. They are rejected by default; enable them with --allow-server-js if you trust the pipelines being run.

Read-only mode blocks every write path, including aggregation stages that write or run server-side JavaScript ($out, $merge, $function, $where, $accumulator).

Least privilege. Application-level checks only go so far — the strongest guarantee comes from the database. Connect with a MongoDB user scoped to just the database you need, with read-only permissions when the assistant only needs to explore. That way the database itself enforces the boundary, as defense in depth.

Documentation

License

MIT — see LICENSE for details.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.