diff --git a/common/tsconfig/tsconfig.json b/common/tsconfig/tsconfig.json
index 6db7d705b..2c767ee99 100644
--- a/common/tsconfig/tsconfig.json
+++ b/common/tsconfig/tsconfig.json
@@ -26,6 +26,6 @@
"paths": {
"pkce-challenge": ["./node_modules/pkce-challenge/dist/index.node"]
},
- "types": ["node", "vitest/globals"]
+ "types": ["node"]
}
}
diff --git a/common/vitest-config/package.json b/common/vitest-config/package.json
index 3ae59937e..acdfb5638 100644
--- a/common/vitest-config/package.json
+++ b/common/vitest-config/package.json
@@ -1,14 +1,16 @@
{
"name": "@modelcontextprotocol/vitest-config",
"private": true,
- "main": "vitest.config.mjs",
"type": "module",
"exports": {
- ".": "./vitest.config.js"
+ ".": "./vitest.config.ts"
},
"dependencies": {
"typescript": "catalog:devTools"
},
+ "peerDependencies": {
+ "vitest": "catalog:devTools"
+ },
"repository": {
"type": "git",
"url": "https://github.com/modelcontextprotocol/typescript-sdk.git"
diff --git a/common/vitest-config/vitest.config.js b/common/vitest-config/vitest.config.js
deleted file mode 100644
index a2209e9f9..000000000
--- a/common/vitest-config/vitest.config.js
+++ /dev/null
@@ -1,25 +0,0 @@
-import { defineConfig } from 'vitest/config';
-import tsconfigPaths from 'vite-tsconfig-paths';
-import path from 'node:path';
-import url from 'node:url';
-
-const ignorePatterns = ['**/dist/**'];
-const __dirname = path.dirname(url.fileURLToPath(import.meta.url));
-
-export default defineConfig({
- test: {
- globals: true,
- environment: 'node',
- include: ['test/**/*.test.ts'],
- exclude: ignorePatterns,
- deps: {
- moduleDirectories: ['node_modules', path.resolve(__dirname, '../../packages'), path.resolve(__dirname, '../../common')]
- }
- },
- poolOptions: {
- threads: {
- useAtomics: true
- }
- },
- plugins: [tsconfigPaths()]
-});
diff --git a/common/vitest-config/vitest.config.ts b/common/vitest-config/vitest.config.ts
new file mode 100644
index 000000000..3d88c5f18
--- /dev/null
+++ b/common/vitest-config/vitest.config.ts
@@ -0,0 +1,11 @@
+import { defineConfig } from 'vitest/config';
+import tsconfigPaths from 'vite-tsconfig-paths';
+
+export default defineConfig({
+ test: {
+ globals: true,
+ environment: 'node',
+ include: ['test/**/*.test.ts']
+ },
+ plugins: [tsconfigPaths()]
+});
diff --git a/examples/client/env.d.ts b/examples/client/env.d.ts
new file mode 100644
index 000000000..9896c472f
--- /dev/null
+++ b/examples/client/env.d.ts
@@ -0,0 +1 @@
+///
diff --git a/examples/client/package.json b/examples/client/package.json
index d77d6faf2..89934c345 100644
--- a/examples/client/package.json
+++ b/examples/client/package.json
@@ -43,6 +43,7 @@
"@modelcontextprotocol/tsconfig": "workspace:^",
"@modelcontextprotocol/eslint-config": "workspace:^",
"@modelcontextprotocol/vitest-config": "workspace:^",
- "tsdown": "catalog:devTools"
+ "tsdown": "catalog:devTools",
+ "vitest": "catalog:devTools"
}
}
diff --git a/examples/client/vitest.config.js b/examples/client/vitest.config.ts
similarity index 100%
rename from examples/client/vitest.config.js
rename to examples/client/vitest.config.ts
diff --git a/examples/server/env.d.ts b/examples/server/env.d.ts
new file mode 100644
index 000000000..9896c472f
--- /dev/null
+++ b/examples/server/env.d.ts
@@ -0,0 +1 @@
+///
diff --git a/examples/server/package.json b/examples/server/package.json
index f86cc1375..34c743226 100644
--- a/examples/server/package.json
+++ b/examples/server/package.json
@@ -52,6 +52,7 @@
"@modelcontextprotocol/vitest-config": "workspace:^",
"@types/cors": "catalog:devTools",
"@types/express": "catalog:devTools",
- "tsdown": "catalog:devTools"
+ "tsdown": "catalog:devTools",
+ "vitest": "catalog:devTools"
}
}
diff --git a/examples/server/vitest.config.js b/examples/server/vitest.config.ts
similarity index 100%
rename from examples/server/vitest.config.js
rename to examples/server/vitest.config.ts
diff --git a/examples/shared/env.d.ts b/examples/shared/env.d.ts
new file mode 100644
index 000000000..9896c472f
--- /dev/null
+++ b/examples/shared/env.d.ts
@@ -0,0 +1 @@
+///
diff --git a/examples/shared/vitest.config.js b/examples/shared/vitest.config.ts
similarity index 100%
rename from examples/shared/vitest.config.js
rename to examples/shared/vitest.config.ts
diff --git a/package.json b/package.json
index 8c756f032..cc5ea7a70 100644
--- a/package.json
+++ b/package.json
@@ -72,7 +72,6 @@
"typedoc": "catalog:devTools",
"typescript": "catalog:devTools",
"typescript-eslint": "catalog:devTools",
- "vitest": "catalog:devTools",
"ws": "catalog:devTools",
"zod": "catalog:runtimeShared"
},
diff --git a/packages/client/env.d.ts b/packages/client/env.d.ts
new file mode 100644
index 000000000..9896c472f
--- /dev/null
+++ b/packages/client/env.d.ts
@@ -0,0 +1 @@
+///
diff --git a/packages/client/vitest.config.js b/packages/client/vitest.config.ts
similarity index 80%
rename from packages/client/vitest.config.js
rename to packages/client/vitest.config.ts
index 2012fa59e..a24e99d61 100644
--- a/packages/client/vitest.config.js
+++ b/packages/client/vitest.config.ts
@@ -3,6 +3,6 @@ import { mergeConfig } from 'vitest/config';
export default mergeConfig(baseConfig, {
test: {
- setupFiles: ['./vitest.setup.js']
+ setupFiles: ['./vitest.setup.ts']
}
});
diff --git a/packages/client/vitest.setup.js b/packages/client/vitest.setup.ts
similarity index 100%
rename from packages/client/vitest.setup.js
rename to packages/client/vitest.setup.ts
diff --git a/packages/core/env.d.ts b/packages/core/env.d.ts
new file mode 100644
index 000000000..9896c472f
--- /dev/null
+++ b/packages/core/env.d.ts
@@ -0,0 +1 @@
+///
diff --git a/packages/core/vitest.config.js b/packages/core/vitest.config.ts
similarity index 100%
rename from packages/core/vitest.config.js
rename to packages/core/vitest.config.ts
diff --git a/packages/middleware/express/env.d.ts b/packages/middleware/express/env.d.ts
new file mode 100644
index 000000000..9896c472f
--- /dev/null
+++ b/packages/middleware/express/env.d.ts
@@ -0,0 +1 @@
+///
diff --git a/packages/middleware/express/vitest.config.js b/packages/middleware/express/vitest.config.ts
similarity index 100%
rename from packages/middleware/express/vitest.config.js
rename to packages/middleware/express/vitest.config.ts
diff --git a/packages/middleware/hono/env.d.ts b/packages/middleware/hono/env.d.ts
new file mode 100644
index 000000000..9896c472f
--- /dev/null
+++ b/packages/middleware/hono/env.d.ts
@@ -0,0 +1 @@
+///
diff --git a/packages/middleware/hono/vitest.config.js b/packages/middleware/hono/vitest.config.ts
similarity index 100%
rename from packages/middleware/hono/vitest.config.js
rename to packages/middleware/hono/vitest.config.ts
diff --git a/packages/middleware/node/env.d.ts b/packages/middleware/node/env.d.ts
new file mode 100644
index 000000000..9896c472f
--- /dev/null
+++ b/packages/middleware/node/env.d.ts
@@ -0,0 +1 @@
+///
diff --git a/packages/middleware/node/vitest.config.js b/packages/middleware/node/vitest.config.ts
similarity index 100%
rename from packages/middleware/node/vitest.config.js
rename to packages/middleware/node/vitest.config.ts
diff --git a/packages/server/env.d.ts b/packages/server/env.d.ts
new file mode 100644
index 000000000..9896c472f
--- /dev/null
+++ b/packages/server/env.d.ts
@@ -0,0 +1 @@
+///
diff --git a/packages/server/vitest.config.js b/packages/server/vitest.config.ts
similarity index 100%
rename from packages/server/vitest.config.js
rename to packages/server/vitest.config.ts
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 2099eab0f..99d8b80fc 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -218,9 +218,6 @@ importers:
typescript-eslint:
specifier: catalog:devTools
version: 8.51.0(eslint@9.39.2)(typescript@5.9.3)
- vitest:
- specifier: catalog:devTools
- version: 4.0.16(@types/node@24.10.4)(tsx@4.21.0)(yaml@2.8.2)
ws:
specifier: catalog:devTools
version: 8.18.3
@@ -276,6 +273,9 @@ importers:
typescript:
specifier: catalog:devTools
version: 5.9.3
+ vitest:
+ specifier: catalog:devTools
+ version: 4.0.16(@types/node@24.10.4)(tsx@4.21.0)(yaml@2.8.2)
devDependencies:
'@modelcontextprotocol/tsconfig':
specifier: workspace:^
@@ -311,6 +311,9 @@ importers:
tsdown:
specifier: catalog:devTools
version: 0.18.4(@typescript/native-preview@7.0.0-dev.20260105.1)(typescript@5.9.3)
+ vitest:
+ specifier: catalog:devTools
+ version: 4.0.16(@types/node@24.10.4)(tsx@4.21.0)(yaml@2.8.2)
examples/server:
dependencies:
@@ -366,6 +369,9 @@ importers:
tsdown:
specifier: catalog:devTools
version: 0.18.4(@typescript/native-preview@7.0.0-dev.20260105.1)(typescript@5.9.3)
+ vitest:
+ specifier: catalog:devTools
+ version: 4.0.16(@types/node@24.10.4)(tsx@4.21.0)(yaml@2.8.2)
examples/shared:
dependencies:
@@ -871,6 +877,9 @@ importers:
express:
specifier: catalog:runtimeServerOnly
version: 5.2.1
+ vitest:
+ specifier: catalog:devTools
+ version: 4.0.16(@types/node@24.10.4)(tsx@4.21.0)(yaml@2.8.2)
zod:
specifier: catalog:runtimeShared
version: 4.3.5
diff --git a/test/conformance/env.d.ts b/test/conformance/env.d.ts
new file mode 100644
index 000000000..9896c472f
--- /dev/null
+++ b/test/conformance/env.d.ts
@@ -0,0 +1 @@
+///
diff --git a/test/conformance/package.json b/test/conformance/package.json
index 253afd9a7..43ff45bfc 100644
--- a/test/conformance/package.json
+++ b/test/conformance/package.json
@@ -49,6 +49,7 @@
"@modelcontextprotocol/test-helpers": "workspace:^",
"cors": "catalog:runtimeServerOnly",
"express": "catalog:runtimeServerOnly",
+ "vitest": "catalog:devTools",
"zod": "catalog:runtimeShared"
}
}
diff --git a/test/conformance/vitest.config.js b/test/conformance/vitest.config.ts
similarity index 100%
rename from test/conformance/vitest.config.js
rename to test/conformance/vitest.config.ts
diff --git a/test/helpers/env.d.ts b/test/helpers/env.d.ts
new file mode 100644
index 000000000..9896c472f
--- /dev/null
+++ b/test/helpers/env.d.ts
@@ -0,0 +1 @@
+///
diff --git a/test/helpers/vitest.config.js b/test/helpers/vitest.config.ts
similarity index 100%
rename from test/helpers/vitest.config.js
rename to test/helpers/vitest.config.ts
diff --git a/test/integration/env.d.ts b/test/integration/env.d.ts
new file mode 100644
index 000000000..9896c472f
--- /dev/null
+++ b/test/integration/env.d.ts
@@ -0,0 +1 @@
+///
diff --git a/test/integration/vitest.config.js b/test/integration/vitest.config.ts
similarity index 100%
rename from test/integration/vitest.config.js
rename to test/integration/vitest.config.ts