mongodb-mcp-server 0.1.2 → 0.2.0
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.
- package/.github/pull_request_template.md +5 -0
- package/.github/workflows/accuracy-tests.yml +55 -0
- package/.github/workflows/check.yml +1 -1
- package/.github/workflows/code_health.yaml +4 -4
- package/.github/workflows/code_health_fork.yaml +0 -14
- package/.github/workflows/dependabot_pr.yaml +26 -0
- package/.github/workflows/docker.yaml +1 -1
- package/.github/workflows/jira-issue.yml +72 -0
- package/.smithery/smithery.yaml +10 -0
- package/.vscode/extensions.json +1 -1
- package/.vscode/launch.json +11 -1
- package/.vscode/settings.json +1 -11
- package/Dockerfile +1 -0
- package/README.md +132 -31
- package/dist/common/atlas/accessListUtils.js +36 -0
- package/dist/common/atlas/accessListUtils.js.map +1 -0
- package/dist/common/atlas/apiClient.js +25 -6
- package/dist/common/atlas/apiClient.js.map +1 -1
- package/dist/common/atlas/cluster.js +1 -1
- package/dist/common/atlas/cluster.js.map +1 -1
- package/dist/{config.js → common/config.js} +8 -1
- package/dist/common/config.js.map +1 -0
- package/dist/{errors.js → common/errors.js} +1 -0
- package/dist/common/errors.js.map +1 -0
- package/dist/{logger.js → common/logger.js} +20 -19
- package/dist/common/logger.js.map +1 -0
- package/dist/common/managedTimeout.js +20 -0
- package/dist/common/managedTimeout.js.map +1 -0
- package/dist/common/packageInfo.js.map +1 -0
- package/dist/{session.js → common/session.js} +20 -21
- package/dist/common/session.js.map +1 -0
- package/dist/common/sessionStore.js +73 -0
- package/dist/common/sessionStore.js.map +1 -0
- package/dist/helpers/container.js +28 -0
- package/dist/helpers/container.js.map +1 -0
- package/dist/helpers/generatePassword.js.map +1 -0
- package/dist/helpers/indexCheck.js +63 -0
- package/dist/helpers/indexCheck.js.map +1 -0
- package/dist/index.js +30 -37
- package/dist/index.js.map +1 -1
- package/dist/server.js +44 -7
- package/dist/server.js.map +1 -1
- package/dist/telemetry/constants.js +1 -1
- package/dist/telemetry/constants.js.map +1 -1
- package/dist/telemetry/telemetry.js +86 -116
- package/dist/telemetry/telemetry.js.map +1 -1
- package/dist/tools/atlas/atlasTool.js +3 -3
- package/dist/tools/atlas/atlasTool.js.map +1 -1
- package/dist/tools/atlas/connect/connectCluster.js +198 -0
- package/dist/tools/atlas/connect/connectCluster.js.map +1 -0
- package/dist/tools/atlas/create/createAccessList.js +9 -10
- package/dist/tools/atlas/create/createAccessList.js.map +1 -1
- package/dist/tools/atlas/create/createDBUser.js +3 -1
- package/dist/tools/atlas/create/createDBUser.js.map +1 -1
- package/dist/tools/atlas/create/createFreeCluster.js +2 -0
- package/dist/tools/atlas/create/createFreeCluster.js.map +1 -1
- package/dist/tools/atlas/create/createProject.js.map +1 -1
- package/dist/tools/atlas/read/inspectAccessList.js.map +1 -1
- package/dist/tools/atlas/read/inspectCluster.js.map +1 -1
- package/dist/tools/atlas/read/listAlerts.js.map +1 -1
- package/dist/tools/atlas/read/listClusters.js.map +1 -1
- package/dist/tools/atlas/read/listDBUsers.js.map +1 -1
- package/dist/tools/atlas/read/listOrgs.js.map +1 -1
- package/dist/tools/atlas/read/listProjects.js.map +1 -1
- package/dist/tools/atlas/tools.js +1 -1
- package/dist/tools/atlas/tools.js.map +1 -1
- package/dist/tools/mongodb/{metadata → connect}/connect.js +7 -4
- package/dist/tools/mongodb/connect/connect.js.map +1 -0
- package/dist/tools/mongodb/create/createCollection.js.map +1 -1
- package/dist/tools/mongodb/create/createIndex.js +1 -1
- package/dist/tools/mongodb/create/createIndex.js.map +1 -1
- package/dist/tools/mongodb/create/insertMany.js +1 -1
- package/dist/tools/mongodb/create/insertMany.js.map +1 -1
- package/dist/tools/mongodb/delete/deleteMany.js +20 -1
- package/dist/tools/mongodb/delete/deleteMany.js.map +1 -1
- package/dist/tools/mongodb/delete/dropCollection.js.map +1 -1
- package/dist/tools/mongodb/delete/dropDatabase.js.map +1 -1
- package/dist/tools/mongodb/metadata/collectionSchema.js.map +1 -1
- package/dist/tools/mongodb/metadata/collectionStorageSize.js.map +1 -1
- package/dist/tools/mongodb/metadata/dbStats.js.map +1 -1
- package/dist/tools/mongodb/metadata/explain.js +2 -2
- package/dist/tools/mongodb/metadata/explain.js.map +1 -1
- package/dist/tools/mongodb/metadata/listCollections.js.map +1 -1
- package/dist/tools/mongodb/metadata/listDatabases.js.map +1 -1
- package/dist/tools/mongodb/metadata/logs.js.map +1 -1
- package/dist/tools/mongodb/mongodbTool.js +47 -10
- package/dist/tools/mongodb/mongodbTool.js.map +1 -1
- package/dist/tools/mongodb/read/aggregate.js +10 -1
- package/dist/tools/mongodb/read/aggregate.js.map +1 -1
- package/dist/tools/mongodb/read/collectionIndexes.js.map +1 -1
- package/dist/tools/mongodb/read/count.js +15 -1
- package/dist/tools/mongodb/read/count.js.map +1 -1
- package/dist/tools/mongodb/read/find.js +14 -4
- package/dist/tools/mongodb/read/find.js.map +1 -1
- package/dist/tools/mongodb/tools.js +1 -1
- package/dist/tools/mongodb/tools.js.map +1 -1
- package/dist/tools/mongodb/update/renameCollection.js.map +1 -1
- package/dist/tools/mongodb/update/updateMany.js +24 -2
- package/dist/tools/mongodb/update/updateMany.js.map +1 -1
- package/dist/tools/tool.js +12 -9
- package/dist/tools/tool.js.map +1 -1
- package/dist/transports/base.js +26 -0
- package/dist/transports/base.js.map +1 -0
- package/dist/{helpers/EJsonTransport.js → transports/stdio.js} +24 -2
- package/dist/transports/stdio.js.map +1 -0
- package/dist/transports/streamableHttp.js +140 -0
- package/dist/transports/streamableHttp.js.map +1 -0
- package/eslint.config.js +13 -4
- package/package.json +43 -33
- package/resources/test-summary-template.html +415 -0
- package/scripts/accuracy/generateTestSummary.ts +335 -0
- package/scripts/accuracy/runAccuracyTests.sh +45 -0
- package/scripts/accuracy/updateAccuracyRunStatus.ts +21 -0
- package/src/common/atlas/accessListUtils.ts +54 -0
- package/src/common/atlas/apiClient.ts +25 -6
- package/src/common/atlas/cluster.ts +1 -1
- package/src/{config.ts → common/config.ts} +16 -2
- package/src/{errors.ts → common/errors.ts} +1 -0
- package/src/{logger.ts → common/logger.ts} +21 -24
- package/src/common/managedTimeout.ts +27 -0
- package/src/{session.ts → common/session.ts} +24 -26
- package/src/common/sessionStore.ts +111 -0
- package/src/helpers/container.ts +35 -0
- package/src/helpers/indexCheck.ts +83 -0
- package/src/index.ts +30 -40
- package/src/server.ts +55 -11
- package/src/telemetry/constants.ts +1 -1
- package/src/telemetry/telemetry.ts +109 -153
- package/src/telemetry/types.ts +2 -1
- package/src/tools/atlas/atlasTool.ts +4 -4
- package/src/tools/atlas/connect/connectCluster.ts +259 -0
- package/src/tools/atlas/create/createAccessList.ts +15 -13
- package/src/tools/atlas/create/createDBUser.ts +5 -3
- package/src/tools/atlas/create/createFreeCluster.ts +4 -2
- package/src/tools/atlas/create/createProject.ts +2 -2
- package/src/tools/atlas/read/inspectAccessList.ts +2 -2
- package/src/tools/atlas/read/inspectCluster.ts +2 -2
- package/src/tools/atlas/read/listAlerts.ts +2 -2
- package/src/tools/atlas/read/listClusters.ts +2 -2
- package/src/tools/atlas/read/listDBUsers.ts +2 -2
- package/src/tools/atlas/read/listOrgs.ts +2 -2
- package/src/tools/atlas/read/listProjects.ts +2 -2
- package/src/tools/atlas/tools.ts +1 -1
- package/src/tools/mongodb/{metadata → connect}/connect.ts +12 -9
- package/src/tools/mongodb/create/createCollection.ts +2 -2
- package/src/tools/mongodb/create/createIndex.ts +3 -3
- package/src/tools/mongodb/create/insertMany.ts +3 -3
- package/src/tools/mongodb/delete/deleteMany.ts +24 -3
- package/src/tools/mongodb/delete/dropCollection.ts +2 -2
- package/src/tools/mongodb/delete/dropDatabase.ts +2 -2
- package/src/tools/mongodb/metadata/collectionSchema.ts +2 -2
- package/src/tools/mongodb/metadata/collectionStorageSize.ts +2 -2
- package/src/tools/mongodb/metadata/dbStats.ts +2 -2
- package/src/tools/mongodb/metadata/explain.ts +4 -4
- package/src/tools/mongodb/metadata/listCollections.ts +2 -2
- package/src/tools/mongodb/metadata/listDatabases.ts +2 -2
- package/src/tools/mongodb/metadata/logs.ts +2 -2
- package/src/tools/mongodb/mongodbTool.ts +60 -14
- package/src/tools/mongodb/read/aggregate.ts +14 -3
- package/src/tools/mongodb/read/collectionIndexes.ts +2 -2
- package/src/tools/mongodb/read/count.ts +19 -3
- package/src/tools/mongodb/read/find.ts +20 -6
- package/src/tools/mongodb/tools.ts +1 -1
- package/src/tools/mongodb/update/renameCollection.ts +2 -2
- package/src/tools/mongodb/update/updateMany.ts +28 -4
- package/src/tools/tool.ts +23 -18
- package/src/transports/base.ts +34 -0
- package/src/{helpers/EJsonTransport.ts → transports/stdio.ts} +30 -1
- package/src/transports/streamableHttp.ts +178 -0
- package/tests/accuracy/aggregate.test.ts +27 -0
- package/tests/accuracy/collectionIndexes.test.ts +40 -0
- package/tests/accuracy/collectionSchema.test.ts +28 -0
- package/tests/accuracy/collectionStorageSize.test.ts +41 -0
- package/tests/accuracy/count.test.ts +44 -0
- package/tests/accuracy/createCollection.test.ts +46 -0
- package/tests/accuracy/createIndex.test.ts +37 -0
- package/tests/accuracy/dbStats.test.ts +15 -0
- package/tests/accuracy/deleteMany.test.ts +44 -0
- package/tests/accuracy/dropCollection.test.ts +74 -0
- package/tests/accuracy/dropDatabase.test.ts +41 -0
- package/tests/accuracy/explain.test.ts +73 -0
- package/tests/accuracy/find.test.ts +114 -0
- package/tests/accuracy/insertMany.test.ts +48 -0
- package/tests/accuracy/listCollections.test.ts +60 -0
- package/tests/accuracy/listDatabases.test.ts +31 -0
- package/tests/accuracy/logs.test.ts +28 -0
- package/tests/accuracy/renameCollection.test.ts +31 -0
- package/tests/accuracy/sdk/accuracyResultStorage/diskStorage.ts +189 -0
- package/tests/accuracy/sdk/accuracyResultStorage/getAccuracyResultStorage.ts +11 -0
- package/tests/accuracy/sdk/accuracyResultStorage/mongodbStorage.ts +151 -0
- package/tests/accuracy/sdk/accuracyResultStorage/resultStorage.ts +117 -0
- package/tests/accuracy/sdk/accuracyScorer.ts +93 -0
- package/tests/accuracy/sdk/accuracyTestingClient.ts +94 -0
- package/tests/accuracy/sdk/agent.ts +56 -0
- package/tests/accuracy/sdk/constants.ts +26 -0
- package/tests/accuracy/sdk/describeAccuracyTests.ts +126 -0
- package/tests/accuracy/sdk/gitInfo.ts +7 -0
- package/tests/accuracy/sdk/matcher.ts +193 -0
- package/tests/accuracy/sdk/models.ts +95 -0
- package/tests/accuracy/test-data-dumps/comics.books.json +417 -0
- package/tests/accuracy/test-data-dumps/comics.characters.json +402 -0
- package/tests/accuracy/test-data-dumps/mflix.movies.json +496 -0
- package/tests/accuracy/test-data-dumps/mflix.shows.json +572 -0
- package/tests/accuracy/updateMany.test.ts +42 -0
- package/tests/integration/helpers.ts +9 -9
- package/tests/integration/indexCheck.test.ts +464 -0
- package/tests/integration/server.test.ts +6 -4
- package/tests/integration/telemetry.test.ts +29 -0
- package/tests/integration/tools/atlas/accessLists.test.ts +22 -2
- package/tests/integration/tools/atlas/alerts.test.ts +3 -2
- package/tests/integration/tools/atlas/atlasHelpers.ts +3 -0
- package/tests/integration/tools/atlas/clusters.test.ts +68 -16
- package/tests/integration/tools/atlas/dbUsers.test.ts +14 -1
- package/tests/integration/tools/atlas/orgs.test.ts +2 -1
- package/tests/integration/tools/atlas/projects.test.ts +4 -3
- package/tests/integration/tools/mongodb/{metadata → connect}/connect.test.ts +34 -3
- package/tests/integration/tools/mongodb/create/createCollection.test.ts +1 -0
- package/tests/integration/tools/mongodb/create/createIndex.test.ts +1 -0
- package/tests/integration/tools/mongodb/create/insertMany.test.ts +1 -0
- package/tests/integration/tools/mongodb/delete/deleteMany.test.ts +1 -0
- package/tests/integration/tools/mongodb/delete/dropCollection.test.ts +1 -1
- package/tests/integration/tools/mongodb/delete/dropDatabase.test.ts +1 -0
- package/tests/integration/tools/mongodb/metadata/collectionSchema.test.ts +1 -0
- package/tests/integration/tools/mongodb/metadata/collectionStorageSize.test.ts +1 -0
- package/tests/integration/tools/mongodb/metadata/dbStats.test.ts +1 -0
- package/tests/integration/tools/mongodb/metadata/explain.test.ts +1 -0
- package/tests/integration/tools/mongodb/metadata/listCollections.test.ts +1 -0
- package/tests/integration/tools/mongodb/metadata/listDatabases.test.ts +3 -2
- package/tests/integration/tools/mongodb/metadata/logs.test.ts +1 -0
- package/tests/integration/tools/mongodb/mongodbHelpers.ts +67 -2
- package/tests/integration/tools/mongodb/read/aggregate.test.ts +2 -1
- package/tests/integration/tools/mongodb/read/collectionIndexes.test.ts +1 -0
- package/tests/integration/tools/mongodb/read/count.test.ts +1 -0
- package/tests/integration/tools/mongodb/read/find.test.ts +2 -1
- package/tests/integration/tools/mongodb/update/renameCollection.test.ts +1 -0
- package/tests/integration/tools/mongodb/update/updateMany.test.ts +1 -0
- package/tests/integration/transports/stdio.test.ts +40 -0
- package/tests/integration/transports/streamableHttp.test.ts +56 -0
- package/tests/matchers/toIncludeSameMembers.test.ts +59 -0
- package/tests/matchers/toIncludeSameMembers.ts +12 -0
- package/tests/setup.ts +7 -0
- package/tests/unit/accessListUtils.test.ts +39 -0
- package/tests/unit/accuracyScorer.test.ts +390 -0
- package/tests/unit/{apiClient.test.ts → common/apiClient.test.ts} +15 -15
- package/tests/unit/common/managedTimeout.test.ts +67 -0
- package/tests/unit/{session.test.ts → common/session.test.ts} +7 -12
- package/tests/unit/helpers/indexCheck.test.ts +150 -0
- package/tests/unit/telemetry.test.ts +99 -137
- package/tests/unit/{EJsonTransport.test.ts → transports/stdio.test.ts} +4 -4
- package/tests/vitest.d.ts +11 -0
- package/tsconfig.json +0 -1
- package/{tsconfig.jest.json → tsconfig.test.json} +1 -2
- package/vitest.config.ts +41 -0
- package/dist/common/atlas/generatePassword.js.map +0 -1
- package/dist/config.js.map +0 -1
- package/dist/errors.js.map +0 -1
- package/dist/helpers/EJsonTransport.js.map +0 -1
- package/dist/helpers/packageInfo.js.map +0 -1
- package/dist/logger.js.map +0 -1
- package/dist/session.js.map +0 -1
- package/dist/tools/atlas/metadata/connectCluster.js +0 -100
- package/dist/tools/atlas/metadata/connectCluster.js.map +0 -1
- package/dist/tools/mongodb/metadata/connect.js.map +0 -1
- package/global.d.ts +0 -1
- package/jest.config.cjs +0 -22
- package/src/tools/atlas/metadata/connectCluster.ts +0 -121
- /package/dist/{helpers → common}/packageInfo.js +0 -0
- /package/dist/{common/atlas → helpers}/generatePassword.js +0 -0
- /package/src/{helpers → common}/packageInfo.ts +0 -0
- /package/src/{common/atlas → helpers}/generatePassword.ts +0 -0
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
name: Accuracy Tests
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
push:
|
|
6
|
+
branches:
|
|
7
|
+
- main
|
|
8
|
+
pull_request:
|
|
9
|
+
types:
|
|
10
|
+
- labeled
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
run-accuracy-tests:
|
|
14
|
+
name: Run Accuracy Tests
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
permissions:
|
|
17
|
+
contents: read
|
|
18
|
+
pull-requests: write
|
|
19
|
+
if: |
|
|
20
|
+
github.event_name == 'workflow_dispatch' ||
|
|
21
|
+
(github.event_name == 'pull_request' && github.event.label.name == 'accuracy-tests')
|
|
22
|
+
env:
|
|
23
|
+
MDB_OPEN_AI_API_KEY: ${{ secrets.ACCURACY_OPEN_AI_API_KEY }}
|
|
24
|
+
MDB_GEMINI_API_KEY: ${{ secrets.ACCURACY_GEMINI_API_KEY }}
|
|
25
|
+
MDB_AZURE_OPEN_AI_API_KEY: ${{ secrets.ACCURACY_AZURE_OPEN_AI_API_KEY }}
|
|
26
|
+
MDB_AZURE_OPEN_AI_API_URL: ${{ vars.ACCURACY_AZURE_OPEN_AI_API_URL }}
|
|
27
|
+
MDB_ACCURACY_MDB_URL: ${{ secrets.ACCURACY_MDB_CONNECTION_STRING }}
|
|
28
|
+
MDB_ACCURACY_MDB_DB: ${{ vars.ACCURACY_MDB_DB }}
|
|
29
|
+
MDB_ACCURACY_MDB_COLLECTION: ${{ vars.ACCURACY_MDB_COLLECTION }}
|
|
30
|
+
MDB_ACCURACY_BASELINE_COMMIT: ${{ github.event.pull_request.base.sha || '' }}
|
|
31
|
+
steps:
|
|
32
|
+
- uses: GitHubSecurityLab/actions-permissions/monitor@v1
|
|
33
|
+
- uses: actions/checkout@v4
|
|
34
|
+
- uses: actions/setup-node@v4
|
|
35
|
+
with:
|
|
36
|
+
node-version-file: package.json
|
|
37
|
+
cache: "npm"
|
|
38
|
+
- name: Install dependencies
|
|
39
|
+
run: npm ci
|
|
40
|
+
- name: Run accuracy tests
|
|
41
|
+
run: npm run test:accuracy
|
|
42
|
+
- name: Upload accuracy test summary
|
|
43
|
+
if: always()
|
|
44
|
+
uses: actions/upload-artifact@v4
|
|
45
|
+
with:
|
|
46
|
+
name: accuracy-test-summary
|
|
47
|
+
path: .accuracy/test-summary.html
|
|
48
|
+
- name: Comment summary on PR
|
|
49
|
+
if: github.event_name == 'pull_request' && github.event.label.name == 'accuracy-tests'
|
|
50
|
+
uses: marocchino/sticky-pull-request-comment@d2ad0de260ae8b0235ce059e63f2949ba9e05943 # v2
|
|
51
|
+
with:
|
|
52
|
+
# Hides the previous comment and add a comment at the end
|
|
53
|
+
hide_and_recreate: true
|
|
54
|
+
hide_classify: "OUTDATED"
|
|
55
|
+
path: .accuracy/test-brief.md
|
|
@@ -55,4 +55,4 @@ jobs:
|
|
|
55
55
|
rm -rf node_modules
|
|
56
56
|
npm pkg set scripts.prepare="exit 0"
|
|
57
57
|
npm install --omit=dev
|
|
58
|
-
- run: npx -y @modelcontextprotocol/inspector --cli --method tools/list -- node dist/index.js
|
|
58
|
+
- run: npx -y @modelcontextprotocol/inspector --cli --method tools/list -- node dist/index.js
|
|
@@ -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
|
|
@@ -54,7 +54,7 @@ jobs:
|
|
|
54
54
|
MDB_MCP_API_CLIENT_ID: ${{ secrets.TEST_ATLAS_CLIENT_ID }}
|
|
55
55
|
MDB_MCP_API_CLIENT_SECRET: ${{ secrets.TEST_ATLAS_CLIENT_SECRET }}
|
|
56
56
|
MDB_MCP_API_BASE_URL: ${{ vars.TEST_ATLAS_BASE_URL }}
|
|
57
|
-
run: npm test -- --
|
|
57
|
+
run: npm test -- --exclude "tests/unit/**" --exclude "tests/integration/tools/mongodb/**" --exclude "tests/integration/*.ts"
|
|
58
58
|
- name: Upload test results
|
|
59
59
|
uses: actions/upload-artifact@v4
|
|
60
60
|
if: always()
|
|
@@ -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:
|
|
@@ -34,17 +34,3 @@ jobs:
|
|
|
34
34
|
with:
|
|
35
35
|
name: test-results
|
|
36
36
|
path: coverage/lcov.info
|
|
37
|
-
|
|
38
|
-
merge-dependabot-pr:
|
|
39
|
-
name: Merge Dependabot PR
|
|
40
|
-
if: github.event.pull_request.user.login == 'dependabot[bot]'
|
|
41
|
-
runs-on: ubuntu-latest
|
|
42
|
-
permissions:
|
|
43
|
-
pull-requests: write
|
|
44
|
-
contents: write
|
|
45
|
-
steps:
|
|
46
|
-
- name: Enable auto-merge for Dependabot PRs
|
|
47
|
-
run: gh pr merge --auto --squash "$PR_URL"
|
|
48
|
-
env:
|
|
49
|
-
PR_URL: ${{github.event.pull_request.html_url}}
|
|
50
|
-
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Dependabot PR
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
types: [opened]
|
|
6
|
+
branches:
|
|
7
|
+
- main
|
|
8
|
+
|
|
9
|
+
permissions: {}
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
merge-dependabot-pr:
|
|
13
|
+
name: Merge Dependabot PR
|
|
14
|
+
if: github.event.pull_request.user.login == 'dependabot[bot]'
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
steps:
|
|
17
|
+
- uses: mongodb-js/devtools-shared/actions/setup-bot-token@main
|
|
18
|
+
id: app-token
|
|
19
|
+
with:
|
|
20
|
+
app-id: ${{ vars.DEVTOOLS_BOT_APP_ID }}
|
|
21
|
+
private-key: ${{ secrets.DEVTOOLS_BOT_PRIVATE_KEY }}
|
|
22
|
+
- name: Enable auto-merge for Dependabot PRs
|
|
23
|
+
run: gh pr merge --auto --squash "$PR_URL"
|
|
24
|
+
env:
|
|
25
|
+
PR_URL: ${{github.event.pull_request.html_url}}
|
|
26
|
+
GITHUB_TOKEN: ${{ steps.app-token.outputs.token }}
|
|
@@ -16,7 +16,7 @@ jobs:
|
|
|
16
16
|
- name: Check out code
|
|
17
17
|
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
|
|
18
18
|
- name: Set up Docker Buildx
|
|
19
|
-
uses: docker/setup-buildx-action@
|
|
19
|
+
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435
|
|
20
20
|
- name: Login to Docker Hub
|
|
21
21
|
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772
|
|
22
22
|
with:
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Create JIRA ticket for new issues
|
|
3
|
+
|
|
4
|
+
on:
|
|
5
|
+
issues:
|
|
6
|
+
types: [opened, labeled]
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
issues: write
|
|
10
|
+
contents: read
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
jira_task:
|
|
14
|
+
name: Create Jira issue
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
if: github.event.action == 'opened' || github.event.label.name == 'create-jira'
|
|
17
|
+
steps:
|
|
18
|
+
- uses: GitHubSecurityLab/actions-permissions/monitor@v1
|
|
19
|
+
with:
|
|
20
|
+
config: ${{ vars.PERMISSIONS_CONFIG }}
|
|
21
|
+
|
|
22
|
+
- name: Create JIRA ticket
|
|
23
|
+
uses: mongodb/apix-action/create-jira@v8
|
|
24
|
+
id: create
|
|
25
|
+
continue-on-error: true
|
|
26
|
+
with:
|
|
27
|
+
token: ${{ secrets.JIRA_API_TOKEN }}
|
|
28
|
+
project-key: MCP
|
|
29
|
+
summary: "HELP: GitHub Issue n. ${{ github.event.issue.number }}"
|
|
30
|
+
issuetype: Bug
|
|
31
|
+
description: "This ticket tracks the following GitHub issue: ${{ github.event.issue.html_url }}."
|
|
32
|
+
extra-data: |
|
|
33
|
+
{
|
|
34
|
+
"fields": {
|
|
35
|
+
"customfield_12751": [
|
|
36
|
+
{
|
|
37
|
+
"id": "22223"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"id": "27326"
|
|
41
|
+
}
|
|
42
|
+
]
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
- name: Show result
|
|
46
|
+
run: |
|
|
47
|
+
echo "JIRA action result: ${{ steps.create.outputs.issue-key || 'FAILED' }}"
|
|
48
|
+
|
|
49
|
+
- name: Add comment
|
|
50
|
+
if: steps.create.outputs.issue-key
|
|
51
|
+
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043
|
|
52
|
+
with:
|
|
53
|
+
issue-number: ${{ github.event.issue.number }}
|
|
54
|
+
body: |
|
|
55
|
+
Thanks for opening this issue. The ticket [${{ steps.create.outputs.issue-key }}](https://jira.mongodb.org/browse/${{ steps.create.outputs.issue-key }}) was created for internal tracking.
|
|
56
|
+
|
|
57
|
+
- name: Remove create-jira label
|
|
58
|
+
if: github.event.action == 'labeled' && github.event.label.name == 'create-jira'
|
|
59
|
+
uses: actions/github-script@v7
|
|
60
|
+
with:
|
|
61
|
+
script: |
|
|
62
|
+
try {
|
|
63
|
+
await github.rest.issues.removeLabel({
|
|
64
|
+
owner: context.repo.owner,
|
|
65
|
+
repo: context.repo.repo,
|
|
66
|
+
issue_number: context.issue.number,
|
|
67
|
+
name: 'create-jira'
|
|
68
|
+
});
|
|
69
|
+
console.log('✅ Removed create-jira label');
|
|
70
|
+
} catch (error) {
|
|
71
|
+
console.log('⚠️ Could not remove create-jira label:', error.message);
|
|
72
|
+
}
|
package/.smithery/smithery.yaml
CHANGED
|
@@ -24,11 +24,17 @@ startCommand:
|
|
|
24
24
|
title: Read-only
|
|
25
25
|
description: When set to true, only allows read and metadata operation types, disabling create/update/delete operations.
|
|
26
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
|
|
27
32
|
exampleConfig:
|
|
28
33
|
atlasClientId: YOUR_ATLAS_CLIENT_ID
|
|
29
34
|
atlasClientSecret: YOUR_ATLAS_CLIENT_SECRET
|
|
30
35
|
connectionString: mongodb+srv://USERNAME:PASSWORD@YOUR_CLUSTER.mongodb.net
|
|
31
36
|
readOnly: true
|
|
37
|
+
indexCheck: false
|
|
32
38
|
|
|
33
39
|
commandFunction:
|
|
34
40
|
# A function that produces the CLI command to start the MCP on stdio.
|
|
@@ -54,6 +60,10 @@ startCommand:
|
|
|
54
60
|
args.push('--connectionString');
|
|
55
61
|
args.push(config.connectionString);
|
|
56
62
|
}
|
|
63
|
+
|
|
64
|
+
if (config.indexCheck) {
|
|
65
|
+
args.push('--indexCheck');
|
|
66
|
+
}
|
|
57
67
|
}
|
|
58
68
|
|
|
59
69
|
return {
|
package/.vscode/extensions.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// Extension identifier format: ${publisher}.${name}. Example: vscode.csharp
|
|
4
4
|
|
|
5
5
|
// List of extensions which should be recommended for users of this workspace.
|
|
6
|
-
"recommendations": ["
|
|
6
|
+
"recommendations": ["vitest.explorer"],
|
|
7
7
|
// List of extensions recommended by VS Code that should not be recommended for users of this workspace.
|
|
8
8
|
"unwantedRecommendations": []
|
|
9
9
|
}
|
package/.vscode/launch.json
CHANGED
|
@@ -4,12 +4,22 @@
|
|
|
4
4
|
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
|
5
5
|
"version": "0.2.0",
|
|
6
6
|
"configurations": [
|
|
7
|
+
{
|
|
8
|
+
"type": "node",
|
|
9
|
+
"request": "launch",
|
|
10
|
+
"name": "Launch Tests",
|
|
11
|
+
"runtimeExecutable": "npm",
|
|
12
|
+
"runtimeArgs": ["test"],
|
|
13
|
+
"cwd": "${workspaceFolder}",
|
|
14
|
+
"envFile": "${workspaceFolder}/.env"
|
|
15
|
+
},
|
|
7
16
|
{
|
|
8
17
|
"type": "node",
|
|
9
18
|
"request": "launch",
|
|
10
19
|
"name": "Launch Program",
|
|
11
20
|
"skipFiles": ["<node_internals>/**"],
|
|
12
|
-
"
|
|
21
|
+
"runtimeExecutable": "npm",
|
|
22
|
+
"runtimeArgs": ["start"],
|
|
13
23
|
"preLaunchTask": "tsc: build - tsconfig.build.json",
|
|
14
24
|
"outFiles": ["${workspaceFolder}/dist/**/*.js"]
|
|
15
25
|
}
|
package/.vscode/settings.json
CHANGED
package/Dockerfile
CHANGED
|
@@ -4,6 +4,7 @@ RUN addgroup -S mcp && adduser -S mcp -G mcp
|
|
|
4
4
|
RUN npm install -g mongodb-mcp-server@${VERSION}
|
|
5
5
|
USER mcp
|
|
6
6
|
WORKDIR /home/mcp
|
|
7
|
+
ENV MDB_MCP_LOGGERS=stderr,mcp
|
|
7
8
|
ENTRYPOINT ["mongodb-mcp-server"]
|
|
8
9
|
LABEL maintainer="MongoDB Inc <info@mongodb.com>"
|
|
9
10
|
LABEL description="MongoDB MCP Server"
|