add headers to custom mcp

This commit is contained in:
Henry 2025-06-04 19:47:10 +01:00
parent d134b66bd8
commit d49b43e85e
1 changed files with 28 additions and 2 deletions

View File

@ -53,10 +53,36 @@ export class MCPToolkit extends BaseToolkit {
const baseUrl = new URL(this.serverParams.url) const baseUrl = new URL(this.serverParams.url)
try { try {
transport = new StreamableHTTPClientTransport(baseUrl) if (this.serverParams.headers) {
transport = new StreamableHTTPClientTransport(baseUrl, {
requestInit: {
headers: this.serverParams.headers
}
})
} else {
transport = new StreamableHTTPClientTransport(baseUrl)
}
await client.connect(transport) await client.connect(transport)
} catch (error) { } catch (error) {
transport = new SSEClientTransport(baseUrl) if (this.serverParams.headers) {
transport = new SSEClientTransport(baseUrl, {
requestInit: {
headers: this.serverParams.headers
},
eventSourceInit: {
// Reference: https://github.com/modelcontextprotocol/typescript-sdk/issues/118
async fetch(input: Request | URL | string, init?: RequestInit) {
const headers = new Headers(init?.headers || {})
Object.entries(this.serverParams.headers).forEach(([key, value]) => {
headers.set(key, value as string)
})
return fetch(input, { ...init, headers })
}
} as any
})
} else {
transport = new SSEClientTransport(baseUrl)
}
await client.connect(transport) await client.connect(transport)
} }
} }