MCP Toolbox for Databases vs MongoDB MCP Server
In short
MCP Toolbox for Databases vs MongoDB MCP Server: both are coding tools on Scriptiii AI Tools. MCP Toolbox for Databases pricing: Free. Free to use. (reported by the maker) MongoDB MCP Server pricing: Free. Free to use. (reported by the maker) Both have 0 upvotes.
- MCP Toolbox for Databases
- Free. Free to use. (reported by the maker)
- MongoDB MCP Server
- Free. Free to use. (reported by the maker)
- Upvotes
- 0 vs 0
| Field | MCP Toolbox for Databases | MongoDB MCP Server |
|---|---|---|
| Page | MCP Toolbox for Databases | MongoDB MCP Server |
| Pricing (maker-reported) | Free. Free to use. | Free. Free to use. |
| Upvotes | 0 | 0 |
| Best for | ai-agents, mcp-server, databases | ai-agents, mcp-server, databases |
| Tagline | Google open-source MCP server for connecting agents to databases such as Postgres, MySQL and BigQuery. | MCP server for querying and managing MongoDB databases and MongoDB Atlas clusters. |
| Website | Visit MCP Toolbox for Databases | Visit MongoDB MCP Server |
Pricing and pricing details come from the maker's submission. They are not independently verified.
MCP Toolbox for Databases
MCP Toolbox for Databases is an open source Model Context Protocol (MCP) server that connects your AI agents, IDEs, and applications directly to your enterprise databases.
It serves a dual purpose:
- Ready-to-use MCP Server (Build-Time): Instantly connect Gemini CLI, Google Antigravity, Claude Code, Codex, or other MCP clients to your databases using our prebuilt generic tools. Talk to your data, explore schemas, and generate code without writing boilerplate.
- Custom Tools Framework (Run-Time): A robust framework to build specialized, highly secure AI tools for your production agents. Define structured queries, semantic search, and NL2SQL capabilities safely and easily.
This README provides a brief overview. For comprehensive details, see the full documentation.
[!IMPORTANT]
Repository Name Update: Thegenai-toolboxrepository has been officially renamed tomcp-toolbox. To ensure your local environment reflects the new name, you may update your remote:
git remote set-url origin https://github.com/googleapis/mcp-toolbox.git
[!NOTE]
This solution was originally named “Gen AI Toolbox for Databases” (github.com/googleapis/genai-toolbox) as its initial development predated MCP, but was renamed to align with the MCP compatibility.
Table of Contents
- Why MCP Toolbox?
- Quick Start: Prebuilt Tools
- Quick Start: Custom Tools
- Install & Run the Toolbox server
- Connect to Toolbox
- Additional Features
- Versioning
- Contributing
- Community
Why MCP Toolbox?
- Out-of-the-Box Database Access: Prebuilt generic tools for instant data exploration (e.g.,
list_tables,execute_sql) directly from your IDE or CLI. - Custom Tools Framework: Build production-ready tools with your own predefined logic, ensuring safety through Restricted Access, Structured Queries, and Semantic Search.
- Simplified Development: Integrate tools into your Agent Development Kit (ADK), LangChain, LlamaIndex, or custom agents in less than 10 lines of code.
- Better Performance: Handles connection pooling, integrated auth (IAM), and end-to-end observability (OpenTelemetry) out of the box.
- Enhanced Security: Integrated authentication for more secure access to your data.
- End-to-end Observability: Out of the box metrics and tracing with built-in support for OpenTelemetry.
Quick Start: Prebuilt Tools
Stop context-switching and let your AI assistant become a true co-developer. By connecting your IDE to your databases with MCP Toolbox, you can query your data in plain English, automate schema discovery and management, and generate database-aware code.
You can use the Toolbox in any MCP-compatible IDE or client (e.g., Gemini CLI, Google Antigravity, Claude Code, Codex, etc.) by configuring the MCP server.
Prebuilt tools are also conveniently available via the Google Antigravity MCP Store with a simple click-to-install experience.
-
Add the following to your client's MCP configuration file (usually
mcp.jsonorclaude_desktop_config.json):{ "mcpServers": { "toolbox-postgres": { "command": "npx", "args": [ "-y", "@toolbox-sdk/server", "--prebuilt=postgres", "--stdio" ] } } } -
Set the appropriate environment variables to connect, see the Prebuilt Tools Reference.
When you run Toolbox with a --prebuilt=<database> flag, you instantly get access to standard tools to interact with that database. You can also specify a specific toolset using the --prebuilt=<database>/<toolset> syntax (e.g., --prebuilt=postgres/data to only load SQL tools).
Supported databases currently include:
- Google Cloud: AlloyDB, BigQuery, Cloud SQL (PostgreSQL, MySQL, SQL Server), Spanner, Firestore, Knowledge Catalog (formerly known as Dataplex).
- Other Databases: PostgreSQL, MySQL, MariaDB, SQL Server, Oracle, MongoDB, Redis, Elasticsearch, CockroachDB, ClickHouse, Couchbase, Neo4j, Snowflake, Trino, and more.
For a full list of available tools and their capabilities across all supported databases, see the Prebuilt Tools Reference.
See the Install & Run the Toolbox server section for different execution methods like Docker or binaries.
[!TIP]
For users looking for a managed solution, Google Cloud MCP Servers
provide a managed MCP experience with prebuilt tools; you can learn more about the differences here.
Quick Start: Custom Tools
Toolbox can also be used as a framework for customized tools.
The primary way to configure Toolbox is through the tools.yaml file. If you
have multiple files, you can tell Toolbox which to load with the --config tools.yaml flag.
You can find more detailed reference documentation to all resource types in the
Resources.
Sources
The sources section of your tools.yaml defines what data sources your
Toolbox should have access to. Most tools will have at least one source to
execute against.
kind: source
name: my-pg-source
type: postgres
host: 127.0.0.1
port: 5432
database: toolbox_db
user: toolbox_user
password: my-password
For more details on configuring different types of sources, see the
Sources.
Tools
The tools section of a tools.yaml define the actions an agent can take: what
type of tool it is, which source(s) it affects, what parameters it uses, etc.
kind: tool
name: search-hotels-by-name
type: postgres-sql
source: my-pg-source
description: Search for hotels based on name.
parameters:
- name: name
type: string
description: The name of the hotel.
statement: SELECT * FROM hotels WHERE name ILIKE '%' || $1 || '%';
For more details on configuring different types of tools, see the
Tools.
Toolsets
The toolsets section of your tools.yaml allows you to define groups of tools
that you want to be able to load together. This can be useful for defining
different groups based on agent or application.
kind: toolset
name: my_first_toolset
tools:
- my_first_tool
- my_second_tool
---
kind: toolset
name: my_second_toolset
tools:
- my_second_tool
- my_third_tool
Prompts
The prompts section of a tools.yaml defines prompts that can be used for
interactions with LLMs.
kind: prompt
name: code_review
description: "Asks the LLM to analyze code quality and suggest improvements."
messages:
- content: >
Please review the following code for quality, correctness,
and potential improvements: \n\n{{.code}}
arguments:
- name: "code"
description: "The code to review"
For more details on configuring prompts, see the
Prompts.
Resources
The resources and resourceTemplates sections of your tools.yaml define read-only
content, files, or parameterized directory trees that can be discovered and retrieved
by MCP clients:
kind: resource
name: database_schema_ddl
type: text
description: "Core table definitions and constraints."
mimeType: text/x-sql
text: |
CREATE TABLE customers (
id SERIAL PRIMARY KEY,
name VARCHAR(255) NOT NULL,
email VARCHAR(255) UNIQUE NOT NULL
);
---
kind: resource
name: database_schema
type: file
description: "PostgreSQL schema definition."
path: "./schema.sql"
---
kind: resourceTemplate
name: server_logs
type: file
description: "Application log files."
uriTemplate: "file:///var/log/{path}"
allowedPaths:
- "/var/log"
For more details on configuring resources and resource templates, see
Resources.
Install & Run the Toolbox server
You can run Toolbox directly with a configuration file:
npx @toolbox-sdk/server --config tools.yaml
This runs the latest version of the Toolbox server with your configuration file.
[!NOTE]
This method is optimized for convenience rather than performance.
For a more standard and reliable installation, please use the binary
or container image as described in Install & Run the Toolbox server.
Install Toolbox
For the latest version, check the releases page and use the
following instructions for your OS and CPU architecture.
Binary
To install Toolbox as a binary:
Linux (AMD64)
To install Toolbox as a binary on Linux (AMD64):
# see releases page for other versions export VERSION=1.16.0 curl -L -o toolbox https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/linux/amd64/toolbox chmod +x toolboxmacOS (Apple Silicon)
To install Toolbox as a binary on macOS (Apple Silicon):
# see releases page for other versions export VERSION=1.16.0 curl -L -o toolbox https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/darwin/arm64/toolbox chmod +x toolboxmacOS (Intel)
To install Toolbox as a binary on macOS (Intel):
# see releases page for other versions export VERSION=1.16.0 curl -L -o toolbox https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/darwin/amd64/toolbox chmod +x toolboxWindows (Command Prompt)
To install Toolbox as a binary on Windows (Command Prompt):
:: see releases page for other versions set VERSION=1.16.0 curl -o toolbox.exe "https://storage.googleapis.com/mcp-toolbox-for-databases/v%VERSION%/windows/amd64/toolbox.exe"Windows (PowerShell)
To install Toolbox as a binary on Windows (PowerShell):
# see releases page for other versions $VERSION = "1.16.0" curl.exe -o toolbox.exe "https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/windows/amd64/toolbox.exe"Windows ARM64 (Command Prompt)
To install Toolbox as a binary on Windows ARM64 (Command Prompt):
:: see releases page for other versions set VERSION=1.16.0 curl -o toolbox.exe "https://storage.googleapis.com/mcp-toolbox-for-databases/v%VERSION%/windows/arm64/toolbox.exe"Windows ARM64 (PowerShell)
To install Toolbox as a binary on Windows ARM64 (PowerShell):
# see releases page for other versions $VERSION = "1.16.0" curl.exe -o toolbox.exe "https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/windows/arm64/toolbox.exe"
Container image
You can also install Toolbox as a container:## see releases page for other versions
export VERSION=1.16.0
docker pull us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:$VERSION
Homebrew
To install Toolbox using Homebrew on macOS or Linux:
brew install mcp-toolbox
Compile from source
To install from source, ensure you have the latest version of
Go installed, and then run the following command:
go install github.com/googleapis/mcp-toolbox@v1.16.0
Gemini CLI
Check out the [Gemini CLI extensions](https://geminicli.com/extensions/) to install prebuilt tools for specific databases like AlloyDB, BigQuery, and Cloud SQL directly into Gemini CLI.## Install Gemini CLI
npm install -g @google/gemini-cli
## Install the extension
gemini extensions install https://github.com/gemini-cli-extensions/cloud-sql-postgres
## Run Gemini CLI
gemini
Interact with your custom tools using natural language through the Gemini CLI.
## Install the extension
gemini extensions install https://github.com/gemini-cli-extensions/mcp-toolbox
Run Toolbox
Configure a tools.yaml to define your tools, and then
execute toolbox to start the server:
Binary
To run Toolbox from binary:
./toolbox --config "tools.yaml"
ⓘ Note
Toolbox enables dynamic reloading by default. To disable, use the
--disable-reloadflag.
Container image
To run the server after pulling the container image:
export VERSION=0.24.0 # Use the version you pulled
docker run -p 5000:5000 \
-v $(pwd)/tools.yaml:/app/tools.yaml \
us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:$VERSION \
--config "/app/tools.yaml"
ⓘ Note
The-vflag mounts your localtools.yamlinto the container, and-pmaps
the container's port5000to your host's port5000.
Source
To run the server directly from source, navigate to the project root directory
and run:
go run .
ⓘ Note
This command runs the project from source, and is more suitable for development
and testing. It does not compile a binary into your$GOPATH. If you want
to compile a binary instead, refer the Developer
Documentation.
Homebrew
If you installed Toolbox using Homebrew, the toolbox
binary is available in your system path. You can start the server with the same
command:
toolbox --config "tools.yaml"
NPM
To run Toolbox directly without manually downloading the binary (requires Node.js):
npx @toolbox-sdk/server --config tools.yaml
Gemini CLI
After installing a [Gemini CLI extensions](https://geminicli.com/extensions/), the prebuilt tools will be available during use.## Run Gemini CLI
gemini
## List extensions
/extensions list
## List MCP servers
/mcp list
You can use toolbox help for a full list of flags! To stop the server, send a
terminate signal (ctrl+c on most platforms).
For more detailed documentation on deploying to different environments, check
out the resources in the Deploy Toolbox
section
Connect to Toolbox
Once your Toolbox server is up and running, you can load tools into your MCP-compatible client or
application.
MCP Client
Add the following configuration to your MCP client configuration:
{
"mcpServers": {
"toolbox": {
"type": "http",
"url": "http://127.0.0.1:5000/mcp",
}
}
}
If you would like to connect to a specific toolset, replace url with "http://127.0.0.1:5000/mcp/{toolset_name}".
Toolbox SDKs: Integrate with your Application
Toolbox Client SDKs provide the easy-to-use building blocks and advanced features for connecting your custom applications to the MCP Toolbox server. See below the list of Client SDKs for using various frameworks:
Python (Github)
Core
Install Toolbox Core SDK:
pip install toolbox-coreLoad tools:
from toolbox_core import ToolboxClient # update the url to point to your server async with ToolboxClient("http://127.0.0.1:5000") as client: # these tools can be passed to your application! tools = await client.load_toolset("toolset_name")For more detailed instructions on using the Toolbox Core SDK, see the
project's README.LangChain / LangGraph
Install Toolbox LangChain SDK:
pip install toolbox-langchainLoad tools:
from toolbox_langchain import ToolboxClient # update the url to point to your server async with ToolboxClient("http://127.0.0.1:5000") as client: # these tools can be passed to your application! tools = client.load_toolset()For more detailed instructions on using the Toolbox LangChain SDK, see the
project's README.LlamaIndex
Install Toolbox Llamaindex SDK:
pip install toolbox-llamaindexLoad tools:
from toolbox_llamaindex import ToolboxClient # update the url to point to your server async with ToolboxClient("http://127.0.0.1:5000") as client: # these tools can be passed to your application! tools = client.load_toolset()For more detailed instructions on using the Toolbox Llamaindex SDK, see the
project's README.
Javascript/Typescript (Github)
Core
Install Toolbox Core SDK:
npm install @toolbox-sdk/coreLoad tools:
import { ToolboxClient } from '@toolbox-sdk/core'; // update the url to point to your server const URL = 'http://127.0.0.1:5000'; let client = new ToolboxClient(URL); // these tools can be passed to your application! const tools = await client.loadToolset('toolsetName');For more detailed instructions on using the Toolbox Core SDK, see the
project's README.LangChain / LangGraph
Install Toolbox Core SDK:
npm install @toolbox-sdk/coreLoad tools:
import { ToolboxClient } from '@toolbox-sdk/core'; // update the url to point to your server const URL = 'http://127.0.0.1:5000'; let client = new ToolboxClient(URL); // these tools can be passed to your application! const toolboxTools = await client.loadToolset('toolsetName'); // Define the basics of the tool: name, description, schema and core logic const getTool = (toolboxTool) => tool(currTool, { name: toolboxTool.getName(), description: toolboxTool.getDescription(), schema: toolboxTool.getParamSchema() }); // Use these tools in your Langchain/Langraph applications const tools = toolboxTools.map(getTool);Genkit
Install Toolbox Core SDK:
npm install @toolbox-sdk/coreLoad tools:
import { ToolboxClient } from '@toolbox-sdk/core'; import { genkit } from 'genkit'; // Initialise genkit const ai = genkit({ plugins: [ googleAI({ apiKey: process.env.GEMINI_API_KEY || process.env.GOOGLE_API_KEY }) ], model: googleAI.model('gemini-2.0-flash'), }); // update the url to point to your server const URL = 'http://127.0.0.1:5000'; let client = new ToolboxClient(URL); // these tools can be passed to your application! const toolboxTools = await client.loadToolset('toolsetName'); // Define the basics of the tool: name, description, schema and core logic const getTool = (toolboxTool) => ai.defineTool({ name: toolboxTool.getName(), description: toolboxTool.getDescription(), schema: toolboxTool.getParamSchema() }, toolboxTool) // Use these tools in your Genkit applications const tools = toolboxTools.map(getTool);ADK
Install Toolbox ADK SDK:
npm install @toolbox-sdk/adkLoad tools:
import { ToolboxClient } from '@toolbox-sdk/adk'; // update the url to point to your server const URL = 'http://127.0.0.1:5000'; let client = new ToolboxClient(URL); // these tools can be passed to your application! const tools = await client.loadToolset('toolsetName');For more detailed instructions on using the Toolbox ADK SDK, see the
project's README.
Go (Github)
Core
Install Toolbox Go SDK:
go get github.com/googleapis/mcp-toolbox-sdk-goLoad tools:
package main import ( "github.com/googleapis/mcp-toolbox-sdk-go/core" "context" ) func main() { // Make sure to add the error checks // update the url to point to your server URL := "http://127.0.0.1:5000"; ctx := context.Background() client, err := core.NewToolboxClient(URL) // Framework agnostic tools tools, err := client.LoadToolset("toolsetName", ctx) }For more detailed instructions on using the Toolbox Go SDK, see the
project's README.LangChain Go
Install Toolbox Go SDK:
go get github.com/googleapis/mcp-toolbox-sdk-goLoad tools:
package main import ( "context" "encoding/json" "github.com/googleapis/mcp-toolbox-sdk-go/core" "github.com/tmc/langchaingo/llms" ) func main() { // Make sure to add the error checks // update the url to point to your server URL := "http://127.0.0.1:5000" ctx := context.Background() client, err := core.NewToolboxClient(URL) // Framework agnostic tool tool, err := client.LoadTool("toolName", ctx) // Fetch the tool's input schema inputschema, err := tool.InputSchema() var paramsSchema map[string]any _ = json.Unmarshal(inputschema, ¶msSchema) // Use this tool with LangChainGo langChainTool := llms.Tool{ Type: "function", Function: &llms.FunctionDefinition{ Name: tool.Name(), Description: tool.Description(), Parameters: paramsSchema, }, } }Genkit
Install Toolbox Go SDK:
go get github.com/googleapis/mcp-toolbox-sdk-goLoad tools:
package main import ( "context" "log" "github.com/firebase/genkit/go/genkit" "github.com/googleapis/mcp-toolbox-sdk-go/core" "github.com/googleapis/mcp-toolbox-sdk-go/tbgenkit" ) func main() { // Make sure to add the error checks // Update the url to point to your server URL := "http://127.0.0.1:5000" ctx := context.Background() g := genkit.Init(ctx) client, err := core.NewToolboxClient(URL) // Framework agnostic tool tool, err := client.LoadTool("toolName", ctx) // Convert the tool using the tbgenkit package // Use this tool with Genkit Go genkitTool, err := tbgenkit.ToGenkitTool(tool, g) if err != nil { log.Fatalf("Failed to convert tool: %v\n", err) } log.Printf("Successfully converted tool: %s", genkitTool.Name()) }Go GenAI
Install Toolbox Go SDK:
go get github.com/googleapis/mcp-toolbox-sdk-goLoad tools:
package main import ( "context" "encoding/json" "github.com/googleapis/mcp-toolbox-sdk-go/core" "google.golang.org/genai" ) func main() { // Make sure to add the error checks // Update the url to point to your server URL := "http://127.0.0.1:5000" ctx := context.Background() client, err := core.NewToolboxClient(URL) // Framework agnostic tool tool, err := client.LoadTool("toolName", ctx) // Fetch the tool's input schema inputschema, err := tool.InputSchema() var schema *genai.Schema _ = json.Unmarshal(inputschema, &schema) funcDeclaration := &genai.FunctionDeclaration{ Name: tool.Name(), Description: tool.Description(), Parameters: schema, } // Use this tool with Go GenAI genAITool := &genai.Tool{ FunctionDeclarations: []*genai.FunctionDeclaration{funcDeclaration}, } }OpenAI Go
Install Toolbox Go SDK:
go get github.com/googleapis/mcp-toolbox-sdk-goLoad tools:
package main import ( "context" "encoding/json" "github.com/googleapis/mcp-toolbox-sdk-go/core" openai "github.com/openai/openai-go" ) func main() { // Make sure to add the error checks // Update the url to point to your server URL := "http://127.0.0.1:5000" ctx := context.Background() client, err := core.NewToolboxClient(URL) // Framework agnostic tool tool, err := client.LoadTool("toolName", ctx) // Fetch the tool's input schema inputschema, err := tool.InputSchema() var paramsSchema openai.FunctionParameters _ = json.Unmarshal(inputschema, ¶msSchema) // Use this tool with OpenAI Go openAITool := openai.ChatCompletionToolParam{ Function: openai.FunctionDefinitionParam{ Name: tool.Name(), Description: openai.String(tool.Description()), Parameters: paramsSchema, }, } }ADK Go
Install Toolbox Go SDK:
go get github.com/googleapis/mcp-toolbox-sdk-goLoad tools:
package main import ( "github.com/googleapis/mcp-toolbox-sdk-go/tbadk" "context" ) func main() { // Make sure to add the error checks // Update the url to point to your server URL := "http://127.0.0.1:5000" ctx := context.Background() client, err := tbadk.NewToolboxClient(URL) if err != nil { return fmt.Sprintln("Could not start Toolbox Client", err) } // Use this tool with ADK Go tool, err := client.LoadTool("toolName", ctx) if err != nil { return fmt.Sprintln("Could not load Toolbox Tool", err) } }For more detailed instructions on using the Toolbox Go SDK, see the
project's README.
Additional Features
Test tools with the Toolbox UI
To launch Toolbox's interactive UI, use the --ui flag. This allows you to test
tools and toolsets with features such as authorized parameters. To learn more,
visit Toolbox UI.
./toolbox --ui
Telemetry
Toolbox emits traces and metrics via OpenTelemetry. Use --telemetry-otlp=<endpoint>
to export to any OTLP-compatible backend like Google Cloud Monitoring, Agnost AI, or
others. See the telemetry docs for details.
Generate Agent Skills
The skills-generate command allows you to convert a toolset into an Agent Skill compatible with the Agent Skill specification. This is useful for distributing tools as portable skill packages.
toolbox --config tools.yaml skills-generate \
--name "my-skill" \
--toolset "my_toolset" \
--description "A skill containing multiple tools"
Once generated, you can install the skill into the Gemini CLI:
gemini skills install ./skills/my-skill
For more details, see the Generating Skills guide. To serve a skill you already have over MCP, see Serving Skills over MCP.
The repository also ships ready-to-use Agent Skills (e.g. maintainer workflows). See skills/ for the catalog and install instructions.
Versioning
MCP Toolbox for Databases follows Semantic Versioning.
The Public API includes the Toolbox Server (CLI, configuration manifests, and pre-built toolsets) and the Client SDKs.
- Major versions are incremented for breaking changes, such as incompatible CLI or manifest changes.
- Minor versions are incremented for new features, including modifications to pre-built toolsets or beta features.
- Patch versions are incremented for backward-compatible bug fixes.
For more details, including our Container Tagging Policy, see our Full Versioning Policy.
Contributing
Contributions are welcome. Please, see the CONTRIBUTING guide to get started.
For technical details on setting up a environment for developing on Toolbox itself, see the DEVELOPER guide.
Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms. See Contributor Code of Conduct for more information.
Community
Join our Discord community to connect with our developers!
MongoDB MCP Server
MongoDB MCP Server
A Model Context Protocol server for interacting with MongoDB Databases and MongoDB Atlas.
Quick Start
Using the official MongoDB plugins for AI agents
MongoDB MCP Server comes bundled with the official MongoDB plugins for AI agents. The following plugins are available:
mongodb-atlas — connects to the MongoDB-hosted Atlas MCP server over OAuth. This does not require you to run anything locally, and is the recommended way to connect to MongoDB Atlas from your AI agent:
- Cursor: marketplace
- VSCode: Open the Extensions view (
⇧⌘X/Ctrl+Shift+X), search for@agentPlugins, and installmongodb-atlas. - Claude: marketplace
- Codex: Open
/pluginsand installmongodb-atlas. - GitHub Copilot CLI: Run
copilot plugin install mongodb-atlas. - Grok: Open
/marketplacein Grok Build and installmongodb-atlas.
mongodb — runs the MongoDB MCP server locally and connects to any self-managed deployment:
- Cursor: marketplace
- Claude: marketplace
- Gemini: marketplace
- Codex: Run
codex plugin marketplace add mongodb/agent-skills, then open/pluginsand installmongodb. - GitHub Copilot CLI: Run
copilot plugin install mongodb. - Grok: Open
/marketplacein Grok Build and installmongodb.
Using the setup script
You can manually set up the local MCP server by running the following command:
npx -y mongodb-mcp-server@latest setup
This will guide you through an interactive setup process, including configuring your MongoDB connection string or Atlas API credentials.
For more advanced setup options, see the Manual Setup section below.
Using the MongoDB MCP Server setup skill
You can add and use the MongoDB MCP Server setup skill to configure your local MCP server using an AI agent.
npx skills add https://github.com/mongodb/agent-skills --skill mongodb-mcp-setup
Using manual configuration
See Manual Setup for instructions on how to manually configure the MongoDB MCP Server.
📚 Table of Contents
- 🚀 Getting Started
- 🛠️ Supported Tools
- 📄 Supported Resources
- ⚙️ Configuration
- 🚀 Deploy on Public Clouds
- 🤝 Contributing
Prerequisites
[!NOTE]
Node 20.x support is deprecated and will be removed in a future release. Please upgrade to Node 22.13 or later. See https://nodejs.org/en/blog/migrations/v20-to-v22 for migration details.
-
Node.js
- At least v22.13.0. Check with
node -v.
- At least v22.13.0. Check with
-
A MongoDB connection string or Atlas API credentials.
- Service Accounts Atlas API credentials are required to use the Atlas tools. You can create a service account in MongoDB Atlas and use its credentials for authentication. See Atlas API Access for more details.
- If you have a MongoDB connection string, you can use it directly to connect to your MongoDB instance.
Manual Setup
🔒 Security Recommendation 1: When using Atlas API credentials, be sure to assign only the minimum required permissions to your service account. See Atlas API Permissions for details.
🔒 Security Recommendation 2: For enhanced security, we strongly recommend using environment variables to pass sensitive configuration such as connection strings and API credentials instead of command line arguments. Command line arguments can be visible in process lists and logged in various system locations, potentially exposing your secrets. Environment variables provide a more secure way to handle sensitive information.
Most MCP clients require a configuration file to be created or modified to add the MCP server.
Note: The configuration file syntax can be different across clients. Please refer to the following links for the latest expected syntax:
Default Safety Notice: All examples below include
--readOnlyby default to ensure safe, read-only access to your data. Remove--readOnlyif you need to enable write operations.
Option 1: Connection String
You can pass your connection string via environment variables, make sure to use a valid username and password.
{
"mcpServers": {
"MongoDB": {
"command": "npx",
"args": ["-y", "mongodb-mcp-server@latest", "--readOnly"],
"env": {
"MDB_MCP_CONNECTION_STRING": "mongodb://localhost:27017/myDatabase"
}
}
}
}
NOTE: The connection string can be configured to connect to any MongoDB cluster, whether it's a local instance or an Atlas cluster.
Option 2: Connect to the MongoDB Atlas-Managed MCP Server
When working with MongoDB Atlas, the recommended approach is to install the mongodb-atlas plugin for your AI agent, which handles OAuth authentication automatically.
For manual configuration, see the client-specific instructions for setting up the Atlas Remote MCP server with OAuth. Alternatively, you can connect using the mongodb-atlas-mcp-remote package with Service Account credentials — see the package README for setup instructions.
Note: You cannot authenticate to the remote MongoDB MCP server using a static API key over HTTP. You must either:
- Use a client that supports the OAuth flow.
- Use the
mongodb-atlas-mcp-remotestdio server, which you can authenticate into using the staticMDB_MCP_API_CLIENT_IDandMDB_MCP_API_CLIENT_SECRETenvironment variables.
To connect with the mongodb-atlas-mcp-remote stdio server using Service Account credentials, add it to your client's MCP configuration:
{
"mcpServers": {
"mongodb-atlas-mcp-remote": {
"type": "stdio",
"command": "npx",
"args": ["-y", "mongodb-atlas-mcp-remote@latest"],
"env": {
"MDB_MCP_API_CLIENT_ID": "$CLIENT_ID",
"MDB_MCP_API_CLIENT_SECRET": "$SECRET"
}
}
}
}
Option 3: Atlas API Credentials
Use your Atlas API Service Accounts credentials. Must follow all the steps in Atlas API Access section.
{
"mcpServers": {
"MongoDB": {
"command": "npx",
"args": ["-y", "mongodb-mcp-server@latest", "--readOnly"],
"env": {
"MDB_MCP_API_CLIENT_ID": "your-atlas-service-accounts-client-id",
"MDB_MCP_API_CLIENT_SECRET": "your-atlas-service-accounts-client-secret"
}
}
}
}
Option 4: Standalone Service using environment variables and command line arguments
You can source environment variables defined in a config file or explicitly set them like we do in the example below and run the server via npx.
## Set your credentials as environment variables first
export MDB_MCP_API_CLIENT_ID="your-atlas-service-accounts-client-id"
export MDB_MCP_API_CLIENT_SECRET="your-atlas-service-accounts-client-secret"
## Then start the server
npx -y mongodb-mcp-server@latest --readOnly
💡 Platform Note: The examples above use Unix/Linux/macOS syntax. For Windows users, see Environment Variables for platform-specific instructions.
- For a complete list of configuration options see Configuration Options
- To configure your Atlas Service Accounts credentials please refer to Atlas API Access
- Connection String via environment variables in the MCP file example
- Atlas API credentials via environment variables in the MCP file example
Option 5: Using Docker
You can run the MongoDB MCP Server in a Docker container, which provides isolation and doesn't require a local Node.js installation.
Run with Environment Variables
You may provide either a MongoDB connection string OR Atlas API credentials:
Option A: No configuration
docker run --rm -i \
mongodb/mongodb-mcp-server:latest
Option B: With MongoDB connection string
## Set your credentials as environment variables first
export MDB_MCP_CONNECTION_STRING="mongodb+srv://username:password@cluster.mongodb.net/myDatabase"
## Then start the docker container
docker run --rm -i \
-e MDB_MCP_CONNECTION_STRING \
-e MDB_MCP_READ_ONLY="true" \
mongodb/mongodb-mcp-server:latest
💡 Platform Note: The examples above use Unix/Linux/macOS syntax. For Windows users, see Environment Variables for platform-specific instructions.
Option C: With Atlas API credentials
## Set your credentials as environment variables first
export MDB_MCP_API_CLIENT_ID="your-atlas-service-accounts-client-id"
export MDB_MCP_API_CLIENT_SECRET="your-atlas-service-accounts-client-secret"
## Then start the docker container
docker run --rm -i \
-e MDB_MCP_API_CLIENT_ID \
-e MDB_MCP_API_CLIENT_SECRET \
-e MDB_MCP_READ_ONLY="true" \
mongodb/mongodb-mcp-server:latest
💡 Platform Note: The examples above use Unix/Linux/macOS syntax. For Windows users, see Environment Variables for platform-specific instructions.
Docker in MCP Configuration File
Without options:
{
"mcpServers": {
"MongoDB": {
"command": "docker",
"args": [
"run",
"--rm",
"-e",
"MDB_MCP_READ_ONLY=true",
"-i",
"mongodb/mongodb-mcp-server:latest"
]
}
}
}
With connection string:
{
"mcpServers": {
"MongoDB": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"MDB_MCP_CONNECTION_STRING",
"-e",
"MDB_MCP_READ_ONLY=true",
"mongodb/mongodb-mcp-server:latest"
],
"env": {
"MDB_MCP_CONNECTION_STRING": "mongodb+srv://username:password@cluster.mongodb.net/myDatabase"
}
}
}
}
With Atlas API credentials:
{
"mcpServers": {
"MongoDB": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"MDB_MCP_READ_ONLY=true",
"-e",
"MDB_MCP_API_CLIENT_ID",
"-e",
"MDB_MCP_API_CLIENT_SECRET",
"mongodb/mongodb-mcp-server:latest"
],
"env": {
"MDB_MCP_API_CLIENT_ID": "your-atlas-service-accounts-client-id",
"MDB_MCP_API_CLIENT_SECRET": "your-atlas-service-accounts-client-secret"
}
}
}
}
HTTP Compatibility
For custom HTTP clients and hosts, see the library guide's HTTP compatibility requirements, including protocol headers, redirects, legacy sessions, and request size limits.
🛠️ Supported Tools
Tool List
MongoDB Database Tools
aggregate- Run an aggregation against a MongoDB collectionaggregate-db- Run an aggregation against a MongoDB databasecollection-indexes- Describe the indexes for a collectioncollection-schema- Describe the schema for a collectioncollection-storage-size- Gets the size of the collectionconnect- Connect to a MongoDB instancecount- Gets the number of documents in a MongoDB collection using db.collection.count() and query as an optional filter parametercreate-collection- Creates a new collection in a database. If the database doesn't exist, it will be created automatically.create-index- Create an index for a collectiondb-stats- Returns statistics that reflect the use state of a single databasedelete-many- Removes all documents that match the filter from a MongoDB collectiondisconnect- Close a MongoDB connection and revoke its connectionId.drop-collection- Removes a collection or view from the database. The method also removes any indexes associated with the dropped collection.drop-database- Removes the specified database, deleting the associated data filesdrop-index- Drop an index for the provided database and collection.explain- Returns statistics describing the execution of the winning plan chosen by the query optimizer for the evaluated methodexport- Export a query or aggregation results in the specified EJSON format.find- Run a find query against a MongoDB collectioninsert-many- Insert an array of documents into a MongoDB collection. If the list of documents is above com.mongodb/maxRequestPayloadBytes, consider inserting them in batches.list-collections- List all collections for a given databaselist-connections- List the active MongoDB connections and their connectionIds. Use this to find a connectionId established earlier.list-databases- List all databases for a MongoDB connectionmongodb-logs- Returns the most recent logged mongod eventsrename-collection- Renames a collection in a MongoDB databaseupdate-many- Updates all documents that match the specified filter for a collection. If the list of documents is above com.mongodb/maxRequestPayloadBytes, consider updating them in batches.
MongoDB Atlas Tools
atlas-connect-cluster- Connect to MongoDB Atlas cluster and get back a connectionId to pass to the other MongoDB tools. Each call establishes a new, independent connection — multiple connections can be active at the same time.atlas-create-access-list- Allow Ip/CIDR ranges to access your MongoDB Atlas clusters.atlas-create-cluster- Create a MongoDB Atlas cluster (M10–M80, replica set or single shard). Compute autoscaling is enabled by default: min instance size is set to the selected instance size, max is set two tiers above. Disk autoscaling is always enabled. Encryption at rest with customer-managed keys (CMK) is supported, the CMK provider must already have a valid encryption at rest configuration in the project. The tool returns immediately, use the atlas-inspect-cluster tool to poll the cluster state for readiness (state: IDLE). Connection strings are unavailable until the cluster reaches IDLE state.atlas-create-db-user- Create an MongoDB Atlas database useratlas-create-free-cluster- Create a free MongoDB Atlas clusteratlas-create-project- Create a MongoDB Atlas projectatlas-get-performance-advisor- Get MongoDB Atlas performance advisor recommendations and suggestions, which includes the operations: suggested indexes, drop index suggestions, schema suggestions, and a sample of the most recent (max 50) slow query logsatlas-get-regions- List supported MongoDB Atlas regions for a cloud provider.atlas-inspect-access-list- Inspect Ip/CIDR ranges with access to your MongoDB Atlas clusters.atlas-inspect-cluster- Inspect metadata of a MongoDB Atlas clusteratlas-list-alerts- List triggered alerts for a MongoDB Atlas project. These are alerts Atlas has raised, not the alert configurations that define them. Defaults to OPEN alerts; set status to TRACKING or CLOSED to see others.atlas-list-clusters- List MongoDB Atlas clustersatlas-list-db-users- List MongoDB Atlas database usersatlas-list-orgs- List MongoDB Atlas organizationsatlas-list-projects- List MongoDB Atlas projects.atlas-load-sample-dataset- Load a MongoDB sample dataset into an Atlas cluster, or check the status of a previously-initiated load. To start a new load, provideclusterName— the load runs asynchronously and the response includes ajobIdand initial state. To check progress, call this tool again withjobId(sample dataset loads typically take 1–5 minutes). State can be WORKING, COMPLETED, or FAILED.atlas-pause-resume-cluster- Pause or resume a dedicated (M10+) MongoDB Atlas cluster.atlas-streams-build- Create Atlas Stream Processing resources. Use this tool for 'set up a Kafka pipeline', 'create a workspace', 'add a connection', or 'deploy a processor'. Use resource='workspace' to create a new workspace (specify cloud provider, region, and tier). Use resource='connection' to add a data source or sink to an existing workspace. Use resource='processor' to deploy a stream processor with a pipeline. Use resource='privatelink' to set up private networking. Typical workflow: create workspace → add connections → deploy processor.atlas-streams-discover- Discover and inspect Atlas Stream Processing resources. Also use for 'why is my processor failing', 'what workspaces do I have', 'show processor stats', or 'check processor health'. Use 'list-workspaces' to see all workspaces in a project. Use inspect actions for details on a specific resource. Use 'diagnose-processor' for a combined health report including state, stats, connection health, and recent errors. Use 'get-networking' for PrivateLink and account details.atlas-streams-manage- Manage Atlas Stream Processing resources: start/stop processors, modify pipelines, update configurations. Also use for 'change the pipeline', 'scale up my processor', or 'update my workspace tier'. Common workflow: action='stop-processor' → action='modify-processor' → action='start-processor'. Useatlas-streams-discoverwith action 'inspect-processor' to check state before managing.atlas-streams-teardown- Delete Atlas Stream Processing resources. Also use for 'remove my workspace', 'disconnect a source', 'delete all processors', or 'clean up my streams environment'. Performs basic safety checks before deletion: summarizes counts of processors and connections, highlights connections referenced by processors where possible, and surfaces API errors if processors are still running when deletion is attempted. Useatlas-streams-discoverto review resources before deleting.atlas-upgrade-cluster- Upgrade or scale a MongoDB Atlas cluster. Free and Flex clusters can be upgraded to Flex or M10 Dedicated. Dedicated clusters can be scaled to a different instance size, and compute autoscaling settings can be updated. When scaling a Dedicated cluster, at least one of targetTier, computeAutoScaling, minInstanceSize, or maxInstanceSize must be provided. Compute autoscaling defaults to enabled when upgrading to M10 Dedicated: min instance size is set to the selected instance size, max is set two tiers above, unless overridden. Note to LLM: If provider and region are not already known, ask for both together in a single question before calling this tool. Use atlas-get-regions to resolve natural-language locations or uncertain region codes before calling this tool.
NOTE: atlas tools are only available when you set credentials on configuration section.
MongoDB Atlas Local Tools
atlas-local-connect-deployment- Connect to a MongoDB Atlas Local deployment and get back a connectionId to pass to the other MongoDB toolsatlas-local-create-deployment- Create a MongoDB Atlas local deployment. Default image is latest. When the user does not specify an image tag, inform them that latest is used by default and provide this link for more information: https://hub.docker.com/r/mongodb/mongodb-atlas-localatlas-local-delete-deployment- Delete a MongoDB Atlas local deploymentatlas-local-list-deployments- List MongoDB Atlas local deployments
MongoDB Assistant Tools
list-knowledge-sources- List available data sources in the MongoDB Assistant knowledge base. Use this to explore available data sources or to find search filter parameters to use in search-knowledge.search-knowledge- Search for information in the MongoDB Assistant knowledge base. This includes official documentation, curated expert guidance, and other resources provided by MongoDB. Supports filtering by data source and version.
📄 Supported Resources
config- Server configuration, supplied by the user either as environment variables or as startup arguments with sensitive parameters redacted. The resource can be accessed under URIconfig://config.debug- Debugging information for MongoDB connectivity issues. Tracks the last connectivity attempt and error information. The resource can be accessed under URIdebug://mongodb.exported-data- A resource template to access the data exported using the export tool. The template can be accessed under URIexported-data://{exportName}whereexportNameis the unique name for an export generated by the export tool.
Configuration
🔒 Security Best Practice: We strongly recommend using environment variables for sensitive configuration such as API credentials (
MDB_MCP_API_CLIENT_ID,MDB_MCP_API_CLIENT_SECRET) and connection strings (MDB_MCP_CONNECTION_STRING) instead of command-line arguments. Environment variables are not visible in process lists and provide better security for your sensitive data.
The MongoDB MCP Server can be configured using multiple methods, with the following precedence (highest to lowest):
- Command-line arguments
- Environment variables
- Configuration File
Configuration Options
| Environment Variable / CLI Option | Default | Description |
|---|---|---|
MDB_MCP_AGGREGATION_COUNT_MAX_TIME_MS_CAP / --aggregationCountMaxTimeMsCap | <not set> | Deprecated. Use aggregationCountTimeoutMs instead. |
MDB_MCP_AGGREGATION_COUNT_TIMEOUT_MS / --aggregationCountTimeoutMs | 60000 | The maximum time in milliseconds for the count phase of aggregation operations. This is used to limit the time spent counting documents when determining if results were capped. |
MDB_MCP_ALLOW_REQUEST_OVERRIDES / --allowRequestOverrides | false | When set to true, allows configuration values to be overridden via request headers and query parameters. |
MDB_MCP_API_CLIENT_ID / --apiClientId | <not set> | Atlas API client ID for authentication. Required for running Atlas tools. |
MDB_MCP_API_CLIENT_SECRET / --apiClientSecret | <not set> | Atlas API client secret for authentication. Required for running Atlas tools. |
MDB_MCP_ASSISTANT_BASE_URL / --assistantBaseUrl | "https://knowledge.mongodb.com/api/v1/" | Base URL for the MongoDB Assistant API. |
MDB_MCP_ATLAS_TEMPORARY_DATABASE_USER_LIFETIME_MS / --atlasTemporaryDatabaseUserLifetimeMs | 14400000 | Time in milliseconds that temporary database users created when connecting to MongoDB Atlas clusters will remain active before being automatically deleted. |
MDB_MCP_CONFIRMATION_REQUIRED_TOOLS / --confirmationRequiredTools | "atlas-create-access-list,atlas-create-db-user,drop-database,drop-collection,delete-many,drop-index,atlas-streams-manage,atlas-streams-teardown" | Comma separated values of tool names that require user confirmation before execution. Requires the client to support elicitation. |
MDB_MCP_CONNECTION_IDLE_TIMEOUT_MS / --connectionIdleTimeoutMs | 600000 | Milliseconds a MongoDB connection may stay unused (no tool call touching it) before it is closed to release the underlying connection pool and its server-side state. Applied per connection regardless of its connection scope; the preconfigured connection is excluded, and the reaper runs on this cadence. Set to 0 to disable reaping; must not be negative. |
MDB_MCP_CONNECTION_SCOPE / --connectionScope | "session" | Visibility scope for MongoDB connections created at runtime. With 'session' (the default), each MCP session only sees the connections it created (plus the shared 'preconfigured' one) and they are closed when the session ends. With 'global', connections are shared across all sessions and survive session rotation. Deprecated: the MCP protocol is moving to sessionless, so this option will soon be removed and the connection scope will default to 'global'. For shared-server use cases, use the Atlas-Managed MCP server or build an authenticated library using the @mongodb-js/mcp-cli package. Note: on the sessionless (2026-07-28) HTTP path, a request without an mcp-session-id falls back to the shared ('global') scope so it can still persist connections across requests; the legacy sessionful path always carries a server-issued session. |
MDB_MCP_CONNECTION_STRING / --connectionString | <not set> | MongoDB connection string for direct database connections, exposed under the connectionId "preconfigured". Optional, if not set, you'll need to call the connect tool before interacting with MongoDB data. Deprecated: prefer the "preconfigured" entry of connectionStrings. |
MDB_MCP_CONNECTION_STRINGS | "{}" | MongoDB connection strings keyed by name, as a JSON object (e.g. {"preconfigured": "mongodb://...", "analytics": "mongodb://..."}). Each name becomes a connectionId that the MongoDB tools can use directly, so one server can reach several deployments. Connections are opened on first use. Environment variable or config file only. |
MDB_MCP_DANGEROUS_HOST_BINDING / --dangerousHostBinding | false | When set to true, allows binding the HTTP server (and monitoring server) to a non-loopback host such as 0.0.0.0, a LAN IP, or an empty host (all interfaces). Binding to a non-loopback host exposes the server to the entire network and can allow unauthorized access. Off by default: the server refuses to start on a non-loopback host unless this is true. |
MDB_MCP_DISABLE_SERVER_SIDE_JS / --disableServerSideJs | true | When set to true, disallows the use of server-side JavaScript operators (such as $where, $function, and $accumulator) in query filters and aggregation pipelines. |
MDB_MCP_DISABLE_UNTRUSTED_DATA_WARNING / --disableUntrustedDataWarning | false | When set to true, tool responses include potentially untrusted data (such as documents or query results) as-is, without wrapping it in delimiters and a prompt-injection warning. |
MDB_MCP_DISABLED_TOOLS / --disabledTools | "" | Comma separated values of tool names, operation types, and/or categories of tools that will be disabled. |
MDB_MCP_DRY_RUN / --dryRun | false | When true, runs the server in dry mode: dumps configuration and enabled tools, then exits without starting the server. |
MDB_MCP_ELICITATION_TIMEOUT_MS / --elicitationTimeoutMs | 300000 | Time in milliseconds the user has to respond to an elicitation request (such as a tool confirmation prompt) before it fails. |
MDB_MCP_EVICTION_IDLE_GRACE_M_S / --evictionIdleGraceMS | 120000 | How long a session must be idle before it becomes eligible for least-recently-used eviction when the HTTP transport is at its maxSessions cap (only used when transport is 'http'). Swept back to idleTimeoutMs when larger. |
MDB_MCP_EXPORT_CLEANUP_INTERVAL_MS / --exportCleanupIntervalMs | 120000 | Time in milliseconds between export cleanup cycles that remove expired export files. |
MDB_MCP_EXPORT_TIMEOUT_MS / --exportTimeoutMs | 300000 | Time in milliseconds after which an export is considered expired and eligible for cleanup. |
MDB_MCP_EXPORTS_PATH / --exportsPath | see below* | Folder to store exported data files. |
MDB_MCP_EXTERNALLY_MANAGED_SESSIONS / --externallyManagedSessions | false | When true, the 2025-era HTTP transport accepts a session ID supplied externally through the 'mcp-session-id' header. When an external ID is supplied, the initialization request is optional, and an implicitly re-initialized session restores the client's previously negotiated capabilities from the session store. |
MDB_MCP_HEALTH_CHECK_HOST / --healthCheckHost | <not set> | Deprecated. Use monitoringServerHost instead. Host address to bind the healthCheck HTTP server to (only used when transport is 'http'). If provided, healthCheckPort must also be set. |
MDB_MCP_HEALTH_CHECK_PORT / --healthCheckPort | <not set> | Deprecated. Use monitoringServerPort instead. Port number for the healthCheck HTTP server (only used when transport is 'http'). If provided, healthCheckHost must also be set. |
MDB_MCP_HTTP_BODY_LIMIT / --httpBodyLimit | 102400 | Maximum size of the HTTP request body in bytes (only used when transport is 'http'). This value is passed as the optional limit parameter to the Express.js json() middleware. |
MDB_MCP_HTTP_HEADERS / --httpHeaders | "{}" | Header that the HTTP server will validate when making requests (only used when transport is 'http'). |
MDB_MCP_HTTP_HOST / --httpHost | "127.0.0.1" | Host address to bind the HTTP server to (only used when transport is 'http'). |
MDB_MCP_HTTP_PORT / --httpPort | 3000 | Port number for the HTTP server (only used when transport is 'http'). Use 0 for a random port. |
MDB_MCP_HTTP_RESPONSE_TYPE / --httpResponseType | "sse" | The HTTP response type for tool responses: 'sse' for Server-Sent Events, 'json' for standard JSON responses. |
MDB_MCP_IDLE_TIMEOUT_MS / --idleTimeoutMs | 600000 | Idle timeout for a client to disconnect (only applies to http transport). |
MDB_MCP_INDEX_CHECK / --indexCheck | false | When set to true, enforces that query operations must use an index, rejecting queries that perform a collection scan. |
MDB_MCP_LOG_PATH / --logPath | see below* | Folder to store logs. |
MDB_MCP_LOGGERS / --loggers | "disk,mcp" see below* | Comma separated values of logger types. |
MDB_MCP_MAX_ACTIVE_CONNECTIONS / --maxActiveConnections | 10 | Maximum number of MongoDB connections a single scope (an MCP session by default, see connectionScope) can hold open. When exceeded, the scope's least-recently-used connection is closed and its connectionId revoked. The preconfigured connection does not count towards the limit. |
MDB_MCP_MAX_BYTES_PER_QUERY / --maxBytesPerQuery | 16777216 | The maximum size in bytes for results from a find or aggregate tool call. This serves as an upper bound for the responseBytesLimit parameter in those tools. |
MDB_MCP_MAX_DOCUMENTS_PER_QUERY / --maxDocumentsPerQuery | 100 | The maximum number of documents that can be returned by a find or aggregate tool call. For the find tool, the effective limit will be the smaller of this value and the tool's limit parameter. |
MDB_MCP_MAX_SESSIONS / --maxSessions | 1000 | Maximum number of concurrent sessions the HTTP transport will hold in memory (only used when transport is 'http'). Each session holds a full server instance, transport, and timers, so choose a value based on your deployment's available memory; the default is a conservative safety net rather than a recommended production value. |
MDB_MCP_MAX_TIME_M_S / --maxTimeMS | <not set> | Deprecated. Use timeoutMs instead. The maximum time in milliseconds that operations are allowed to run on the MongoDB server. |
MDB_MCP_MCP_CLIENT_LOG_LEVEL / --mcpClientLogLevel | "debug" | Minimum severity level for log messages forwarded to the MCP client. |
MDB_MCP_MONITORING_SERVER_FEATURES / --monitoringServerFeatures | "health-check" | Features to expose on the monitoring server: health-check, metrics, and process-metrics. process-metrics exposes /metrics with Node.js process metrics (only used when transport is 'http' and monitoringServerHost/monitoringServerPort are set). |
MDB_MCP_MONITORING_SERVER_HOST / --monitoringServerHost | <not set> | Host address to bind the monitoring HTTP server to (only used when transport is 'http'). If provided, monitoringServerPort must also be set. |
MDB_MCP_MONITORING_SERVER_PORT / --monitoringServerPort | <not set> | Port number for the monitoring HTTP server (only used when transport is 'http'). If provided, monitoringServerHost must also be set. |
MDB_MCP_NOTIFICATION_TIMEOUT_MS / --notificationTimeoutMs | 540000 | Notification timeout for a client to be aware of disconnect (only applies to http transport). |
MDB_MCP_PREVIEW_FEATURES / --previewFeatures | "" | Comma separated values of preview features that are enabled. |
MDB_MCP_QUERY_COUNT_MAX_TIME_MS_CAP / --queryCountMaxTimeMsCap | <not set> | Deprecated. Use queryCountTimeoutMs instead. |
MDB_MCP_QUERY_COUNT_TIMEOUT_MS / --queryCountTimeoutMs | 10000 | The maximum time in milliseconds for the count phase of find operations. This is used to limit the time spent counting documents when determining if results were capped. |
MDB_MCP_READ_ONLY / --readOnly | false | When set to true, only allows read, connect, and metadata operation types, disabling create/update/delete operations. |
MDB_MCP_TELEMETRY / --telemetry | "enabled" | When set to disabled, disables telemetry collection. |
MDB_MCP_TIMEOUT_MS / --timeoutMs | <not set> | The maximum time in milliseconds that MongoDB operations are allowed to run, applied as the driver's timeoutMS (client-side operation timeout, CSOT) on each connection. It bounds the entire operation, including server selection and network round trips. |
MDB_MCP_TRANSPORT / --transport | "stdio" | Either 'stdio' or 'http'. |
MDB_MCP_VOYAGE_API_KEY / --voyageApiKey | "" | API key for Voyage AI embeddings service (required for creating Atlas Local deployments with auto-embed vector search capabilities). |
Logger Options
The loggers configuration option controls where logs are sent. You can specify one or more logger types as a comma-separated list. The available options are:
mcp: Sends logs to the MCP client (if supported by the client/transport).disk: Writes logs to disk files. Log files are stored in the log path (seelogPathabove).stderr: Outputs logs to standard error (stderr), useful for debugging or when running in containers.
Default: disk,mcp (logs are written to disk and sent to the MCP client).
You can combine multiple loggers, e.g. --loggers disk stderr or export MDB_MCP_LOGGERS="mcp,stderr".
Example: Set logger via environment variable
export MDB_MCP_LOGGERS="disk,stderr"
💡 Platform Note: For Windows users, see Environment Variables for platform-specific instructions.
Example: Set logger via command-line argument
npx -y mongodb-mcp-server@latest --loggers mcp stderr
Log File Location
When using the disk logger, log files are stored in:
- Windows:
%LOCALAPPDATA%\mongodb\mongodb-mcp\.app-logs - macOS/Linux:
~/.mongodb/mongodb-mcp/.app-logs
You can override the log directory with the logPath option.
🔒 Security Guideline: The user account running the MCP server must have both read and write permissions to the
logPathdirectory. Ensure this directory is properly secured with appropriate file system permissions to prevent unauthorized access to log files.
Disabled Tools
You can disable specific tools or categories of tools by using the disabledTools option. This option accepts an array of strings,
where each string can be a tool name, operation type, or category.
The way the array is constructed depends on the type of configuration method you use:
- For environment variable configuration, use a comma-separated string:
export MDB_MCP_DISABLED_TOOLS="create,update,delete,atlas,collectionSchema". - For command-line argument configuration, use a space-separated string:
--disabledTools create update delete atlas collectionSchema.
Categories of tools:
atlas- MongoDB Atlas tools, such as list clusters, create cluster, etc.mongodb- MongoDB database tools, such as find, aggregate, etc.
Operation types:
create- Tools that create resources, such as create cluster, insert document, etc.update- Tools that update resources, such as update document, rename collection, etc.delete- Tools that delete resources, such as delete document, drop collection, etc.read- Tools that read resources, such as find, aggregate, list clusters, etc.metadata- Tools that read metadata, such as list databases/collections/indexes, infer collection schema, etc.connect- Tools that allow you to connect or switch the connection to a MongoDB instance. If this is disabled, you will need to provide a connection string through the config when starting the server.
Require Confirmation
If your client supports elicitation, you can set the MongoDB MCP server to request user confirmation before executing certain tools.
When a tool is marked as requiring confirmation, the server will send an elicitation request to the client. The client with elicitation support will then prompt the user for confirmation and send the response back to the server. If the client does not support elicitation, the tool will execute without confirmation.
You can set the confirmationRequiredTools configuration option to specify the names of tools which require confirmation. By default, the following tools have this setting enabled: drop-database, drop-collection, delete-many, drop-index, atlas-create-db-user, atlas-create-access-list, atlas-streams-manage, atlas-streams-teardown.
In addition, the aggregate and aggregate-db tools always request confirmation before running a pipeline that contains a $out or $merge stage, regardless of whether they appear in confirmationRequiredTools. Those stages write to a collection — $out replaces its contents entirely — so this confirmation names the affected collection and what will happen to it. Pipelines without a write stage are not confirmed.
Adding either tool to confirmationRequiredTools is broader: every call is then confirmed up front with the standard tool-level message, and a write stage does not raise a second prompt.
Unattended and CI agents
Some clients advertise elicitation support but have no user to answer the prompt, for example when running non-interactively (such as codex exec) or in CI. In that case the elicitation is not accepted, the server treats it as a decline, and the tool returns User did not confirm the execution of the `<tool>` tool so the operation was not performed. Nothing is changed, and the agent run may still exit successfully, so the failure is easy to miss.
If you run the server with an unattended agent and want confirmation-gated tools (such as delete-many) to execute, disable the confirmation prompts by setting confirmationRequiredTools to an empty value:
MDB_MCP_CONFIRMATION_REQUIRED_TOOLS="" npx -y mongodb-mcp-server
or pass --confirmationRequiredTools "". Only do this when the agent is trusted to run destructive operations without a human in the loop. Consider combining it with a read-only or disabled tools configuration, or with a database user that has limited privileges.
Read-Only Mode
The readOnly configuration option allows you to restrict the MCP server to only use tools with "read", "connect", and "metadata" operation types. When enabled, all tools that have "create", "update" or "delete" operation types will not be registered with the server.
This is useful for scenarios where you want to provide access to MongoDB data for analysis without allowing any modifications to the data or infrastructure.
You can enable read-only mode using:
- Environment variable:
export MDB_MCP_READ_ONLY=true - Command-line argument:
--readOnly
💡 Platform Note: For Windows users, see Environment Variables for platform-specific instructions.
When read-only mode is active, you'll see a message in the server logs indicating which tools were prevented from registering due to this restriction.
Index Check Mode
The indexCheck configuration option allows you to enforce that query operations must use an index. When enabled, queries that perform a collection scan will be rejected to ensure better performance.
This is useful for scenarios where you want to ensure that database queries are optimized.
You can enable index check mode using:
- Environment variable:
export MDB_MCP_INDEX_CHECK=true - Command-line argument:
--indexCheck
💡 Platform Note: For Windows users, see Environment Variables for platform-specific instructions.
When index check mode is active, you'll see an error message if a query is rejected due to not using an index.
Exports
The data exported by the export tool is temporarily stored in the configured exportsPath on the machine running the MCP server until cleaned up by the export cleanup process. If the exportsPath configuration is not provided, the following defaults are used:
- Windows:
%LOCALAPPDATA%\mongodb\mongodb-mcp\exports - macOS/Linux:
~/.mongodb/mongodb-mcp/exports
The exportTimeoutMs configuration controls the time after which the exported data is considered expired and eligible for cleanup. By default, exports expire after 5 minutes (300000ms).
The exportCleanupIntervalMs configuration controls how frequently the cleanup process runs to remove expired export files. By default, cleanup runs every 2 minutes (120000ms).
🔒 Security Guideline: The user account running the MCP server must have both read and write permissions to the
exportsPathdirectory. Ensure this directory is properly secured with appropriate file system permissions to prevent unauthorized access to exported data files, which may contain sensitive MongoDB data. Consider the sensitivity of your data when choosing the export location and apply restrictive permissions accordingly.
Telemetry
The telemetry configuration option allows you to disable telemetry collection. When enabled, the MCP server will collect usage data and send it to MongoDB.
You can disable telemetry using:
- Environment variable:
export MDB_MCP_TELEMETRY=disabled - Command-line argument:
--telemetry disabled - DO_NOT_TRACK environment variable:
export DO_NOT_TRACK=1
💡 Platform Note: For Windows users, see Environment Variables for platform-specific instructions.
Opting into Preview Features
The MongoDB MCP Server may offer functionality that is still in development and may change in future releases. These features are considered "preview features" and are not enabled by default. Generally, these features are well tested, but may not offer the complete functionality we intend to provide in the final release or we'd like to gather feedback before making them generally available. To enable one or more preview features, use the previewFeatures configuration option.
- For environment variable configuration, use a comma-separated string:
export MDB_MCP_PREVIEW_FEATURES="feature1,feature2". - For command-line argument configuration, use a space-separated string:
--previewFeatures feature1 feature2.
List of available preview features:
mcpUI- Enables an optional web-based UI for interacting with the MCP server.
Monitoring Server (Health Check & Metrics)
When running with --transport http, you can expose a separate monitoring HTTP server for health checks and metrics. This server is only started when both monitoringServerHost and monitoringServerPort are set, and it listens on its own host/port (independent from the main httpHost/httpPort).
The features exposed are controlled by monitoringServerFeatures (default: health-check). Available features and their endpoints:
| Feature | Endpoint | Description |
|---|---|---|
health-check | /health | Returns 200 OK with a JSON body describing the server status. Useful for liveness probes. |
metrics | /metrics | Returns MCP server metrics in Prometheus text format. |
process-metrics | /metrics | Includes Node.js process metrics such as memory, CPU, and event loop usage. |
The /health response is sent with Cache-Control: no-store and has the following shape (status is always "ok" while the process is alive):
{
"status": "ok",
"version": "1.13.0",
"uptimeSeconds": 42,
"timestamp": "2026-06-20T12:00:00.000Z"
}
Example: start the server with the monitoring server enabled and call the health-check endpoint:
npx -y mongodb-mcp-server@latest --transport http --httpHost 0.0.0.0 --httpPort 3000 --monitoringServerHost 0.0.0.0 --monitoringServerPort 8080 &
curl http://0.0.0.0:8080/health
## => {"status":"ok","version":"1.13.0","uptimeSeconds":42,"timestamp":"2026-06-20T12:00:00.000Z"}
To expose both endpoints, pass the features explicitly:
npx -y mongodb-mcp-server@latest --transport http --monitoringServerHost 0.0.0.0 --monitoringServerPort 8080 --monitoringServerFeatures health-check,metrics
Select process-metrics to expose /metrics with both MCP server metrics and Node.js process metrics. You do not need to select metrics as well:
npx -y mongodb-mcp-server@latest --transport http --monitoringServerHost 127.0.0.1 --monitoringServerPort 8080 --monitoringServerFeatures health-check,process-metrics
curl http://127.0.0.1:8080/metrics
💡 Note:
healthCheckHost/healthCheckPortare deprecated aliases formonitoringServerHost/monitoringServerPortand continue to serve the same/healthendpoint.
Atlas API Access
To use the Atlas API tools, you'll need to create a service account in MongoDB Atlas:
ℹ️ Note: For a detailed breakdown of the minimum required permissions for each Atlas operation, see the Atlas API Permissions section below.
- Create a Service Account:
- Log in to MongoDB Atlas at cloud.mongodb.com
- Navigate to Access Manager > Organization Access
- Click Add New > Applications > Service Accounts
- Enter name, description and expiration for your service account (e.g., "MCP, MCP Server Access, 7 days")
- Assign only the minimum permissions needed for your use case.
- See Atlas API Permissions for details.
- Click "Create"
To learn more about Service Accounts, check the MongoDB Atlas documentation.
-
Save Client Credentials:
- After creation, you'll be shown the Client ID and Client Secret
- Important: Copy and save the Client Secret immediately as it won't be displayed again
-
Add Access List Entry:
- Add your IP address to the API access list
-
Configure the MCP Server:
- Use one of the configuration methods below to set your
apiClientIdandapiClientSecret
- Use one of the configuration methods below to set your
Atlas API Permissions
Security Warning: Granting the Organization Owner role is rarely necessary and can be a security risk. Assign only the minimum permissions needed for your use case.
Quick Reference: Required roles per operation
| What you want to do | Safest Role to Assign (where) |
|---|---|
| List orgs/projects | Org Member or Org Read Only (Org) |
| Create new projects | Org Project Creator (Org) |
| View clusters/databases in a project | Project Read Only (Project) |
| Create/manage clusters in a project | Project Cluster Manager (Project) |
| Manage project access lists | Project IP Access List Admin (Project) |
| Manage database users | Project Database Access Admin (Project) |
| Manage stream processing resources | Project Stream Processing Owner (Project) |
- Prefer project-level roles for most operations. Assign only to the specific projects you need to manage or view.
- Avoid Organization Owner unless you require full administrative control over all projects and settings in the organization.
For a full list of roles and their privileges, see the Atlas User Roles documentation.
Configuration Methods
Configuration File
Store configuration in a JSON file and load it using the MDB_MCP_CONFIG environment variable.
🔒 Security Best Practice: Prefer using the
MDB_MCP_CONFIGenvironment variable for sensitive fields over the configuration file or--configCLI argument. Command-line arguments are visible in process listings.
🔒 File Security: Ensure your configuration file has proper ownership and permissions, limited to the user running the MongoDB MCP server:
Linux/macOS:
chmod 600 /path/to/config.json chown your-username /path/to/config.jsonWindows: Right-click the file → Properties → Security → Restrict access to your user account only.
Create a JSON file with your configuration (all keys use camelCase):
{
"connectionString": "mongodb://localhost:27017",
"readOnly": true,
"loggers": ["stderr", "mcp"],
"apiClientId": "your-atlas-service-accounts-client-id",
"apiClientSecret": "your-atlas-service-accounts-client-secret",
"maxDocumentsPerQuery": 100
}
Linux/macOS (bash/zsh):
export MDB_MCP_CONFIG="/path/to/config.json"
npx -y mongodb-mcp-server@latest
Windows Command Prompt (cmd):
set "MDB_MCP_CONFIG=C:\path\to\config.json"
npx -y mongodb-mcp-server@latest
Windows PowerShell:
$env:MDB_MCP_CONFIG="C:\path\to\config.json"
npx -y mongodb-mcp-server@latest
Environment Variables
Set environment variables with the prefix MDB_MCP_ followed by the option name in uppercase with underscores:
Linux/macOS (bash/zsh):
## Set Atlas API credentials (via Service Accounts)
export MDB_MCP_API_CLIENT_ID="your-atlas-service-accounts-client-id"
export MDB_MCP_API_CLIENT_SECRET="your-atlas-service-accounts-client-secret"
## Set a custom MongoDB connection string
export MDB_MCP_CONNECTION_STRING="mongodb+srv://username:password@cluster.mongodb.net/myDatabase"
## Set log path
export MDB_MCP_LOG_PATH="/path/to/logs"
Windows Command Prompt (cmd):
set "MDB_MCP_API_CLIENT_ID=your-atlas-service-accounts-client-id"
set "MDB_MCP_API_CLIENT_SECRET=your-atlas-service-accounts-client-secret"
set "MDB_MCP_CONNECTION_STRING=mongodb+srv://username:password@cluster.mongodb.net/myDatabase"
set "MDB_MCP_LOG_PATH=C:\path\to\logs"
Windows PowerShell:
## Set Atlas API credentials (via Service Accounts)
$env:MDB_MCP_API_CLIENT_ID="your-atlas-service-accounts-client-id"
$env:MDB_MCP_API_CLIENT_SECRET="your-atlas-service-accounts-client-secret"
## Set a custom MongoDB connection string
$env:MDB_MCP_CONNECTION_STRING="mongodb+srv://username:password@cluster.mongodb.net/myDatabase"
## Set log path
$env:MDB_MCP_LOG_PATH="C:\path\to\logs"
MCP configuration file examples
Connection String with environment variables
{
"mcpServers": {
"MongoDB": {
"command": "npx",
"args": ["-y", "mongodb-mcp-server"],
"env": {
"MDB_MCP_CONNECTION_STRING": "mongodb+srv://username:password@cluster.mongodb.net/myDatabase"
}
}
}
}
Atlas API credentials with environment variables
{
"mcpServers": {
"MongoDB": {
"command": "npx",
"args": ["-y", "mongodb-mcp-server"],
"env": {
"MDB_MCP_API_CLIENT_ID": "your-atlas-service-accounts-client-id",
"MDB_MCP_API_CLIENT_SECRET": "your-atlas-service-accounts-client-secret"
}
}
}
}
Command-Line Arguments
Pass configuration options as command-line arguments when starting the server:
🔒 Security Note: For sensitive configuration like API credentials and connection strings, use environment variables instead of command-line arguments.
## Set sensitive data as environment variable
export MDB_MCP_API_CLIENT_ID="your-atlas-service-accounts-client-id"
export MDB_MCP_API_CLIENT_SECRET="your-atlas-service-accounts-client-secret"
export MDB_MCP_CONNECTION_STRING="mongodb+srv://username:password@cluster.mongodb.net/myDatabase"
## Start the server with command line arguments
npx -y mongodb-mcp-server@latest --logPath=/path/to/logs --readOnly --indexCheck
💡 Platform Note: The examples above use Unix/Linux/macOS syntax. For Windows users, see Environment Variables for platform-specific instructions.
MCP configuration file examples
Connection String with command-line arguments
🔒 Security Note: We do not recommend passing connection string as command line argument. Connection string might contain credentials which can be visible in process lists and logged in various system locations, potentially exposing your credentials. Instead configure connection string through environment variables
{
"mcpServers": {
"MongoDB": {
"command": "npx",
"args": [
"-y",
"mongodb-mcp-server",
"mongodb+srv://username:password@cluster.mongodb.net/myDatabase",
"--readOnly"
]
}
}
}
Atlas API credentials with command-line arguments
🔒 Security Note: We do not recommend passing Atlas API credentials as command line argument. The provided credentials can be visible in process lists and logged in various system locations, potentially exposing your credentials. Instead configure Atlas API credentials through environment variables
{
"mcpServers": {
"MongoDB": {
"command": "npx",
"args": [
"-y",
"mongodb-mcp-server",
"--apiClientId",
"your-atlas-service-accounts-client-id",
"--apiClientSecret",
"your-atlas-service-accounts-client-secret",
"--readOnly"
]
}
}
}
Proxy Support
The MCP Server detects standard proxy environment variables and uses them for supported
outbound connections, including the Atlas Administration API, MongoDB cluster connections,
OIDC identity providers, and the MongoDB Assistant. The behaviour matches mongosh
(both rely on @mongodb-js/devtools-proxy-support),
so any proxy configuration that works with mongosh also works here.
Environment variables
Set the relevant variable before starting the server. The conventional *_PROXY
variables are honored:
| Variable | Purpose |
|---|---|
HTTPS_PROXY | Proxy used for HTTPS requests (Atlas API, OIDC, Assistant) |
HTTP_PROXY | Proxy used for plain HTTP requests |
ALL_PROXY | Fallback proxy used for all protocols |
NO_PROXY | Comma-separated list of hosts/domains that bypass the proxy |
## Route outbound traffic through a corporate proxy, except internal hosts
export HTTPS_PROXY="http://proxy.example.com:8080"
export NO_PROXY="localhost,127.0.0.1,*.internal.example.com"
Proxy in the connection string
For the MongoDB cluster connection specifically, you can configure a SOCKS5 proxy
directly in the connection string instead of using environment variables:
mongodb+srv://<host>/?proxyHost=127.0.0.1&proxyPort=1080&proxyUsername=user&proxyPassword=pass
Supported parameters: proxyHost, proxyPort, proxyUsername, proxyPassword.
Certificate authorities
For the HTTP(S) requests handled by @mongodb-js/devtools-proxy-support (the Atlas API,
OIDC, and the MongoDB Assistant), the operating system's certificate store is trusted in
addition to the bundled CAs — the same way mongosh does — so corporate root certificates
installed at the OS level are picked up automatically.
🚀Deploy on Public Clouds
You can deploy the MongoDB MCP Server to your preferred cloud provider using the deployment assets under deploy/. Each guide explains the prerequisites, configuration, and automation scripts that streamline the rollout.
Azure
For detailed Azure instructions, see deploy/azure/README.md.
Deployment Constraints
The CLI tool (mongodb-mcp-server / npx mongodb-mcp-server) is designed for single-user, localhost (or private) deployments where the operating user is the only principal. It ships with no built-in authentication, and the MCP protocol does not carry a verified end-user identity. It is not meant to serve multiple users — there is no authentication middleware in front of it to distinguish callers or control connection isolation.
As a result, if you expose it to a network — or run it as a shared server — you are responsible for the isolation guarantees:
- Internet exposure: binding to
0.0.0.0/::(or any non-loopback host) with no auth exposes an unauthenticated endpoint that can run MongoDB operations (including destructive ones) against the configured connection string. If you intentionally bind to a non-loopback host, you must setMDB_MCP_DANGEROUS_HOST_BINDING=true(see Configuration Options). - Multi-user isolation: connections are scoped by the (soon-to-be-removed)
connectionScopeoption, whose default is moving toglobal— every request shares one scope. Themcp-session-idheader that keys the scope on the sessionless path is client-asserted, not a security boundary, and requests without it fall into the shared scope. So multiple users can see and operate on each other's connections, including any Atlas temporary database user credentials. The server does not distinguish callers. To ensure proper isolation, you can either setup an authenticated middleware which controls themcp-session-idheader or provide a custom scoping mechanism using the@mongodb-js/mcp-*library packages.
Do not run the CLI tool as a shared, internet-facing endpoint without adding your own authentication and identity layer in front of it.
Use the library and add your own auth
For multi-tenant or public deployments, build an authenticated solution using the @mongodb-js/mcp-* library packages instead:
- Terminate authentication / user identity at your own proxy or middleware, and pass a verified principal into the request via
authInfo(the SDK'screateMcpHandlerand the legacy handler both forward it). - Supply a
connectionScopepolicy that keys on your verified end-user identity (e.g. the OIDCsubclaim) so each user's connections and credentials are isolated — do not let it fall back to the sharedglobalscope for multi-user traffic.
Already on MongoDB Atlas? For multi-tenant Atlas cluster usage, the simplest alternative is the MongoDB Atlas-Managed MCP server — a hosted, authenticated deployment that handles per-user identity (OAuth / service-account) for you instead of you standing up your own. See Option 2 above.
See MCP_SERVER_LIBRARY.md for the embedding API, createHttpTransportRunnerFromConfig / CliMcpHttpServer and the connectionScope policy seam, and the per-user scoping example to copy.
🤝Contributing
Interested in contributing? Great! Please check our Contributing Guide for guidelines on code contributions, standards, adding new tools, and troubleshooting information.
Questions
- Do MCP Toolbox for Databases and MongoDB MCP Server list the same price?
- Both listings report Free. Free to use. Pricing is reported by the maker and is not independently verified.
- Which has more upvotes, MCP Toolbox for Databases or MongoDB MCP Server?
- Both have 0 upvotes.
- What does each maker say MCP Toolbox for Databases and MongoDB MCP Server are for?
- MCP Toolbox for Databases: Google open-source MCP server for connecting agents to databases such as Postgres, MySQL and BigQuery. MongoDB MCP Server: MCP server for querying and managing MongoDB databases and MongoDB Atlas clusters.
MCP Toolbox for Databases alternatives·MongoDB MCP Server alternatives·All coding tools