Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
91 changes: 79 additions & 12 deletions typescript/sdk/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 6 additions & 5 deletions typescript/sdk/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,7 @@
".": "./dist/index.js",
"./*": "./dist/*"
},
"files": [
"dist"
],
"files": ["dist"],
"scripts": {
"build": "tsc",
"build:all": "npm run build -ws --include-workspace-root",
Expand All @@ -21,12 +19,15 @@
"license": "MIT",
"dependencies": {
"@anthropic-ai/sdk": "^0.32.1",
"@modelcontextprotocol/sdk": "^1.10.2",
"ai": "^4.3.15",
"express": "^5.1.0",
"json-schema": "^0.4.0",
"openai": "^4.0.0",
"uuid": "^11.0.3"
"uuid": "^11.0.3",
"zod": "^3.25.30"
},
"peerDependencies": {
"@modelcontextprotocol/sdk": "^1.12.0"
},
"devDependencies": {
"@types/express": "^5.0.1",
Expand Down
5 changes: 3 additions & 2 deletions typescript/sdk/src/server/stateful.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,10 @@ export interface CreateServerArg<T = Record<string, unknown>> {
config: T
}

// Allow CreateServerFn to return either a Server instance directly or a Promise that resolves to a Server
export type CreateServerFn<T = Record<string, unknown>> = (
arg: CreateServerArg<T>,
) => Server
) => Server | Promise<Server>

/**
* Configuration options for the stateful server
Expand Down Expand Up @@ -87,7 +88,7 @@ export function createStatefulServer<T = Record<string, unknown>>(
return
}
try {
const server = createMcpServer({
const server = await createMcpServer({
sessionId: newSessionId,
config: config as T,
})
Expand Down
9 changes: 5 additions & 4 deletions typescript/sdk/src/server/stateless.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/
import type { Request, Response } from "express"
import express from "express"
import { parseExpressRequestConfig } from "../shared/config.js"

import type { Server } from "@modelcontextprotocol/sdk/server/index.js"
export type { Server }

/**
* Arguments when we create a new instance of your server
Expand All @@ -12,9 +12,10 @@ export interface CreateServerArg<T = Record<string, unknown>> {
config: T
}

// Allow CreateServerFn to return either a Server instance directly or a Promise that resolves to a Server
export type CreateServerFn<T = Record<string, unknown>> = (
arg: CreateServerArg<T>,
) => Server
) => Server | Promise<Server>

/**
* Creates a stateless server for handling MCP requests
Expand Down Expand Up @@ -52,8 +53,8 @@ export function createStatelessServer<T = Record<string, unknown>>(
}
}

// Create a new server instance with config
const server = createMcpServer({ config: config as T })
// Create a new server instance with config. Support async factories.
const server = await createMcpServer({ config: config as T })

// Create a new transport instance
const transport = new StreamableHTTPServerTransport({
Expand Down