PluginBench
Skill
Review
Audit score 70

mongodb-mcp-setup

mongodb/agent-skills

Configure MongoDB MCP server authentication and access control for agentic clients.

What is mongodb-mcp-setup?

This skill guides users through setting up the MongoDB MCP server with the correct authentication method (connection string, service account credentials, or Atlas Local) and access level. Use it when a user has the MongoDB MCP server installed but needs to configure environment variables or choose their connection approach.

  • Detects whether the user is running a shell-based client or Codex and tailors configuration instructions accordingly
  • Checks existing MongoDB MCP configuration and identifies gaps or partial setups
  • Presents three authentication options: connection string, Atlas service account credentials, or local Atlas with Docker
  • Guides through obtaining connection strings from MongoDB Atlas or self-hosted instances
  • Walks through creating MongoDB Atlas service accounts and configuring API access lists
  • Determines read-only vs read-write access requirements

How to install mongodb-mcp-setup

npx skills add https://github.com/mongodb/agent-skills --skill mongodb-mcp-setup
Prerequisites
  • MongoDB MCP server already installed
  • For Atlas Local option: Docker installed and running
  • For service account option: MongoDB Atlas organization access to create service accounts
Claude Code
Cursor
Windsurf
Cline

How to use mongodb-mcp-setup

  1. 1.Run Step 0 to detect your client type (shell-based or Codex)
  2. 2.Run Step 1 to check if credentials are already configured
  3. 3.If no valid configuration exists, proceed to Step 2 and choose an authentication option (A, B, or C)
  4. 4.For Option A (connection string): follow Step 3a to locate and prepare your connection string
  5. 5.For Option B (service account): follow Step 3b to create Atlas service account credentials and configure API access list
  6. 6.For Option C (Atlas Local): follow Step 3c to verify Docker is installed
  7. 7.Run Step 4 to determine read-only vs read-write access (skip for Atlas Local)
  8. 8.Run Step 5 to add credentials to your client configuration (shell profile or Codex config.toml)

Use cases

Good for
  • User has MongoDB MCP server installed but hasn't set MDB_MCP_CONNECTION_STRING or API credentials yet
  • User wants to switch from connection string auth to Atlas service account credentials for multi-cluster access
  • User needs to enable read-only mode on an existing MongoDB MCP setup
  • User is setting up local MongoDB testing with Atlas Local and Docker
  • User has partial credentials configured and needs to complete or update the setup
Who it's for
  • Developers setting up MongoDB MCP for the first time
  • MongoDB Atlas users needing service account authentication
  • Teams managing multi-cluster MongoDB environments
  • Developers doing local testing with Docker
  • Users of Claude, Cursor, Gemini CLI, Copilot CLI, or Codex agentic clients

mongodb-mcp-setup FAQ

What's the difference between the three authentication options?

Connection String (Option A) is fastest for single-cluster access with existing credentials. Service Account Credentials (Option B) is recommended for Atlas users and enables multi-cluster switching and Atlas Admin API access. Atlas Local (Option C) runs MongoDB locally in Docker with zero configuration, best for development and testing.

Why does Codex need credentials in config.toml instead of shell environment variables?

Codex is a desktop app that doesn't inherit shell environment variables when launched from Finder, Launchpad, or the Windows Start menu. Credentials must be stored in ~/.codex/config.toml (macOS/Linux) or %USERPROFILE%\.codex\config.toml (Windows) for the app to access them.

What should I do if I only have one of the two service account credentials?

Both MDB_MCP_API_CLIENT_ID and MDB_MCP_API_CLIENT_SECRET are required for service account authentication. If only one is present, the configuration is incomplete. Return to Step 3b to generate or retrieve the missing credential.

Is it safe to use 0.0.0.0/0 for the API Access List?

No. 0.0.0.0/0 allows access from any IP address and is a significant security risk. Only use it as a last resort for temporary testing and remove it immediately afterward. Always use your specific IP address or a narrow CIDR range in production.

Can I switch authentication methods after initial setup?

Yes. Remove the old credentials from your shell profile or config.toml first, then follow Steps 2–5 to set up the new method. The skill will detect your existing configuration and guide you through updates or switches.

Full instructions (SKILL.md)

Source of truth, from mongodb/agent-skills.


name: mongodb-mcp-setup description: Guide users through configuring key MongoDB MCP server options. Use this skill when a user has the MongoDB MCP server installed but hasn't configured the required environment variables, or when they ask about connecting to MongoDB/Atlas and don't have the credentials set up. license: Apache-2.0 metadata: version: "1.0.0"

MongoDB MCP Server Setup

This skill guides users through configuring the MongoDB MCP server for use with an agentic client.

Overview

The MongoDB MCP server requires authentication. Users have three options:

  1. Connection String (Option A): Direct connection to a specific cluster

    • Quick setup for single cluster
    • Requires MDB_MCP_CONNECTION_STRING environment variable
  2. Service Account Credentials (Option B): MongoDB Atlas Admin API access

    • Recommended for Atlas users - simplifies authentication and data access
    • Access to Atlas Admin API and dynamic cluster connection via atlas-connect-cluster
    • No manual DB user credential management
    • Requires MDB_MCP_API_CLIENT_ID and MDB_MCP_API_CLIENT_SECRET environment variables
  3. Atlas Local (Option C): Local development with Docker

    • Best for local testing - zero configuration required
    • Runs Atlas locally in Docker, requires Docker installed
    • No credentials or cloud cluster access

This is an interactive step-by-step guide. The agent detects the user's environment and provides tailored instructions, but never asks for or handles credentials — users add those directly to their shell profile or agentic client config in Step 5. Make this clear to the user whenever credentials come up in Steps 3a and 3b.

Step 0: Detect Client

Before anything else, determine which agentic client the user is running. This controls how credentials are configured in Step 1 and Step 5.

Run:

env | grep "^CODEX_"
  • If no CODEX_* variables are present → the user is running a shell-based client (Claude, Cursor, Gemini CLI, Copilot CLI, etc.). Credentials are configured via shell profile environment variables.
  • If any CODEX_* variables are present → the user is running Codex. Credentials are stored in ~/.codex/config.toml (macOS/Linux) or %USERPROFILE%\.codex\config.toml (Windows), not in shell environment variables. The desktop app does not inherit shell env vars when launched from Finder, Launchpad, or the Windows Start menu.

Carry this client type (Codex vs. shell-based) forward through every subsequent step.

Step 1: Check Existing Configuration

Check whether credentials are already configured.

For shell-based clients — check the current environment:

env | grep "^MDB_MCP" | sed '/^MDB_MCP_READ_ONLY=/!s/=.*/=[set]/'

For Codex — search ~/.codex/config.toml (macOS/Linux) or %USERPROFILE%\.codex\config.toml (Windows):

grep -E 'MDB_MCP_(CONNECTION_STRING|API_CLIENT_ID|API_CLIENT_SECRET|READ_ONLY)' ~/.codex/config.toml 2>/dev/null | sed '/MDB_MCP_READ_ONLY/!s/[[:space:]]*=[[:space:]].*/ = "[set]"/'

Interpretation (both):

  • If MDB_MCP_CONNECTION_STRING appears → connection string auth is configured
  • If both MDB_MCP_API_CLIENT_ID and MDB_MCP_API_CLIENT_SECRET appear → service account auth is configured. If only one is present, treat it as incomplete.
  • If MDB_MCP_READ_ONLY appears → read-only mode is enabled

Partial Configuration Handling:

  • User wants to add read-only to existing setup (has auth, no read-only flag) → skip to Step 4
  • User wants to switch authentication methods → explain they should remove the old credentials first (from config.toml for Codex, from their shell profile for shell-based clients), then proceed with Steps 2–5
  • User wants to update credentials → skip to Step 5

Important: If the user wants an Atlas Admin API action (managing clusters, creating users, performance advisor) but only has MDB_MCP_CONNECTION_STRING, explain they need service account credentials and offer to walk through setup.

Step 2: Present Configuration Options

If no valid configuration exists, present the options:

Connection String (Option A) — Best for:

  • Single cluster access
  • Existing database credentials
  • Self-hosted MongoDB or no Atlas Admin API needs

Service Account Credentials (Option B) — Best for:

  • MongoDB Atlas users (recommended)
  • Multi-cluster switching
  • Atlas Admin API access (cluster management, user creation, performance monitoring)

Atlas Local (Option C) — Best for:

  • Local development/testing without cloud setup
  • Fastest setup with Docker, no credentials required

Ask the user which option they'd like to proceed with.

Step 3a: Connection String Setup

If the user chooses Option A:

3a.1: Explain How to Find the Connection String

Explain where and how to obtain their connection string:

For MongoDB Atlas:

  1. Go to cloud.mongodb.com
  2. Select your cluster → click Connect
  3. Choose Drivers or Shell → copy the connection string
  4. Replace <username> and <password> with your database user credentials

For self-hosted MongoDB:

  • The connection string is typically configured by your DBA or in your application config
  • Format: mongodb://username:password@host:port/database

Expected formats:

  • mongodb://username:password@host:port/database
  • mongodb+srv://username:password@cluster.mongodb.net/database
  • mongodb://host:port (local, no auth)

Proceed to Step 4 (Determine Read-Only Access).

Step 3b: Service Account Setup

If the user chooses Option B:

3b.1: Guide Through Atlas Service Account Creation

Direct the user to create a MongoDB Atlas Service Account:

Full documentation: https://www.mongodb.com/docs/mcp-server/prerequisites/

Walk them through the key steps:

  1. Navigate to MongoDB Atlascloud.mongodb.com
  2. Select your organization from the ORGANIZATION section near the top of the page
  3. Go to "Project Identity and Access" on the left sidebar → ApplicationsCreate Service Account
  4. Set Permissions — Grant Organization Member or Project Owner (see docs for exact permission mappings)
  5. Generate Credentials — Create Client ID and Secret
    • ⚠️ The Client Secret is shown only once — save it immediately before leaving the page
  6. Note both values — you'll need Client ID and Client Secret for Step 5

3b.2: API Access List Configuration

⚠️ CRITICAL: The user MUST add their IP address to the service account's API Access List, or all Atlas Admin API operations will fail.

Steps:

  1. On the service account details page, find API Access List
  2. Click Add Access List Entry
  3. Add your current IP address. Use a specific IP or CIDR range whenever possible.
    • ⚠️ 0.0.0.0/0 allows access from any IP — this is a significant security risk. Only use it as a last resort for temporary testing and remove it immediately afterward. It should never be used in production.
  4. Save changes

This is more secure than global Network Access settings as it only affects API access, not database connections.

Proceed to Step 4 (Determine Read-Only Access).

Step 3c: Atlas Local Setup

If the user chooses Option C:

3c.1: Check Docker Installation

Verify Docker is installed:

docker info

If not installed, direct them to: https://www.docker.com/get-started

3c.2: Confirm Setup Complete

Atlas Local requires no credentials — the user is ready to go:

  • Create deployments: atlas-local-create-deployment
  • List deployments: atlas-local-list-deployments
  • All operations work out of the box with Docker

Skip Steps 4 and 5 (no configuration needed) and proceed to Step 6 (Next Steps).

Step 4: Determine Read-Only vs Read-Write Access

Only applies to Options A and B. Skip to Step 6 for Option C.

Ask whether they want read-only or read-write access:

  • Read-Write (default): Full data access, modifications allowed

    • Best for: Development, testing, administrative tasks
  • Read-Only: Data reads only, no modifications

    • Best for: Production data safety, reporting, compliance

If read-only: include the read-only flag in the credential snippet in Step 5. If read-write: omit it (defaults to read-write).

Proceed to Step 5 (Configure Credentials).

Step 5: Configure Credentials

Do not ask for or handle credentials — provide exact instructions so the user can add them directly.

5.1: Add credentials

For shell-based clients — store credentials in a dedicated ~/.mcp-env file (not directly in the shell profile), then source it from the profile. This keeps credentials out of files that are often group/world readable by default and prevents accidentally committing them to git.

For Codex — add to ~/.codex/config.toml (macOS/Linux) or %USERPROFILE%\.codex\config.toml (Windows).

Show the user the appropriate snippet:

For Connection String (Option A):

Shell-based clients (~/.mcp-env):

export MDB_MCP_CONNECTION_STRING="<paste-your-connection-string-here>"

Codex (config.toml):

[mcp_servers.mongodb.env]
MDB_MCP_CONNECTION_STRING = "<paste-your-connection-string-here>"

For Service Account (Option B):

Shell-based clients (~/.mcp-env):

export MDB_MCP_API_CLIENT_ID="<paste-your-client-id-here>"
export MDB_MCP_API_CLIENT_SECRET="<paste-your-client-secret-here>"

Codex (config.toml):

[mcp_servers.mongodb.env]
MDB_MCP_API_CLIENT_ID = "<paste-your-client-id-here>"
MDB_MCP_API_CLIENT_SECRET = "<paste-your-client-secret-here>"

If read-only was chosen (Step 4), also add:

Shell-based: export MDB_MCP_READ_ONLY="true" in ~/.mcp-env.

Codex: MDB_MCP_READ_ONLY = "true" under the same [mcp_servers.mongodb.env] section.

⚠️ Both config.toml and ~/.mcp-env are stored in plaintext. Do not commit them to version control.

5.2: Finalize (shell-based clients only)

Restrict permissions on ~/.mcp-env:

# adjust for windows if needed
chmod 600 ~/.mcp-env

Add source ~/.mcp-env to the shell profile (e.g. ~/.zshrc). Adjust for the detected shell (e.g. for fish: bass source ~/.mcp-env or set -x; for PowerShell: dot-source a .ps1 file instead).

Detect the shell and profile file by running echo $SHELL if needed.

5.3: Verify

Shell-based clients — reload the profile first, then verify:

source ~/.zshrc  # adjust to match the profile file
env | grep "^MDB_MCP" | sed '/^MDB_MCP_READ_ONLY=/!s/=.*/=[set]/'

Codex:

# adjust path if on Windows
grep -E 'MDB_MCP_(CONNECTION_STRING|API_CLIENT_ID|API_CLIENT_SECRET|READ_ONLY)' ~/.codex/config.toml 2>/dev/null | sed '/MDB_MCP_READ_ONLY/!s/[[:space:]]*=[[:space:]].*/ = "[set]"/'

Expected output shows the configured key(s) with values redacted to [set]. If nothing appears, check that credentials were saved and (for shell-based clients) that the profile was reloaded.

Proceed to Step 6 (Next Steps).

Step 6: Next Steps

For Options A & B (Connection String / Service Account):

  1. Restart the agentic client:

    • Shell-based clients: Fully quit the client, then run source <profile-file> to load the new variables, and reopen the client from that same terminal session so it inherits the environment.
    • Codex: Fully quit and relaunch the app. No terminal session needed — credentials come from config.toml.
  2. Verify MCP Server: After restart, test by performing a MongoDB operation.

  3. Using the Tools:

    • Option A: Direct database access tools available
    • Option B: Additionally has Atlas Admin API tools and atlas-connect-cluster
    • Important (Option B): Ensure your IP is in the service account's API Access List or all API calls will fail

For Option C (Atlas Local):

  1. Ready to use: No restart or configuration needed!

  2. Next steps:

    • Create deployments: atlas-local-create-deployment
    • List deployments: atlas-local-list-deployments
    • Use standard database operations once connected

Troubleshooting

  • Variables not appearing after source (shell-based clients): Check the profile file path and confirm the file was saved
  • Client doesn't pick up variables: Ensure full restart (quit + reopen), not just a reload
  • Codex desktop app not picking up credentials: If launched from Finder, Launchpad, or the Windows Start menu, Codex does not inherit shell environment variables from .zshrc/.zprofile/PowerShell profiles. Use ~/.codex/config.toml (macOS/Linux) or %USERPROFILE%\.codex\config.toml (Windows) instead (see Step 5)
  • Invalid connection string format: Re-check the format; must start with mongodb:// or mongodb+srv://
  • Atlas Admin API errors (Option B): Verify your IP is in the service account's API Access List
  • Read-only mode not working: Check that MDB_MCP_READ_ONLY is set — in config.toml under [mcp_servers.mongodb.env] for Codex, or via env | grep ^MDB_MCP_READ_ONLY for shell-based clients
  • fish/PowerShell: Syntax differs — use set -x (fish) or $env: (PowerShell) instead of export

Related skills

More from mongodb/agent-skills and the wider catalog.

MOmongodb-natural-language-querying logo

mongodb-natural-language-querying

mongodb/agent-skills

Generate MongoDB read-only queries and aggregation pipelines from natural language descriptions.

2.0k installsAudited
MOmongodb-query-optimizer logo

mongodb-query-optimizer

mongodb/agent-skills

Optimize MongoDB queries and indexing strategies using explain analysis and performance advisor.

2.5k installsAudited
MOmongodb-schema-design logo

mongodb-schema-design

mongodb/agent-skills

MongoDB schema design patterns and anti-patterns for optimal data models

2.6k installs
MOmongodb-search-and-ai logo

mongodb-search-and-ai

mongodb/agent-skills

Implement Atlas Search, Vector Search, and Hybrid Search for MongoDB with guided indexing and query optimization.

2.0k installsAudited
BD

bdd-feature-generator

moxa/sw

Agent skill from moxa/sw.

1.2k installs
AEaesthetic logo

aesthetic

mrgoonie/claudekit-skills

Create aesthetically beautiful interfaces following proven design principles. Use when building UI/UX, analyzing designs from inspiration sites, generating design images with ai-multimodal, implementing visual hierarchy and color theory, adding micro-interactions, or creating design documentation. Includes workflows for capturing and analyzing inspiration screenshots with chrome-devtools and ai-multimodal, iterative design image generation until aesthetic standards are met, and comprehensive design system guidance covering BEAUTIFUL (aesthetic principles), RIGHT (functionality/accessibility), SATISFYING (micro-interactions), and PEAK (storytelling) stages. Integrates with chrome-devtools, ai-multimodal, media-processing, ui-styling, and web-frameworks skills.

633 installs