feat: add streamable http mcp server
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js"
|
||||
import { getServer } from "#/mcp/server"
|
||||
|
||||
export default defineEventHandler(async (event) => {
|
||||
const req = event.node.req
|
||||
const res = event.node.res
|
||||
const server = getServer()
|
||||
try {
|
||||
const transport: StreamableHTTPServerTransport = new StreamableHTTPServerTransport({ sessionIdGenerator: undefined })
|
||||
transport.onerror = console.error.bind(console)
|
||||
await server.connect(transport)
|
||||
await transport.handleRequest(req, res, await readBody(event))
|
||||
res.on("close", () => {
|
||||
// console.log("Request closed")
|
||||
transport.close()
|
||||
server.close()
|
||||
})
|
||||
return res
|
||||
} catch (e) {
|
||||
console.error(e)
|
||||
return {
|
||||
jsonrpc: "2.0",
|
||||
error: {
|
||||
code: -32603,
|
||||
message: "Internal server error",
|
||||
},
|
||||
id: null,
|
||||
}
|
||||
}
|
||||
})
|
||||
Reference in New Issue
Block a user