mongodb-mcp-server 0.1.1 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/.dockerignore +11 -0
  2. package/.github/pull_request_template.md +5 -0
  3. package/.github/workflows/check-pr-title.yml +29 -0
  4. package/.github/workflows/code_health.yaml +3 -3
  5. package/.github/workflows/docker.yaml +57 -0
  6. package/.github/workflows/stale.yml +32 -0
  7. package/.smithery/Dockerfile +30 -0
  8. package/.smithery/smithery.yaml +73 -0
  9. package/CONTRIBUTING.md +1 -1
  10. package/Dockerfile +10 -0
  11. package/README.md +150 -15
  12. package/dist/common/atlas/apiClient.js +10 -1
  13. package/dist/common/atlas/apiClient.js.map +1 -1
  14. package/dist/common/atlas/cluster.js +1 -1
  15. package/dist/common/atlas/cluster.js.map +1 -1
  16. package/dist/config.js +1 -0
  17. package/dist/config.js.map +1 -1
  18. package/dist/errors.js +1 -0
  19. package/dist/errors.js.map +1 -1
  20. package/dist/helpers/indexCheck.js +63 -0
  21. package/dist/helpers/indexCheck.js.map +1 -0
  22. package/dist/index.js +17 -0
  23. package/dist/index.js.map +1 -1
  24. package/dist/logger.js +4 -0
  25. package/dist/logger.js.map +1 -1
  26. package/dist/tools/atlas/create/createProject.js +5 -1
  27. package/dist/tools/atlas/create/createProject.js.map +1 -1
  28. package/dist/tools/atlas/read/listAlerts.js +41 -0
  29. package/dist/tools/atlas/read/listAlerts.js.map +1 -0
  30. package/dist/tools/atlas/read/listProjects.js +3 -1
  31. package/dist/tools/atlas/read/listProjects.js.map +1 -1
  32. package/dist/tools/atlas/tools.js +2 -0
  33. package/dist/tools/atlas/tools.js.map +1 -1
  34. package/dist/tools/mongodb/delete/deleteMany.js +18 -0
  35. package/dist/tools/mongodb/delete/deleteMany.js.map +1 -1
  36. package/dist/tools/mongodb/metadata/explain.js +1 -1
  37. package/dist/tools/mongodb/metadata/explain.js.map +1 -1
  38. package/dist/tools/mongodb/metadata/listDatabases.js.map +1 -1
  39. package/dist/tools/mongodb/mongodbTool.js +10 -0
  40. package/dist/tools/mongodb/mongodbTool.js.map +1 -1
  41. package/dist/tools/mongodb/read/aggregate.js +9 -0
  42. package/dist/tools/mongodb/read/aggregate.js.map +1 -1
  43. package/dist/tools/mongodb/read/count.js +15 -2
  44. package/dist/tools/mongodb/read/count.js.map +1 -1
  45. package/dist/tools/mongodb/read/find.js +7 -0
  46. package/dist/tools/mongodb/read/find.js.map +1 -1
  47. package/dist/tools/mongodb/update/updateMany.js +20 -0
  48. package/dist/tools/mongodb/update/updateMany.js.map +1 -1
  49. package/dist/tools/tool.js +34 -2
  50. package/dist/tools/tool.js.map +1 -1
  51. package/package.json +9 -9
  52. package/scripts/apply.ts +4 -4
  53. package/scripts/filter.ts +1 -0
  54. package/src/common/atlas/apiClient.ts +11 -1
  55. package/src/common/atlas/cluster.ts +1 -2
  56. package/src/common/atlas/openapi.d.ts +1242 -28
  57. package/src/config.ts +2 -0
  58. package/src/errors.ts +1 -0
  59. package/src/helpers/indexCheck.ts +83 -0
  60. package/src/index.ts +20 -0
  61. package/src/logger.ts +5 -0
  62. package/src/tools/atlas/create/createProject.ts +7 -1
  63. package/src/tools/atlas/read/listAlerts.ts +45 -0
  64. package/src/tools/atlas/read/listProjects.ts +4 -2
  65. package/src/tools/atlas/tools.ts +2 -0
  66. package/src/tools/mongodb/delete/deleteMany.ts +20 -0
  67. package/src/tools/mongodb/metadata/explain.ts +1 -1
  68. package/src/tools/mongodb/metadata/listDatabases.ts +0 -1
  69. package/src/tools/mongodb/mongodbTool.ts +10 -0
  70. package/src/tools/mongodb/read/aggregate.ts +11 -0
  71. package/src/tools/mongodb/read/count.ts +18 -2
  72. package/src/tools/mongodb/read/find.ts +9 -0
  73. package/src/tools/mongodb/update/updateMany.ts +22 -0
  74. package/src/tools/tool.ts +40 -3
  75. package/tests/integration/helpers.ts +23 -0
  76. package/tests/integration/indexCheck.test.ts +463 -0
  77. package/tests/integration/server.test.ts +5 -4
  78. package/tests/integration/tools/atlas/accessLists.test.ts +2 -2
  79. package/tests/integration/tools/atlas/alerts.test.ts +42 -0
  80. package/tests/integration/tools/atlas/atlasHelpers.ts +5 -3
  81. package/tests/integration/tools/atlas/clusters.test.ts +4 -4
  82. package/tests/integration/tools/atlas/dbUsers.test.ts +7 -7
  83. package/tests/integration/tools/atlas/orgs.test.ts +2 -2
  84. package/tests/integration/tools/atlas/projects.test.ts +3 -3
  85. package/tests/integration/tools/mongodb/create/createCollection.test.ts +2 -2
  86. package/tests/integration/tools/mongodb/create/createIndex.test.ts +2 -2
  87. package/tests/integration/tools/mongodb/create/insertMany.test.ts +1 -1
  88. package/tests/integration/tools/mongodb/delete/dropCollection.test.ts +1 -1
  89. package/tests/integration/tools/mongodb/metadata/collectionSchema.test.ts +2 -2
  90. package/tests/integration/tools/mongodb/metadata/dbStats.test.ts +4 -4
  91. package/tests/integration/tools/mongodb/metadata/explain.test.ts +10 -10
  92. package/tests/integration/tools/mongodb/metadata/listCollections.test.ts +1 -1
  93. package/tests/integration/tools/mongodb/metadata/listDatabases.test.ts +9 -5
  94. package/tests/integration/tools/mongodb/metadata/logs.test.ts +4 -4
  95. package/tests/integration/tools/mongodb/mongodbHelpers.ts +1 -0
  96. package/tests/integration/tools/mongodb/read/aggregate.test.ts +22 -7
  97. package/tests/integration/tools/mongodb/read/collectionIndexes.test.ts +5 -5
  98. package/tests/integration/tools/mongodb/read/count.test.ts +15 -10
  99. package/tests/integration/tools/mongodb/read/find.test.ts +6 -6
  100. package/tests/integration/tools/mongodb/update/renameCollection.test.ts +4 -4
  101. package/tests/unit/EJsonTransport.test.ts +1 -1
  102. package/tests/unit/indexCheck.test.ts +149 -0
  103. package/tests/unit/session.test.ts +1 -1
  104. package/tsconfig.build.json +1 -0
package/.dockerignore ADDED
@@ -0,0 +1,11 @@
1
+ dist
2
+ node_modules
3
+ .vscode
4
+ .github
5
+ .git
6
+ # Environment variables
7
+ .env
8
+
9
+ tests
10
+ coverage
11
+ scripts
@@ -0,0 +1,5 @@
1
+ ## Proposed changes
2
+
3
+ ## Checklist
4
+
5
+ - [ ] I have signed the [MongoDB CLA](https://www.mongodb.com/legal/contributor-agreement)
@@ -0,0 +1,29 @@
1
+ name: "Check PR Title"
2
+ on:
3
+ pull_request:
4
+ types:
5
+ [
6
+ opened,
7
+ synchronize,
8
+ reopened,
9
+ ready_for_review,
10
+ labeled,
11
+ unlabeled,
12
+ converted_to_draft,
13
+ edited,
14
+ ]
15
+
16
+ permissions:
17
+ pull-requests: read # to read PR title and labels
18
+
19
+ jobs:
20
+ check-pr-title:
21
+ name: Check PR Title
22
+ runs-on: ubuntu-latest
23
+ steps:
24
+ - name: Enforce conventional commit style
25
+ uses: realm/ci-actions/title-checker@d6cc8f067474759d38e6d24e272027b4c88bc0a9
26
+ with:
27
+ regex: '^(build|chore|ci|docs|feat|fix|perf|refactor|revert|style|test|ops){1}(\([\w\-\.]+\))?(!)?: .*'
28
+ error-hint: 'Invalid PR title. Make sure it follows the conventional commit specification (i.e. "<type>(<optional scope>): <description>") or add the no-title-validation label'
29
+ ignore-labels: "no-title-validation"
@@ -11,7 +11,7 @@ permissions: {}
11
11
  jobs:
12
12
  run-tests:
13
13
  name: Run MongoDB tests
14
- if: github.event.pull_request.user.login != 'dependabot[bot]' && github.event.pull_request.head.repo.full_name == github.repository
14
+ if: github.event_name == 'push' || (github.event.pull_request.user.login != 'dependabot[bot]' && github.event.pull_request.head.repo.full_name == github.repository)
15
15
  strategy:
16
16
  matrix:
17
17
  os: [ubuntu-latest, macos-latest, windows-latest]
@@ -38,7 +38,7 @@ jobs:
38
38
 
39
39
  run-atlas-tests:
40
40
  name: Run Atlas tests
41
- if: github.event.pull_request.user.login != 'dependabot[bot]' && github.event.pull_request.head.repo.full_name == github.repository
41
+ if: github.event_name == 'push' || (github.event.pull_request.user.login != 'dependabot[bot]' && github.event.pull_request.head.repo.full_name == github.repository)
42
42
  runs-on: ubuntu-latest
43
43
  steps:
44
44
  - uses: GitHubSecurityLab/actions-permissions/monitor@v1
@@ -64,7 +64,7 @@ jobs:
64
64
 
65
65
  coverage:
66
66
  name: Report Coverage
67
- if: always() && github.event.pull_request.user.login != 'dependabot[bot]' && github.event.pull_request.head.repo.full_name == github.repository
67
+ if: always() && (github.event_name == 'push' || (github.event.pull_request.user.login != 'dependabot[bot]' && github.event.pull_request.head.repo.full_name == github.repository))
68
68
  runs-on: ubuntu-latest
69
69
  needs: [run-tests, run-atlas-tests]
70
70
  steps:
@@ -0,0 +1,57 @@
1
+ name: Daily Release Docker Image
2
+ on:
3
+ schedule:
4
+ - cron: "0 1 * * *" # Every day at 1:00 AM
5
+ workflow_dispatch: # Run the action manually
6
+ permissions:
7
+ contents: read
8
+ issues: write
9
+ jobs:
10
+ push:
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - uses: GitHubSecurityLab/actions-permissions/monitor@v1
14
+ with:
15
+ config: ${{ vars.PERMISSIONS_CONFIG }}
16
+ - name: Check out code
17
+ uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
18
+ - name: Set up Docker Buildx
19
+ uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435
20
+ - name: Login to Docker Hub
21
+ uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772
22
+ with:
23
+ username: "${{ secrets.DOCKERHUB_USERNAME }}"
24
+ password: "${{ secrets.DOCKERHUB_PASSWORD }}"
25
+ - name: Set date and version
26
+ id: set-properties
27
+ run: |
28
+ DATE=$(date +'%Y-%m-%d')
29
+ VERSION=$(npm pkg get version | tr -d '"')
30
+ echo "DATE=${DATE}" >> "$GITHUB_OUTPUT"
31
+ echo "VERSION=${VERSION}" >> "$GITHUB_OUTPUT"
32
+ - name: Build and push image to dockerhub registry
33
+ uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83
34
+ with:
35
+ context: .
36
+ platforms: linux/amd64,linux/arm64
37
+ tags: ${{ vars.DOCKERHUB_IMAGE_REPOSITORY }}:latest, ${{ vars.DOCKERHUB_IMAGE_REPOSITORY }}:${{ steps.set-properties.outputs.VERSION }}, ${{ vars.DOCKERHUB_IMAGE_REPOSITORY }}:${{ steps.set-properties.outputs.VERSION }}-${{ steps.set-properties.outputs.DATE }}
38
+ file: Dockerfile
39
+ push: true
40
+ provenance: mode=max
41
+ sbom: true
42
+ build-args: |
43
+ VERSION=${{ steps.set-properties.outputs.VERSION }}
44
+ - uses: mongodb-js/devtools-shared/actions/setup-bot-token@main
45
+ id: app-token
46
+ if: ${{ failure() }}
47
+ with:
48
+ app-id: ${{ vars.DEVTOOLS_BOT_APP_ID }}
49
+ private-key: ${{ secrets.DEVTOOLS_BOT_PRIVATE_KEY }}
50
+ - name: Create Issue
51
+ if: ${{ failure() }}
52
+ uses: imjohnbo/issue-bot@572eed14422c4d6ca37e870f97e7da209422f5bd
53
+ with:
54
+ token: ${{ steps.app-token.outputs.token }}
55
+ title: Release Failure for Docker Image ${{ steps.set-properties.outputs.VERSION }}-${{ steps.set-properties.outputs.DATE }}
56
+ body: See https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}
57
+ labels: "docker, release_failure"
@@ -0,0 +1,32 @@
1
+ ---
2
+ name: "Stale issues and PRs handler"
3
+ on:
4
+ workflow_dispatch:
5
+ schedule:
6
+ - cron: "0 0 * * *"
7
+
8
+ permissions: read-all
9
+
10
+ jobs:
11
+ stale:
12
+ runs-on: ubuntu-latest
13
+ permissions:
14
+ issues: write
15
+ pull-requests: write
16
+ steps:
17
+ - uses: GitHubSecurityLab/actions-permissions/monitor@v1
18
+ - uses: actions/stale@v9
19
+ id: stale
20
+ with:
21
+ repo-token: ${{ secrets.GITHUB_TOKEN }}
22
+ stale-issue-message: |
23
+ This issue has gone 30 days without any activity and meets the project's definition of "stale". This will be auto-closed if there is no new activity over the next 30 days. If the issue is still relevant and active, you can simply comment with a "bump" to keep it open, or add the label "not_stale". Thanks for keeping our repository healthy!
24
+ stale-pr-message: |
25
+ This PR has gone 30 days without any activity and meets the project's definition of "stale". This will be auto-closed if there is no new activity over the next 30 days. If the issue is still relevant and active, you can simply comment with a "bump" to keep it open, or add the label "not_stale". Thanks for keeping our repository healthy!
26
+ stale-issue-label: "no-issue-activity"
27
+ stale-pr-label: "no-pr-activity"
28
+ days-before-stale: 30
29
+ days-before-close: 30
30
+ exempt-all-milestones: true
31
+ exempt-issue-labels: "not_stale"
32
+ exempt-pr-labels: "not_stale"
@@ -0,0 +1,30 @@
1
+ # Generated by https://smithery.ai. See: https://smithery.ai/docs/config#dockerfile
2
+ # ----- Build Stage -----
3
+ FROM node:lts-alpine AS builder
4
+ WORKDIR /app
5
+
6
+ # Copy package and configuration
7
+ COPY ../package.json ../package-lock.json ../tsconfig.json ../tsconfig.build.json ./
8
+
9
+ # Copy source code
10
+ COPY ../src ./src
11
+
12
+ # Install dependencies and build
13
+ RUN npm ci && npm run build
14
+
15
+ # ----- Production Stage -----
16
+ FROM node:lts-alpine
17
+
18
+ # Copy built artifacts
19
+ COPY --from=builder /app/dist ./dist
20
+
21
+ # Copy package.json for production install
22
+ COPY ../package.json ../package-lock.json ./
23
+
24
+ # Install only production dependencies
25
+ RUN npm ci --production --ignore-scripts
26
+
27
+ # Expose no ports (stdio only)
28
+
29
+ # Default command
30
+ CMD ["node", "dist/index.js"]
@@ -0,0 +1,73 @@
1
+ # Smithery.ai configuration
2
+ build:
3
+ dockerfile: Dockerfile
4
+ dockerBuildPath: ../
5
+ startCommand:
6
+ type: stdio
7
+ configSchema:
8
+ type: object
9
+ properties:
10
+ atlasClientId:
11
+ type: string
12
+ title: Atlas Client Id
13
+ description: Atlas API client ID for authentication. Required for running Atlas tools.
14
+ atlasClientSecret:
15
+ type: string
16
+ title: Atlas Client Secret
17
+ description: Atlas API client secret for authentication. Required for running Atlas tools.
18
+ connectionString:
19
+ type: string
20
+ title: MongoDB Connection string
21
+ description: MongoDB connection string for direct database connections. Optional, if not set, you'll need to call the `connect` tool before interacting with MongoDB data.
22
+ readOnly:
23
+ type: boolean
24
+ title: Read-only
25
+ description: When set to true, only allows read and metadata operation types, disabling create/update/delete operations.
26
+ default: false
27
+ indexCheck:
28
+ type: boolean
29
+ title: Index Check
30
+ description: When set to true, enforces that query operations must use an index, rejecting queries that would perform a collection scan.
31
+ default: false
32
+ exampleConfig:
33
+ atlasClientId: YOUR_ATLAS_CLIENT_ID
34
+ atlasClientSecret: YOUR_ATLAS_CLIENT_SECRET
35
+ connectionString: mongodb+srv://USERNAME:PASSWORD@YOUR_CLUSTER.mongodb.net
36
+ readOnly: true
37
+ indexCheck: false
38
+
39
+ commandFunction:
40
+ # A function that produces the CLI command to start the MCP on stdio.
41
+ |-
42
+ (config) => {
43
+ const args = ['dist/index.js'];
44
+ if (config) {
45
+ if (config.atlasClientId) {
46
+ args.push('--apiClientId');
47
+ args.push(config.atlasClientId);
48
+ }
49
+
50
+ if (config.atlasClientSecret) {
51
+ args.push('--apiClientSecret');
52
+ args.push(config.atlasClientSecret);
53
+ }
54
+
55
+ if (config.readOnly) {
56
+ args.push('--readOnly');
57
+ }
58
+
59
+ if (config.connectionString) {
60
+ args.push('--connectionString');
61
+ args.push(config.connectionString);
62
+ }
63
+
64
+ if (config.indexCheck) {
65
+ args.push('--indexCheck');
66
+ }
67
+ }
68
+
69
+ return {
70
+ command: "node",
71
+ args
72
+ };
73
+ }
package/CONTRIBUTING.md CHANGED
@@ -55,7 +55,7 @@ This project implements a Model Context Protocol (MCP) server for MongoDB and Mo
55
55
  npm run inspect
56
56
  ```
57
57
 
58
- 4. Commit your changes with a descriptive commit message
58
+ 4. Commit your changes using [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/) format.
59
59
 
60
60
  ## Adding tests to the MCP Server
61
61
 
package/Dockerfile ADDED
@@ -0,0 +1,10 @@
1
+ FROM node:22-alpine
2
+ ARG VERSION=latest
3
+ RUN addgroup -S mcp && adduser -S mcp -G mcp
4
+ RUN npm install -g mongodb-mcp-server@${VERSION}
5
+ USER mcp
6
+ WORKDIR /home/mcp
7
+ ENTRYPOINT ["mongodb-mcp-server"]
8
+ LABEL maintainer="MongoDB Inc <info@mongodb.com>"
9
+ LABEL description="MongoDB MCP Server"
10
+ LABEL version=${VERSION}
package/README.md CHANGED
@@ -1,3 +1,7 @@
1
+ [![Install in VS Code](https://img.shields.io/badge/VS_Code-Install_Server-0098FF?logo=data:image/svg%2bxml;base64,PHN2ZyBmaWxsPSIjRkZGRkZGIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciICB2aWV3Qm94PSIwIDAgNDggNDgiIHdpZHRoPSIyNHB4IiBoZWlnaHQ9IjI0cHgiPjxwYXRoIGQ9Ik00NC45OTkgMTAuODd2MjYuMjFjMCAxLjAzLS41OSAxLjk3LTEuNTEgMi40Mi0yLjY4IDEuMjktOCAzLjg1LTguMzUgNC4wMS0uMTMuMDctLjM4LjItLjY3LjMxLjM1LS42LjUzLTEuMy41My0yLjAyVjYuMmMwLS43NS0uMi0xLjQ1LS41Ni0yLjA2LjA5LjA0LjE3LjA4LjI0LjExLjIuMSA1Ljk4IDIuODYgOC44IDQuMkM0NC40MDkgOC45IDQ0Ljk5OSA5Ljg0IDQ0Ljk5OSAxMC44N3pNNy40OTkgMjYuMDNjMS42IDEuNDYgMy40MyAzLjEzIDUuMzQgNC44NmwtNC42IDMuNWMtLjc3LjU3LTEuNzguNS0yLjU2LS4wNS0uNS0uMzYtMS44OS0xLjY1LTEuODktMS42NS0xLjAxLS44MS0xLjA2LTIuMzItLjExLTMuMTlDMy42NzkgMjkuNSA1LjE3OSAyOC4xMyA3LjQ5OSAyNi4wM3pNMzEuOTk5IDYuMnYxMC4xMWwtNy42MyA1LjgtNi44NS01LjIxYzQuOTgtNC41MyAxMC4wMS05LjExIDEyLjY1LTExLjUyQzMwLjg2OSA0Ljc0IDMxLjk5OSA1LjI1IDMxLjk5OSA2LjJ6TTMyIDQxLjc5OFYzMS42OUw4LjI0IDEzLjYxYy0uNzctLjU3LTEuNzgtLjUtMi41Ni4wNS0uNS4zNi0xLjg5IDEuNjUtMS44OSAxLjY1LTEuMDEuODEtMS4wNiAyLjMyLS4xMSAzLjE5IDAgMCAyMC4xNDUgMTguMzM4IDI2LjQ4NSAyNC4xMTZDMzAuODcxIDQzLjI2IDMyIDQyLjc1MyAzMiA0MS43OTh6Ii8+PC9zdmc+)](https://insiders.vscode.dev/redirect/mcp/install?name=mongodb&inputs=%5B%7B%22id%22%3A%22connection_string%22%2C%22type%22%3A%22promptString%22%2C%22description%22%3A%22MongoDB%20connection%20string%22%7D%5D&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22mongodb-mcp-server%22%5D%2C%22env%22%3A%7B%22MDB_MCP_CONNECTION_STRING%22%3A%22%24%7Binput%3Aconnection_string%7D%22%7D%7D)
2
+ [![Install in Cursor](https://img.shields.io/badge/Cursor-Install_Server-1e1e1e?logo=data:image/svg%2bxml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgc3R5bGU9ImZsZXg6bm9uZTtsaW5lLWhlaWdodDoxIiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxZW0iCiAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPHRpdGxlPkN1cnNvcjwvdGl0bGU+CiAgICA8cGF0aCBkPSJNMTEuOTI1IDI0bDEwLjQyNS02LTEwLjQyNS02TDEuNSAxOGwxMC40MjUgNnoiCiAgICAgICAgZmlsbD0idXJsKCNsb2JlLWljb25zLWN1cnNvcnVuZGVmaW5lZC1maWxsLTApIj48L3BhdGg+CiAgICA8cGF0aCBkPSJNMjIuMzUgMThWNkwxMS45MjUgMHYxMmwxMC40MjUgNnoiIGZpbGw9InVybCgjbG9iZS1pY29ucy1jdXJzb3J1bmRlZmluZWQtZmlsbC0xKSI+PC9wYXRoPgogICAgPHBhdGggZD0iTTExLjkyNSAwTDEuNSA2djEybDEwLjQyNS02VjB6IiBmaWxsPSJ1cmwoI2xvYmUtaWNvbnMtY3Vyc29ydW5kZWZpbmVkLWZpbGwtMikiPjwvcGF0aD4KICAgIDxwYXRoIGQ9Ik0yMi4zNSA2TDExLjkyNSAyNFYxMkwyMi4zNSA2eiIgZmlsbD0iIzU1NSI+PC9wYXRoPgogICAgPHBhdGggZD0iTTIyLjM1IDZsLTEwLjQyNSA2TDEuNSA2aDIwLjg1eiIgZmlsbD0iI2ZmZiI+PC9wYXRoPgogICAgPGRlZnM+CiAgICAgICAgPGxpbmVhckdyYWRpZW50IGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiBpZD0ibG9iZS1pY29ucy1jdXJzb3J1bmRlZmluZWQtZmlsbC0wIgogICAgICAgICAgICB4MT0iMTEuOTI1IiB4Mj0iMTEuOTI1IiB5MT0iMTIiIHkyPSIyNCI+CiAgICAgICAgICAgIDxzdG9wIG9mZnNldD0iLjE2IiBzdG9wLWNvbG9yPSIjZmZmIiBzdG9wLW9wYWNpdHk9Ii4zOSI+PC9zdG9wPgogICAgICAgICAgICA8c3RvcCBvZmZzZXQ9Ii42NTgiIHN0b3AtY29sb3I9IiNmZmYiIHN0b3Atb3BhY2l0eT0iLjgiPjwvc3RvcD4KICAgICAgICA8L2xpbmVhckdyYWRpZW50PgogICAgICAgIDxsaW5lYXJHcmFkaWVudCBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgaWQ9ImxvYmUtaWNvbnMtY3Vyc29ydW5kZWZpbmVkLWZpbGwtMSIKICAgICAgICAgICAgeDE9IjIyLjM1IiB4Mj0iMTEuOTI1IiB5MT0iNi4wMzciIHkyPSIxMi4xNSI+CiAgICAgICAgICAgIDxzdG9wIG9mZnNldD0iLjE4MiIgc3RvcC1jb2xvcj0iI2ZmZiIgc3RvcC1vcGFjaXR5PSIuMzEiPjwvc3RvcD4KICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PSIuNzE1IiBzdG9wLWNvbG9yPSIjZmZmIiBzdG9wLW9wYWNpdHk9IjAiPjwvc3RvcD4KICAgICAgICA8L2xpbmVhckdyYWRpZW50PgogICAgICAgIDxsaW5lYXJHcmFkaWVudCBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgaWQ9ImxvYmUtaWNvbnMtY3Vyc29ydW5kZWZpbmVkLWZpbGwtMiIKICAgICAgICAgICAgeDE9IjExLjkyNSIgeDI9IjEuNSIgeTE9IjAiIHkyPSIxOCI+CiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiNmZmYiIHN0b3Atb3BhY2l0eT0iLjYiPjwvc3RvcD4KICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PSIuNjY3IiBzdG9wLWNvbG9yPSIjZmZmIiBzdG9wLW9wYWNpdHk9Ii4yMiI+PC9zdG9wPgogICAgICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8L2RlZnM+Cjwvc3ZnPgo=)](https://cursor.com/install-mcp?name=MongoDB&config=eyJjb21tYW5kIjoibnB4IC15IG1vbmdvZGItbWNwLXNlcnZlciJ9)
3
+ [![View on Smithery](https://smithery.ai/badge/@mongodb-js/mongodb-mcp-server)](https://smithery.ai/server/@mongodb-js/mongodb-mcp-server)
4
+
1
5
  # MongoDB MCP Server
2
6
 
3
7
  A Model Context Protocol server for interacting with MongoDB Databases and MongoDB Atlas.
@@ -22,7 +26,7 @@ A Model Context Protocol server for interacting with MongoDB Databases and Mongo
22
26
 
23
27
  ## Prerequisites
24
28
 
25
- - Node.js (v20 or later)
29
+ - Node.js (v20.10.0 or later)
26
30
 
27
31
  ```shell
28
32
  node -v
@@ -36,6 +40,8 @@ node -v
36
40
 
37
41
  ### Quick Start
38
42
 
43
+ > **Note:** When using Atlas API credentials, be sure to assign only the minimum required permissions to your service account. See [Atlas API Permissions](#atlas-api-permissions) for details.
44
+
39
45
  Most MCP clients require a configuration file to be created or modified to add the MCP server.
40
46
 
41
47
  Note: The configuration file syntax can be different across clients. Please refer to the following links for the latest expected syntax:
@@ -58,13 +64,15 @@ You can pass your connection string via args, make sure to use a valid username
58
64
  "-y",
59
65
  "mongodb-mcp-server",
60
66
  "--connectionString",
61
- "mongodb+srv://username:password@cluster.mongodb.net/myDatabase"
67
+ "mongodb://localhost:27017/myDatabase"
62
68
  ]
63
69
  }
64
70
  }
65
71
  }
66
72
  ```
67
73
 
74
+ NOTE: The connection string can be configured to connect to any MongoDB cluster, whether it's a local instance or an Atlas cluster.
75
+
68
76
  #### Option 2: Atlas API credentials args
69
77
 
70
78
  Use your Atlas API Service Accounts credentials. Must follow all the steps in [Atlas API Access](#atlas-api-access) section.
@@ -87,7 +95,7 @@ Use your Atlas API Service Accounts credentials. Must follow all the steps in [A
87
95
  }
88
96
  ```
89
97
 
90
- ### Option 3: Standalone Service using command arguments
98
+ #### Option 3: Standalone Service using command arguments
91
99
 
92
100
  Start Server using npx command:
93
101
 
@@ -109,6 +117,95 @@ You can use environment variables in the config file or set them and run the ser
109
117
  - Connection String via environment variables in the MCP file [example](#connection-string-with-environment-variables)
110
118
  - Atlas API credentials via environment variables in the MCP file [example](#atlas-api-credentials-with-environment-variables)
111
119
 
120
+ #### Option 5: Using Docker
121
+
122
+ You can run the MongoDB MCP Server in a Docker container, which provides isolation and doesn't require a local Node.js installation.
123
+
124
+ #### Run with Environment Variables
125
+
126
+ You may provide either a MongoDB connection string OR Atlas API credentials:
127
+
128
+ ##### Option A: No configuration
129
+
130
+ ```shell
131
+ docker run --rm -i \
132
+ mongodb/mongodb-mcp-server:latest
133
+ ```
134
+
135
+ ##### Option B: With MongoDB connection string
136
+
137
+ ```shell
138
+ docker run --rm -i \
139
+ -e MDB_MCP_CONNECTION_STRING="mongodb+srv://username:password@cluster.mongodb.net/myDatabase" \
140
+ mongodb/mongodb-mcp-server:latest
141
+ ```
142
+
143
+ ##### Option C: With Atlas API credentials
144
+
145
+ ```shell
146
+ docker run --rm -i \
147
+ -e MDB_MCP_API_CLIENT_ID="your-atlas-service-accounts-client-id" \
148
+ -e MDB_MCP_API_CLIENT_SECRET="your-atlas-service-accounts-client-secret" \
149
+ mongodb/mongodb-mcp-server:latest
150
+ ```
151
+
152
+ ##### Docker in MCP Configuration File
153
+
154
+ Without options:
155
+
156
+ ```json
157
+ {
158
+ "mcpServers": {
159
+ "MongoDB": {
160
+ "command": "docker",
161
+ "args": ["run", "--rm", "-i", "mongodb/mongodb-mcp-server:latest"]
162
+ }
163
+ }
164
+ }
165
+ ```
166
+
167
+ With connection string:
168
+
169
+ ```json
170
+ {
171
+ "mcpServers": {
172
+ "MongoDB": {
173
+ "command": "docker",
174
+ "args": [
175
+ "run",
176
+ "--rm",
177
+ "-i",
178
+ "-e",
179
+ "MDB_MCP_CONNECTION_STRING=mongodb+srv://username:password@cluster.mongodb.net/myDatabase",
180
+ "mongodb/mongodb-mcp-server:latest"
181
+ ]
182
+ }
183
+ }
184
+ }
185
+ ```
186
+
187
+ With Atlas API credentials:
188
+
189
+ ```json
190
+ {
191
+ "mcpServers": {
192
+ "MongoDB": {
193
+ "command": "docker",
194
+ "args": [
195
+ "run",
196
+ "--rm",
197
+ "-i",
198
+ "-e",
199
+ "MDB_MCP_API_CLIENT_ID=your-atlas-service-accounts-client-id",
200
+ "-e",
201
+ "MDB_MCP_API_CLIENT_SECRET=your-atlas-service-accounts-client-secret",
202
+ "mongodb/mongodb-mcp-server:latest"
203
+ ]
204
+ }
205
+ }
206
+ }
207
+ ```
208
+
112
209
  ## 🛠️ Supported Tools
113
210
 
114
211
  ### Tool List
@@ -125,7 +222,8 @@ You can use environment variables in the config file or set them and run the ser
125
222
  - `atlas-inspect-access-list` - Inspect IP/CIDR ranges with access to MongoDB Atlas clusters
126
223
  - `atlas-create-access-list` - Configure IP/CIDR access list for MongoDB Atlas clusters
127
224
  - `atlas-list-db-users` - List MongoDB Atlas database users
128
- - `atlas-create-db-user` - List MongoDB Atlas database users
225
+ - `atlas-create-db-user` - Creates a MongoDB Atlas database user
226
+ - `atlas-list-alerts` - List MongoDB Atlas Alerts for a Project
129
227
 
130
228
  NOTE: atlas tools are only available when you set credentials on [configuration](#configuration) section.
131
229
 
@@ -161,15 +259,16 @@ The MongoDB MCP Server can be configured using multiple methods, with the follow
161
259
 
162
260
  ### Configuration Options
163
261
 
164
- | Option | Description |
165
- | ------------------ | --------------------------------------------------------------------------------------------------------------------- |
166
- | `apiClientId` | Atlas API client ID for authentication |
167
- | `apiClientSecret` | Atlas API client secret for authentication |
168
- | `connectionString` | MongoDB connection string for direct database connections (optional users may choose to inform it on every tool call) |
169
- | `logPath` | Folder to store logs |
170
- | `disabledTools` | An array of tool names, operation types, and/or categories of tools that will be disabled |
171
- | `readOnly` | When set to true, only allows read and metadata operation types, disabling create/update/delete operations |
172
- | `telemetry` | When set to disabled, disables telemetry collection |
262
+ | Option | Description |
263
+ | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
264
+ | `apiClientId` | Atlas API client ID for authentication. Required for running Atlas tools. |
265
+ | `apiClientSecret` | Atlas API client secret for authentication. Required for running Atlas tools. |
266
+ | `connectionString` | MongoDB connection string for direct database connections. Optional, if not set, you'll need to call the `connect` tool before interacting with MongoDB data. |
267
+ | `logPath` | Folder to store logs. |
268
+ | `disabledTools` | An array of tool names, operation types, and/or categories of tools that will be disabled. |
269
+ | `readOnly` | When set to true, only allows read and metadata operation types, disabling create/update/delete operations. |
270
+ | `indexCheck` | When set to true, enforces that query operations must use an index, rejecting queries that perform a collection scan. |
271
+ | `telemetry` | When set to disabled, disables telemetry collection. |
173
272
 
174
273
  #### Log Path
175
274
 
@@ -214,6 +313,19 @@ You can enable read-only mode using:
214
313
 
215
314
  When read-only mode is active, you'll see a message in the server logs indicating which tools were prevented from registering due to this restriction.
216
315
 
316
+ #### Index Check Mode
317
+
318
+ The `indexCheck` configuration option allows you to enforce that query operations must use an index. When enabled, queries that perform a collection scan will be rejected to ensure better performance.
319
+
320
+ This is useful for scenarios where you want to ensure that database queries are optimized.
321
+
322
+ You can enable index check mode using:
323
+
324
+ - **Environment variable**: `export MDB_MCP_INDEX_CHECK=true`
325
+ - **Command-line argument**: `--indexCheck`
326
+
327
+ When index check mode is active, you'll see an error message if a query is rejected due to not using an index.
328
+
217
329
  #### Telemetry
218
330
 
219
331
  The `telemetry` configuration option allows you to disable telemetry collection. When enabled, the MCP server will collect usage data and send it to MongoDB.
@@ -228,13 +340,16 @@ You can disable telemetry using:
228
340
 
229
341
  To use the Atlas API tools, you'll need to create a service account in MongoDB Atlas:
230
342
 
343
+ > **ℹ️ Note:** For a detailed breakdown of the minimum required permissions for each Atlas operation, see the [Atlas API Permissions](#atlas-api-permissions) section below.
344
+
231
345
  1. **Create a Service Account:**
232
346
 
233
347
  - Log in to MongoDB Atlas at [cloud.mongodb.com](https://cloud.mongodb.com)
234
348
  - Navigate to Access Manager > Organization Access
235
349
  - Click Add New > Applications > Service Accounts
236
350
  - Enter name, description and expiration for your service account (e.g., "MCP, MCP Server Access, 7 days")
237
- - Select appropriate permissions (for full access, use Organization Owner)
351
+ - **Assign only the minimum permissions needed for your use case.**
352
+ - See [Atlas API Permissions](#atlas-api-permissions) for details.
238
353
  - Click "Create"
239
354
 
240
355
  To learn more about Service Accounts, check the [MongoDB Atlas documentation](https://www.mongodb.com/docs/atlas/api/service-accounts-overview/).
@@ -251,6 +366,26 @@ To learn more about Service Accounts, check the [MongoDB Atlas documentation](ht
251
366
  4. **Configure the MCP Server:**
252
367
  - Use one of the configuration methods below to set your `apiClientId` and `apiClientSecret`
253
368
 
369
+ ### Atlas API Permissions
370
+
371
+ > **Security Warning:** Granting the Organization Owner role is rarely necessary and can be a security risk. Assign only the minimum permissions needed for your use case.
372
+
373
+ #### Quick Reference: Required roles per operation
374
+
375
+ | What you want to do | Safest Role to Assign (where) |
376
+ | ------------------------------------ | --------------------------------------- |
377
+ | List orgs/projects | Org Member or Org Read Only (Org) |
378
+ | Create new projects | Org Project Creator (Org) |
379
+ | View clusters/databases in a project | Project Read Only (Project) |
380
+ | Create/manage clusters in a project | Project Cluster Manager (Project) |
381
+ | Manage project access lists | Project IP Access List Admin (Project) |
382
+ | Manage database users | Project Database Access Admin (Project) |
383
+
384
+ - **Prefer project-level roles** for most operations. Assign only to the specific projects you need to manage or view.
385
+ - **Avoid Organization Owner** unless you require full administrative control over all projects and settings in the organization.
386
+
387
+ For a full list of roles and their privileges, see the [Atlas User Roles documentation](https://www.mongodb.com/docs/atlas/reference/user-roles/#service-user-roles).
388
+
254
389
  ### Configuration Methods
255
390
 
256
391
  #### Environment Variables
@@ -309,7 +444,7 @@ export MDB_MCP_LOG_PATH="/path/to/logs"
309
444
  Pass configuration options as command-line arguments when starting the server:
310
445
 
311
446
  ```shell
312
- npx -y mongodb-mcp-server --apiClientId="your-atlas-service-accounts-client-id" --apiClientSecret="your-atlas-service-accounts-client-secret" --connectionString="mongodb+srv://username:password@cluster.mongodb.net/myDatabase" --logPath=/path/to/logs
447
+ npx -y mongodb-mcp-server --apiClientId="your-atlas-service-accounts-client-id" --apiClientSecret="your-atlas-service-accounts-client-secret" --connectionString="mongodb+srv://username:password@cluster.mongodb.net/myDatabase" --logPath=/path/to/logs --readOnly --indexCheck
313
448
  ```
314
449
 
315
450
  #### MCP configuration file examples
@@ -7,7 +7,9 @@ export class ApiClient {
7
7
  constructor(options) {
8
8
  this.getAccessToken = async () => {
9
9
  if (this.oauth2Client && (!this.accessToken || this.accessToken.expired())) {
10
- this.accessToken = await this.oauth2Client.getToken({});
10
+ this.accessToken = await this.oauth2Client.getToken({
11
+ agent: this.options.userAgent,
12
+ });
11
13
  }
12
14
  return this.accessToken?.token.access_token;
13
15
  };
@@ -186,6 +188,13 @@ export class ApiClient {
186
188
  throw ApiClientError.fromError(response, error);
187
189
  }
188
190
  }
191
+ async listAlerts(options) {
192
+ const { data, error, response } = await this.client.GET("/api/atlas/v2/groups/{groupId}/alerts", options);
193
+ if (error) {
194
+ throw ApiClientError.fromError(response, error);
195
+ }
196
+ return data;
197
+ }
189
198
  async listClusters(options) {
190
199
  const { data, error, response } = await this.client.GET("/api/atlas/v2/groups/{groupId}/clusters", options);
191
200
  if (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"apiClient.js","sourceRoot":"","sources":["../../../src/common/atlas/apiClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apiClient.js","sourceRoot":"","sources":["../../../src/common/atlas/apiClient.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,7 @@ export function formatCluster(cluster) {
21
21
  regionConfig.analyticsSpecs?.instanceSize,
22
22
  };
23
23
  });
24
- const instanceSize = (regionConfigs.length <= 0 ? undefined : regionConfigs[0].instanceSize) || "UNKNOWN";
24
+ const instanceSize = regionConfigs[0]?.instanceSize ?? "UNKNOWN";
25
25
  const clusterInstanceType = instanceSize == "M0" ? "FREE" : "DEDICATED";
26
26
  return {
27
27
  name: cluster.name,
@@ -1 +1 @@
1
- {"version":3,"file":"cluster.js","sourceRoot":"","sources":["../../../src/common/atlas/cluster.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cluster.js","sourceRoot":"","sources":["../../../src/common/atlas/cluster.ts"],"names":[],"mappings":"AAEA,OAAO,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAWhD,MAAM,UAAU,iBAAiB,CAAC,OAAuC;IACrE,OAAO;QACH,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,YAAY,EAAE,MAAM;QACpB,YAAY,EAAE,SAAS;QACvB,KAAK,EAAE,OAAO,CAAC,SAAS;QACxB,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,gBAAgB,EAAE,OAAO,CAAC,iBAAiB,EAAE,WAAW,IAAI,OAAO,CAAC,iBAAiB,EAAE,QAAQ;KAClG,CAAC;AACN,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAmC;IAC7D,MAAM,aAAa,GAAG,CAAC,OAAO,CAAC,gBAAgB,IAAI,EAAE,CAAC;SACjD,GAAG,CACA,CAAC,eAAe,EAAE,EAAE,CAChB,CAAC,eAAe,CAAC,aAAa,IAAI,EAAE,CAWjC,CACV;SACA,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE;QAClB,OAAO;YACH,YAAY,EAAE,YAAY,CAAC,YAAY;YACvC,YAAY,EACR,YAAY,CAAC,cAAc,EAAE,YAAY;gBACzC,YAAY,CAAC,aAAa,EAAE,YAAY;gBACxC,YAAY,CAAC,cAAc,EAAE,YAAY;SAChD,CAAC;IACN,CAAC,CAAC,CAAC;IAEP,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE,YAAY,IAAI,SAAS,CAAC;IACjE,MAAM,mBAAmB,GAAG,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC;IAExE,OAAO;QACH,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,YAAY,EAAE,mBAAmB;QACjC,YAAY,EAAE,mBAAmB,IAAI,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;QAC3E,KAAK,EAAE,OAAO,CAAC,SAAS;QACxB,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,gBAAgB,EAAE,OAAO,CAAC,iBAAiB,EAAE,WAAW,IAAI,OAAO,CAAC,iBAAiB,EAAE,QAAQ;KAClG,CAAC;AACN,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,SAAoB,EAAE,SAAiB,EAAE,WAAmB;IAC7F,IAAI,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,UAAU,CAAC;YACvC,MAAM,EAAE;gBACJ,IAAI,EAAE;oBACF,OAAO,EAAE,SAAS;oBAClB,WAAW;iBACd;aACJ;SACJ,CAAC,CAAC;QACH,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,cAAc,CAAC;gBAC3C,MAAM,EAAE;oBACJ,IAAI,EAAE;wBACF,OAAO,EAAE,SAAS;wBAClB,IAAI,EAAE,WAAW;qBACpB;iBACJ;aACJ,CAAC,CAAC;YACH,OAAO,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,SAAS,EAAE,CAAC;YACjB,MAAM,GAAG,GAAG,SAAS,YAAY,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;YAClF,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,mBAAmB,EAAE,iBAAiB,EAAE,6BAA6B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YACvG,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;AACL,CAAC"}