Skip to content

Commit 028d5f6

Browse files
feat: compile example servers to JavaScript for npm consumption
Add TypeScript compilation for server code so the example packages can be imported and used by consumers without requiring TypeScript compilation. Changes: - Add tsconfig.server.json to each example for compiling server code - Update package.json exports to point to compiled dist/server/server.js - Add types field pointing to dist/server/server.d.ts - Update build scripts to include server compilation step - Fix .ts import extensions to .js in customer-segmentation-server This enables importing the createServer function from published packages: import { createServer } from '@modelcontextprotocol/server-basic-react';
1 parent bd892b6 commit 028d5f6

File tree

42 files changed

+632
-648
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+632
-648
lines changed

examples/basic-server-preact/package.json

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,19 +9,18 @@
99
"directory": "examples/basic-server-preact"
1010
},
1111
"license": "MIT",
12-
"main": "server.ts",
12+
"main": "dist/server/server.js",
1313
"files": [
14-
"server.ts",
15-
"server-utils.ts",
1614
"dist"
1715
],
1816
"scripts": {
19-
"build": "tsc --noEmit && cross-env INPUT=mcp-app.html vite build",
17+
"build": "tsc --noEmit && cross-env INPUT=mcp-app.html vite build && tsc -p tsconfig.server.json",
2018
"watch": "cross-env INPUT=mcp-app.html vite build --watch",
2119
"serve": "bun --watch server.ts",
2220
"start": "cross-env NODE_ENV=development npm run build && npm run serve",
2321
"dev": "cross-env NODE_ENV=development concurrently 'npm run watch' 'npm run serve'",
24-
"prepublishOnly": "npm run build"
22+
"prepublishOnly": "npm run build",
23+
"build:server": "tsc -p tsconfig.server.json"
2524
},
2625
"dependencies": {
2726
"@modelcontextprotocol/ext-apps": "^0.4.0",
@@ -41,5 +40,12 @@
4140
"typescript": "^5.9.3",
4241
"vite": "^6.0.0",
4342
"vite-plugin-singlefile": "^2.3.0"
43+
},
44+
"types": "dist/server/server.d.ts",
45+
"exports": {
46+
".": {
47+
"types": "./dist/server/server.d.ts",
48+
"default": "./dist/server/server.js"
49+
}
4450
}
4551
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"compilerOptions": {
3+
"target": "ES2022",
4+
"lib": ["ES2022"],
5+
"module": "NodeNext",
6+
"moduleResolution": "NodeNext",
7+
"declaration": true,
8+
"outDir": "./dist/server",
9+
"rootDir": ".",
10+
"strict": true,
11+
"skipLibCheck": true,
12+
"esModuleInterop": true,
13+
"resolveJsonModule": true
14+
},
15+
"include": ["server.ts", "server-utils.ts"]
16+
}

examples/basic-server-react/package.json

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,19 +9,18 @@
99
"directory": "examples/basic-server-react"
1010
},
1111
"license": "MIT",
12-
"main": "server.ts",
12+
"main": "dist/server/server.js",
1313
"files": [
14-
"server.ts",
15-
"server-utils.ts",
1614
"dist"
1715
],
1816
"scripts": {
19-
"build": "tsc --noEmit && cross-env INPUT=mcp-app.html vite build",
17+
"build": "tsc --noEmit && cross-env INPUT=mcp-app.html vite build && tsc -p tsconfig.server.json",
2018
"watch": "cross-env INPUT=mcp-app.html vite build --watch",
2119
"serve": "bun --watch server.ts",
2220
"start": "cross-env NODE_ENV=development npm run build && npm run serve",
2321
"dev": "cross-env NODE_ENV=development concurrently 'npm run watch' 'npm run serve'",
24-
"prepublishOnly": "npm run build"
22+
"prepublishOnly": "npm run build",
23+
"build:server": "tsc -p tsconfig.server.json"
2524
},
2625
"dependencies": {
2726
"@modelcontextprotocol/ext-apps": "^0.4.0",
@@ -44,5 +43,12 @@
4443
"typescript": "^5.9.3",
4544
"vite": "^6.0.0",
4645
"vite-plugin-singlefile": "^2.3.0"
46+
},
47+
"types": "dist/server/server.d.ts",
48+
"exports": {
49+
".": {
50+
"types": "./dist/server/server.d.ts",
51+
"default": "./dist/server/server.js"
52+
}
4753
}
4854
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"compilerOptions": {
3+
"target": "ES2022",
4+
"lib": ["ES2022"],
5+
"module": "NodeNext",
6+
"moduleResolution": "NodeNext",
7+
"declaration": true,
8+
"outDir": "./dist/server",
9+
"rootDir": ".",
10+
"strict": true,
11+
"skipLibCheck": true,
12+
"esModuleInterop": true,
13+
"resolveJsonModule": true
14+
},
15+
"include": ["server.ts", "server-utils.ts"]
16+
}

examples/basic-server-solid/package.json

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,19 +9,18 @@
99
"directory": "examples/basic-server-solid"
1010
},
1111
"license": "MIT",
12-
"main": "server.ts",
12+
"main": "dist/server/server.js",
1313
"files": [
14-
"server.ts",
15-
"server-utils.ts",
1614
"dist"
1715
],
1816
"scripts": {
19-
"build": "tsc --noEmit && cross-env INPUT=mcp-app.html vite build",
17+
"build": "tsc --noEmit && cross-env INPUT=mcp-app.html vite build && tsc -p tsconfig.server.json",
2018
"watch": "cross-env INPUT=mcp-app.html vite build --watch",
2119
"serve": "bun --watch server.ts",
2220
"start": "cross-env NODE_ENV=development npm run build && npm run serve",
2321
"dev": "cross-env NODE_ENV=development concurrently 'npm run watch' 'npm run serve'",
24-
"prepublishOnly": "npm run build"
22+
"prepublishOnly": "npm run build",
23+
"build:server": "tsc -p tsconfig.server.json"
2524
},
2625
"dependencies": {
2726
"@modelcontextprotocol/ext-apps": "^0.4.0",
@@ -41,5 +40,12 @@
4140
"vite": "^6.0.0",
4241
"vite-plugin-singlefile": "^2.3.0",
4342
"vite-plugin-solid": "^2.0.0"
43+
},
44+
"types": "dist/server/server.d.ts",
45+
"exports": {
46+
".": {
47+
"types": "./dist/server/server.d.ts",
48+
"default": "./dist/server/server.js"
49+
}
4450
}
4551
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"compilerOptions": {
3+
"target": "ES2022",
4+
"lib": ["ES2022"],
5+
"module": "NodeNext",
6+
"moduleResolution": "NodeNext",
7+
"declaration": true,
8+
"outDir": "./dist/server",
9+
"rootDir": ".",
10+
"strict": true,
11+
"skipLibCheck": true,
12+
"esModuleInterop": true,
13+
"resolveJsonModule": true
14+
},
15+
"include": ["server.ts", "server-utils.ts"]
16+
}

examples/basic-server-svelte/package.json

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,19 +9,18 @@
99
"directory": "examples/basic-server-svelte"
1010
},
1111
"license": "MIT",
12-
"main": "server.ts",
12+
"main": "dist/server/server.js",
1313
"files": [
14-
"server.ts",
15-
"server-utils.ts",
1614
"dist"
1715
],
1816
"scripts": {
19-
"build": "tsc --noEmit && cross-env INPUT=mcp-app.html vite build",
17+
"build": "tsc --noEmit && cross-env INPUT=mcp-app.html vite build && tsc -p tsconfig.server.json",
2018
"watch": "cross-env INPUT=mcp-app.html vite build --watch",
2119
"serve": "bun --watch server.ts",
2220
"start": "cross-env NODE_ENV=development npm run build && npm run serve",
2321
"dev": "cross-env NODE_ENV=development concurrently 'npm run watch' 'npm run serve'",
24-
"prepublishOnly": "npm run build"
22+
"prepublishOnly": "npm run build",
23+
"build:server": "tsc -p tsconfig.server.json"
2524
},
2625
"dependencies": {
2726
"@modelcontextprotocol/ext-apps": "^0.4.0",
@@ -41,5 +40,12 @@
4140
"typescript": "^5.9.3",
4241
"vite": "^6.0.0",
4342
"vite-plugin-singlefile": "^2.3.0"
43+
},
44+
"types": "dist/server/server.d.ts",
45+
"exports": {
46+
".": {
47+
"types": "./dist/server/server.d.ts",
48+
"default": "./dist/server/server.js"
49+
}
4450
}
4551
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"compilerOptions": {
3+
"target": "ES2022",
4+
"lib": ["ES2022"],
5+
"module": "NodeNext",
6+
"moduleResolution": "NodeNext",
7+
"declaration": true,
8+
"outDir": "./dist/server",
9+
"rootDir": ".",
10+
"strict": true,
11+
"skipLibCheck": true,
12+
"esModuleInterop": true,
13+
"resolveJsonModule": true
14+
},
15+
"include": ["server.ts", "server-utils.ts"]
16+
}

examples/basic-server-vanillajs/package.json

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,19 +9,18 @@
99
"directory": "examples/basic-server-vanillajs"
1010
},
1111
"license": "MIT",
12-
"main": "server.ts",
12+
"main": "dist/server/server.js",
1313
"files": [
14-
"server.ts",
15-
"server-utils.ts",
1614
"dist"
1715
],
1816
"scripts": {
19-
"build": "tsc --noEmit && cross-env INPUT=mcp-app.html vite build",
17+
"build": "tsc --noEmit && cross-env INPUT=mcp-app.html vite build && tsc -p tsconfig.server.json",
2018
"watch": "cross-env INPUT=mcp-app.html vite build --watch",
2119
"serve": "bun --watch server.ts",
2220
"start": "cross-env NODE_ENV=development npm run build && npm run serve",
2321
"dev": "cross-env NODE_ENV=development concurrently 'npm run watch' 'npm run serve'",
24-
"prepublishOnly": "npm run build"
22+
"prepublishOnly": "npm run build",
23+
"build:server": "tsc -p tsconfig.server.json"
2524
},
2625
"dependencies": {
2726
"@modelcontextprotocol/ext-apps": "^0.4.0",
@@ -39,5 +38,12 @@
3938
"typescript": "^5.9.3",
4039
"vite": "^6.0.0",
4140
"vite-plugin-singlefile": "^2.3.0"
41+
},
42+
"types": "dist/server/server.d.ts",
43+
"exports": {
44+
".": {
45+
"types": "./dist/server/server.d.ts",
46+
"default": "./dist/server/server.js"
47+
}
4248
}
4349
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"compilerOptions": {
3+
"target": "ES2022",
4+
"lib": ["ES2022"],
5+
"module": "NodeNext",
6+
"moduleResolution": "NodeNext",
7+
"declaration": true,
8+
"outDir": "./dist/server",
9+
"rootDir": ".",
10+
"strict": true,
11+
"skipLibCheck": true,
12+
"esModuleInterop": true,
13+
"resolveJsonModule": true
14+
},
15+
"include": ["server.ts", "server-utils.ts"]
16+
}

0 commit comments

Comments
 (0)