[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-mongodb-mongodb-mcp-setup":3,"mdc-y40a2d-key":36,"related-repo-mongodb-mongodb-mcp-setup":2294,"related-org-mongodb-mongodb-mcp-setup":2387},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":20,"repoUrl":21,"updatedAt":22,"license":23,"forks":24,"topics":25,"repo":31,"sourceUrl":34,"mdContent":35},"mongodb-mcp-setup","configure MongoDB MCP server","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\u002FAtlas and don't have the credentials set up.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"mongodb","MongoDB","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fmongodb.jpg",[12,16,17],{"name":13,"slug":14,"type":15},"Configuration","configuration","tag",{"name":9,"slug":8,"type":15},{"name":18,"slug":19,"type":15},"MCP","mcp",155,"https:\u002F\u002Fgithub.com\u002Fmongodb\u002Fagent-skills","2026-07-16T06:00:24.26424","Apache-2.0",28,[26,27,28,29,19,30],"agent","claude","cursor","gemini-cli-extension","skills",{"repoUrl":21,"stars":20,"forks":24,"topics":32,"description":33},[26,27,28,29,19,30],"Use the official MongoDB Skills with your favorite coding agent to build faster.","https:\u002F\u002Fgithub.com\u002Fmongodb\u002Fagent-skills\u002Ftree\u002FHEAD\u002Fskills\u002Fmongodb-mcp-setup","---\nname: mongodb-mcp-setup\ndescription: 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\u002FAtlas and don't have the credentials set up.\nlicense: Apache-2.0\nmetadata:\n  version: \"1.0.0\"\n---\n\n# MongoDB MCP Server Setup\n\nThis skill guides users through configuring the MongoDB MCP server for use with an agentic client.\n\n## Overview\n\nThe MongoDB MCP server requires authentication. Users have three options:\n\n1. **Connection String** (Option A): Direct connection to a specific cluster\n   - Quick setup for single cluster\n   - Requires `MDB_MCP_CONNECTION_STRING` environment variable\n\n2. **Service Account Credentials** (Option B): MongoDB Atlas Admin API access\n   - **Recommended for Atlas users** - simplifies authentication and data access\n   - Access to Atlas Admin API and dynamic cluster connection via `atlas-connect-cluster`\n   - No manual DB user credential management\n   - Requires `MDB_MCP_API_CLIENT_ID` and `MDB_MCP_API_CLIENT_SECRET` environment variables\n\n3. **Atlas Local** (Option C): Local development with Docker\n   - **Best for local testing** - zero configuration required\n   - Runs Atlas locally in Docker, requires Docker installed\n   - No credentials or cloud cluster access\n\nThis 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.\n\n## Step 0: Detect Client\n\nBefore anything else, determine which agentic client the user is running. This controls how credentials are configured in Step 1 and Step 5.\n\nRun:\n\n```bash\nenv | grep \"^CODEX_\"\n```\n\n- **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.\n- **If any `CODEX_*` variables are present** → the user is running **Codex**. Credentials are stored in `~\u002F.codex\u002Fconfig.toml` (macOS\u002FLinux) 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.\n\nCarry this **client type** (Codex vs. shell-based) forward through every subsequent step.\n\n## Step 1: Check Existing Configuration\n\nCheck whether credentials are already configured.\n\n**For shell-based clients** — check the current environment:\n\n```bash\nenv | grep \"^MDB_MCP\" | sed '\u002F^MDB_MCP_READ_ONLY=\u002F!s\u002F=.*\u002F=[set]\u002F'\n```\n\n**For Codex** — search `~\u002F.codex\u002Fconfig.toml` (macOS\u002FLinux) or `%USERPROFILE%\\.codex\\config.toml` (Windows):\n\n```bash\ngrep -E 'MDB_MCP_(CONNECTION_STRING|API_CLIENT_ID|API_CLIENT_SECRET|READ_ONLY)' ~\u002F.codex\u002Fconfig.toml 2>\u002Fdev\u002Fnull | sed '\u002FMDB_MCP_READ_ONLY\u002F!s\u002F[[:space:]]*=[[:space:]].*\u002F = \"[set]\"\u002F'\n```\n\n**Interpretation (both):**\n\n- If `MDB_MCP_CONNECTION_STRING` appears → connection string auth is configured\n- 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.\n- If `MDB_MCP_READ_ONLY` appears → read-only mode is enabled\n\n**Partial Configuration Handling:**\n\n- User wants to add read-only to existing setup (has auth, no read-only flag) → skip to Step 4\n- 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\n- User wants to update credentials → skip to Step 5\n\n**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.\n\n## Step 2: Present Configuration Options\n\nIf no valid configuration exists, present the options:\n\n**Connection String (Option A)** — Best for:\n\n- Single cluster access\n- Existing database credentials\n- Self-hosted MongoDB or no Atlas Admin API needs\n\n**Service Account Credentials (Option B)** — Best for:\n\n- MongoDB Atlas users (recommended)\n- Multi-cluster switching\n- Atlas Admin API access (cluster management, user creation, performance monitoring)\n\n**Atlas Local (Option C)** — Best for:\n\n- Local development\u002Ftesting without cloud setup\n- Fastest setup with Docker, no credentials required\n\nAsk the user which option they'd like to proceed with.\n\n## Step 3a: Connection String Setup\n\nIf the user chooses Option A:\n\n### 3a.1: Explain How to Find the Connection String\n\nExplain where and how to obtain their connection string:\n\n**For MongoDB Atlas:**\n\n1. Go to [cloud.mongodb.com](https:\u002F\u002Fcloud.mongodb.com)\n2. Select your cluster → click **Connect**\n3. Choose **Drivers** or **Shell** → copy the connection string\n4. Replace `\u003Cusername>` and `\u003Cpassword>` with your database user credentials\n\n**For self-hosted MongoDB:**\n\n- The connection string is typically configured by your DBA or in your application config\n- Format: `mongodb:\u002F\u002Fusername:password@host:port\u002Fdatabase`\n\n**Expected formats:**\n\n- `mongodb:\u002F\u002Fusername:password@host:port\u002Fdatabase`\n- `mongodb+srv:\u002F\u002Fusername:password@cluster.mongodb.net\u002Fdatabase`\n- `mongodb:\u002F\u002Fhost:port` (local, no auth)\n\nProceed to Step 4 (Determine Read-Only Access).\n\n## Step 3b: Service Account Setup\n\nIf the user chooses Option B:\n\n### 3b.1: Guide Through Atlas Service Account Creation\n\nDirect the user to create a MongoDB Atlas Service Account:\n\n**Full documentation**: https:\u002F\u002Fwww.mongodb.com\u002Fdocs\u002Fmcp-server\u002Fprerequisites\u002F\n\nWalk them through the key steps:\n\n1. **Navigate to MongoDB Atlas** — [cloud.mongodb.com](https:\u002F\u002Fcloud.mongodb.com)\n2. **Select your organization** from the ORGANIZATION section near the top of the page\n3. **Go to \"Project Identity and Access\"** on the left sidebar → **Applications** → **Create Service Account**\n4. **Set Permissions** — Grant Organization Member or Project Owner (see docs for exact permission mappings)\n5. **Generate Credentials** — Create Client ID and Secret\n   - ⚠️ The **Client Secret is shown only once** — save it immediately before leaving the page\n5. **Note both values** — you'll need Client ID and Client Secret for Step 5\n\n### 3b.2: API Access List Configuration\n\n⚠️ **CRITICAL**: The user MUST add their IP address to the service account's API Access List, or all Atlas Admin API operations will fail.\n\nSteps:\n\n1. On the service account details page, find **API Access List**\n2. Click **Add Access List Entry**\n3. Add your current IP address. Use a specific IP or CIDR range whenever possible.\n   - ⚠️ **`0.0.0.0\u002F0` 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.\n4. Save changes\n\nThis is more secure than global Network Access settings as it only affects API access, not database connections.\n\nProceed to Step 4 (Determine Read-Only Access).\n\n## Step 3c: Atlas Local Setup\n\nIf the user chooses Option C:\n\n### 3c.1: Check Docker Installation\n\nVerify Docker is installed:\n\n```bash\ndocker info\n```\n\nIf not installed, direct them to: https:\u002F\u002Fwww.docker.com\u002Fget-started\n\n### 3c.2: Confirm Setup Complete\n\nAtlas Local requires no credentials — the user is ready to go:\n\n- Create deployments: `atlas-local-create-deployment`\n- List deployments: `atlas-local-list-deployments`\n- All operations work out of the box with Docker\n\n**Skip Steps 4 and 5** (no configuration needed) and proceed to Step 6 (Next Steps).\n\n## Step 4: Determine Read-Only vs Read-Write Access\n\n**Only applies to Options A and B. Skip to Step 6 for Option C.**\n\nAsk whether they want read-only or read-write access:\n\n- **Read-Write** (default): Full data access, modifications allowed\n  - Best for: Development, testing, administrative tasks\n\n- **Read-Only**: Data reads only, no modifications\n  - Best for: Production data safety, reporting, compliance\n\n**If read-only**: include the read-only flag in the credential snippet in Step 5.\n**If read-write**: omit it (defaults to read-write).\n\nProceed to Step 5 (Configure Credentials).\n\n## Step 5: Configure Credentials\n\n**Do not ask for or handle credentials** — provide exact instructions so the user can add them directly.\n\n### 5.1: Add credentials\n\n**For shell-based clients** — store credentials in a dedicated `~\u002F.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\u002Fworld readable by default and prevents accidentally committing them to git.\n\n**For Codex** — add to `~\u002F.codex\u002Fconfig.toml` (macOS\u002FLinux) or `%USERPROFILE%\\.codex\\config.toml` (Windows).\n\nShow the user the appropriate snippet:\n\n**For Connection String (Option A):**\n\nShell-based clients (`~\u002F.mcp-env`):\n\n```bash\nexport MDB_MCP_CONNECTION_STRING=\"\u003Cpaste-your-connection-string-here>\"\n```\n\nCodex (`config.toml`):\n\n```toml\n[mcp_servers.mongodb.env]\nMDB_MCP_CONNECTION_STRING = \"\u003Cpaste-your-connection-string-here>\"\n```\n\n**For Service Account (Option B):**\n\nShell-based clients (`~\u002F.mcp-env`):\n\n```bash\nexport MDB_MCP_API_CLIENT_ID=\"\u003Cpaste-your-client-id-here>\"\nexport MDB_MCP_API_CLIENT_SECRET=\"\u003Cpaste-your-client-secret-here>\"\n```\n\nCodex (`config.toml`):\n\n```toml\n[mcp_servers.mongodb.env]\nMDB_MCP_API_CLIENT_ID = \"\u003Cpaste-your-client-id-here>\"\nMDB_MCP_API_CLIENT_SECRET = \"\u003Cpaste-your-client-secret-here>\"\n```\n\n**If read-only was chosen (Step 4), also add:**\n\nShell-based: `export MDB_MCP_READ_ONLY=\"true\"` in `~\u002F.mcp-env`.\n\nCodex: `MDB_MCP_READ_ONLY = \"true\"` under the same `[mcp_servers.mongodb.env]` section.\n\n⚠️ Both `config.toml` and `~\u002F.mcp-env` are stored in plaintext. Do not commit them to version control.\n\n### 5.2: Finalize (shell-based clients only)\n\nRestrict permissions on `~\u002F.mcp-env`:\n\n```bash\n# adjust for windows if needed\nchmod 600 ~\u002F.mcp-env\n```\n\nAdd `source ~\u002F.mcp-env` to the shell profile (e.g. `~\u002F.zshrc`). Adjust for the detected shell (e.g. for fish: `bass source ~\u002F.mcp-env` or `set -x`; for PowerShell: dot-source a `.ps1` file instead).\n\nDetect the shell and profile file by running `echo $SHELL` if needed.\n\n### 5.3: Verify\n\n**Shell-based clients** — reload the profile first, then verify:\n\n```bash\nsource ~\u002F.zshrc  # adjust to match the profile file\nenv | grep \"^MDB_MCP\" | sed '\u002F^MDB_MCP_READ_ONLY=\u002F!s\u002F=.*\u002F=[set]\u002F'\n```\n\n**Codex:**\n\n```bash\n# adjust path if on Windows\ngrep -E 'MDB_MCP_(CONNECTION_STRING|API_CLIENT_ID|API_CLIENT_SECRET|READ_ONLY)' ~\u002F.codex\u002Fconfig.toml 2>\u002Fdev\u002Fnull | sed '\u002FMDB_MCP_READ_ONLY\u002F!s\u002F[[:space:]]*=[[:space:]].*\u002F = \"[set]\"\u002F'\n```\n\nExpected 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.\n\nProceed to Step 6 (Next Steps).\n\n## Step 6: Next Steps\n\n### For Options A & B (Connection String \u002F Service Account):\n\n1. **Restart the agentic client**:\n   - **Shell-based clients**: Fully quit the client, then run `source \u003Cprofile-file>` to load the new variables, and reopen the client from that same terminal session so it inherits the environment.\n   - **Codex**: Fully quit and relaunch the app. No terminal session needed — credentials come from `config.toml`.\n\n2. **Verify MCP Server**: After restart, test by performing a MongoDB operation.\n\n3. **Using the Tools**:\n   - Option A: Direct database access tools available\n   - Option B: Additionally has Atlas Admin API tools and `atlas-connect-cluster`\n   - **Important (Option B)**: Ensure your IP is in the service account's API Access List or all API calls will fail\n\n### For Option C (Atlas Local):\n\n1. **Ready to use**: No restart or configuration needed!\n\n2. **Next steps**:\n   - Create deployments: `atlas-local-create-deployment`\n   - List deployments: `atlas-local-list-deployments`\n   - Use standard database operations once connected\n\n## Troubleshooting\n\n- **Variables not appearing after `source`** (shell-based clients): Check the profile file path and confirm the file was saved\n- **Client doesn't pick up variables**: Ensure full restart (quit + reopen), not just a reload\n- **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`\u002F`.zprofile`\u002FPowerShell profiles. Use `~\u002F.codex\u002Fconfig.toml` (macOS\u002FLinux) or `%USERPROFILE%\\.codex\\config.toml` (Windows) instead (see Step 5)\n- **Invalid connection string format**: Re-check the format; must start with `mongodb:\u002F\u002F` or `mongodb+srv:\u002F\u002F`\n- **Atlas Admin API errors (Option B)**: Verify your IP is in the service account's API Access List\n- **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\n- **fish\u002FPowerShell**: Syntax differs — use `set -x` (fish) or `$env:` (PowerShell) instead of `export`\n",{"data":37,"body":40},{"name":4,"description":6,"license":23,"metadata":38},{"version":39},"1.0.0",{"type":41,"children":42},"root",[43,52,58,65,70,201,213,219,224,229,279,346,358,364,369,379,439,462,532,540,585,593,619,636,642,647,657,675,684,702,711,724,729,735,740,747,752,760,826,834,853,861,892,897,903,908,914,919,935,940,1035,1041,1053,1058,1111,1116,1120,1126,1131,1137,1142,1162,1173,1179,1184,1214,1224,1230,1238,1243,1282,1299,1304,1310,1320,1326,1343,1365,1370,1378,1390,1430,1441,1467,1475,1485,1550,1560,1591,1599,1619,1640,1658,1664,1676,1711,1755,1768,1774,1784,1857,1865,1935,1948,1953,1959,1965,2059,2065,2113,2119,2288],{"type":44,"tag":45,"props":46,"children":48},"element","h1",{"id":47},"mongodb-mcp-server-setup",[49],{"type":50,"value":51},"text","MongoDB MCP Server Setup",{"type":44,"tag":53,"props":54,"children":55},"p",{},[56],{"type":50,"value":57},"This skill guides users through configuring the MongoDB MCP server for use with an agentic client.",{"type":44,"tag":59,"props":60,"children":62},"h2",{"id":61},"overview",[63],{"type":50,"value":64},"Overview",{"type":44,"tag":53,"props":66,"children":67},{},[68],{"type":50,"value":69},"The MongoDB MCP server requires authentication. Users have three options:",{"type":44,"tag":71,"props":72,"children":73},"ol",{},[74,109,168],{"type":44,"tag":75,"props":76,"children":77},"li",{},[78,84,86],{"type":44,"tag":79,"props":80,"children":81},"strong",{},[82],{"type":50,"value":83},"Connection String",{"type":50,"value":85}," (Option A): Direct connection to a specific cluster",{"type":44,"tag":87,"props":88,"children":89},"ul",{},[90,95],{"type":44,"tag":75,"props":91,"children":92},{},[93],{"type":50,"value":94},"Quick setup for single cluster",{"type":44,"tag":75,"props":96,"children":97},{},[98,100,107],{"type":50,"value":99},"Requires ",{"type":44,"tag":101,"props":102,"children":104},"code",{"className":103},[],[105],{"type":50,"value":106},"MDB_MCP_CONNECTION_STRING",{"type":50,"value":108}," environment variable",{"type":44,"tag":75,"props":110,"children":111},{},[112,117,119],{"type":44,"tag":79,"props":113,"children":114},{},[115],{"type":50,"value":116},"Service Account Credentials",{"type":50,"value":118}," (Option B): MongoDB Atlas Admin API access",{"type":44,"tag":87,"props":120,"children":121},{},[122,132,143,148],{"type":44,"tag":75,"props":123,"children":124},{},[125,130],{"type":44,"tag":79,"props":126,"children":127},{},[128],{"type":50,"value":129},"Recommended for Atlas users",{"type":50,"value":131}," - simplifies authentication and data access",{"type":44,"tag":75,"props":133,"children":134},{},[135,137],{"type":50,"value":136},"Access to Atlas Admin API and dynamic cluster connection via ",{"type":44,"tag":101,"props":138,"children":140},{"className":139},[],[141],{"type":50,"value":142},"atlas-connect-cluster",{"type":44,"tag":75,"props":144,"children":145},{},[146],{"type":50,"value":147},"No manual DB user credential management",{"type":44,"tag":75,"props":149,"children":150},{},[151,152,158,160,166],{"type":50,"value":99},{"type":44,"tag":101,"props":153,"children":155},{"className":154},[],[156],{"type":50,"value":157},"MDB_MCP_API_CLIENT_ID",{"type":50,"value":159}," and ",{"type":44,"tag":101,"props":161,"children":163},{"className":162},[],[164],{"type":50,"value":165},"MDB_MCP_API_CLIENT_SECRET",{"type":50,"value":167}," environment variables",{"type":44,"tag":75,"props":169,"children":170},{},[171,176,178],{"type":44,"tag":79,"props":172,"children":173},{},[174],{"type":50,"value":175},"Atlas Local",{"type":50,"value":177}," (Option C): Local development with Docker",{"type":44,"tag":87,"props":179,"children":180},{},[181,191,196],{"type":44,"tag":75,"props":182,"children":183},{},[184,189],{"type":44,"tag":79,"props":185,"children":186},{},[187],{"type":50,"value":188},"Best for local testing",{"type":50,"value":190}," - zero configuration required",{"type":44,"tag":75,"props":192,"children":193},{},[194],{"type":50,"value":195},"Runs Atlas locally in Docker, requires Docker installed",{"type":44,"tag":75,"props":197,"children":198},{},[199],{"type":50,"value":200},"No credentials or cloud cluster access",{"type":44,"tag":53,"props":202,"children":203},{},[204,206,211],{"type":50,"value":205},"This is an interactive step-by-step guide. The agent detects the user's environment and provides tailored instructions, but ",{"type":44,"tag":79,"props":207,"children":208},{},[209],{"type":50,"value":210},"never asks for or handles credentials",{"type":50,"value":212}," — 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.",{"type":44,"tag":59,"props":214,"children":216},{"id":215},"step-0-detect-client",[217],{"type":50,"value":218},"Step 0: Detect Client",{"type":44,"tag":53,"props":220,"children":221},{},[222],{"type":50,"value":223},"Before anything else, determine which agentic client the user is running. This controls how credentials are configured in Step 1 and Step 5.",{"type":44,"tag":53,"props":225,"children":226},{},[227],{"type":50,"value":228},"Run:",{"type":44,"tag":230,"props":231,"children":236},"pre",{"className":232,"code":233,"language":234,"meta":235,"style":235},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","env | grep \"^CODEX_\"\n","bash","",[237],{"type":44,"tag":101,"props":238,"children":239},{"__ignoreMap":235},[240],{"type":44,"tag":241,"props":242,"children":245},"span",{"class":243,"line":244},"line",1,[246,252,258,263,268,274],{"type":44,"tag":241,"props":247,"children":249},{"style":248},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[250],{"type":50,"value":251},"env",{"type":44,"tag":241,"props":253,"children":255},{"style":254},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[256],{"type":50,"value":257}," |",{"type":44,"tag":241,"props":259,"children":260},{"style":248},[261],{"type":50,"value":262}," grep",{"type":44,"tag":241,"props":264,"children":265},{"style":254},[266],{"type":50,"value":267}," \"",{"type":44,"tag":241,"props":269,"children":271},{"style":270},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[272],{"type":50,"value":273},"^CODEX_",{"type":44,"tag":241,"props":275,"children":276},{"style":254},[277],{"type":50,"value":278},"\"\n",{"type":44,"tag":87,"props":280,"children":281},{},[282,307],{"type":44,"tag":75,"props":283,"children":284},{},[285,298,300,305],{"type":44,"tag":79,"props":286,"children":287},{},[288,290,296],{"type":50,"value":289},"If no ",{"type":44,"tag":101,"props":291,"children":293},{"className":292},[],[294],{"type":50,"value":295},"CODEX_*",{"type":50,"value":297}," variables are present",{"type":50,"value":299}," → the user is running a ",{"type":44,"tag":79,"props":301,"children":302},{},[303],{"type":50,"value":304},"shell-based client",{"type":50,"value":306}," (Claude, Cursor, Gemini CLI, Copilot CLI, etc.). Credentials are configured via shell profile environment variables.",{"type":44,"tag":75,"props":308,"children":309},{},[310,321,323,328,330,336,338,344],{"type":44,"tag":79,"props":311,"children":312},{},[313,315,320],{"type":50,"value":314},"If any ",{"type":44,"tag":101,"props":316,"children":318},{"className":317},[],[319],{"type":50,"value":295},{"type":50,"value":297},{"type":50,"value":322}," → the user is running ",{"type":44,"tag":79,"props":324,"children":325},{},[326],{"type":50,"value":327},"Codex",{"type":50,"value":329},". Credentials are stored in ",{"type":44,"tag":101,"props":331,"children":333},{"className":332},[],[334],{"type":50,"value":335},"~\u002F.codex\u002Fconfig.toml",{"type":50,"value":337}," (macOS\u002FLinux) or ",{"type":44,"tag":101,"props":339,"children":341},{"className":340},[],[342],{"type":50,"value":343},"%USERPROFILE%\\.codex\\config.toml",{"type":50,"value":345}," (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.",{"type":44,"tag":53,"props":347,"children":348},{},[349,351,356],{"type":50,"value":350},"Carry this ",{"type":44,"tag":79,"props":352,"children":353},{},[354],{"type":50,"value":355},"client type",{"type":50,"value":357}," (Codex vs. shell-based) forward through every subsequent step.",{"type":44,"tag":59,"props":359,"children":361},{"id":360},"step-1-check-existing-configuration",[362],{"type":50,"value":363},"Step 1: Check Existing Configuration",{"type":44,"tag":53,"props":365,"children":366},{},[367],{"type":50,"value":368},"Check whether credentials are already configured.",{"type":44,"tag":53,"props":370,"children":371},{},[372,377],{"type":44,"tag":79,"props":373,"children":374},{},[375],{"type":50,"value":376},"For shell-based clients",{"type":50,"value":378}," — check the current environment:",{"type":44,"tag":230,"props":380,"children":382},{"className":232,"code":381,"language":234,"meta":235,"style":235},"env | grep \"^MDB_MCP\" | sed '\u002F^MDB_MCP_READ_ONLY=\u002F!s\u002F=.*\u002F=[set]\u002F'\n",[383],{"type":44,"tag":101,"props":384,"children":385},{"__ignoreMap":235},[386],{"type":44,"tag":241,"props":387,"children":388},{"class":243,"line":244},[389,393,397,401,405,410,415,419,424,429,434],{"type":44,"tag":241,"props":390,"children":391},{"style":248},[392],{"type":50,"value":251},{"type":44,"tag":241,"props":394,"children":395},{"style":254},[396],{"type":50,"value":257},{"type":44,"tag":241,"props":398,"children":399},{"style":248},[400],{"type":50,"value":262},{"type":44,"tag":241,"props":402,"children":403},{"style":254},[404],{"type":50,"value":267},{"type":44,"tag":241,"props":406,"children":407},{"style":270},[408],{"type":50,"value":409},"^MDB_MCP",{"type":44,"tag":241,"props":411,"children":412},{"style":254},[413],{"type":50,"value":414},"\"",{"type":44,"tag":241,"props":416,"children":417},{"style":254},[418],{"type":50,"value":257},{"type":44,"tag":241,"props":420,"children":421},{"style":248},[422],{"type":50,"value":423}," sed",{"type":44,"tag":241,"props":425,"children":426},{"style":254},[427],{"type":50,"value":428}," '",{"type":44,"tag":241,"props":430,"children":431},{"style":270},[432],{"type":50,"value":433},"\u002F^MDB_MCP_READ_ONLY=\u002F!s\u002F=.*\u002F=[set]\u002F",{"type":44,"tag":241,"props":435,"children":436},{"style":254},[437],{"type":50,"value":438},"'\n",{"type":44,"tag":53,"props":440,"children":441},{},[442,447,449,454,455,460],{"type":44,"tag":79,"props":443,"children":444},{},[445],{"type":50,"value":446},"For Codex",{"type":50,"value":448}," — search ",{"type":44,"tag":101,"props":450,"children":452},{"className":451},[],[453],{"type":50,"value":335},{"type":50,"value":337},{"type":44,"tag":101,"props":456,"children":458},{"className":457},[],[459],{"type":50,"value":343},{"type":50,"value":461}," (Windows):",{"type":44,"tag":230,"props":463,"children":465},{"className":232,"code":464,"language":234,"meta":235,"style":235},"grep -E 'MDB_MCP_(CONNECTION_STRING|API_CLIENT_ID|API_CLIENT_SECRET|READ_ONLY)' ~\u002F.codex\u002Fconfig.toml 2>\u002Fdev\u002Fnull | sed '\u002FMDB_MCP_READ_ONLY\u002F!s\u002F[[:space:]]*=[[:space:]].*\u002F = \"[set]\"\u002F'\n",[466],{"type":44,"tag":101,"props":467,"children":468},{"__ignoreMap":235},[469],{"type":44,"tag":241,"props":470,"children":471},{"class":243,"line":244},[472,477,482,486,491,496,501,506,511,515,519,523,528],{"type":44,"tag":241,"props":473,"children":474},{"style":248},[475],{"type":50,"value":476},"grep",{"type":44,"tag":241,"props":478,"children":479},{"style":270},[480],{"type":50,"value":481}," -E",{"type":44,"tag":241,"props":483,"children":484},{"style":254},[485],{"type":50,"value":428},{"type":44,"tag":241,"props":487,"children":488},{"style":270},[489],{"type":50,"value":490},"MDB_MCP_(CONNECTION_STRING|API_CLIENT_ID|API_CLIENT_SECRET|READ_ONLY)",{"type":44,"tag":241,"props":492,"children":493},{"style":254},[494],{"type":50,"value":495},"'",{"type":44,"tag":241,"props":497,"children":498},{"style":270},[499],{"type":50,"value":500}," ~\u002F.codex\u002Fconfig.toml",{"type":44,"tag":241,"props":502,"children":503},{"style":254},[504],{"type":50,"value":505}," 2>",{"type":44,"tag":241,"props":507,"children":508},{"style":270},[509],{"type":50,"value":510},"\u002Fdev\u002Fnull",{"type":44,"tag":241,"props":512,"children":513},{"style":254},[514],{"type":50,"value":257},{"type":44,"tag":241,"props":516,"children":517},{"style":248},[518],{"type":50,"value":423},{"type":44,"tag":241,"props":520,"children":521},{"style":254},[522],{"type":50,"value":428},{"type":44,"tag":241,"props":524,"children":525},{"style":270},[526],{"type":50,"value":527},"\u002FMDB_MCP_READ_ONLY\u002F!s\u002F[[:space:]]*=[[:space:]].*\u002F = \"[set]\"\u002F",{"type":44,"tag":241,"props":529,"children":530},{"style":254},[531],{"type":50,"value":438},{"type":44,"tag":53,"props":533,"children":534},{},[535],{"type":44,"tag":79,"props":536,"children":537},{},[538],{"type":50,"value":539},"Interpretation (both):",{"type":44,"tag":87,"props":541,"children":542},{},[543,555,573],{"type":44,"tag":75,"props":544,"children":545},{},[546,548,553],{"type":50,"value":547},"If ",{"type":44,"tag":101,"props":549,"children":551},{"className":550},[],[552],{"type":50,"value":106},{"type":50,"value":554}," appears → connection string auth is configured",{"type":44,"tag":75,"props":556,"children":557},{},[558,560,565,566,571],{"type":50,"value":559},"If both ",{"type":44,"tag":101,"props":561,"children":563},{"className":562},[],[564],{"type":50,"value":157},{"type":50,"value":159},{"type":44,"tag":101,"props":567,"children":569},{"className":568},[],[570],{"type":50,"value":165},{"type":50,"value":572}," appear → service account auth is configured. If only one is present, treat it as incomplete.",{"type":44,"tag":75,"props":574,"children":575},{},[576,577,583],{"type":50,"value":547},{"type":44,"tag":101,"props":578,"children":580},{"className":579},[],[581],{"type":50,"value":582},"MDB_MCP_READ_ONLY",{"type":50,"value":584}," appears → read-only mode is enabled",{"type":44,"tag":53,"props":586,"children":587},{},[588],{"type":44,"tag":79,"props":589,"children":590},{},[591],{"type":50,"value":592},"Partial Configuration Handling:",{"type":44,"tag":87,"props":594,"children":595},{},[596,601,614],{"type":44,"tag":75,"props":597,"children":598},{},[599],{"type":50,"value":600},"User wants to add read-only to existing setup (has auth, no read-only flag) → skip to Step 4",{"type":44,"tag":75,"props":602,"children":603},{},[604,606,612],{"type":50,"value":605},"User wants to switch authentication methods → explain they should remove the old credentials first (from ",{"type":44,"tag":101,"props":607,"children":609},{"className":608},[],[610],{"type":50,"value":611},"config.toml",{"type":50,"value":613}," for Codex, from their shell profile for shell-based clients), then proceed with Steps 2–5",{"type":44,"tag":75,"props":615,"children":616},{},[617],{"type":50,"value":618},"User wants to update credentials → skip to Step 5",{"type":44,"tag":53,"props":620,"children":621},{},[622,627,629,634],{"type":44,"tag":79,"props":623,"children":624},{},[625],{"type":50,"value":626},"Important",{"type":50,"value":628},": If the user wants an Atlas Admin API action (managing clusters, creating users, performance advisor) but only has ",{"type":44,"tag":101,"props":630,"children":632},{"className":631},[],[633],{"type":50,"value":106},{"type":50,"value":635},", explain they need service account credentials and offer to walk through setup.",{"type":44,"tag":59,"props":637,"children":639},{"id":638},"step-2-present-configuration-options",[640],{"type":50,"value":641},"Step 2: Present Configuration Options",{"type":44,"tag":53,"props":643,"children":644},{},[645],{"type":50,"value":646},"If no valid configuration exists, present the options:",{"type":44,"tag":53,"props":648,"children":649},{},[650,655],{"type":44,"tag":79,"props":651,"children":652},{},[653],{"type":50,"value":654},"Connection String (Option A)",{"type":50,"value":656}," — Best for:",{"type":44,"tag":87,"props":658,"children":659},{},[660,665,670],{"type":44,"tag":75,"props":661,"children":662},{},[663],{"type":50,"value":664},"Single cluster access",{"type":44,"tag":75,"props":666,"children":667},{},[668],{"type":50,"value":669},"Existing database credentials",{"type":44,"tag":75,"props":671,"children":672},{},[673],{"type":50,"value":674},"Self-hosted MongoDB or no Atlas Admin API needs",{"type":44,"tag":53,"props":676,"children":677},{},[678,683],{"type":44,"tag":79,"props":679,"children":680},{},[681],{"type":50,"value":682},"Service Account Credentials (Option B)",{"type":50,"value":656},{"type":44,"tag":87,"props":685,"children":686},{},[687,692,697],{"type":44,"tag":75,"props":688,"children":689},{},[690],{"type":50,"value":691},"MongoDB Atlas users (recommended)",{"type":44,"tag":75,"props":693,"children":694},{},[695],{"type":50,"value":696},"Multi-cluster switching",{"type":44,"tag":75,"props":698,"children":699},{},[700],{"type":50,"value":701},"Atlas Admin API access (cluster management, user creation, performance monitoring)",{"type":44,"tag":53,"props":703,"children":704},{},[705,710],{"type":44,"tag":79,"props":706,"children":707},{},[708],{"type":50,"value":709},"Atlas Local (Option C)",{"type":50,"value":656},{"type":44,"tag":87,"props":712,"children":713},{},[714,719],{"type":44,"tag":75,"props":715,"children":716},{},[717],{"type":50,"value":718},"Local development\u002Ftesting without cloud setup",{"type":44,"tag":75,"props":720,"children":721},{},[722],{"type":50,"value":723},"Fastest setup with Docker, no credentials required",{"type":44,"tag":53,"props":725,"children":726},{},[727],{"type":50,"value":728},"Ask the user which option they'd like to proceed with.",{"type":44,"tag":59,"props":730,"children":732},{"id":731},"step-3a-connection-string-setup",[733],{"type":50,"value":734},"Step 3a: Connection String Setup",{"type":44,"tag":53,"props":736,"children":737},{},[738],{"type":50,"value":739},"If the user chooses Option A:",{"type":44,"tag":741,"props":742,"children":744},"h3",{"id":743},"_3a1-explain-how-to-find-the-connection-string",[745],{"type":50,"value":746},"3a.1: Explain How to Find the Connection String",{"type":44,"tag":53,"props":748,"children":749},{},[750],{"type":50,"value":751},"Explain where and how to obtain their connection string:",{"type":44,"tag":53,"props":753,"children":754},{},[755],{"type":44,"tag":79,"props":756,"children":757},{},[758],{"type":50,"value":759},"For MongoDB Atlas:",{"type":44,"tag":71,"props":761,"children":762},{},[763,777,787,806],{"type":44,"tag":75,"props":764,"children":765},{},[766,768],{"type":50,"value":767},"Go to ",{"type":44,"tag":769,"props":770,"children":774},"a",{"href":771,"rel":772},"https:\u002F\u002Fcloud.mongodb.com",[773],"nofollow",[775],{"type":50,"value":776},"cloud.mongodb.com",{"type":44,"tag":75,"props":778,"children":779},{},[780,782],{"type":50,"value":781},"Select your cluster → click ",{"type":44,"tag":79,"props":783,"children":784},{},[785],{"type":50,"value":786},"Connect",{"type":44,"tag":75,"props":788,"children":789},{},[790,792,797,799,804],{"type":50,"value":791},"Choose ",{"type":44,"tag":79,"props":793,"children":794},{},[795],{"type":50,"value":796},"Drivers",{"type":50,"value":798}," or ",{"type":44,"tag":79,"props":800,"children":801},{},[802],{"type":50,"value":803},"Shell",{"type":50,"value":805}," → copy the connection string",{"type":44,"tag":75,"props":807,"children":808},{},[809,811,817,818,824],{"type":50,"value":810},"Replace ",{"type":44,"tag":101,"props":812,"children":814},{"className":813},[],[815],{"type":50,"value":816},"\u003Cusername>",{"type":50,"value":159},{"type":44,"tag":101,"props":819,"children":821},{"className":820},[],[822],{"type":50,"value":823},"\u003Cpassword>",{"type":50,"value":825}," with your database user credentials",{"type":44,"tag":53,"props":827,"children":828},{},[829],{"type":44,"tag":79,"props":830,"children":831},{},[832],{"type":50,"value":833},"For self-hosted MongoDB:",{"type":44,"tag":87,"props":835,"children":836},{},[837,842],{"type":44,"tag":75,"props":838,"children":839},{},[840],{"type":50,"value":841},"The connection string is typically configured by your DBA or in your application config",{"type":44,"tag":75,"props":843,"children":844},{},[845,847],{"type":50,"value":846},"Format: ",{"type":44,"tag":101,"props":848,"children":850},{"className":849},[],[851],{"type":50,"value":852},"mongodb:\u002F\u002Fusername:password@host:port\u002Fdatabase",{"type":44,"tag":53,"props":854,"children":855},{},[856],{"type":44,"tag":79,"props":857,"children":858},{},[859],{"type":50,"value":860},"Expected formats:",{"type":44,"tag":87,"props":862,"children":863},{},[864,872,881],{"type":44,"tag":75,"props":865,"children":866},{},[867],{"type":44,"tag":101,"props":868,"children":870},{"className":869},[],[871],{"type":50,"value":852},{"type":44,"tag":75,"props":873,"children":874},{},[875],{"type":44,"tag":101,"props":876,"children":878},{"className":877},[],[879],{"type":50,"value":880},"mongodb+srv:\u002F\u002Fusername:password@cluster.mongodb.net\u002Fdatabase",{"type":44,"tag":75,"props":882,"children":883},{},[884,890],{"type":44,"tag":101,"props":885,"children":887},{"className":886},[],[888],{"type":50,"value":889},"mongodb:\u002F\u002Fhost:port",{"type":50,"value":891}," (local, no auth)",{"type":44,"tag":53,"props":893,"children":894},{},[895],{"type":50,"value":896},"Proceed to Step 4 (Determine Read-Only Access).",{"type":44,"tag":59,"props":898,"children":900},{"id":899},"step-3b-service-account-setup",[901],{"type":50,"value":902},"Step 3b: Service Account Setup",{"type":44,"tag":53,"props":904,"children":905},{},[906],{"type":50,"value":907},"If the user chooses Option B:",{"type":44,"tag":741,"props":909,"children":911},{"id":910},"_3b1-guide-through-atlas-service-account-creation",[912],{"type":50,"value":913},"3b.1: Guide Through Atlas Service Account Creation",{"type":44,"tag":53,"props":915,"children":916},{},[917],{"type":50,"value":918},"Direct the user to create a MongoDB Atlas Service Account:",{"type":44,"tag":53,"props":920,"children":921},{},[922,927,929],{"type":44,"tag":79,"props":923,"children":924},{},[925],{"type":50,"value":926},"Full documentation",{"type":50,"value":928},": ",{"type":44,"tag":769,"props":930,"children":933},{"href":931,"rel":932},"https:\u002F\u002Fwww.mongodb.com\u002Fdocs\u002Fmcp-server\u002Fprerequisites\u002F",[773],[934],{"type":50,"value":931},{"type":44,"tag":53,"props":936,"children":937},{},[938],{"type":50,"value":939},"Walk them through the key steps:",{"type":44,"tag":71,"props":941,"children":942},{},[943,958,968,990,1000,1025],{"type":44,"tag":75,"props":944,"children":945},{},[946,951,953],{"type":44,"tag":79,"props":947,"children":948},{},[949],{"type":50,"value":950},"Navigate to MongoDB Atlas",{"type":50,"value":952}," — ",{"type":44,"tag":769,"props":954,"children":956},{"href":771,"rel":955},[773],[957],{"type":50,"value":776},{"type":44,"tag":75,"props":959,"children":960},{},[961,966],{"type":44,"tag":79,"props":962,"children":963},{},[964],{"type":50,"value":965},"Select your organization",{"type":50,"value":967}," from the ORGANIZATION section near the top of the page",{"type":44,"tag":75,"props":969,"children":970},{},[971,976,978,983,985],{"type":44,"tag":79,"props":972,"children":973},{},[974],{"type":50,"value":975},"Go to \"Project Identity and Access\"",{"type":50,"value":977}," on the left sidebar → ",{"type":44,"tag":79,"props":979,"children":980},{},[981],{"type":50,"value":982},"Applications",{"type":50,"value":984}," → ",{"type":44,"tag":79,"props":986,"children":987},{},[988],{"type":50,"value":989},"Create Service Account",{"type":44,"tag":75,"props":991,"children":992},{},[993,998],{"type":44,"tag":79,"props":994,"children":995},{},[996],{"type":50,"value":997},"Set Permissions",{"type":50,"value":999}," — Grant Organization Member or Project Owner (see docs for exact permission mappings)",{"type":44,"tag":75,"props":1001,"children":1002},{},[1003,1008,1010],{"type":44,"tag":79,"props":1004,"children":1005},{},[1006],{"type":50,"value":1007},"Generate Credentials",{"type":50,"value":1009}," — Create Client ID and Secret\n",{"type":44,"tag":87,"props":1011,"children":1012},{},[1013],{"type":44,"tag":75,"props":1014,"children":1015},{},[1016,1018,1023],{"type":50,"value":1017},"⚠️ The ",{"type":44,"tag":79,"props":1019,"children":1020},{},[1021],{"type":50,"value":1022},"Client Secret is shown only once",{"type":50,"value":1024}," — save it immediately before leaving the page",{"type":44,"tag":75,"props":1026,"children":1027},{},[1028,1033],{"type":44,"tag":79,"props":1029,"children":1030},{},[1031],{"type":50,"value":1032},"Note both values",{"type":50,"value":1034}," — you'll need Client ID and Client Secret for Step 5",{"type":44,"tag":741,"props":1036,"children":1038},{"id":1037},"_3b2-api-access-list-configuration",[1039],{"type":50,"value":1040},"3b.2: API Access List Configuration",{"type":44,"tag":53,"props":1042,"children":1043},{},[1044,1046,1051],{"type":50,"value":1045},"⚠️ ",{"type":44,"tag":79,"props":1047,"children":1048},{},[1049],{"type":50,"value":1050},"CRITICAL",{"type":50,"value":1052},": The user MUST add their IP address to the service account's API Access List, or all Atlas Admin API operations will fail.",{"type":44,"tag":53,"props":1054,"children":1055},{},[1056],{"type":50,"value":1057},"Steps:",{"type":44,"tag":71,"props":1059,"children":1060},{},[1061,1071,1081,1106],{"type":44,"tag":75,"props":1062,"children":1063},{},[1064,1066],{"type":50,"value":1065},"On the service account details page, find ",{"type":44,"tag":79,"props":1067,"children":1068},{},[1069],{"type":50,"value":1070},"API Access List",{"type":44,"tag":75,"props":1072,"children":1073},{},[1074,1076],{"type":50,"value":1075},"Click ",{"type":44,"tag":79,"props":1077,"children":1078},{},[1079],{"type":50,"value":1080},"Add Access List Entry",{"type":44,"tag":75,"props":1082,"children":1083},{},[1084,1086],{"type":50,"value":1085},"Add your current IP address. Use a specific IP or CIDR range whenever possible.\n",{"type":44,"tag":87,"props":1087,"children":1088},{},[1089],{"type":44,"tag":75,"props":1090,"children":1091},{},[1092,1093,1104],{"type":50,"value":1045},{"type":44,"tag":79,"props":1094,"children":1095},{},[1096,1102],{"type":44,"tag":101,"props":1097,"children":1099},{"className":1098},[],[1100],{"type":50,"value":1101},"0.0.0.0\u002F0",{"type":50,"value":1103}," allows access from any IP — this is a significant security risk.",{"type":50,"value":1105}," Only use it as a last resort for temporary testing and remove it immediately afterward. It should never be used in production.",{"type":44,"tag":75,"props":1107,"children":1108},{},[1109],{"type":50,"value":1110},"Save changes",{"type":44,"tag":53,"props":1112,"children":1113},{},[1114],{"type":50,"value":1115},"This is more secure than global Network Access settings as it only affects API access, not database connections.",{"type":44,"tag":53,"props":1117,"children":1118},{},[1119],{"type":50,"value":896},{"type":44,"tag":59,"props":1121,"children":1123},{"id":1122},"step-3c-atlas-local-setup",[1124],{"type":50,"value":1125},"Step 3c: Atlas Local Setup",{"type":44,"tag":53,"props":1127,"children":1128},{},[1129],{"type":50,"value":1130},"If the user chooses Option C:",{"type":44,"tag":741,"props":1132,"children":1134},{"id":1133},"_3c1-check-docker-installation",[1135],{"type":50,"value":1136},"3c.1: Check Docker Installation",{"type":44,"tag":53,"props":1138,"children":1139},{},[1140],{"type":50,"value":1141},"Verify Docker is installed:",{"type":44,"tag":230,"props":1143,"children":1145},{"className":232,"code":1144,"language":234,"meta":235,"style":235},"docker info\n",[1146],{"type":44,"tag":101,"props":1147,"children":1148},{"__ignoreMap":235},[1149],{"type":44,"tag":241,"props":1150,"children":1151},{"class":243,"line":244},[1152,1157],{"type":44,"tag":241,"props":1153,"children":1154},{"style":248},[1155],{"type":50,"value":1156},"docker",{"type":44,"tag":241,"props":1158,"children":1159},{"style":270},[1160],{"type":50,"value":1161}," info\n",{"type":44,"tag":53,"props":1163,"children":1164},{},[1165,1167],{"type":50,"value":1166},"If not installed, direct them to: ",{"type":44,"tag":769,"props":1168,"children":1171},{"href":1169,"rel":1170},"https:\u002F\u002Fwww.docker.com\u002Fget-started",[773],[1172],{"type":50,"value":1169},{"type":44,"tag":741,"props":1174,"children":1176},{"id":1175},"_3c2-confirm-setup-complete",[1177],{"type":50,"value":1178},"3c.2: Confirm Setup Complete",{"type":44,"tag":53,"props":1180,"children":1181},{},[1182],{"type":50,"value":1183},"Atlas Local requires no credentials — the user is ready to go:",{"type":44,"tag":87,"props":1185,"children":1186},{},[1187,1198,1209],{"type":44,"tag":75,"props":1188,"children":1189},{},[1190,1192],{"type":50,"value":1191},"Create deployments: ",{"type":44,"tag":101,"props":1193,"children":1195},{"className":1194},[],[1196],{"type":50,"value":1197},"atlas-local-create-deployment",{"type":44,"tag":75,"props":1199,"children":1200},{},[1201,1203],{"type":50,"value":1202},"List deployments: ",{"type":44,"tag":101,"props":1204,"children":1206},{"className":1205},[],[1207],{"type":50,"value":1208},"atlas-local-list-deployments",{"type":44,"tag":75,"props":1210,"children":1211},{},[1212],{"type":50,"value":1213},"All operations work out of the box with Docker",{"type":44,"tag":53,"props":1215,"children":1216},{},[1217,1222],{"type":44,"tag":79,"props":1218,"children":1219},{},[1220],{"type":50,"value":1221},"Skip Steps 4 and 5",{"type":50,"value":1223}," (no configuration needed) and proceed to Step 6 (Next Steps).",{"type":44,"tag":59,"props":1225,"children":1227},{"id":1226},"step-4-determine-read-only-vs-read-write-access",[1228],{"type":50,"value":1229},"Step 4: Determine Read-Only vs Read-Write Access",{"type":44,"tag":53,"props":1231,"children":1232},{},[1233],{"type":44,"tag":79,"props":1234,"children":1235},{},[1236],{"type":50,"value":1237},"Only applies to Options A and B. Skip to Step 6 for Option C.",{"type":44,"tag":53,"props":1239,"children":1240},{},[1241],{"type":50,"value":1242},"Ask whether they want read-only or read-write access:",{"type":44,"tag":87,"props":1244,"children":1245},{},[1246,1264],{"type":44,"tag":75,"props":1247,"children":1248},{},[1249,1254,1256],{"type":44,"tag":79,"props":1250,"children":1251},{},[1252],{"type":50,"value":1253},"Read-Write",{"type":50,"value":1255}," (default): Full data access, modifications allowed",{"type":44,"tag":87,"props":1257,"children":1258},{},[1259],{"type":44,"tag":75,"props":1260,"children":1261},{},[1262],{"type":50,"value":1263},"Best for: Development, testing, administrative tasks",{"type":44,"tag":75,"props":1265,"children":1266},{},[1267,1272,1274],{"type":44,"tag":79,"props":1268,"children":1269},{},[1270],{"type":50,"value":1271},"Read-Only",{"type":50,"value":1273},": Data reads only, no modifications",{"type":44,"tag":87,"props":1275,"children":1276},{},[1277],{"type":44,"tag":75,"props":1278,"children":1279},{},[1280],{"type":50,"value":1281},"Best for: Production data safety, reporting, compliance",{"type":44,"tag":53,"props":1283,"children":1284},{},[1285,1290,1292,1297],{"type":44,"tag":79,"props":1286,"children":1287},{},[1288],{"type":50,"value":1289},"If read-only",{"type":50,"value":1291},": include the read-only flag in the credential snippet in Step 5.\n",{"type":44,"tag":79,"props":1293,"children":1294},{},[1295],{"type":50,"value":1296},"If read-write",{"type":50,"value":1298},": omit it (defaults to read-write).",{"type":44,"tag":53,"props":1300,"children":1301},{},[1302],{"type":50,"value":1303},"Proceed to Step 5 (Configure Credentials).",{"type":44,"tag":59,"props":1305,"children":1307},{"id":1306},"step-5-configure-credentials",[1308],{"type":50,"value":1309},"Step 5: Configure Credentials",{"type":44,"tag":53,"props":1311,"children":1312},{},[1313,1318],{"type":44,"tag":79,"props":1314,"children":1315},{},[1316],{"type":50,"value":1317},"Do not ask for or handle credentials",{"type":50,"value":1319}," — provide exact instructions so the user can add them directly.",{"type":44,"tag":741,"props":1321,"children":1323},{"id":1322},"_51-add-credentials",[1324],{"type":50,"value":1325},"5.1: Add credentials",{"type":44,"tag":53,"props":1327,"children":1328},{},[1329,1333,1335,1341],{"type":44,"tag":79,"props":1330,"children":1331},{},[1332],{"type":50,"value":376},{"type":50,"value":1334}," — store credentials in a dedicated ",{"type":44,"tag":101,"props":1336,"children":1338},{"className":1337},[],[1339],{"type":50,"value":1340},"~\u002F.mcp-env",{"type":50,"value":1342}," file (not directly in the shell profile), then source it from the profile. This keeps credentials out of files that are often group\u002Fworld readable by default and prevents accidentally committing them to git.",{"type":44,"tag":53,"props":1344,"children":1345},{},[1346,1350,1352,1357,1358,1363],{"type":44,"tag":79,"props":1347,"children":1348},{},[1349],{"type":50,"value":446},{"type":50,"value":1351}," — add to ",{"type":44,"tag":101,"props":1353,"children":1355},{"className":1354},[],[1356],{"type":50,"value":335},{"type":50,"value":337},{"type":44,"tag":101,"props":1359,"children":1361},{"className":1360},[],[1362],{"type":50,"value":343},{"type":50,"value":1364}," (Windows).",{"type":44,"tag":53,"props":1366,"children":1367},{},[1368],{"type":50,"value":1369},"Show the user the appropriate snippet:",{"type":44,"tag":53,"props":1371,"children":1372},{},[1373],{"type":44,"tag":79,"props":1374,"children":1375},{},[1376],{"type":50,"value":1377},"For Connection String (Option A):",{"type":44,"tag":53,"props":1379,"children":1380},{},[1381,1383,1388],{"type":50,"value":1382},"Shell-based clients (",{"type":44,"tag":101,"props":1384,"children":1386},{"className":1385},[],[1387],{"type":50,"value":1340},{"type":50,"value":1389},"):",{"type":44,"tag":230,"props":1391,"children":1393},{"className":232,"code":1392,"language":234,"meta":235,"style":235},"export MDB_MCP_CONNECTION_STRING=\"\u003Cpaste-your-connection-string-here>\"\n",[1394],{"type":44,"tag":101,"props":1395,"children":1396},{"__ignoreMap":235},[1397],{"type":44,"tag":241,"props":1398,"children":1399},{"class":243,"line":244},[1400,1406,1412,1417,1421,1426],{"type":44,"tag":241,"props":1401,"children":1403},{"style":1402},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[1404],{"type":50,"value":1405},"export",{"type":44,"tag":241,"props":1407,"children":1409},{"style":1408},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[1410],{"type":50,"value":1411}," MDB_MCP_CONNECTION_STRING",{"type":44,"tag":241,"props":1413,"children":1414},{"style":254},[1415],{"type":50,"value":1416},"=",{"type":44,"tag":241,"props":1418,"children":1419},{"style":254},[1420],{"type":50,"value":414},{"type":44,"tag":241,"props":1422,"children":1423},{"style":270},[1424],{"type":50,"value":1425},"\u003Cpaste-your-connection-string-here>",{"type":44,"tag":241,"props":1427,"children":1428},{"style":254},[1429],{"type":50,"value":278},{"type":44,"tag":53,"props":1431,"children":1432},{},[1433,1435,1440],{"type":50,"value":1434},"Codex (",{"type":44,"tag":101,"props":1436,"children":1438},{"className":1437},[],[1439],{"type":50,"value":611},{"type":50,"value":1389},{"type":44,"tag":230,"props":1442,"children":1446},{"className":1443,"code":1444,"language":1445,"meta":235,"style":235},"language-toml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","[mcp_servers.mongodb.env]\nMDB_MCP_CONNECTION_STRING = \"\u003Cpaste-your-connection-string-here>\"\n","toml",[1447],{"type":44,"tag":101,"props":1448,"children":1449},{"__ignoreMap":235},[1450,1458],{"type":44,"tag":241,"props":1451,"children":1452},{"class":243,"line":244},[1453],{"type":44,"tag":241,"props":1454,"children":1455},{},[1456],{"type":50,"value":1457},"[mcp_servers.mongodb.env]\n",{"type":44,"tag":241,"props":1459,"children":1461},{"class":243,"line":1460},2,[1462],{"type":44,"tag":241,"props":1463,"children":1464},{},[1465],{"type":50,"value":1466},"MDB_MCP_CONNECTION_STRING = \"\u003Cpaste-your-connection-string-here>\"\n",{"type":44,"tag":53,"props":1468,"children":1469},{},[1470],{"type":44,"tag":79,"props":1471,"children":1472},{},[1473],{"type":50,"value":1474},"For Service Account (Option B):",{"type":44,"tag":53,"props":1476,"children":1477},{},[1478,1479,1484],{"type":50,"value":1382},{"type":44,"tag":101,"props":1480,"children":1482},{"className":1481},[],[1483],{"type":50,"value":1340},{"type":50,"value":1389},{"type":44,"tag":230,"props":1486,"children":1488},{"className":232,"code":1487,"language":234,"meta":235,"style":235},"export MDB_MCP_API_CLIENT_ID=\"\u003Cpaste-your-client-id-here>\"\nexport MDB_MCP_API_CLIENT_SECRET=\"\u003Cpaste-your-client-secret-here>\"\n",[1489],{"type":44,"tag":101,"props":1490,"children":1491},{"__ignoreMap":235},[1492,1521],{"type":44,"tag":241,"props":1493,"children":1494},{"class":243,"line":244},[1495,1499,1504,1508,1512,1517],{"type":44,"tag":241,"props":1496,"children":1497},{"style":1402},[1498],{"type":50,"value":1405},{"type":44,"tag":241,"props":1500,"children":1501},{"style":1408},[1502],{"type":50,"value":1503}," MDB_MCP_API_CLIENT_ID",{"type":44,"tag":241,"props":1505,"children":1506},{"style":254},[1507],{"type":50,"value":1416},{"type":44,"tag":241,"props":1509,"children":1510},{"style":254},[1511],{"type":50,"value":414},{"type":44,"tag":241,"props":1513,"children":1514},{"style":270},[1515],{"type":50,"value":1516},"\u003Cpaste-your-client-id-here>",{"type":44,"tag":241,"props":1518,"children":1519},{"style":254},[1520],{"type":50,"value":278},{"type":44,"tag":241,"props":1522,"children":1523},{"class":243,"line":1460},[1524,1528,1533,1537,1541,1546],{"type":44,"tag":241,"props":1525,"children":1526},{"style":1402},[1527],{"type":50,"value":1405},{"type":44,"tag":241,"props":1529,"children":1530},{"style":1408},[1531],{"type":50,"value":1532}," MDB_MCP_API_CLIENT_SECRET",{"type":44,"tag":241,"props":1534,"children":1535},{"style":254},[1536],{"type":50,"value":1416},{"type":44,"tag":241,"props":1538,"children":1539},{"style":254},[1540],{"type":50,"value":414},{"type":44,"tag":241,"props":1542,"children":1543},{"style":270},[1544],{"type":50,"value":1545},"\u003Cpaste-your-client-secret-here>",{"type":44,"tag":241,"props":1547,"children":1548},{"style":254},[1549],{"type":50,"value":278},{"type":44,"tag":53,"props":1551,"children":1552},{},[1553,1554,1559],{"type":50,"value":1434},{"type":44,"tag":101,"props":1555,"children":1557},{"className":1556},[],[1558],{"type":50,"value":611},{"type":50,"value":1389},{"type":44,"tag":230,"props":1561,"children":1563},{"className":1443,"code":1562,"language":1445,"meta":235,"style":235},"[mcp_servers.mongodb.env]\nMDB_MCP_API_CLIENT_ID = \"\u003Cpaste-your-client-id-here>\"\nMDB_MCP_API_CLIENT_SECRET = \"\u003Cpaste-your-client-secret-here>\"\n",[1564],{"type":44,"tag":101,"props":1565,"children":1566},{"__ignoreMap":235},[1567,1574,1582],{"type":44,"tag":241,"props":1568,"children":1569},{"class":243,"line":244},[1570],{"type":44,"tag":241,"props":1571,"children":1572},{},[1573],{"type":50,"value":1457},{"type":44,"tag":241,"props":1575,"children":1576},{"class":243,"line":1460},[1577],{"type":44,"tag":241,"props":1578,"children":1579},{},[1580],{"type":50,"value":1581},"MDB_MCP_API_CLIENT_ID = \"\u003Cpaste-your-client-id-here>\"\n",{"type":44,"tag":241,"props":1583,"children":1585},{"class":243,"line":1584},3,[1586],{"type":44,"tag":241,"props":1587,"children":1588},{},[1589],{"type":50,"value":1590},"MDB_MCP_API_CLIENT_SECRET = \"\u003Cpaste-your-client-secret-here>\"\n",{"type":44,"tag":53,"props":1592,"children":1593},{},[1594],{"type":44,"tag":79,"props":1595,"children":1596},{},[1597],{"type":50,"value":1598},"If read-only was chosen (Step 4), also add:",{"type":44,"tag":53,"props":1600,"children":1601},{},[1602,1604,1610,1612,1617],{"type":50,"value":1603},"Shell-based: ",{"type":44,"tag":101,"props":1605,"children":1607},{"className":1606},[],[1608],{"type":50,"value":1609},"export MDB_MCP_READ_ONLY=\"true\"",{"type":50,"value":1611}," in ",{"type":44,"tag":101,"props":1613,"children":1615},{"className":1614},[],[1616],{"type":50,"value":1340},{"type":50,"value":1618},".",{"type":44,"tag":53,"props":1620,"children":1621},{},[1622,1624,1630,1632,1638],{"type":50,"value":1623},"Codex: ",{"type":44,"tag":101,"props":1625,"children":1627},{"className":1626},[],[1628],{"type":50,"value":1629},"MDB_MCP_READ_ONLY = \"true\"",{"type":50,"value":1631}," under the same ",{"type":44,"tag":101,"props":1633,"children":1635},{"className":1634},[],[1636],{"type":50,"value":1637},"[mcp_servers.mongodb.env]",{"type":50,"value":1639}," section.",{"type":44,"tag":53,"props":1641,"children":1642},{},[1643,1645,1650,1651,1656],{"type":50,"value":1644},"⚠️ Both ",{"type":44,"tag":101,"props":1646,"children":1648},{"className":1647},[],[1649],{"type":50,"value":611},{"type":50,"value":159},{"type":44,"tag":101,"props":1652,"children":1654},{"className":1653},[],[1655],{"type":50,"value":1340},{"type":50,"value":1657}," are stored in plaintext. Do not commit them to version control.",{"type":44,"tag":741,"props":1659,"children":1661},{"id":1660},"_52-finalize-shell-based-clients-only",[1662],{"type":50,"value":1663},"5.2: Finalize (shell-based clients only)",{"type":44,"tag":53,"props":1665,"children":1666},{},[1667,1669,1674],{"type":50,"value":1668},"Restrict permissions on ",{"type":44,"tag":101,"props":1670,"children":1672},{"className":1671},[],[1673],{"type":50,"value":1340},{"type":50,"value":1675},":",{"type":44,"tag":230,"props":1677,"children":1679},{"className":232,"code":1678,"language":234,"meta":235,"style":235},"# adjust for windows if needed\nchmod 600 ~\u002F.mcp-env\n",[1680],{"type":44,"tag":101,"props":1681,"children":1682},{"__ignoreMap":235},[1683,1692],{"type":44,"tag":241,"props":1684,"children":1685},{"class":243,"line":244},[1686],{"type":44,"tag":241,"props":1687,"children":1689},{"style":1688},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[1690],{"type":50,"value":1691},"# adjust for windows if needed\n",{"type":44,"tag":241,"props":1693,"children":1694},{"class":243,"line":1460},[1695,1700,1706],{"type":44,"tag":241,"props":1696,"children":1697},{"style":248},[1698],{"type":50,"value":1699},"chmod",{"type":44,"tag":241,"props":1701,"children":1703},{"style":1702},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[1704],{"type":50,"value":1705}," 600",{"type":44,"tag":241,"props":1707,"children":1708},{"style":270},[1709],{"type":50,"value":1710}," ~\u002F.mcp-env\n",{"type":44,"tag":53,"props":1712,"children":1713},{},[1714,1716,1722,1724,1730,1732,1738,1739,1745,1747,1753],{"type":50,"value":1715},"Add ",{"type":44,"tag":101,"props":1717,"children":1719},{"className":1718},[],[1720],{"type":50,"value":1721},"source ~\u002F.mcp-env",{"type":50,"value":1723}," to the shell profile (e.g. ",{"type":44,"tag":101,"props":1725,"children":1727},{"className":1726},[],[1728],{"type":50,"value":1729},"~\u002F.zshrc",{"type":50,"value":1731},"). Adjust for the detected shell (e.g. for fish: ",{"type":44,"tag":101,"props":1733,"children":1735},{"className":1734},[],[1736],{"type":50,"value":1737},"bass source ~\u002F.mcp-env",{"type":50,"value":798},{"type":44,"tag":101,"props":1740,"children":1742},{"className":1741},[],[1743],{"type":50,"value":1744},"set -x",{"type":50,"value":1746},"; for PowerShell: dot-source a ",{"type":44,"tag":101,"props":1748,"children":1750},{"className":1749},[],[1751],{"type":50,"value":1752},".ps1",{"type":50,"value":1754}," file instead).",{"type":44,"tag":53,"props":1756,"children":1757},{},[1758,1760,1766],{"type":50,"value":1759},"Detect the shell and profile file by running ",{"type":44,"tag":101,"props":1761,"children":1763},{"className":1762},[],[1764],{"type":50,"value":1765},"echo $SHELL",{"type":50,"value":1767}," if needed.",{"type":44,"tag":741,"props":1769,"children":1771},{"id":1770},"_53-verify",[1772],{"type":50,"value":1773},"5.3: Verify",{"type":44,"tag":53,"props":1775,"children":1776},{},[1777,1782],{"type":44,"tag":79,"props":1778,"children":1779},{},[1780],{"type":50,"value":1781},"Shell-based clients",{"type":50,"value":1783}," — reload the profile first, then verify:",{"type":44,"tag":230,"props":1785,"children":1787},{"className":232,"code":1786,"language":234,"meta":235,"style":235},"source ~\u002F.zshrc  # adjust to match the profile file\nenv | grep \"^MDB_MCP\" | sed '\u002F^MDB_MCP_READ_ONLY=\u002F!s\u002F=.*\u002F=[set]\u002F'\n",[1788],{"type":44,"tag":101,"props":1789,"children":1790},{"__ignoreMap":235},[1791,1810],{"type":44,"tag":241,"props":1792,"children":1793},{"class":243,"line":244},[1794,1800,1805],{"type":44,"tag":241,"props":1795,"children":1797},{"style":1796},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[1798],{"type":50,"value":1799},"source",{"type":44,"tag":241,"props":1801,"children":1802},{"style":270},[1803],{"type":50,"value":1804}," ~\u002F.zshrc",{"type":44,"tag":241,"props":1806,"children":1807},{"style":1688},[1808],{"type":50,"value":1809},"  # adjust to match the profile file\n",{"type":44,"tag":241,"props":1811,"children":1812},{"class":243,"line":1460},[1813,1817,1821,1825,1829,1833,1837,1841,1845,1849,1853],{"type":44,"tag":241,"props":1814,"children":1815},{"style":248},[1816],{"type":50,"value":251},{"type":44,"tag":241,"props":1818,"children":1819},{"style":254},[1820],{"type":50,"value":257},{"type":44,"tag":241,"props":1822,"children":1823},{"style":248},[1824],{"type":50,"value":262},{"type":44,"tag":241,"props":1826,"children":1827},{"style":254},[1828],{"type":50,"value":267},{"type":44,"tag":241,"props":1830,"children":1831},{"style":270},[1832],{"type":50,"value":409},{"type":44,"tag":241,"props":1834,"children":1835},{"style":254},[1836],{"type":50,"value":414},{"type":44,"tag":241,"props":1838,"children":1839},{"style":254},[1840],{"type":50,"value":257},{"type":44,"tag":241,"props":1842,"children":1843},{"style":248},[1844],{"type":50,"value":423},{"type":44,"tag":241,"props":1846,"children":1847},{"style":254},[1848],{"type":50,"value":428},{"type":44,"tag":241,"props":1850,"children":1851},{"style":270},[1852],{"type":50,"value":433},{"type":44,"tag":241,"props":1854,"children":1855},{"style":254},[1856],{"type":50,"value":438},{"type":44,"tag":53,"props":1858,"children":1859},{},[1860],{"type":44,"tag":79,"props":1861,"children":1862},{},[1863],{"type":50,"value":1864},"Codex:",{"type":44,"tag":230,"props":1866,"children":1868},{"className":232,"code":1867,"language":234,"meta":235,"style":235},"# adjust path if on Windows\ngrep -E 'MDB_MCP_(CONNECTION_STRING|API_CLIENT_ID|API_CLIENT_SECRET|READ_ONLY)' ~\u002F.codex\u002Fconfig.toml 2>\u002Fdev\u002Fnull | sed '\u002FMDB_MCP_READ_ONLY\u002F!s\u002F[[:space:]]*=[[:space:]].*\u002F = \"[set]\"\u002F'\n",[1869],{"type":44,"tag":101,"props":1870,"children":1871},{"__ignoreMap":235},[1872,1880],{"type":44,"tag":241,"props":1873,"children":1874},{"class":243,"line":244},[1875],{"type":44,"tag":241,"props":1876,"children":1877},{"style":1688},[1878],{"type":50,"value":1879},"# adjust path if on Windows\n",{"type":44,"tag":241,"props":1881,"children":1882},{"class":243,"line":1460},[1883,1887,1891,1895,1899,1903,1907,1911,1915,1919,1923,1927,1931],{"type":44,"tag":241,"props":1884,"children":1885},{"style":248},[1886],{"type":50,"value":476},{"type":44,"tag":241,"props":1888,"children":1889},{"style":270},[1890],{"type":50,"value":481},{"type":44,"tag":241,"props":1892,"children":1893},{"style":254},[1894],{"type":50,"value":428},{"type":44,"tag":241,"props":1896,"children":1897},{"style":270},[1898],{"type":50,"value":490},{"type":44,"tag":241,"props":1900,"children":1901},{"style":254},[1902],{"type":50,"value":495},{"type":44,"tag":241,"props":1904,"children":1905},{"style":270},[1906],{"type":50,"value":500},{"type":44,"tag":241,"props":1908,"children":1909},{"style":254},[1910],{"type":50,"value":505},{"type":44,"tag":241,"props":1912,"children":1913},{"style":270},[1914],{"type":50,"value":510},{"type":44,"tag":241,"props":1916,"children":1917},{"style":254},[1918],{"type":50,"value":257},{"type":44,"tag":241,"props":1920,"children":1921},{"style":248},[1922],{"type":50,"value":423},{"type":44,"tag":241,"props":1924,"children":1925},{"style":254},[1926],{"type":50,"value":428},{"type":44,"tag":241,"props":1928,"children":1929},{"style":270},[1930],{"type":50,"value":527},{"type":44,"tag":241,"props":1932,"children":1933},{"style":254},[1934],{"type":50,"value":438},{"type":44,"tag":53,"props":1936,"children":1937},{},[1938,1940,1946],{"type":50,"value":1939},"Expected output shows the configured key(s) with values redacted to ",{"type":44,"tag":101,"props":1941,"children":1943},{"className":1942},[],[1944],{"type":50,"value":1945},"[set]",{"type":50,"value":1947},". If nothing appears, check that credentials were saved and (for shell-based clients) that the profile was reloaded.",{"type":44,"tag":53,"props":1949,"children":1950},{},[1951],{"type":50,"value":1952},"Proceed to Step 6 (Next Steps).",{"type":44,"tag":59,"props":1954,"children":1956},{"id":1955},"step-6-next-steps",[1957],{"type":50,"value":1958},"Step 6: Next Steps",{"type":44,"tag":741,"props":1960,"children":1962},{"id":1961},"for-options-a-b-connection-string-service-account",[1963],{"type":50,"value":1964},"For Options A & B (Connection String \u002F Service Account):",{"type":44,"tag":71,"props":1966,"children":1967},{},[1968,2012,2022],{"type":44,"tag":75,"props":1969,"children":1970},{},[1971,1976,1977],{"type":44,"tag":79,"props":1972,"children":1973},{},[1974],{"type":50,"value":1975},"Restart the agentic client",{"type":50,"value":1675},{"type":44,"tag":87,"props":1978,"children":1979},{},[1980,1997],{"type":44,"tag":75,"props":1981,"children":1982},{},[1983,1987,1989,1995],{"type":44,"tag":79,"props":1984,"children":1985},{},[1986],{"type":50,"value":1781},{"type":50,"value":1988},": Fully quit the client, then run ",{"type":44,"tag":101,"props":1990,"children":1992},{"className":1991},[],[1993],{"type":50,"value":1994},"source \u003Cprofile-file>",{"type":50,"value":1996}," to load the new variables, and reopen the client from that same terminal session so it inherits the environment.",{"type":44,"tag":75,"props":1998,"children":1999},{},[2000,2004,2006,2011],{"type":44,"tag":79,"props":2001,"children":2002},{},[2003],{"type":50,"value":327},{"type":50,"value":2005},": Fully quit and relaunch the app. No terminal session needed — credentials come from ",{"type":44,"tag":101,"props":2007,"children":2009},{"className":2008},[],[2010],{"type":50,"value":611},{"type":50,"value":1618},{"type":44,"tag":75,"props":2013,"children":2014},{},[2015,2020],{"type":44,"tag":79,"props":2016,"children":2017},{},[2018],{"type":50,"value":2019},"Verify MCP Server",{"type":50,"value":2021},": After restart, test by performing a MongoDB operation.",{"type":44,"tag":75,"props":2023,"children":2024},{},[2025,2030,2031],{"type":44,"tag":79,"props":2026,"children":2027},{},[2028],{"type":50,"value":2029},"Using the Tools",{"type":50,"value":1675},{"type":44,"tag":87,"props":2032,"children":2033},{},[2034,2039,2049],{"type":44,"tag":75,"props":2035,"children":2036},{},[2037],{"type":50,"value":2038},"Option A: Direct database access tools available",{"type":44,"tag":75,"props":2040,"children":2041},{},[2042,2044],{"type":50,"value":2043},"Option B: Additionally has Atlas Admin API tools and ",{"type":44,"tag":101,"props":2045,"children":2047},{"className":2046},[],[2048],{"type":50,"value":142},{"type":44,"tag":75,"props":2050,"children":2051},{},[2052,2057],{"type":44,"tag":79,"props":2053,"children":2054},{},[2055],{"type":50,"value":2056},"Important (Option B)",{"type":50,"value":2058},": Ensure your IP is in the service account's API Access List or all API calls will fail",{"type":44,"tag":741,"props":2060,"children":2062},{"id":2061},"for-option-c-atlas-local",[2063],{"type":50,"value":2064},"For Option C (Atlas Local):",{"type":44,"tag":71,"props":2066,"children":2067},{},[2068,2078],{"type":44,"tag":75,"props":2069,"children":2070},{},[2071,2076],{"type":44,"tag":79,"props":2072,"children":2073},{},[2074],{"type":50,"value":2075},"Ready to use",{"type":50,"value":2077},": No restart or configuration needed!",{"type":44,"tag":75,"props":2079,"children":2080},{},[2081,2086,2087],{"type":44,"tag":79,"props":2082,"children":2083},{},[2084],{"type":50,"value":2085},"Next steps",{"type":50,"value":1675},{"type":44,"tag":87,"props":2088,"children":2089},{},[2090,2099,2108],{"type":44,"tag":75,"props":2091,"children":2092},{},[2093,2094],{"type":50,"value":1191},{"type":44,"tag":101,"props":2095,"children":2097},{"className":2096},[],[2098],{"type":50,"value":1197},{"type":44,"tag":75,"props":2100,"children":2101},{},[2102,2103],{"type":50,"value":1202},{"type":44,"tag":101,"props":2104,"children":2106},{"className":2105},[],[2107],{"type":50,"value":1208},{"type":44,"tag":75,"props":2109,"children":2110},{},[2111],{"type":50,"value":2112},"Use standard database operations once connected",{"type":44,"tag":59,"props":2114,"children":2116},{"id":2115},"troubleshooting",[2117],{"type":50,"value":2118},"Troubleshooting",{"type":44,"tag":87,"props":2120,"children":2121},{},[2122,2137,2147,2186,2209,2219,2258],{"type":44,"tag":75,"props":2123,"children":2124},{},[2125,2135],{"type":44,"tag":79,"props":2126,"children":2127},{},[2128,2130],{"type":50,"value":2129},"Variables not appearing after ",{"type":44,"tag":101,"props":2131,"children":2133},{"className":2132},[],[2134],{"type":50,"value":1799},{"type":50,"value":2136}," (shell-based clients): Check the profile file path and confirm the file was saved",{"type":44,"tag":75,"props":2138,"children":2139},{},[2140,2145],{"type":44,"tag":79,"props":2141,"children":2142},{},[2143],{"type":50,"value":2144},"Client doesn't pick up variables",{"type":50,"value":2146},": Ensure full restart (quit + reopen), not just a reload",{"type":44,"tag":75,"props":2148,"children":2149},{},[2150,2155,2157,2163,2165,2171,2173,2178,2179,2184],{"type":44,"tag":79,"props":2151,"children":2152},{},[2153],{"type":50,"value":2154},"Codex desktop app not picking up credentials",{"type":50,"value":2156},": If launched from Finder, Launchpad, or the Windows Start menu, Codex does not inherit shell environment variables from ",{"type":44,"tag":101,"props":2158,"children":2160},{"className":2159},[],[2161],{"type":50,"value":2162},".zshrc",{"type":50,"value":2164},"\u002F",{"type":44,"tag":101,"props":2166,"children":2168},{"className":2167},[],[2169],{"type":50,"value":2170},".zprofile",{"type":50,"value":2172},"\u002FPowerShell profiles. Use ",{"type":44,"tag":101,"props":2174,"children":2176},{"className":2175},[],[2177],{"type":50,"value":335},{"type":50,"value":337},{"type":44,"tag":101,"props":2180,"children":2182},{"className":2181},[],[2183],{"type":50,"value":343},{"type":50,"value":2185}," (Windows) instead (see Step 5)",{"type":44,"tag":75,"props":2187,"children":2188},{},[2189,2194,2196,2202,2203],{"type":44,"tag":79,"props":2190,"children":2191},{},[2192],{"type":50,"value":2193},"Invalid connection string format",{"type":50,"value":2195},": Re-check the format; must start with ",{"type":44,"tag":101,"props":2197,"children":2199},{"className":2198},[],[2200],{"type":50,"value":2201},"mongodb:\u002F\u002F",{"type":50,"value":798},{"type":44,"tag":101,"props":2204,"children":2206},{"className":2205},[],[2207],{"type":50,"value":2208},"mongodb+srv:\u002F\u002F",{"type":44,"tag":75,"props":2210,"children":2211},{},[2212,2217],{"type":44,"tag":79,"props":2213,"children":2214},{},[2215],{"type":50,"value":2216},"Atlas Admin API errors (Option B)",{"type":50,"value":2218},": Verify your IP is in the service account's API Access List",{"type":44,"tag":75,"props":2220,"children":2221},{},[2222,2227,2229,2234,2236,2241,2243,2248,2250,2256],{"type":44,"tag":79,"props":2223,"children":2224},{},[2225],{"type":50,"value":2226},"Read-only mode not working",{"type":50,"value":2228},": Check that ",{"type":44,"tag":101,"props":2230,"children":2232},{"className":2231},[],[2233],{"type":50,"value":582},{"type":50,"value":2235}," is set — in ",{"type":44,"tag":101,"props":2237,"children":2239},{"className":2238},[],[2240],{"type":50,"value":611},{"type":50,"value":2242}," under ",{"type":44,"tag":101,"props":2244,"children":2246},{"className":2245},[],[2247],{"type":50,"value":1637},{"type":50,"value":2249}," for Codex, or via ",{"type":44,"tag":101,"props":2251,"children":2253},{"className":2252},[],[2254],{"type":50,"value":2255},"env | grep ^MDB_MCP_READ_ONLY",{"type":50,"value":2257}," for shell-based clients",{"type":44,"tag":75,"props":2259,"children":2260},{},[2261,2266,2268,2273,2275,2281,2283],{"type":44,"tag":79,"props":2262,"children":2263},{},[2264],{"type":50,"value":2265},"fish\u002FPowerShell",{"type":50,"value":2267},": Syntax differs — use ",{"type":44,"tag":101,"props":2269,"children":2271},{"className":2270},[],[2272],{"type":50,"value":1744},{"type":50,"value":2274}," (fish) or ",{"type":44,"tag":101,"props":2276,"children":2278},{"className":2277},[],[2279],{"type":50,"value":2280},"$env:",{"type":50,"value":2282}," (PowerShell) instead of ",{"type":44,"tag":101,"props":2284,"children":2286},{"className":2285},[],[2287],{"type":50,"value":1405},{"type":44,"tag":2289,"props":2290,"children":2291},"style",{},[2292],{"type":50,"value":2293},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":2295,"total":2386},[2296,2313,2325,2331,2343,2356,2369],{"slug":2297,"name":2297,"fn":2298,"description":2299,"org":2300,"tags":2301,"stars":20,"repoUrl":21,"updatedAt":2312},"mongodb-atlas-stream-processing","manage MongoDB Atlas Stream Processing workflows","Manages MongoDB Atlas Stream Processing (ASP) workflows. Handles workspace provisioning, data source\u002Fsink connections, processor lifecycle operations, debugging diagnostics, and tier sizing. Supports Kafka, Atlas clusters, S3, HTTPS, and Lambda integrations for streaming data workloads and event processing. NOT for general MongoDB queries or Atlas cluster management. Requires MongoDB MCP Server with Atlas API credentials.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2302,2305,2308,2311],{"name":2303,"slug":2304,"type":15},"Data Engineering","data-engineering",{"name":2306,"slug":2307,"type":15},"Data Pipeline","data-pipeline",{"name":2309,"slug":2310,"type":15},"Database","database",{"name":9,"slug":8,"type":15},"2026-07-13T06:15:32.953796",{"slug":2314,"name":2314,"fn":2315,"description":2316,"org":2317,"tags":2318,"stars":20,"repoUrl":21,"updatedAt":2324},"mongodb-connection","configure MongoDB client connections","Optimize MongoDB client connection configuration (pools, timeouts, patterns) for any supported driver language. Use this skill when working\u002Fupdating\u002Freviewing on functions that instantiate or configure a MongoDB client (eg, when calling `connect()`), configuring connection pools, troubleshooting connection errors (ECONNREFUSED, timeouts, pool exhaustion), optimizing performance issues related to connections. This includes scenarios like building serverless functions with MongoDB, creating API endpoints that use MongoDB, optimizing high-traffic MongoDB applications, creating long-running tasks and concurrency, or debugging connection-related failures.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2319,2320,2321],{"name":2309,"slug":2310,"type":15},{"name":9,"slug":8,"type":15},{"name":2322,"slug":2323,"type":15},"Performance","performance","2026-07-13T06:15:26.144554",{"slug":4,"name":4,"fn":5,"description":6,"org":2326,"tags":2327,"stars":20,"repoUrl":21,"updatedAt":22},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2328,2329,2330],{"name":13,"slug":14,"type":15},{"name":18,"slug":19,"type":15},{"name":9,"slug":8,"type":15},{"slug":2332,"name":2332,"fn":2333,"description":2334,"org":2335,"tags":2336,"stars":20,"repoUrl":21,"updatedAt":2342},"mongodb-natural-language-querying","generate MongoDB queries from natural language","Generate read-only MongoDB queries (find) or aggregation pipelines using natural language, with collection schema context and sample documents. Use this skill whenever the user asks to write, create, or generate MongoDB queries, wants to filter\u002Fquery\u002Faggregate data in MongoDB, asks \"how do I query...\", needs help with query syntax, or discusses finding\u002Ffiltering\u002Fgrouping MongoDB documents. Also use for translating SQL-like requests to MongoDB syntax. Does NOT handle Atlas Search ($search operator), vector\u002Fsemantic search ($vectorSearch operator), fuzzy matching, autocomplete indexes, or relevance scoring - use search-and-ai for those. Does NOT analyze or optimize existing queries - use mongodb-query-optimizer for that. Does NOT handle aggregation pipelines that involve write operations. Requires MongoDB MCP server.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2337,2340,2341],{"name":2338,"slug":2339,"type":15},"Data Analysis","data-analysis",{"name":2309,"slug":2310,"type":15},{"name":9,"slug":8,"type":15},"2026-07-16T06:02:02.491655",{"slug":2344,"name":2344,"fn":2345,"description":2346,"org":2347,"tags":2348,"stars":20,"repoUrl":21,"updatedAt":2355},"mongodb-query-optimizer","optimize MongoDB queries and indexes","Help with MongoDB query optimization and indexing. Use only when the user asks for optimization or performance: \"How do I optimize this query?\", \"How do I index this?\", \"Why is this query slow?\", \"Can you fix my slow queries?\", \"What are the slow queries on my cluster?\", etc. Do not invoke for general MongoDB query writing unless user asks for performance or index help. Prefer indexing as optimization strategy. Use MongoDB MCP when available.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2349,2350,2353,2354],{"name":2309,"slug":2310,"type":15},{"name":2351,"slug":2352,"type":15},"Debugging","debugging",{"name":9,"slug":8,"type":15},{"name":2322,"slug":2323,"type":15},"2026-07-13T06:15:44.51826",{"slug":2357,"name":2357,"fn":2358,"description":2359,"org":2360,"tags":2361,"stars":20,"repoUrl":21,"updatedAt":2368},"mongodb-schema-design","design and optimize MongoDB schemas","MongoDB schema design patterns and anti-patterns. Use when designing data models, reviewing schemas, migrating from SQL, or troubleshooting performance issues caused by schema problems. Triggers on \"design schema\", \"embed vs reference\", \"MongoDB data model\", \"schema review\", \"unbounded arrays\", \"one-to-many\", \"tree structure\", \"16MB limit\", \"schema validation\", \"JSON Schema\", \"time series\", \"schema migration\", \"polymorphic\", \"TTL\", \"data lifecycle\", \"archive\", \"index explosion\", \"unnecessary indexes\", \"approximation pattern\", \"document versioning\".",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2362,2365,2366,2367],{"name":2363,"slug":2364,"type":15},"Data Modeling","data-modeling",{"name":2309,"slug":2310,"type":15},{"name":9,"slug":8,"type":15},{"name":2322,"slug":2323,"type":15},"2026-07-16T06:00:24.782785",{"slug":2370,"name":2370,"fn":2371,"description":2372,"org":2373,"tags":2374,"stars":20,"repoUrl":21,"updatedAt":2385},"mongodb-search-and-ai","implement Atlas Search and Vector Search","Guides MongoDB users through implementing and optimizing Atlas Search (full-text), Vector Search (semantic), and Hybrid Search solutions. Use this skill when users need to build search functionality for text-based queries (autocomplete, fuzzy matching, faceted search), semantic similarity (embeddings, RAG applications), or combined approaches. Also use when users need text containment, substring matching ('contains', 'includes', 'appears in'), case-insensitive or multi-field text search, or filtering across many fields with variable combinations. Provides workflows for selecting the right search type, creating indexes, constructing queries, and optimizing performance using the MongoDB MCP server.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2375,2378,2379,2382],{"name":2376,"slug":2377,"type":15},"LLM","llm",{"name":9,"slug":8,"type":15},{"name":2380,"slug":2381,"type":15},"RAG","rag",{"name":2383,"slug":2384,"type":15},"Search","search","2026-07-16T06:01:58.645908",7,{"items":2388,"total":2469},[2389,2396,2402,2408,2414,2421,2428,2435,2452],{"slug":2297,"name":2297,"fn":2298,"description":2299,"org":2390,"tags":2391,"stars":20,"repoUrl":21,"updatedAt":2312},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2392,2393,2394,2395],{"name":2303,"slug":2304,"type":15},{"name":2306,"slug":2307,"type":15},{"name":2309,"slug":2310,"type":15},{"name":9,"slug":8,"type":15},{"slug":2314,"name":2314,"fn":2315,"description":2316,"org":2397,"tags":2398,"stars":20,"repoUrl":21,"updatedAt":2324},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2399,2400,2401],{"name":2309,"slug":2310,"type":15},{"name":9,"slug":8,"type":15},{"name":2322,"slug":2323,"type":15},{"slug":4,"name":4,"fn":5,"description":6,"org":2403,"tags":2404,"stars":20,"repoUrl":21,"updatedAt":22},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2405,2406,2407],{"name":13,"slug":14,"type":15},{"name":18,"slug":19,"type":15},{"name":9,"slug":8,"type":15},{"slug":2332,"name":2332,"fn":2333,"description":2334,"org":2409,"tags":2410,"stars":20,"repoUrl":21,"updatedAt":2342},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2411,2412,2413],{"name":2338,"slug":2339,"type":15},{"name":2309,"slug":2310,"type":15},{"name":9,"slug":8,"type":15},{"slug":2344,"name":2344,"fn":2345,"description":2346,"org":2415,"tags":2416,"stars":20,"repoUrl":21,"updatedAt":2355},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2417,2418,2419,2420],{"name":2309,"slug":2310,"type":15},{"name":2351,"slug":2352,"type":15},{"name":9,"slug":8,"type":15},{"name":2322,"slug":2323,"type":15},{"slug":2357,"name":2357,"fn":2358,"description":2359,"org":2422,"tags":2423,"stars":20,"repoUrl":21,"updatedAt":2368},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2424,2425,2426,2427],{"name":2363,"slug":2364,"type":15},{"name":2309,"slug":2310,"type":15},{"name":9,"slug":8,"type":15},{"name":2322,"slug":2323,"type":15},{"slug":2370,"name":2370,"fn":2371,"description":2372,"org":2429,"tags":2430,"stars":20,"repoUrl":21,"updatedAt":2385},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2431,2432,2433,2434],{"name":2376,"slug":2377,"type":15},{"name":9,"slug":8,"type":15},{"name":2380,"slug":2381,"type":15},{"name":2383,"slug":2384,"type":15},{"slug":2436,"name":2436,"fn":2437,"description":2438,"org":2439,"tags":2440,"stars":2449,"repoUrl":2450,"updatedAt":2451},"kafka-to-asp","migrate Kafka connectors to Atlas Stream Processing","Converts MongoDB Kafka managed connector configurations (MongoDbAtlasSource \u002F MongoDbAtlasSink) to equivalent Atlas Stream Processing processors. One-time migration workflow: reads connector JSON, validates it, maps fields to ASP pipeline stages, and creates connections and processors via the MongoDB MCP Server. Requires MongoDB MCP Server with Atlas API credentials.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2441,2442,2445,2448],{"name":2306,"slug":2307,"type":15},{"name":2443,"slug":2444,"type":15},"ETL","etl",{"name":2446,"slug":2447,"type":15},"Migration","migration",{"name":9,"slug":8,"type":15},10,"https:\u002F\u002Fgithub.com\u002Fmongodb\u002FASP_example","2026-07-16T06:02:02.15744",{"slug":2453,"name":2453,"fn":2454,"description":2455,"org":2456,"tags":2457,"stars":244,"repoUrl":2467,"updatedAt":2468},"tines","manage Tines security automation workflows","Use when creating, modifying, or managing Tines stories, actions, workflows, or automations. Also use when the user mentions Tines, asks about building SOAR workflows, or wants to automate security operations. Triggers on keywords like tines, story, action, webhook, workflow automation, SOAR.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2458,2461,2464],{"name":2459,"slug":2460,"type":15},"Automation","automation",{"name":2462,"slug":2463,"type":15},"Security","security",{"name":2465,"slug":2466,"type":15},"Workflow Automation","workflow-automation","https:\u002F\u002Fgithub.com\u002Fmongodb\u002Ftines-claude","2026-07-13T06:15:24.618317",9]