MongoDB
MongoDB's own MCP server, published as the npm package mongodb-mcp-server. It gives an assistant 31 tools over a MongoDB deployment: find, aggregate, insert-many, update-many, index management, collection and database stats, plus Atlas local deployment control and a search-knowledge tool that queries MongoDB's own documentation. It speaks stdio JSON-RPC and connects with a standard connection string.
How we started it
npx -y mongodb-mcp-serverUse it if you actually work in MongoDB every day and are willing to spend the context. We started it cold with npx and it reported itself as MongoDB MCP Server 2.1.0 on protocol 2025-06-18, but it took 52155 ms to reach initialize, and its tools/list came back at 37851 bytes, roughly 9462 tokens by the chars/4 estimate (measured 2026-08-19). That is several times the median Context Tax of the servers we measured alongside it, paid on every single request whether or not the model ever touches a database. The write tools are the other cost: drop-collection, drop-database and delete-many are all exposed by default, so the read-only flag is not optional in any environment you care about.
Use it if
Skip it if
The bill for your context window
| Tool | Est. tokens | Described? | Required params |
|---|---|---|---|
| explain | ~863 | yes (118 chars) | 4 |
| create-index | ~778 | yes (32 chars) | 4 |
| export | ~681 | yes (68 chars) | 5 |
| aggregate | ~539 | yes (47 chars) | 4 |
| find | ~396 | yes (45 chars) | 3 |
| collection-indexes | ~376 | yes (37 chars) | 3 |
| update-many | ~325 | yes (176 chars) | 4 |
| list-connections | ~298 | yes (113 chars) | 0 |
9462 tokens for 31 tools is not obviously unfair per tool, but the distribution is lopsided. explain alone estimates at 863 tokens, create-index at 778 and export at 681, and those three plus aggregate and find account for the bulk of what you are paying; the small stuff like disconnect and list-knowledge-sources is noise by comparison. The weight comes from JSON Schema, not documentation, since some heavy tools carry short descriptions and four or five required parameters. If your work is reads and schema inspection, filtering the tool set down is the single highest-value knob here, and the server ships the switch to do it.
Setup reality
Straightforward, which is not something we get to write often in this batch. npx -y mongodb-mcp-server booted with a clean env and no credentials at all, and the harness recorded no missing env vars; the only stderr was npm complaining about deprecated transitive dependencies. That works because the server starts unconnected and waits for either a connection string in its config or a call to its connect tool, which is also how it stays useful across several deployments via list-connections. The README documents a read-only mode and tool-category filters, and on this evidence both are the first flags you should set, because nothing in the default configuration stops a write. Cold start is the real friction: 52155 ms of npm resolution and startup before initialize returned, so pin the package locally if you restart clients often.
Questions people ask
Is the MongoDB MCP server safe to point at production?
Not in its default state. Of the 31 tools we saw, several are destructive, including drop-database, drop-collection and delete-many. Enable the README's read-only mode, or connect with a database user whose permissions make the destructive tools fail on the server side.
Should I worry about the startup delay?
Our run measured 52155 ms from spawn to a completed initialize, which is npx fetching and resolving the package on a cold cache rather than the server itself being slow. Installing mongodb-mcp-server locally and pointing your client at the binary removes most of that.
How much context does it cost compared with other servers?
Its tools/list is 37851 bytes, about 9462 tokens at chars/4, measured 2026-08-19. That puts it among the heaviest servers we measured in this round, several times the median, though not the worst one.
Do I need credentials to run it?
Not to start it. We booted it with an empty environment and it initialized fine, because it holds the connection open-ended until you supply a URI in config or call its connect tool. You need credentials the moment you want it to do anything.
Other databases servers we started
| Server | Vendor | Boots | Context tax |
|---|---|---|---|
| Chroma | Chroma | ✗ | ~0 tokens |
| Elasticsearch | Elastic | ✗ | ~0 tokens |
| MySQL | community (benborla29) | ✓ | ~100 tokens |
| Pinecone | Pinecone | ✓ | ~6,165 tokens |
| PostgreSQL (archived) | Anthropic (archived) | ✓ | ~33 tokens |
| Qdrant | Qdrant | ✗ | ~0 tokens |
| Supabase | Supabase | ✗ | ~0 tokens |
How this page is made: the server is spawned as an unprivileged user with a clean environment and no credentials, then asked for its tools, resources and prompts over stdio. Token figures are estimates at four characters per token, not a tokenizer count. One run, one machine. Corrections: contact the desk.