@llmindset/hf-mcp 0.2.41 → 0.2.42

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.
Files changed (50) hide show
  1. package/dist/index.d.ts +1 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +1 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/space/commands/invoke.d.ts +6 -0
  6. package/dist/space/commands/invoke.d.ts.map +1 -0
  7. package/dist/space/commands/invoke.js +236 -0
  8. package/dist/space/commands/invoke.js.map +1 -0
  9. package/dist/space/commands/view-parameters.d.ts +3 -0
  10. package/dist/space/commands/view-parameters.d.ts.map +1 -0
  11. package/dist/space/commands/view-parameters.js +144 -0
  12. package/dist/space/commands/view-parameters.js.map +1 -0
  13. package/dist/space/space-tool.d.ts +35 -0
  14. package/dist/space/space-tool.d.ts.map +1 -0
  15. package/dist/space/space-tool.js +198 -0
  16. package/dist/space/space-tool.js.map +1 -0
  17. package/dist/space/types.d.ts +74 -0
  18. package/dist/space/types.d.ts.map +1 -0
  19. package/dist/space/types.js +24 -0
  20. package/dist/space/types.js.map +1 -0
  21. package/dist/space/utils/parameter-formatter.d.ts +5 -0
  22. package/dist/space/utils/parameter-formatter.d.ts.map +1 -0
  23. package/dist/space/utils/parameter-formatter.js +132 -0
  24. package/dist/space/utils/parameter-formatter.js.map +1 -0
  25. package/dist/space/utils/result-formatter.d.ts +4 -0
  26. package/dist/space/utils/result-formatter.d.ts.map +1 -0
  27. package/dist/space/utils/result-formatter.js +146 -0
  28. package/dist/space/utils/result-formatter.js.map +1 -0
  29. package/dist/space/utils/schema-validator.d.ts +9 -0
  30. package/dist/space/utils/schema-validator.d.ts.map +1 -0
  31. package/dist/space/utils/schema-validator.js +145 -0
  32. package/dist/space/utils/schema-validator.js.map +1 -0
  33. package/dist/space-search.d.ts.map +1 -1
  34. package/dist/space-search.js +5 -4
  35. package/dist/space-search.js.map +1 -1
  36. package/dist/tool-ids.d.ts +4 -2
  37. package/dist/tool-ids.d.ts.map +1 -1
  38. package/dist/tool-ids.js +4 -1
  39. package/dist/tool-ids.js.map +1 -1
  40. package/package.json +2 -1
  41. package/src/index.ts +1 -0
  42. package/src/space/commands/invoke.ts +335 -0
  43. package/src/space/commands/view-parameters.ts +204 -0
  44. package/src/space/space-tool.ts +252 -0
  45. package/src/space/types.ts +127 -0
  46. package/src/space/utils/parameter-formatter.ts +200 -0
  47. package/src/space/utils/result-formatter.ts +226 -0
  48. package/src/space/utils/schema-validator.ts +232 -0
  49. package/src/space-search.ts +5 -4
  50. package/src/tool-ids.ts +4 -0
package/dist/index.d.ts CHANGED
@@ -19,6 +19,7 @@ export * from './docs-search/doc-fetch.js';
19
19
  export * from './readme-utils.js';
20
20
  export * from './use-space.js';
21
21
  export * from './jobs/jobs-tool.js';
22
+ export * from './space/space-tool.js';
22
23
  export * from './types/tool-result.js';
23
24
  export * from './tool-ids.js';
24
25
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uCAAuC,CAAC;AACtD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AAGpC,cAAc,wBAAwB,CAAC;AAGvC,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uCAAuC,CAAC;AACtD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,wBAAwB,CAAC;AAGvC,cAAc,eAAe,CAAC"}
package/dist/index.js CHANGED
@@ -19,6 +19,7 @@ export * from './docs-search/doc-fetch.js';
19
19
  export * from './readme-utils.js';
20
20
  export * from './use-space.js';
21
21
  export * from './jobs/jobs-tool.js';
22
+ export * from './space/space-tool.js';
22
23
  export * from './types/tool-result.js';
23
24
  export * from './tool-ids.js';
24
25
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uCAAuC,CAAC;AACtD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AAGpC,cAAc,wBAAwB,CAAC;AAGvC,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uCAAuC,CAAC;AACtD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,wBAAwB,CAAC;AAGvC,cAAc,eAAe,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { ToolResult } from '../../types/tool-result.js';
2
+ import type { InvokeResult } from '../types.js';
3
+ import type { ServerNotification, ServerRequest } from '@modelcontextprotocol/sdk/types.js';
4
+ import type { RequestHandlerExtra } from '@modelcontextprotocol/sdk/shared/protocol.js';
5
+ export declare function invokeSpace(spaceName: string, parametersJson: string, hfToken?: string, extra?: RequestHandlerExtra<ServerRequest, ServerNotification>): Promise<InvokeResult | ToolResult>;
6
+ //# sourceMappingURL=invoke.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invoke.d.ts","sourceRoot":"","sources":["../../../src/space/commands/invoke.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAQ,kBAAkB,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAClG,OAAO,KAAK,EAAE,mBAAmB,EAAkB,MAAM,8CAA8C,CAAC;AAWxG,wBAAsB,WAAW,CAChC,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,mBAAmB,CAAC,aAAa,EAAE,kBAAkB,CAAC,GAC5D,OAAO,CAAC,YAAY,GAAG,UAAU,CAAC,CAoIpC"}
@@ -0,0 +1,236 @@
1
+ import { CallToolResultSchema } from '@modelcontextprotocol/sdk/types.js';
2
+ import { Client } from '@modelcontextprotocol/sdk/client/index.js';
3
+ import { SSEClientTransport } from '@modelcontextprotocol/sdk/client/sse.js';
4
+ import { analyzeSchemaComplexity, validateParameters, applyDefaults } from '../utils/schema-validator.js';
5
+ import { formatComplexSchemaError, formatValidationError } from '../utils/parameter-formatter.js';
6
+ export async function invokeSpace(spaceName, parametersJson, hfToken, extra) {
7
+ try {
8
+ let inputParameters;
9
+ try {
10
+ const parsed = JSON.parse(parametersJson);
11
+ if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed)) {
12
+ throw new Error('Parameters must be a JSON object');
13
+ }
14
+ inputParameters = parsed;
15
+ }
16
+ catch (error) {
17
+ return {
18
+ formatted: `Error: Invalid JSON in parameters.\n\nExpected format: {"param1": "value", "param2": 123}\nNote: Use double quotes, no trailing commas.\n\n${error instanceof Error ? error.message : String(error)}`,
19
+ totalResults: 0,
20
+ resultsShared: 0,
21
+ isError: true,
22
+ };
23
+ }
24
+ const metadata = await fetchSpaceMetadata(spaceName, hfToken);
25
+ const tools = await fetchGradioSchema(metadata.subdomain, metadata.private, hfToken);
26
+ if (tools.length === 0) {
27
+ return {
28
+ formatted: `Error: No tools found for space '${spaceName}'.`,
29
+ totalResults: 0,
30
+ resultsShared: 0,
31
+ isError: true,
32
+ };
33
+ }
34
+ const tool = tools[0];
35
+ const schemaResult = analyzeSchemaComplexity(tool);
36
+ if (!schemaResult.isSimple) {
37
+ return {
38
+ formatted: formatComplexSchemaError(spaceName, schemaResult.reason || 'Unknown reason'),
39
+ totalResults: 0,
40
+ resultsShared: 0,
41
+ isError: true,
42
+ };
43
+ }
44
+ const validation = validateParameters(inputParameters, schemaResult);
45
+ if (!validation.valid) {
46
+ return {
47
+ formatted: formatValidationError(validation.errors, spaceName),
48
+ totalResults: 0,
49
+ resultsShared: 0,
50
+ isError: true,
51
+ };
52
+ }
53
+ const warnings = [];
54
+ const knownParamNames = new Set(schemaResult.parameters.map((p) => p.name));
55
+ for (const key of Object.keys(inputParameters)) {
56
+ if (!knownParamNames.has(key)) {
57
+ warnings.push(`Unknown parameter: "${key}" (will be passed through)`);
58
+ }
59
+ }
60
+ const finalParameters = applyDefaults(inputParameters, schemaResult);
61
+ const sseUrl = `https://${metadata.subdomain}.hf.space/gradio_api/mcp/sse`;
62
+ const client = await createLazyConnection(sseUrl, hfToken);
63
+ try {
64
+ const progressToken = extra?._meta?.progressToken;
65
+ const requestOptions = {};
66
+ if (progressToken !== undefined && extra) {
67
+ requestOptions.onprogress = async (progress) => {
68
+ await extra.sendNotification({
69
+ method: 'notifications/progress',
70
+ params: {
71
+ progressToken,
72
+ progress: progress.progress,
73
+ total: progress.total,
74
+ message: progress.message,
75
+ },
76
+ });
77
+ };
78
+ }
79
+ const result = await client.request({
80
+ method: 'tools/call',
81
+ params: {
82
+ name: tool.name,
83
+ arguments: finalParameters,
84
+ _meta: progressToken !== undefined ? { progressToken } : undefined,
85
+ },
86
+ }, CallToolResultSchema, requestOptions);
87
+ return {
88
+ result,
89
+ warnings,
90
+ totalResults: 1,
91
+ resultsShared: 1,
92
+ isError: result.isError,
93
+ };
94
+ }
95
+ finally {
96
+ await client.close();
97
+ }
98
+ }
99
+ catch (error) {
100
+ const errorMessage = error instanceof Error ? error.message : String(error);
101
+ return {
102
+ formatted: `Error invoking space '${spaceName}': ${errorMessage}`,
103
+ totalResults: 0,
104
+ resultsShared: 0,
105
+ isError: true,
106
+ };
107
+ }
108
+ }
109
+ async function fetchSpaceMetadata(spaceName, hfToken) {
110
+ const url = `https://huggingface.co/api/spaces/${spaceName}`;
111
+ const headers = {};
112
+ if (hfToken) {
113
+ headers['Authorization'] = `Bearer ${hfToken}`;
114
+ }
115
+ const controller = new AbortController();
116
+ const timeoutId = setTimeout(() => controller.abort(), 10000);
117
+ try {
118
+ const response = await fetch(url, {
119
+ headers,
120
+ signal: controller.signal,
121
+ });
122
+ clearTimeout(timeoutId);
123
+ if (!response.ok) {
124
+ throw new Error(`HTTP ${response.status}: ${response.statusText}`);
125
+ }
126
+ const info = (await response.json());
127
+ if (!info.subdomain) {
128
+ throw new Error('Space does not have a subdomain');
129
+ }
130
+ return {
131
+ subdomain: info.subdomain,
132
+ private: info.private || false,
133
+ };
134
+ }
135
+ finally {
136
+ clearTimeout(timeoutId);
137
+ }
138
+ }
139
+ async function fetchGradioSchema(subdomain, isPrivate, hfToken) {
140
+ const schemaUrl = `https://${subdomain}.hf.space/gradio_api/mcp/schema`;
141
+ const headers = {
142
+ 'Content-Type': 'application/json',
143
+ };
144
+ if (isPrivate && hfToken) {
145
+ headers['X-HF-Authorization'] = `Bearer ${hfToken}`;
146
+ }
147
+ const controller = new AbortController();
148
+ const timeoutId = setTimeout(() => controller.abort(), 10000);
149
+ try {
150
+ const response = await fetch(schemaUrl, {
151
+ method: 'GET',
152
+ headers,
153
+ signal: controller.signal,
154
+ });
155
+ clearTimeout(timeoutId);
156
+ if (!response.ok) {
157
+ throw new Error(`HTTP ${response.status}: ${response.statusText}`);
158
+ }
159
+ const schemaResponse = (await response.json());
160
+ return parseSchemaResponse(schemaResponse);
161
+ }
162
+ finally {
163
+ clearTimeout(timeoutId);
164
+ }
165
+ }
166
+ function parseSchemaResponse(schemaResponse) {
167
+ const tools = [];
168
+ if (Array.isArray(schemaResponse)) {
169
+ for (const item of schemaResponse) {
170
+ if (typeof item === 'object' &&
171
+ item !== null &&
172
+ 'name' in item &&
173
+ 'inputSchema' in item) {
174
+ const itemRecord = item;
175
+ if (typeof itemRecord.name === 'string') {
176
+ const tool = itemRecord;
177
+ tools.push({
178
+ name: tool.name,
179
+ description: tool.description || `${tool.name} tool`,
180
+ inputSchema: {
181
+ type: 'object',
182
+ ...tool.inputSchema,
183
+ },
184
+ });
185
+ }
186
+ }
187
+ }
188
+ }
189
+ else if (typeof schemaResponse === 'object' && schemaResponse !== null) {
190
+ for (const [name, toolSchema] of Object.entries(schemaResponse)) {
191
+ if (typeof toolSchema === 'object' && toolSchema !== null) {
192
+ const schema = toolSchema;
193
+ tools.push({
194
+ name,
195
+ description: schema.description || `${name} tool`,
196
+ inputSchema: {
197
+ type: 'object',
198
+ ...toolSchema,
199
+ },
200
+ });
201
+ }
202
+ }
203
+ }
204
+ return tools.filter((tool) => !tool.name.toLowerCase().includes('<lambda'));
205
+ }
206
+ async function createLazyConnection(sseUrl, hfToken) {
207
+ const remoteClient = new Client({
208
+ name: 'hf-mcp-space-client',
209
+ version: '1.0.0',
210
+ }, {
211
+ capabilities: {},
212
+ });
213
+ const transportOptions = {};
214
+ if (hfToken) {
215
+ const headerName = 'X-HF-Authorization';
216
+ const customHeaders = {
217
+ [headerName]: `Bearer ${hfToken}`,
218
+ };
219
+ transportOptions.requestInit = {
220
+ headers: customHeaders,
221
+ };
222
+ transportOptions.eventSourceInit = {
223
+ fetch: (url, init) => {
224
+ const headers = new Headers(init.headers);
225
+ Object.entries(customHeaders).forEach(([key, value]) => {
226
+ headers.set(key, value);
227
+ });
228
+ return fetch(url.toString(), { ...init, headers });
229
+ },
230
+ };
231
+ }
232
+ const transport = new SSEClientTransport(new URL(sseUrl), transportOptions);
233
+ await remoteClient.connect(transport);
234
+ return remoteClient;
235
+ }
236
+ //# sourceMappingURL=invoke.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invoke.js","sourceRoot":"","sources":["../../../src/space/commands/invoke.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ToolResult } from '../../types/tool-result.js';
2
+ export declare function viewParameters(spaceName: string, hfToken?: string): Promise<ToolResult>;
3
+ //# sourceMappingURL=view-parameters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view-parameters.d.ts","sourceRoot":"","sources":["../../../src/space/commands/view-parameters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAQ7D,wBAAsB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CA4D7F"}
@@ -0,0 +1,144 @@
1
+ import { analyzeSchemaComplexity } from '../utils/schema-validator.js';
2
+ import { formatParameters, formatComplexSchemaError } from '../utils/parameter-formatter.js';
3
+ export async function viewParameters(spaceName, hfToken) {
4
+ try {
5
+ const metadata = await fetchSpaceMetadata(spaceName, hfToken);
6
+ const tools = await fetchGradioSchema(metadata.subdomain, metadata.private, hfToken);
7
+ if (tools.length === 0) {
8
+ return {
9
+ formatted: `Error: No tools found for space '${spaceName}'.`,
10
+ totalResults: 0,
11
+ resultsShared: 0,
12
+ isError: true,
13
+ };
14
+ }
15
+ const tool = tools[0];
16
+ const schemaResult = analyzeSchemaComplexity(tool);
17
+ if (!schemaResult.isSimple) {
18
+ return {
19
+ formatted: formatComplexSchemaError(spaceName, schemaResult.reason || 'Unknown reason'),
20
+ totalResults: 0,
21
+ resultsShared: 0,
22
+ isError: true,
23
+ };
24
+ }
25
+ const formatted = formatParameters(schemaResult, spaceName);
26
+ return {
27
+ formatted,
28
+ totalResults: schemaResult.parameters.length,
29
+ resultsShared: schemaResult.parameters.length,
30
+ };
31
+ }
32
+ catch (error) {
33
+ const errorMessage = error instanceof Error ? error.message : String(error);
34
+ const is404 = errorMessage.includes('404') || errorMessage.toLowerCase().includes('not found');
35
+ let formattedError = `Error fetching parameters for space '${spaceName}': ${errorMessage}`;
36
+ if (is404) {
37
+ formattedError += '\n\nNote: The space MUST be an MCP enabled space. Use the `space_search` tool to find MCP enabled spaces.';
38
+ }
39
+ return {
40
+ formatted: formattedError,
41
+ totalResults: 0,
42
+ resultsShared: 0,
43
+ isError: true,
44
+ };
45
+ }
46
+ }
47
+ async function fetchSpaceMetadata(spaceName, hfToken) {
48
+ const url = `https://huggingface.co/api/spaces/${spaceName}`;
49
+ const headers = {};
50
+ if (hfToken) {
51
+ headers['Authorization'] = `Bearer ${hfToken}`;
52
+ }
53
+ const controller = new AbortController();
54
+ const timeoutId = setTimeout(() => controller.abort(), 10000);
55
+ try {
56
+ const response = await fetch(url, {
57
+ headers,
58
+ signal: controller.signal,
59
+ });
60
+ clearTimeout(timeoutId);
61
+ if (!response.ok) {
62
+ throw new Error(`HTTP ${response.status}: ${response.statusText}`);
63
+ }
64
+ const info = (await response.json());
65
+ if (!info.subdomain) {
66
+ throw new Error('Space does not have a subdomain');
67
+ }
68
+ return {
69
+ subdomain: info.subdomain,
70
+ private: info.private || false,
71
+ };
72
+ }
73
+ finally {
74
+ clearTimeout(timeoutId);
75
+ }
76
+ }
77
+ async function fetchGradioSchema(subdomain, isPrivate, hfToken) {
78
+ const schemaUrl = `https://${subdomain}.hf.space/gradio_api/mcp/schema`;
79
+ const headers = {
80
+ 'Content-Type': 'application/json',
81
+ };
82
+ if (isPrivate && hfToken) {
83
+ headers['X-HF-Authorization'] = `Bearer ${hfToken}`;
84
+ }
85
+ const controller = new AbortController();
86
+ const timeoutId = setTimeout(() => controller.abort(), 10000);
87
+ try {
88
+ const response = await fetch(schemaUrl, {
89
+ method: 'GET',
90
+ headers,
91
+ signal: controller.signal,
92
+ });
93
+ clearTimeout(timeoutId);
94
+ if (!response.ok) {
95
+ throw new Error(`HTTP ${response.status}: ${response.statusText}`);
96
+ }
97
+ const schemaResponse = (await response.json());
98
+ return parseSchemaResponse(schemaResponse);
99
+ }
100
+ finally {
101
+ clearTimeout(timeoutId);
102
+ }
103
+ }
104
+ function parseSchemaResponse(schemaResponse) {
105
+ const tools = [];
106
+ if (Array.isArray(schemaResponse)) {
107
+ for (const item of schemaResponse) {
108
+ if (typeof item === 'object' &&
109
+ item !== null &&
110
+ 'name' in item &&
111
+ 'inputSchema' in item) {
112
+ const itemRecord = item;
113
+ if (typeof itemRecord.name === 'string') {
114
+ const tool = itemRecord;
115
+ tools.push({
116
+ name: tool.name,
117
+ description: tool.description || `${tool.name} tool`,
118
+ inputSchema: {
119
+ type: 'object',
120
+ ...tool.inputSchema,
121
+ },
122
+ });
123
+ }
124
+ }
125
+ }
126
+ }
127
+ else if (typeof schemaResponse === 'object' && schemaResponse !== null) {
128
+ for (const [name, toolSchema] of Object.entries(schemaResponse)) {
129
+ if (typeof toolSchema === 'object' && toolSchema !== null) {
130
+ const schema = toolSchema;
131
+ tools.push({
132
+ name,
133
+ description: schema.description || `${name} tool`,
134
+ inputSchema: {
135
+ type: 'object',
136
+ ...toolSchema,
137
+ },
138
+ });
139
+ }
140
+ }
141
+ }
142
+ return tools.filter((tool) => !tool.name.toLowerCase().includes('<lambda'));
143
+ }
144
+ //# sourceMappingURL=view-parameters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view-parameters.js","sourceRoot":"","sources":["../../../src/space/commands/view-parameters.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import type { ToolResult } from '../types/tool-result.js';
2
+ import type { ServerNotification, ServerRequest } from '@modelcontextprotocol/sdk/types.js';
3
+ import type { RequestHandlerExtra } from '@modelcontextprotocol/sdk/shared/protocol.js';
4
+ import { type SpaceArgs, type InvokeResult } from './types.js';
5
+ export * from './types.js';
6
+ export declare const DYNAMIC_SPACE_TOOL_CONFIG: {
7
+ readonly name: "dynamic_space";
8
+ readonly description: string;
9
+ readonly schema: import("zod").ZodObject<{
10
+ operation: import("zod").ZodOptional<import("zod").ZodEnum<["view_parameters", "invoke"]>>;
11
+ space_name: import("zod").ZodOptional<import("zod").ZodString>;
12
+ parameters: import("zod").ZodOptional<import("zod").ZodString>;
13
+ }, "strip", import("zod").ZodTypeAny, {
14
+ parameters?: string | undefined;
15
+ operation?: "view_parameters" | "invoke" | undefined;
16
+ space_name?: string | undefined;
17
+ }, {
18
+ parameters?: string | undefined;
19
+ operation?: "view_parameters" | "invoke" | undefined;
20
+ space_name?: string | undefined;
21
+ }>;
22
+ readonly annotations: {
23
+ readonly title: "Gradio Space Interaction";
24
+ readonly readOnlyHint: false;
25
+ readonly openWorldHint: true;
26
+ };
27
+ };
28
+ export declare class SpaceTool {
29
+ private hfToken?;
30
+ constructor(hfToken?: string);
31
+ execute(params: SpaceArgs, extra?: RequestHandlerExtra<ServerRequest, ServerNotification>): Promise<InvokeResult | ToolResult>;
32
+ private handleViewParameters;
33
+ private handleInvoke;
34
+ }
35
+ //# sourceMappingURL=space-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"space-tool.d.ts","sourceRoot":"","sources":["../../src/space/space-tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAC5F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AACxF,OAAO,EAAwD,KAAK,SAAS,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAKrH,cAAc,YAAY,CAAC;AA2E3B,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;CAY5B,CAAC;AAKX,qBAAa,SAAS;IACrB,OAAO,CAAC,OAAO,CAAC,CAAS;gBAEb,OAAO,CAAC,EAAE,MAAM;IAStB,OAAO,CACZ,MAAM,EAAE,SAAS,EACjB,KAAK,CAAC,EAAE,mBAAmB,CAAC,aAAa,EAAE,kBAAkB,CAAC,GAC5D,OAAO,CAAC,YAAY,GAAG,UAAU,CAAC;YAyDvB,oBAAoB;YAyBpB,YAAY;CA+C1B"}