UNPKG

@apideck/docs-mcp

Version:

MCP server that lets agents search and retrieve your documentation at query time instead of relying on stale training data.

61 lines • 2.31 kB
// SPDX-License-Identifier: MIT import { getRequestListener } from '@hono/node-server'; import { WebStandardStreamableHTTPServerTransport } from '@modelcontextprotocol/server'; /** * Library-owned Node bridge to the supported SDK Web Standard transport. * Protocol, limits, sessions and SSE remain SDK-owned; Node conversion and * streamed writes remain owned by the explicitly declared patched Hono adapter. * Mirrors the SDK Node bridge's delegation contract without importing its * vulnerable transitive adapter. See docs/http-transport-security.md. */ export class NodeStreamableHTTPServerTransport { web; constructor(options = {}) { this.web = new WebStandardStreamableHTTPServerTransport(options); } get sessionId() { return this.web.sessionId; } get onclose() { return this.web.onclose; } set onclose(callback) { if (callback === undefined) delete this.web.onclose; else this.web.onclose = callback; } get onerror() { return this.web.onerror; } set onerror(callback) { if (callback === undefined) delete this.web.onerror; else this.web.onerror = callback; } get onmessage() { return this.web.onmessage; } set onmessage(callback) { if (callback === undefined) delete this.web.onmessage; else this.web.onmessage = callback; } start() { return this.web.start(); } close() { return this.web.close(); } send(...args) { return this.web.send(...args); } setSupportedProtocolVersions(versions) { this.web.setSupportedProtocolVersions(versions); } setScopeChallengeResolver(...args) { this.web.setScopeChallengeResolver(...args); } closeSSEStream(...args) { this.web.closeSSEStream(...args); } closeStandaloneSSEStream() { this.web.closeStandaloneSSEStream(); } async handleRequest(req, res, parsedBody) { const authInfo = req.auth; await getRequestListener((request) => this.web.handleRequest(request, { ...(authInfo !== undefined ? { authInfo } : {}), ...(parsedBody !== undefined ? { parsedBody } : {}), }), { overrideGlobalObjects: false })(req, res); } } //# sourceMappingURL=node-http.js.map