@llmindset/hf-mcp 0.2.74 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,10 @@
1
+ export type LogLevel = 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'silent';
2
+ export interface Logger {
3
+ trace: (...args: unknown[]) => void;
4
+ debug: (...args: unknown[]) => void;
5
+ info: (...args: unknown[]) => void;
6
+ warn: (...args: unknown[]) => void;
7
+ error: (...args: unknown[]) => void;
8
+ }
9
+ export declare const logger: Logger;
10
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEhF,MAAM,WAAW,MAAM;IACtB,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACpC,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACpC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACnC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACnC,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;CACpC;AA0BD,eAAO,MAAM,MAAM,EAAE,MA0BpB,CAAC"}
package/dist/logger.js ADDED
@@ -0,0 +1,49 @@
1
+ const LOG_LEVELS = {
2
+ trace: 0,
3
+ debug: 1,
4
+ info: 2,
5
+ warn: 3,
6
+ error: 4,
7
+ silent: 5,
8
+ };
9
+ function normalizeLogLevel(value) {
10
+ if (!value)
11
+ return 'info';
12
+ const normalized = value.toLowerCase();
13
+ if (normalized in LOG_LEVELS) {
14
+ return normalized;
15
+ }
16
+ return 'info';
17
+ }
18
+ const ACTIVE_LEVEL = normalizeLogLevel(process.env.LOG_LEVEL);
19
+ function shouldLog(level) {
20
+ return LOG_LEVELS[level] >= LOG_LEVELS[ACTIVE_LEVEL];
21
+ }
22
+ export const logger = {
23
+ trace: (...args) => {
24
+ if (shouldLog('trace')) {
25
+ console.debug(...args);
26
+ }
27
+ },
28
+ debug: (...args) => {
29
+ if (shouldLog('debug')) {
30
+ console.debug(...args);
31
+ }
32
+ },
33
+ info: (...args) => {
34
+ if (shouldLog('info')) {
35
+ console.info(...args);
36
+ }
37
+ },
38
+ warn: (...args) => {
39
+ if (shouldLog('warn')) {
40
+ console.warn(...args);
41
+ }
42
+ },
43
+ error: (...args) => {
44
+ if (shouldLog('error')) {
45
+ console.error(...args);
46
+ }
47
+ },
48
+ };
49
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAUA,MAAM,UAAU,GAA6B;IAC5C,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,CAAC;CACT,CAAC;AAEF,SAAS,iBAAiB,CAAC,KAAyB;IACnD,IAAI,CAAC,KAAK;QAAE,OAAO,MAAM,CAAC;IAC1B,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IACvC,IAAI,UAAU,IAAI,UAAU,EAAE,CAAC;QAC9B,OAAO,UAAsB,CAAC;IAC/B,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAED,MAAM,YAAY,GAAG,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAE9D,SAAS,SAAS,CAAC,KAAe;IACjC,OAAO,UAAU,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAW;IAC7B,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE;QAClB,IAAI,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;QACxB,CAAC;IACF,CAAC;IACD,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE;QAClB,IAAI,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;QACxB,CAAC;IACF,CAAC;IACD,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE;QACjB,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QACvB,CAAC;IACF,CAAC;IACD,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE;QACjB,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QACvB,CAAC;IACF,CAAC;IACD,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE;QAClB,IAAI,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;QACxB,CAAC;IACF,CAAC;CACD,CAAC"}
@@ -57,8 +57,8 @@ export async function invokeSpace(spaceName, parametersJson, hfToken, extra) {
57
57
  }
58
58
  }
59
59
  const finalParameters = applyDefaults(inputParameters, schemaResult);
60
- const sseUrl = `https://${metadata.subdomain}.hf.space/gradio_api/mcp/sse`;
61
- const { result } = await callGradioToolWithHeaders(sseUrl, tool.name, finalParameters, hfToken, extra, {
60
+ const mcpUrl = `https://${metadata.subdomain}.hf.space/gradio_api/mcp/`;
61
+ const { result } = await callGradioToolWithHeaders(mcpUrl, tool.name, finalParameters, hfToken, extra, {
62
62
  logProxiedReplica: true,
63
63
  });
64
64
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"invoke.js","sourceRoot":"","sources":["../../../src/space/commands/invoke.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"invoke.js","sourceRoot":"","sources":["../../../src/space/commands/invoke.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { type CallToolResult, type ServerNotification, type ServerRequest } from '@modelcontextprotocol/sdk/types.js';
2
- import type { RequestHandlerExtra } from '@modelcontextprotocol/sdk/shared/protocol.js';
2
+ import { type RequestHandlerExtra } from '@modelcontextprotocol/sdk/shared/protocol.js';
3
3
  export interface GradioCallResult {
4
4
  result: CallToolResult;
5
5
  capturedHeaders: Record<string, string>;
@@ -11,5 +11,5 @@ export interface GradioCallOptions {
11
11
  }
12
12
  export declare function extractReplicaId(headerValue: string | undefined): string | null;
13
13
  export declare function rewriteReplicaUrlsInResult(result: CallToolResult, proxiedReplicaHeader: string | undefined): CallToolResult;
14
- export declare function callGradioToolWithHeaders(sseUrl: string, toolName: string, parameters: Record<string, unknown>, hfToken: string | undefined, extra: RequestHandlerExtra<ServerRequest, ServerNotification> | undefined, options?: GradioCallOptions): Promise<GradioCallResult>;
14
+ export declare function callGradioToolWithHeaders(mcpUrl: string, toolName: string, parameters: Record<string, unknown>, hfToken: string | undefined, extra: RequestHandlerExtra<ServerRequest, ServerNotification> | undefined, options?: GradioCallOptions): Promise<GradioCallResult>;
15
15
  //# sourceMappingURL=gradio-caller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gradio-caller.d.ts","sourceRoot":"","sources":["../../../src/space/utils/gradio-caller.ts"],"names":[],"mappings":"AAEA,OAAO,EAAwB,KAAK,cAAc,EAAE,KAAK,kBAAkB,EAAE,KAAK,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAC5I,OAAO,KAAK,EAAE,mBAAmB,EAAkB,MAAM,8CAA8C,CAAC;AAExG,MAAM,WAAW,gBAAgB;IAChC,MAAM,EAAE,cAAc,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,iBAAiB;IAEjC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAEvC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B,sBAAsB,CAAC,EAAE,MAAM,IAAI,CAAC;CACpC;AAMD,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAO/E;AAOD,wBAAgB,0BAA0B,CACzC,MAAM,EAAE,cAAc,EACtB,oBAAoB,EAAE,MAAM,GAAG,SAAS,GACtC,cAAc,CAuChB;AAMD,wBAAsB,yBAAyB,CAC9C,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,KAAK,EAAE,mBAAmB,CAAC,aAAa,EAAE,kBAAkB,CAAC,GAAG,SAAS,EACzE,OAAO,GAAE,iBAAsB,GAC7B,OAAO,CAAC,gBAAgB,CAAC,CA8I3B"}
1
+ {"version":3,"file":"gradio-caller.d.ts","sourceRoot":"","sources":["../../../src/space/utils/gradio-caller.ts"],"names":[],"mappings":"AAKA,OAAO,EAAwB,KAAK,cAAc,EAAE,KAAK,kBAAkB,EAAE,KAAK,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAC5I,OAAO,EAAY,KAAK,mBAAmB,EAAuB,MAAM,8CAA8C,CAAC;AAUvH,MAAM,WAAW,gBAAgB;IAChC,MAAM,EAAE,cAAc,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,iBAAiB;IAEjC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAEvC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B,sBAAsB,CAAC,EAAE,MAAM,IAAI,CAAC;CACpC;AAMD,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAO/E;AAOD,wBAAgB,0BAA0B,CACzC,MAAM,EAAE,cAAc,EACtB,oBAAoB,EAAE,MAAM,GAAG,SAAS,GACtC,cAAc,CAuChB;AAMD,wBAAsB,yBAAyB,CAC9C,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,KAAK,EAAE,mBAAmB,CAAC,aAAa,EAAE,kBAAkB,CAAC,GAAG,SAAS,EACzE,OAAO,GAAE,iBAAsB,GAC7B,OAAO,CAAC,gBAAgB,CAAC,CAwO3B"}
@@ -1,6 +1,13 @@
1
1
  import { Client } from '@modelcontextprotocol/sdk/client/index.js';
2
- import { SSEClientTransport } from '@modelcontextprotocol/sdk/client/sse.js';
2
+ import { StreamableHTTPClientTransport, } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
3
3
  import { CallToolResultSchema } from '@modelcontextprotocol/sdk/types.js';
4
+ import { Protocol } from '@modelcontextprotocol/sdk/shared/protocol.js';
5
+ import { logger } from '../../logger.js';
6
+ class GradioClient extends Client {
7
+ async connect(transport, _options) {
8
+ await Protocol.prototype.connect.call(this, transport);
9
+ }
10
+ }
4
11
  export function extractReplicaId(headerValue) {
5
12
  if (!headerValue)
6
13
  return null;
@@ -48,7 +55,7 @@ export function rewriteReplicaUrlsInResult(result, proxiedReplicaHeader) {
48
55
  content: newContent,
49
56
  };
50
57
  }
51
- export async function callGradioToolWithHeaders(sseUrl, toolName, parameters, hfToken, extra, options = {}) {
58
+ export async function callGradioToolWithHeaders(mcpUrl, toolName, parameters, hfToken, extra, options = {}) {
52
59
  const capturedHeaders = {};
53
60
  let loggedHeader = false;
54
61
  const handleHeaders = (headers) => {
@@ -62,57 +69,133 @@ export async function callGradioToolWithHeaders(sseUrl, toolName, parameters, hf
62
69
  options.onHeaders?.(headers);
63
70
  };
64
71
  const captureHeadersFetch = async (url, init) => {
72
+ const method = init?.method ?? 'GET';
73
+ let requestSummary = null;
74
+ if (typeof init?.body === 'string') {
75
+ try {
76
+ const parsed = JSON.parse(init.body);
77
+ if (Array.isArray(parsed)) {
78
+ requestSummary = {
79
+ isBatch: true,
80
+ method: parsed[0]?.method,
81
+ id: parsed[0]?.id,
82
+ progressToken: parsed[0]?.params?._meta?.progressToken,
83
+ };
84
+ }
85
+ else if (parsed && typeof parsed === 'object') {
86
+ requestSummary = {
87
+ isBatch: false,
88
+ method: parsed.method,
89
+ id: parsed.id,
90
+ progressToken: parsed.params?._meta?.progressToken,
91
+ };
92
+ }
93
+ }
94
+ catch {
95
+ requestSummary = null;
96
+ }
97
+ }
98
+ logger.trace('[gradio] upstream fetch', {
99
+ method,
100
+ url: url.toString(),
101
+ hasBody: Boolean(init?.body),
102
+ requestSummary,
103
+ });
65
104
  const response = await fetch(url, init);
105
+ logger.trace('[gradio] upstream response', {
106
+ method,
107
+ url: url.toString(),
108
+ status: response.status,
109
+ contentType: response.headers.get('content-type') ?? null,
110
+ mcpSessionId: response.headers.get('mcp-session-id') ?? null,
111
+ });
66
112
  handleHeaders(response.headers);
67
113
  return response;
68
114
  };
69
- const buildEventSourceFetch = (extraHeaders) => (url, init) => {
70
- const headers = new Headers(init?.headers);
71
- if (extraHeaders) {
72
- Object.entries(extraHeaders).forEach(([key, value]) => headers.set(key, value));
73
- }
74
- const requestInit = { ...init, headers };
75
- return captureHeadersFetch(url.toString(), requestInit);
76
- };
77
- const remoteClient = new Client({
115
+ const skipInitialize = process.env.GRADIO_SKIP_INITIALIZE === 'true';
116
+ const clientInfo = {
78
117
  name: 'hf-mcp-gradio-client',
79
118
  version: '1.0.0',
80
- }, {
119
+ };
120
+ const clientOptions = {
81
121
  capabilities: {},
82
- });
122
+ };
123
+ const remoteClient = skipInitialize
124
+ ? new GradioClient(clientInfo, clientOptions)
125
+ : new Client(clientInfo, clientOptions);
83
126
  const transportOptions = {
84
127
  fetch: captureHeadersFetch,
85
128
  };
86
129
  if (hfToken) {
87
- const headerName = 'X-HF-Authorization';
88
130
  const customHeaders = {
89
- [headerName]: `Bearer ${hfToken}`,
131
+ 'X-HF-Authorization': `Bearer ${hfToken}`,
90
132
  };
91
133
  transportOptions.requestInit = {
92
134
  headers: customHeaders,
93
135
  };
94
- transportOptions.eventSourceInit = {
95
- fetch: buildEventSourceFetch(customHeaders),
96
- };
97
136
  }
98
- else {
99
- transportOptions.eventSourceInit = {
100
- fetch: buildEventSourceFetch(),
101
- };
102
- }
103
- const transport = new SSEClientTransport(new URL(sseUrl), transportOptions);
137
+ logger.trace('[gradio] connecting streamable client', {
138
+ mcpUrl,
139
+ hasToken: Boolean(hfToken),
140
+ skipInitialize,
141
+ });
142
+ const transport = new StreamableHTTPClientTransport(new URL(mcpUrl), transportOptions);
143
+ let isClosing = false;
144
+ transport.onmessage = (message) => {
145
+ const messageInfo = message && typeof message === 'object'
146
+ ? {
147
+ hasId: 'id' in message,
148
+ id: message.id ?? null,
149
+ method: 'method' in message ? message.method : null,
150
+ isResult: 'result' in message,
151
+ isError: 'error' in message,
152
+ }
153
+ : { messageType: typeof message };
154
+ logger.trace('[gradio] transport message', messageInfo);
155
+ };
156
+ transport.onerror = (error) => {
157
+ if (isClosing && error instanceof Error && error.message.includes('AbortError')) {
158
+ logger.trace('[gradio] transport aborted after close', { message: error.message });
159
+ return;
160
+ }
161
+ logger.trace('[gradio] transport error', { error });
162
+ };
163
+ transport.onclose = () => {
164
+ logger.trace('[gradio] transport closed');
165
+ };
166
+ let connectCompleted = false;
167
+ const connectWatchdog = setTimeout(() => {
168
+ if (!connectCompleted) {
169
+ logger.trace('[gradio] connect still pending', { mcpUrl });
170
+ }
171
+ }, 15000);
104
172
  await remoteClient.connect(transport);
173
+ connectCompleted = true;
174
+ clearTimeout(connectWatchdog);
175
+ logger.trace('[gradio] connected streamable client', { mcpUrl });
105
176
  try {
106
177
  const progressToken = extra?._meta?.progressToken;
178
+ logger.trace('[gradio] progress setup', {
179
+ hasExtra: Boolean(extra),
180
+ progressToken: progressToken ?? null,
181
+ hasSignal: Boolean(extra?.signal),
182
+ });
107
183
  let progressRelayDisabled = false;
108
184
  const sendProgressNotification = async (progress) => {
109
185
  if (!extra || progressRelayDisabled)
110
186
  return;
111
187
  if (extra.signal?.aborted) {
112
188
  progressRelayDisabled = true;
189
+ logger.trace('[gradio] progress relay aborted', {
190
+ progressToken: progressToken ?? null,
191
+ });
113
192
  return;
114
193
  }
115
194
  try {
195
+ logger.trace('[gradio] relaying progress', {
196
+ progressToken: progressToken ?? null,
197
+ progress,
198
+ });
116
199
  const params = {
117
200
  progressToken: progressToken,
118
201
  progress: progress.progress ?? 0,
@@ -130,16 +213,30 @@ export async function callGradioToolWithHeaders(sseUrl, toolName, parameters, hf
130
213
  }
131
214
  catch {
132
215
  progressRelayDisabled = true;
216
+ logger.trace('[gradio] progress relay failed', {
217
+ progressToken: progressToken ?? null,
218
+ });
133
219
  options.onProgressRelayFailure?.();
134
220
  }
135
221
  };
136
222
  const requestOptions = {};
137
223
  if (progressToken !== undefined && extra) {
138
224
  requestOptions.onprogress = (progress) => {
225
+ logger.trace('[gradio] upstream progress event', {
226
+ progressToken: progressToken ?? null,
227
+ progress,
228
+ });
139
229
  void sendProgressNotification(progress);
140
230
  };
141
231
  requestOptions.resetTimeoutOnProgress = true;
142
232
  }
233
+ else {
234
+ logger.trace('[gradio] progress relay disabled', {
235
+ progressToken: progressToken ?? null,
236
+ hasExtra: Boolean(extra),
237
+ });
238
+ }
239
+ logger.trace('[gradio] sending tool request', { toolName, hasProgressToken: progressToken !== undefined });
143
240
  const result = await remoteClient.request({
144
241
  method: 'tools/call',
145
242
  params: {
@@ -148,11 +245,13 @@ export async function callGradioToolWithHeaders(sseUrl, toolName, parameters, hf
148
245
  _meta: progressToken !== undefined ? { progressToken } : undefined,
149
246
  },
150
247
  }, CallToolResultSchema, requestOptions);
248
+ logger.trace('[gradio] tool request completed', { toolName, isError: result.isError });
151
249
  const proxiedReplica = capturedHeaders['x-proxied-replica'];
152
250
  const rewritten = rewriteReplicaUrlsInResult(result, proxiedReplica);
153
251
  return { result: rewritten, capturedHeaders };
154
252
  }
155
253
  finally {
254
+ isClosing = true;
156
255
  await remoteClient.close();
157
256
  }
158
257
  }
@@ -1 +1 @@
1
- {"version":3,"file":"gradio-caller.js","sourceRoot":"","sources":["../../../src/space/utils/gradio-caller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gradio-caller.js","sourceRoot":"","sources":["../../../src/space/utils/gradio-caller.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@llmindset/hf-mcp",
3
- "version": "0.2.74",
3
+ "version": "0.3.1",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -25,7 +25,7 @@
25
25
  "dependencies": {
26
26
  "@huggingface/hub": "^2.6.12",
27
27
  "@mcp-ui/server": "^5.12.0",
28
- "@modelcontextprotocol/sdk": "^1.24.3",
28
+ "@modelcontextprotocol/sdk": "^1.25.3",
29
29
  "shell-quote": "^1.8.3",
30
30
  "turndown": "^7.2.0",
31
31
  "zod": "^3.24.4"
package/src/logger.ts ADDED
@@ -0,0 +1,61 @@
1
+ export type LogLevel = 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'silent';
2
+
3
+ export interface Logger {
4
+ trace: (...args: unknown[]) => void;
5
+ debug: (...args: unknown[]) => void;
6
+ info: (...args: unknown[]) => void;
7
+ warn: (...args: unknown[]) => void;
8
+ error: (...args: unknown[]) => void;
9
+ }
10
+
11
+ const LOG_LEVELS: Record<LogLevel, number> = {
12
+ trace: 0,
13
+ debug: 1,
14
+ info: 2,
15
+ warn: 3,
16
+ error: 4,
17
+ silent: 5,
18
+ };
19
+
20
+ function normalizeLogLevel(value: string | undefined): LogLevel {
21
+ if (!value) return 'info';
22
+ const normalized = value.toLowerCase();
23
+ if (normalized in LOG_LEVELS) {
24
+ return normalized as LogLevel;
25
+ }
26
+ return 'info';
27
+ }
28
+
29
+ const ACTIVE_LEVEL = normalizeLogLevel(process.env.LOG_LEVEL);
30
+
31
+ function shouldLog(level: LogLevel): boolean {
32
+ return LOG_LEVELS[level] >= LOG_LEVELS[ACTIVE_LEVEL];
33
+ }
34
+
35
+ export const logger: Logger = {
36
+ trace: (...args) => {
37
+ if (shouldLog('trace')) {
38
+ console.debug(...args);
39
+ }
40
+ },
41
+ debug: (...args) => {
42
+ if (shouldLog('debug')) {
43
+ console.debug(...args);
44
+ }
45
+ },
46
+ info: (...args) => {
47
+ if (shouldLog('info')) {
48
+ console.info(...args);
49
+ }
50
+ },
51
+ warn: (...args) => {
52
+ if (shouldLog('warn')) {
53
+ console.warn(...args);
54
+ }
55
+ },
56
+ error: (...args) => {
57
+ if (shouldLog('error')) {
58
+ console.error(...args);
59
+ }
60
+ },
61
+ };
@@ -87,21 +87,21 @@ export async function invokeSpace(
87
87
  // Step 7: Apply default values for missing optional parameters
88
88
  const finalParameters = applyDefaults(inputParameters, schemaResult);
89
89
 
90
- // Step 8: Create SSE connection and invoke tool (shared helper)
91
- const sseUrl = `https://${metadata.subdomain}.hf.space/gradio_api/mcp/sse`;
92
- const { result } = await callGradioToolWithHeaders(sseUrl, tool.name, finalParameters, hfToken, extra, {
93
- logProxiedReplica: true,
94
- });
95
-
96
- // Return raw MCP result with warnings if any
97
- // This ensures the space tool behaves identically to proxied gr_* tools
98
- return {
99
- result,
100
- warnings,
101
- totalResults: 1,
102
- resultsShared: 1,
103
- isError: result.isError,
104
- };
90
+ // Step 8: Create Streamable HTTP connection and invoke tool (shared helper)
91
+ const mcpUrl = `https://${metadata.subdomain}.hf.space/gradio_api/mcp/`;
92
+ const { result } = await callGradioToolWithHeaders(mcpUrl, tool.name, finalParameters, hfToken, extra, {
93
+ logProxiedReplica: true,
94
+ });
95
+
96
+ // Return raw MCP result with warnings if any
97
+ // This ensures the space tool behaves identically to proxied gr_* tools
98
+ return {
99
+ result,
100
+ warnings,
101
+ totalResults: 1,
102
+ resultsShared: 1,
103
+ isError: result.isError,
104
+ };
105
105
  } catch (error) {
106
106
  const errorMessage = error instanceof Error ? error.message : String(error);
107
107
  return {
@@ -1,7 +1,18 @@
1
1
  import { Client } from '@modelcontextprotocol/sdk/client/index.js';
2
- import { SSEClientTransport, type SSEClientTransportOptions } from '@modelcontextprotocol/sdk/client/sse.js';
2
+ import {
3
+ StreamableHTTPClientTransport,
4
+ type StreamableHTTPClientTransportOptions,
5
+ } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
3
6
  import { CallToolResultSchema, type CallToolResult, type ServerNotification, type ServerRequest } from '@modelcontextprotocol/sdk/types.js';
4
- import type { RequestHandlerExtra, RequestOptions } from '@modelcontextprotocol/sdk/shared/protocol.js';
7
+ import { Protocol, type RequestHandlerExtra, type RequestOptions } from '@modelcontextprotocol/sdk/shared/protocol.js';
8
+ import type { Transport } from '@modelcontextprotocol/sdk/shared/transport.js';
9
+ import { logger } from '../../logger.js';
10
+
11
+ class GradioClient extends Client {
12
+ override async connect(transport: Transport, _options?: RequestOptions): Promise<void> {
13
+ await Protocol.prototype.connect.call(this, transport);
14
+ }
15
+ }
5
16
 
6
17
  export interface GradioCallResult {
7
18
  result: CallToolResult;
@@ -80,11 +91,11 @@ export function rewriteReplicaUrlsInResult(
80
91
  }
81
92
 
82
93
  /**
83
- * Shared helper to call a Gradio MCP tool over SSE, capturing response headers (including X-Proxied-Replica).
84
- * This handles SSE setup, optional progress relay, and cleans up the client connection.
94
+ * Shared helper to call a Gradio MCP tool over Streamable HTTP, capturing response headers (including X-Proxied-Replica).
95
+ * This handles Streamable HTTP setup, optional progress relay, and cleans up the client connection.
85
96
  */
86
97
  export async function callGradioToolWithHeaders(
87
- sseUrl: string,
98
+ mcpUrl: string,
88
99
  toolName: string,
89
100
  parameters: Record<string, unknown>,
90
101
  hfToken: string | undefined,
@@ -105,66 +116,134 @@ export async function callGradioToolWithHeaders(
105
116
  options.onHeaders?.(headers);
106
117
  };
107
118
 
108
- const captureHeadersFetch: SSEClientTransportOptions['fetch'] = async (url, init) => {
119
+ const captureHeadersFetch: StreamableHTTPClientTransportOptions['fetch'] = async (url, init) => {
120
+ const method = init?.method ?? 'GET';
121
+ let requestSummary: {
122
+ method?: unknown;
123
+ id?: unknown;
124
+ progressToken?: unknown;
125
+ isBatch?: boolean;
126
+ } | null = null;
127
+ if (typeof init?.body === 'string') {
128
+ try {
129
+ const parsed = JSON.parse(init.body) as
130
+ | { method?: unknown; id?: unknown; params?: { _meta?: { progressToken?: unknown } } }
131
+ | Array<{ method?: unknown; id?: unknown; params?: { _meta?: { progressToken?: unknown } } }>;
132
+ if (Array.isArray(parsed)) {
133
+ requestSummary = {
134
+ isBatch: true,
135
+ method: parsed[0]?.method,
136
+ id: parsed[0]?.id,
137
+ progressToken: parsed[0]?.params?._meta?.progressToken,
138
+ };
139
+ } else if (parsed && typeof parsed === 'object') {
140
+ requestSummary = {
141
+ isBatch: false,
142
+ method: parsed.method,
143
+ id: parsed.id,
144
+ progressToken: parsed.params?._meta?.progressToken,
145
+ };
146
+ }
147
+ } catch {
148
+ requestSummary = null;
149
+ }
150
+ }
151
+ logger.trace('[gradio] upstream fetch', {
152
+ method,
153
+ url: url.toString(),
154
+ hasBody: Boolean(init?.body),
155
+ requestSummary,
156
+ });
109
157
  const response = await fetch(url, init);
158
+ logger.trace('[gradio] upstream response', {
159
+ method,
160
+ url: url.toString(),
161
+ status: response.status,
162
+ contentType: response.headers.get('content-type') ?? null,
163
+ mcpSessionId: response.headers.get('mcp-session-id') ?? null,
164
+ });
110
165
  handleHeaders(response.headers);
111
166
  return response;
112
167
  };
113
168
 
114
- type EventSourceFetch = NonNullable<SSEClientTransportOptions['eventSourceInit']>['fetch'];
115
- const buildEventSourceFetch =
116
- (extraHeaders?: Record<string, string>): EventSourceFetch =>
117
- (url, init) => {
118
- const headers = new Headers(init?.headers);
119
- if (extraHeaders) {
120
- Object.entries(extraHeaders).forEach(([key, value]) => headers.set(key, value));
121
- }
122
- const requestInit: RequestInit = { ...(init as RequestInit), headers };
123
- return captureHeadersFetch(url.toString(), requestInit);
124
- };
169
+ const skipInitialize = process.env.GRADIO_SKIP_INITIALIZE === 'true';
125
170
 
126
171
  // Create MCP client
127
- const remoteClient = new Client(
128
- {
129
- name: 'hf-mcp-gradio-client',
130
- version: '1.0.0',
131
- },
132
- {
133
- capabilities: {},
134
- }
135
- );
172
+ const clientInfo = {
173
+ name: 'hf-mcp-gradio-client',
174
+ version: '1.0.0',
175
+ };
176
+ const clientOptions = {
177
+ capabilities: {},
178
+ };
179
+ const remoteClient = skipInitialize
180
+ ? new GradioClient(clientInfo, clientOptions)
181
+ : new Client(clientInfo, clientOptions);
136
182
 
137
- // Create SSE transport with HF token if available
138
- const transportOptions: SSEClientTransportOptions = {
183
+ // Create Streamable HTTP transport with HF token if available
184
+ const transportOptions: StreamableHTTPClientTransportOptions = {
139
185
  fetch: captureHeadersFetch,
140
186
  };
141
187
  if (hfToken) {
142
- const headerName = 'X-HF-Authorization';
143
188
  const customHeaders = {
144
- [headerName]: `Bearer ${hfToken}`,
189
+ 'X-HF-Authorization': `Bearer ${hfToken}`,
145
190
  };
146
191
 
147
- // Headers for POST requests
192
+ // Headers for Streamable HTTP requests
148
193
  transportOptions.requestInit = {
149
194
  headers: customHeaders,
150
195
  };
151
-
152
- // Headers for SSE connection
153
- transportOptions.eventSourceInit = {
154
- fetch: buildEventSourceFetch(customHeaders),
155
- };
156
- } else {
157
- transportOptions.eventSourceInit = {
158
- fetch: buildEventSourceFetch(),
159
- };
160
196
  }
161
197
 
162
- const transport = new SSEClientTransport(new URL(sseUrl), transportOptions);
198
+ logger.trace('[gradio] connecting streamable client', {
199
+ mcpUrl,
200
+ hasToken: Boolean(hfToken),
201
+ skipInitialize,
202
+ });
203
+ const transport = new StreamableHTTPClientTransport(new URL(mcpUrl), transportOptions);
204
+ let isClosing = false;
205
+ transport.onmessage = (message) => {
206
+ const messageInfo =
207
+ message && typeof message === 'object'
208
+ ? {
209
+ hasId: 'id' in message,
210
+ id: (message as { id?: unknown }).id ?? null,
211
+ method: 'method' in message ? (message as { method?: unknown }).method : null,
212
+ isResult: 'result' in message,
213
+ isError: 'error' in message,
214
+ }
215
+ : { messageType: typeof message };
216
+ logger.trace('[gradio] transport message', messageInfo);
217
+ };
218
+ transport.onerror = (error) => {
219
+ if (isClosing && error instanceof Error && error.message.includes('AbortError')) {
220
+ logger.trace('[gradio] transport aborted after close', { message: error.message });
221
+ return;
222
+ }
223
+ logger.trace('[gradio] transport error', { error });
224
+ };
225
+ transport.onclose = () => {
226
+ logger.trace('[gradio] transport closed');
227
+ };
228
+ let connectCompleted = false;
229
+ const connectWatchdog = setTimeout(() => {
230
+ if (!connectCompleted) {
231
+ logger.trace('[gradio] connect still pending', { mcpUrl });
232
+ }
233
+ }, 15000);
163
234
  await remoteClient.connect(transport);
235
+ connectCompleted = true;
236
+ clearTimeout(connectWatchdog);
237
+ logger.trace('[gradio] connected streamable client', { mcpUrl });
164
238
 
165
239
  try {
166
240
  // Check if the client is requesting progress notifications
167
241
  const progressToken = extra?._meta?.progressToken;
242
+ logger.trace('[gradio] progress setup', {
243
+ hasExtra: Boolean(extra),
244
+ progressToken: progressToken ?? null,
245
+ hasSignal: Boolean(extra?.signal),
246
+ });
168
247
 
169
248
  // Track whether we've seen a transport closure to avoid noisy retries
170
249
  let progressRelayDisabled = false;
@@ -173,9 +252,16 @@ export async function callGradioToolWithHeaders(
173
252
  if (!extra || progressRelayDisabled) return;
174
253
  if (extra.signal?.aborted) {
175
254
  progressRelayDisabled = true;
255
+ logger.trace('[gradio] progress relay aborted', {
256
+ progressToken: progressToken ?? null,
257
+ });
176
258
  return;
177
259
  }
178
260
  try {
261
+ logger.trace('[gradio] relaying progress', {
262
+ progressToken: progressToken ?? null,
263
+ progress,
264
+ });
179
265
  const params: {
180
266
  progressToken: number;
181
267
  progress: number;
@@ -198,6 +284,9 @@ export async function callGradioToolWithHeaders(
198
284
  } catch {
199
285
  // The underlying transport has likely closed (e.g., client disconnected); disable further relays.
200
286
  progressRelayDisabled = true;
287
+ logger.trace('[gradio] progress relay failed', {
288
+ progressToken: progressToken ?? null,
289
+ });
201
290
  options.onProgressRelayFailure?.();
202
291
  }
203
292
  };
@@ -207,11 +296,21 @@ export async function callGradioToolWithHeaders(
207
296
  if (progressToken !== undefined && extra) {
208
297
  // Fire-and-forget; best-effort relay
209
298
  requestOptions.onprogress = (progress) => {
299
+ logger.trace('[gradio] upstream progress event', {
300
+ progressToken: progressToken ?? null,
301
+ progress,
302
+ });
210
303
  void sendProgressNotification(progress);
211
304
  };
212
305
  requestOptions.resetTimeoutOnProgress = true;
306
+ } else {
307
+ logger.trace('[gradio] progress relay disabled', {
308
+ progressToken: progressToken ?? null,
309
+ hasExtra: Boolean(extra),
310
+ });
213
311
  }
214
312
 
313
+ logger.trace('[gradio] sending tool request', { toolName, hasProgressToken: progressToken !== undefined });
215
314
  const result = await remoteClient.request(
216
315
  {
217
316
  method: 'tools/call',
@@ -224,12 +323,14 @@ export async function callGradioToolWithHeaders(
224
323
  CallToolResultSchema,
225
324
  requestOptions
226
325
  );
326
+ logger.trace('[gradio] tool request completed', { toolName, isError: result.isError });
227
327
 
228
328
  const proxiedReplica = capturedHeaders['x-proxied-replica'];
229
329
  const rewritten = rewriteReplicaUrlsInResult(result, proxiedReplica);
230
330
 
231
331
  return { result: rewritten, capturedHeaders };
232
332
  } finally {
333
+ isClosing = true;
233
334
  await remoteClient.close();
234
335
  }
235
336
  }
@@ -1,8 +1,8 @@
1
1
  import { describe, it, expect, vi, beforeAll } from 'vitest';
2
2
 
3
- // Stub out the SSE transport to simulate progress + response without network.
4
- vi.mock('@modelcontextprotocol/sdk/client/sse.js', () => {
5
- class FakeSSEClientTransport {
3
+ // Stub out the Streamable HTTP transport to simulate progress + response without network.
4
+ vi.mock('@modelcontextprotocol/sdk/client/streamableHttp.js', () => {
5
+ class FakeStreamableHTTPClientTransport {
6
6
  onmessage?: (msg: unknown) => void;
7
7
  onclose?: () => void;
8
8
  onerror?: (err: unknown) => void;
@@ -41,7 +41,7 @@ vi.mock('@modelcontextprotocol/sdk/client/sse.js', () => {
41
41
  }
42
42
  }
43
43
 
44
- return { SSEClientTransport: FakeSSEClientTransport };
44
+ return { StreamableHTTPClientTransport: FakeStreamableHTTPClientTransport };
45
45
  });
46
46
 
47
47
  let callGradioToolWithHeaders: typeof import('../src/space/utils/gradio-caller.js').callGradioToolWithHeaders;
@@ -63,7 +63,7 @@ describe('callGradioToolWithHeaders progress relay', () => {
63
63
  };
64
64
 
65
65
  const { result } = await callGradioToolWithHeaders(
66
- 'http://fake-sse.local/gradio_api/mcp/sse',
66
+ 'http://fake-mcp.local/gradio_api/mcp/',
67
67
  'tools/call',
68
68
  {},
69
69
  undefined,