MongoDBvf.sr

listing.by · home.legend.verified

Query MongoDB databases and manage Atlas clusters from your AI assistant, with an optional read-only mode.

state.local.long (state.local.title)listing.badge.runs_withstate.key.long

listing.install

listing.local.explain

npx -y mongodb-mcp-server@latest --readOnly

listing.local.needs listing.local.note

  • MDB_MCP_ALLOW_REQUEST_OVERRIDES listing.env.optional When set to true, allows configuration values to be overridden via request headers and query parameters.
  • MDB_MCP_API_CLIENT_ID listing.env.secret listing.env.optional Atlas API client ID for authentication. Required for running Atlas tools.
  • MDB_MCP_API_CLIENT_SECRET listing.env.secret listing.env.optional Atlas API client secret for authentication. Required for running Atlas tools.
  • MDB_MCP_ASSISTANT_BASE_URL listing.env.optional Base URL for the MongoDB Assistant API.
  • MDB_MCP_ATLAS_TEMPORARY_DATABASE_USER_LIFETIME_MS listing.env.optional Time in milliseconds that temporary database users created when connecting to MongoDB Atlas clusters will remain active before being…
  • MDB_MCP_CONFIRMATION_REQUIRED_TOOLS listing.env.optional Comma separated values of tool names that require user confirmation before execution. Requires the client to support elicitation.

listing.share.h

listing.share.p_local

mcp.tc/i/mongodb

listing.about

Connects an AI assistant to MongoDB databases and MongoDB Atlas. It can work with data in self-managed or Atlas deployments through a connection string, and manage Atlas resources through the Atlas API. The README groups its tools into Atlas, database and MongoDB Assistant categories.

It runs locally over stdio as the npm package mongodb-mcp-server (also published as a Docker image) and needs Node.js 22.13 or later. Authentication uses a MongoDB connection string or Atlas service account API credentials, passed as environment variables. The --readOnly flag limits it to read operations. MongoDB also offers a hosted Atlas MCP server over OAuth through its agent plugins.

listing.can

  • Connect to MongoDB deployments with a connection string
  • Work with MongoDB data through database tools
  • Manage MongoDB Atlas resources with Atlas API credentials
  • Run in read-only mode with the --readOnly flag
  • Disable tools or require confirmation for selected tools
  • Disable server-side JavaScript operators in queries

listing.tools

listing.notools.key

listing.prompts

  • List the collections in my MongoDB database

  • Find the 10 most recent orders in the orders collection

  • Show my Atlas clusters

  • Describe the indexes on the users collection

listing.setup.h

listing.setup.local

Claude Code

  1. Run this in a terminal, in your project folder:
claude mcp add --transport stdio mongodb --env "MDB_MCP_API_CLIENT_ID=<YOUR_MDB_MCP_API_CLIENT_ID>" --env "MDB_MCP_API_CLIENT_SECRET=<YOUR_MDB_MCP_API_CLIENT_SECRET>" --env "MDB_MCP_CONNECTION_STRING=<YOUR_MDB_MCP_CONNECTION_STRING>" -- npx -y mongodb-mcp-server@latest --readOnly
  1. Start Claude Code and type /mcp. mongodb should show as connected.

Add --scope user to make it available in every project. Replace the placeholders with your own values.

Claude Desktop

  1. Open Settings → Developer → Edit Config. It opens claude_desktop_config.json. Add:
claude_desktop_config.json
{
  "mcpServers": {
    "mongodb": {
      "command": "npx",
      "args": [
        "-y",
        "mongodb-mcp-server@latest",
        "--readOnly"
      ],
      "env": {
        "MDB_MCP_API_CLIENT_ID": "<YOUR_MDB_MCP_API_CLIENT_ID>",
        "MDB_MCP_API_CLIENT_SECRET": "<YOUR_MDB_MCP_API_CLIENT_SECRET>",
        "MDB_MCP_CONNECTION_STRING": "<YOUR_MDB_MCP_CONNECTION_STRING>"
      }
    }
  }
}
  1. Save the file and restart Claude Desktop. Replace the placeholders with your own values.

Needs Node.js on your computer. The file lives in ~/Library/Application Support/Claude/ on macOS and %APPDATA%\Claude\ on Windows.

Cursor

Or add it by hand to ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (this project):

mcp.json
{
  "mcpServers": {
    "mongodb": {
      "command": "npx",
      "args": [
        "-y",
        "mongodb-mcp-server@latest",
        "--readOnly"
      ],
      "env": {
        "MDB_MCP_API_CLIENT_ID": "<YOUR_MDB_MCP_API_CLIENT_ID>",
        "MDB_MCP_API_CLIENT_SECRET": "<YOUR_MDB_MCP_API_CLIENT_SECRET>",
        "MDB_MCP_CONNECTION_STRING": "<YOUR_MDB_MCP_CONNECTION_STRING>"
      }
    }
  }
}

Needs Node.js on your computer. Replace the placeholders with your own values.

VS Code

Add it to .vscode/mcp.json. VS Code asks for the secret the first time and stores it securely:

.vscode/mcp.json
{
  "servers": {
    "mongodb": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "mongodb-mcp-server@latest",
        "--readOnly"
      ],
      "env": {
        "MDB_MCP_API_CLIENT_ID": "${input:mdb-mcp-api-client-id}",
        "MDB_MCP_API_CLIENT_SECRET": "${input:mdb-mcp-api-client-secret}",
        "MDB_MCP_CONNECTION_STRING": "${input:mdb-mcp-connection-string}"
      }
    }
  },
  "inputs": [
    {
      "type": "promptString",
      "id": "mdb-mcp-api-client-id",
      "description": "MDB_MCP_API_CLIENT_ID",
      "password": true
    },
    {
      "type": "promptString",
      "id": "mdb-mcp-api-client-secret",
      "description": "MDB_MCP_API_CLIENT_SECRET",
      "password": true
    },
    {
      "type": "promptString",
      "id": "mdb-mcp-connection-string",
      "description": "MDB_MCP_CONNECTION_STRING",
      "password": true
    }
  ]
}

Needs Node.js on your computer.

Devin Desktop

  1. Add it to ~/.config/devin/mcp_config.json (macOS and Linux) or %APPDATA%\devin\mcp_config.json (Windows):
mcp_config.json
{
  "mcpServers": {
    "mongodb": {
      "command": "npx",
      "args": [
        "-y",
        "mongodb-mcp-server@latest",
        "--readOnly"
      ],
      "env": {
        "MDB_MCP_API_CLIENT_ID": "<YOUR_MDB_MCP_API_CLIENT_ID>",
        "MDB_MCP_API_CLIENT_SECRET": "<YOUR_MDB_MCP_API_CLIENT_SECRET>",
        "MDB_MCP_CONNECTION_STRING": "<YOUR_MDB_MCP_CONNECTION_STRING>"
      }
    }
  }
}
  1. Refresh the MCP server list in Cascade. Replace the placeholders with your own values.

Devin Desktop is the new name for Windsurf.

Codex

codex mcp add mongodb --env "MDB_MCP_API_CLIENT_ID=<YOUR_MDB_MCP_API_CLIENT_ID>" --env "MDB_MCP_API_CLIENT_SECRET=<YOUR_MDB_MCP_API_CLIENT_SECRET>" --env "MDB_MCP_CONNECTION_STRING=<YOUR_MDB_MCP_CONNECTION_STRING>" -- npx -y mongodb-mcp-server@latest --readOnly

Or edit ~/.codex/config.toml directly:

config.toml
[mcp_servers.mongodb]
command = "npx"
args = ["-y", "mongodb-mcp-server@latest", "--readOnly"]
env = { MDB_MCP_API_CLIENT_ID = "<YOUR_MDB_MCP_API_CLIENT_ID>", MDB_MCP_API_CLIENT_SECRET = "<YOUR_MDB_MCP_API_CLIENT_SECRET>", MDB_MCP_CONNECTION_STRING = "<YOUR_MDB_MCP_CONNECTION_STRING>" }

Needs Node.js on your computer. Replace the placeholders with your own values.

Gemini CLI

gemini mcp add -e "MDB_MCP_API_CLIENT_ID=<YOUR_MDB_MCP_API_CLIENT_ID>" -e "MDB_MCP_API_CLIENT_SECRET=<YOUR_MDB_MCP_API_CLIENT_SECRET>" -e "MDB_MCP_CONNECTION_STRING=<YOUR_MDB_MCP_CONNECTION_STRING>" mongodb npx -- -y mongodb-mcp-server@latest --readOnly

This adds it to the current project. Add -s user to use it everywhere.

Any client

Most clients that start local servers accept this shape:

{
  "mcpServers": {
    "mongodb": {
      "command": "npx",
      "args": [
        "-y",
        "mongodb-mcp-server@latest",
        "--readOnly"
      ],
      "env": {
        "MDB_MCP_API_CLIENT_ID": "<YOUR_MDB_MCP_API_CLIENT_ID>",
        "MDB_MCP_API_CLIENT_SECRET": "<YOUR_MDB_MCP_API_CLIENT_SECRET>",
        "MDB_MCP_CONNECTION_STRING": "<YOUR_MDB_MCP_CONNECTION_STRING>"
      }
    }
  }
}

Zed puts servers under context_servers in its settings, with the same command, args and env fields.

Needs Node.js on your computer. Replace the placeholders with your own values.

listing.faq

Can I paste mcp.tc/i/mongodb into my MCP client?

No. MongoDB runs on your own computer, started by your client, so it has no web address to connect to. The quick link is the page to share; the install command is npx -y mongodb-mcp-server@latest --readOnly.

Does MongoDB need an API key?

Yes. It reads MDB_MCP_API_CLIENT_ID, MDB_MCP_API_CLIENT_SECRET and MDB_MCP_CONNECTION_STRING from its environment, and MDB_MCP_API_CLIENT_ID, MDB_MCP_API_CLIENT_SECRET and MDB_MCP_CONNECTION_STRING are secrets. Put the value in your client's config on your own machine, never in a shared file.

Is MongoDB a remote or a local server?

Local. Your client starts it as a process on your computer with npx -y mongodb-mcp-server@latest --readOnly, which needs Node.js.

What can MongoDB do?

You can connect to MongoDB deployments with a connection string, work with MongoDB data through database tools and manage MongoDB Atlas resources with Atlas API credentials.

Which clients can use it?

Any client that starts local servers: Claude Code, Claude Desktop, Cursor, VS Code, Devin Desktop, Codex, Gemini CLI, Zed and others. claude.ai and ChatGPT only connect to remote servers.

Who wrote this page?

mcp.tc's robot read MongoDB's public metadata (its package and repository pages), and an AI model drafted the text from it. A person reviews anything the checks can't confirm. The text can still be wrong, so if you spot a mistake, use Report this listing on this page.

listing.em.h

listing.em.lead_local listing.em.how

listing.em.badge

em.prev_lightem.prev_dark
Markdown
[![MongoDB on mcp.tc](https://mcp.tc/i/mongodb/badge.svg)](https://mcp.tc/i/mongodb)
HTML
<a href="https://mcp.tc/i/mongodb"><img src="https://mcp.tc/i/mongodb/badge.svg" alt="MongoDB on mcp.tc" height="20"></a>

listing.em.badge_note

listing.em.widget

HTML
<script src="https://mcp.tc/w/mongodb.js" async></script>

listing.em.widget_note

iframe

HTML
<iframe src="https://mcp.tc/embed/mongodb" title="MongoDB on mcp.tc" width="420" height="200" loading="lazy" allow="clipboard-write" style="border:0;border-radius:8px;max-width:100%"></iframe>

listing.em.iframe_note

JSON

listing.em.json_local

https://mcp.tc/i/mongodb.json

listing.em.fields

listing.disclaimer_checked