Skip to content
Open
Show file tree
Hide file tree
Changes from 66 commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
3fb3bfe
refactor: move logging to `core` and `logging` MCP-480 (#1114)
gagik Apr 30, 2026
421a204
refactor: move UI components into `@mongodb-js/mcp-ui` package MCP-48…
gagik Apr 30, 2026
e3718ca
refactor: move Atlas Api Client logic into `atlas-api-client` MCP-480…
gagik Apr 30, 2026
536d0ce
Merge branch 'main' of github.com:mongodb-js/mongodb-mcp-server into v2
gagik May 1, 2026
748e68b
chore: updates
gagik May 1, 2026
5b900a6
chore: fix
gagik May 1, 2026
ea77d28
refactor: move to `telemetry` package MCP-480 (#1125)
gagik May 4, 2026
fd4ad57
fix(v2): use native fetch in OIDC curl.mjs fixture (#1143)
gagik May 5, 2026
bf2e12d
refactor: scaffold @mongodb-js/mcp-tools-atlas-local package MCP-480 …
gagik May 5, 2026
8f0e459
Merge branch 'origin/main' into v2
gagik May 5, 2026
9f43e34
docs: add MongoDB tools package migration guide
gagik May 5, 2026
ef62490
chore: update lockfile and formatting after merge
gagik May 5, 2026
c2d50c7
refactor: split atlas tools into @mongodb-js/mcp-tools-atlas package …
gagik May 6, 2026
4fc2a65
fix: resolve merge conflicts and update lockfile
gagik May 6, 2026
4e7e28a
Merge remote-tracking branch 'origin/main' into v2
gagik May 6, 2026
393f28d
chore: remove .opencode/worktree.jsonc
gagik May 6, 2026
81fd315
chore: adopt changes from d843b35e - remove e2e getRandomUUID test
gagik May 6, 2026
9518cef
feat: add UpgradeClusterTool adapted to v2 architecture
gagik May 6, 2026
7385b92
Merge remote-tracking branch 'origin/main' into v2
gagik May 6, 2026
931edb6
chore: update lockfile
gagik May 6, 2026
ea265af
chore: merge origin/main into v2 - fix knip and conflicts
gagik May 11, 2026
591e7ca
chore: update gitignore
gagik May 11, 2026
664c943
Merge remote-tracking branch 'origin/main' into v2
gagik May 11, 2026
d0c61b1
chore: fix conflicts
gagik May 11, 2026
e1b981d
chore: update api
gagik May 11, 2026
2302eba
chore: fix lint
gagik May 11, 2026
c6a70c5
refactor: split assistant tools into @mongodb-js/mcp-tools-assistant …
gagik May 11, 2026
3528597
chore: merge origin/main into v2 and resolve conflicts
gagik May 11, 2026
0e086be
refactor: split mongodb tools into @mongodb-js/mcp-tools-mongodb pack…
gagik May 11, 2026
95aa4b5
Merge origin/main into v2
gagik May 12, 2026
104dedb
chore: add full class definitions, remove temp
gagik May 12, 2026
3122cb3
chore: update package reports
gagik May 12, 2026
601666c
Merge branch 'main' of github.com:mongodb-js/mongodb-mcp-server into v2
gagik May 15, 2026
751e133
Resolve merge conflicts and fix build
gagik May 15, 2026
9bcf62d
refactor: move to @mongodb-js/mcp-transports package MCP-373 (#1149)
gagik May 15, 2026
16e3bac
Merge branch 'main' of github.com:mongodb-js/mongodb-mcp-server into v2
gagik May 15, 2026
aedeedd
refactor: move scripts and accuracy tests into dedicated packages (#1…
gagik May 18, 2026
5fa7073
refactor: move mongodb-mcp-server into its own package (#1192)
gagik May 18, 2026
0c29f9b
chore: move setup to its own package (#1193)
gagik May 18, 2026
765a69f
refactor: extract CLI package (#1195)
gagik May 20, 2026
2d4eb58
refactor: move tests into their packages (#1196)
gagik May 20, 2026
a4af703
chore: get rid of AuthProviderFactory
gagik May 20, 2026
a281505
Merge branch 'main' of github.com:mongodb-js/mongodb-mcp-server into v2
gagik May 20, 2026
01fa2a6
chore: swap
gagik May 20, 2026
a3ab3de
chore: move testUtils
gagik May 20, 2026
a821976
chore: modify
gagik May 20, 2026
6eab8e0
chore: re-add upgradeCluster test
gagik May 20, 2026
2b94b14
chore: add UUID test
gagik May 20, 2026
c28aba0
chore: update api
gagik May 20, 2026
b9c1266
chore: add hostname test
gagik May 20, 2026
1ecfbd7
chore: simplify apiClient, telemetry
gagik May 20, 2026
56aefa4
chore: get rid of requestcontext, organize api client
gagik May 20, 2026
81251b4
chore: fixup types
gagik May 20, 2026
d5869c9
chore: rename files
gagik May 20, 2026
78ff72e
chore: rename, fixup
gagik May 20, 2026
ae1a6c0
chore: re-add tests as integration tests, remove hook for overriding …
gagik May 20, 2026
879dde3
chore: add options
gagik May 20, 2026
bcd02b8
chore: move reports
gagik May 20, 2026
d47dc1b
chore: update reports
gagik May 20, 2026
48e3949
chore: re-add NaN, add more cluster tests
gagik May 20, 2026
86d425a
chore: update api
gagik May 20, 2026
beec151
chore: add check, exclude tests from build (make TS-only)
gagik May 21, 2026
420dc7b
chore: avoid re-exporting types, parallelize checks
gagik May 21, 2026
3cedb1b
chore: fixup
gagik May 21, 2026
f91539a
fix: use object for ApiClientError
nirinchev May 21, 2026
55d695f
docs: update migration guide
gagik May 21, 2026
d813c6f
chore: changes from feedback
gagik May 22, 2026
3bba4b2
chore: proper cleanup
gagik May 22, 2026
0acd04e
chore: make connection manager use serverMetadata, make telemetry typ…
gagik May 22, 2026
171f972
chore: remove session store from http runner
gagik May 22, 2026
880cb8f
chore: remove metrics from runner
gagik May 22, 2026
3537d26
chore: cleanup, create from config helpers, connect server metadata t…
gagik May 22, 2026
b8fe722
chore: move monitoring server, add hooks
gagik May 22, 2026
f8024f3
Merge branch 'main' of github.com:mongodb-js/mongodb-mcp-server into v2
gagik May 22, 2026
c4e74f0
chore: pnpm i
gagik May 22, 2026
e5194fa
chore: reformat
gagik May 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ and MongoDB Atlas accounts. It is built using TypeScript, Node.js and the offici
- `/src/tools/mongodb/`: Contains the implementation of MCP tools that are specific to MongoDB clusters.
- `/src/resources`: Contains the implementation of MCP Resources.
- `/tests`: Contains the test code for the MCP Server.
- `/tests/accuracy`: Contains the test code for the accuracy tests, that use different models to ensure that tools have reliable descriptions.
- `/packages/accuracy-tests`: Contains the test code for the accuracy tests, that use different models to ensure that tools have reliable descriptions.
- `/tests/integration`: Contains tests that start the MCP Server and interact with it to ensure that functionality is correct.
- `/tests/unit`: Contains simple unit tests to cover specific functionality of the MCP Server.

Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/accuracy-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@ jobs:
cache: "pnpm"
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Build
run: pnpm run build
- name: Run accuracy tests
run: pnpm run test:accuracy
- name: Upload accuracy test summary
Expand Down
11 changes: 9 additions & 2 deletions .github/workflows/check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ jobs:
cache: "pnpm"
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Build
run: pnpm run build
- name: Run style check
run: pnpm run check

Expand All @@ -40,6 +42,8 @@ jobs:
cache: "pnpm"
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Build
run: pnpm run build
- run: pnpm run generate

check-dep:
Expand All @@ -55,11 +59,14 @@ jobs:
with:
node-version-file: package.json
cache: "pnpm"
- name: Install dependencies, build and remove dev dependencies
- name: Install dependencies and build
run: |
pnpm install --frozen-lockfile
pnpm run build
- name: Remove dev dependencies
run: |
rm -rf node_modules
pnpm pkg set scripts.prepare="exit 0"
pnpm install --prod --frozen-lockfile
- name: List available tools
run: pnpm dlx @modelcontextprotocol/inspector@0.16.5 --cli --method tools/list -- node dist/esm/index.js
run: pnpm dlx @modelcontextprotocol/inspector@0.16.5 --cli --method tools/list -- node packages/mongodb-mcp-server/dist/esm/index.js
6 changes: 5 additions & 1 deletion .github/workflows/code-health-fork.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@ jobs:
cache: "pnpm"
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Build
run: pnpm run build
# TODO: Re-enable on Windows once the silent worker fork crash / mongod cleanup
# leak is resolved. See MCP-495.
- name: Run tests
Expand All @@ -63,10 +65,12 @@ jobs:
cache: "pnpm"
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Build
run: pnpm run build
- name: Pre-pull Atlas Local images
run: |
docker pull mongodb/mongodb-atlas-local:preview &
docker pull mongodb/mongodb-atlas-local:latest &
wait
- name: Run tests
run: pnpm test -- tests/integration/tools/atlas-local/
run: pnpm test -- packages/integration-tests/src/tools/atlas-local/
Comment thread
github-advanced-security[bot] marked this conversation as resolved.
Fixed
4 changes: 3 additions & 1 deletion .github/workflows/code-health-long-running.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,14 @@ jobs:
cache: "pnpm"
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Build
run: pnpm run build
- name: Run tests
env:
MDB_MCP_API_CLIENT_ID: ${{ secrets.TEST_ATLAS_CLIENT_ID }}
MDB_MCP_API_CLIENT_SECRET: ${{ secrets.TEST_ATLAS_CLIENT_SECRET }}
MDB_MCP_API_BASE_URL: ${{ vars.TEST_ATLAS_BASE_URL }}
run: pnpm test tests/integration/tools/atlas --project=long-running-tests
run: pnpm test packages/integration-tests/src/tools/atlas --project=long-running-tests
- name: Upload test results
uses: actions/upload-artifact@v7.0.1
if: always()
Expand Down
14 changes: 10 additions & 4 deletions .github/workflows/code-health.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,8 @@ jobs:
cache: "pnpm"
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Build
run: pnpm run build
# TODO: Re-enable on Windows once the silent worker fork crash / mongod cleanup
# leak is resolved. See MCP-495.
- name: Run tests
Expand Down Expand Up @@ -75,12 +77,14 @@ jobs:
cache: "pnpm"
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Build
run: pnpm run build
- name: Run tests
env:
MDB_MCP_API_CLIENT_ID: ${{ secrets.TEST_ATLAS_CLIENT_ID }}
MDB_MCP_API_CLIENT_SECRET: ${{ secrets.TEST_ATLAS_CLIENT_SECRET }}
MDB_MCP_API_BASE_URL: ${{ vars.TEST_ATLAS_BASE_URL }}
run: pnpm test tests/integration/tools/atlas/
run: pnpm test packages/integration-tests/src/tools/atlas/
- name: Upload test results
uses: actions/upload-artifact@v7.0.1
if: always()
Expand Down Expand Up @@ -110,7 +114,7 @@ jobs:
docker pull mongodb/mongodb-atlas-local:latest &
wait
- name: Run tests
run: pnpm test tests/integration/tools/atlas-local/
run: pnpm test packages/integration-tests/src/tools/atlas-local/
- name: Upload test results
uses: actions/upload-artifact@v7.0.1
if: always()
Expand All @@ -134,16 +138,18 @@ jobs:
cache: "pnpm"
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Build
run: pnpm run build
- name: Install Playwright Chromium
run: pnpm --filter browser run install:browser
run: pnpm --filter @mongodb-js/mcp-browser-tests run install:browser
- name: Run browser tests
run: pnpm run test:browser
- name: Upload test results
if: always()
uses: actions/upload-artifact@v7.0.1
with:
name: browser-test-results
path: coverage/tests/browser/lcov.info
path: coverage/packages/browser-tests/lcov.info

coverage:
name: Report Coverage
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/mcpb.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ jobs:
cache: "pnpm"
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Build
run: pnpm run build
- name: Validate manifest
run: pnpm run validate:mcpb
- name: Build .mcpb
Expand Down
10 changes: 8 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
dist
node_modules
.eslintcache

.vscode/mcp.json
.github/prompts/*
Expand All @@ -10,12 +11,12 @@ node_modules
# Sensitive
state.json

tests/tmp
**/tmp
coverage
# Generated assets by accuracy runs
.accuracy

temp
**/temp
.DS_Store

# Development tool files
Expand All @@ -25,3 +26,8 @@ yalc.lock
# .mcpb build artifacts
mcpb-build/
dist-mcpb/

.claude
CLAUDE.md

**/*.tsbuildinfo
1 change: 1 addition & 0 deletions .npmrc
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
git-tag-version=false
workspace-concurrency=8
15 changes: 7 additions & 8 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
dist
coverage
package-lock.json
tests/tmp
src/common/atlas/openapi.d.ts
pnpm-lock.yaml
src/ui/lib/tools
node_modules
*.lock
resources/
src/ui/lib/loaders.ts
temp
api-extractor/reports
**/reports/*.api.md
**/reports/*.api.json
.github/workflows/*.lock.yml
packaging/mcpb/manifest.json
**/packaging/mcpb/manifest.json
pnpm-lock.yaml
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ npx @modelcontextprotocol/inspector -- node dist/esm/index.js

## Making public API changes

To ensure no unintentional public API changes are introduced, the project uses [API Extractor](https://api-extractor.com/) to track the public-facing API across all package entry points (`.`, `./web`, `./tools`, `./ui`). The generated API report files live in `api-extractor/reports/` and are checked into source control.
To ensure no unintentional public API changes are introduced, the project uses [API Extractor](https://api-extractor.com/) to track the public-facing API across package entry points (`.`, `./web`, `./ui`) and the internal tools surface (`src/tools/index.ts`, report only). The generated API report files live in `api-extractor/reports/` and are checked into source control.
Comment thread
gagik marked this conversation as resolved.
Outdated

### Workflow when changing the public API

Expand Down
Loading
Loading