Skip to content

Commit 2a839d7

Browse files
committed
feat: export createServer and add ping interval to SSE
1 parent 1fbf92c commit 2a839d7

File tree

5 files changed

+21
-2
lines changed

5 files changed

+21
-2
lines changed

.changeset/three-phones-go.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'create-mcp-kit': patch
3+
---
4+
5+
feat: export createServer and add ping interval to SSE

packages/create-mcp-kit/template/server-js/src/services/index.js.hbs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { stdioServer } from './stdio.js'
99
import { webServer } from './web.js'
1010
{{/if}}
1111

12-
const createServer = options => {
12+
export const createServer = options => {
1313
const server = new McpServer({
1414
name: options.name,
1515
version: options.version,

packages/create-mcp-kit/template/server-js/src/services/web.js.hbs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/
66
{{/if}}
77
{{#if (includes transports 'sse')}}
88
import { SSEServerTransport } from '@modelcontextprotocol/sdk/server/sse.js'
9+
import { createServer } from '@/services'
910
{{/if}}
1011
{{#if (includes transports 'streamable')}}
1112
import { generateSessionId } from '@/utils'
@@ -81,10 +82,16 @@ export async function webServer(server, options) {
8182
const transport = new SSEServerTransport('/messages', res)
8283
transports.sse[transport.sessionId] = transport
8384

85+
const interval = setInterval(() => {
86+
res.raw.write(`event: ping\ndata: {"time":"${new Date().toISOString()}"}\n\n`)
87+
}, 15000)
88+
8489
res.on('close', () => {
8590
delete transports.sse[transport.sessionId]
91+
clearInterval(interval)
8692
})
8793

94+
const server = createServer(options)
8895
await server.connect(transport)
8996
})
9097

packages/create-mcp-kit/template/server-ts/src/services/index.ts.hbs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import { webServer } from './web'
1010
{{/if}}
1111
import type { OptionsType } from '@/types'
1212

13-
const createServer = (options: OptionsType) => {
13+
export const createServer = (options: OptionsType) => {
1414
const server = new McpServer({
1515
name: options.name,
1616
version: options.version,

packages/create-mcp-kit/template/server-ts/src/services/web.ts.hbs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/
66
{{/if}}
77
{{#if (includes transports 'sse')}}
88
import { SSEServerTransport } from '@modelcontextprotocol/sdk/server/sse.js'
9+
import { createServer } from '@/services'
910
{{/if}}
1011
{{#if (includes transports 'streamable')}}
1112
import { generateSessionId } from '@/utils'
@@ -83,10 +84,16 @@ export async function webServer(server: McpServer, options: OptionsType) {
8384
const transport = new SSEServerTransport('/messages', res)
8485
transports.sse[transport.sessionId] = transport
8586

87+
const interval = setInterval(() => {
88+
res.raw.write(`event: ping\ndata: {"time":"${new Date().toISOString()}"}\n\n`)
89+
}, 15000)
90+
8691
res.on('close', () => {
8792
delete transports.sse[transport.sessionId]
93+
clearInterval(interval)
8894
})
8995

96+
const server = createServer(options)
9097
await server.connect(transport)
9198
})
9299

0 commit comments

Comments
 (0)