@nanogpt/mcp 1.0.0
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.
- package/dist/activeRequests.d.ts +26 -0
- package/dist/activeRequests.d.ts.map +1 -0
- package/dist/activeRequests.js +39 -0
- package/dist/activeRequests.js.map +1 -0
- package/dist/config.d.ts +35 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +136 -0
- package/dist/config.js.map +1 -0
- package/dist/httpClient.d.ts +36 -0
- package/dist/httpClient.d.ts.map +1 -0
- package/dist/httpClient.js +211 -0
- package/dist/httpClient.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +168 -0
- package/dist/index.js.map +1 -0
- package/dist/resources.d.ts +68 -0
- package/dist/resources.d.ts.map +1 -0
- package/dist/resources.js +198 -0
- package/dist/resources.js.map +1 -0
- package/dist/toolUtils.d.ts +115 -0
- package/dist/toolUtils.d.ts.map +1 -0
- package/dist/toolUtils.js +369 -0
- package/dist/toolUtils.js.map +1 -0
- package/dist/tools/balance.d.ts +48 -0
- package/dist/tools/balance.d.ts.map +1 -0
- package/dist/tools/balance.js +78 -0
- package/dist/tools/balance.js.map +1 -0
- package/dist/tools/chat.d.ts +89 -0
- package/dist/tools/chat.d.ts.map +1 -0
- package/dist/tools/chat.js +125 -0
- package/dist/tools/chat.js.map +1 -0
- package/dist/tools/imageGenerate.d.ts +116 -0
- package/dist/tools/imageGenerate.d.ts.map +1 -0
- package/dist/tools/imageGenerate.js +220 -0
- package/dist/tools/imageGenerate.js.map +1 -0
- package/dist/tools/index.d.ts +11 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +11 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/listModels.d.ts +149 -0
- package/dist/tools/listModels.d.ts.map +1 -0
- package/dist/tools/listModels.js +224 -0
- package/dist/tools/listModels.js.map +1 -0
- package/dist/tools/scrapeUrls.d.ts +51 -0
- package/dist/tools/scrapeUrls.d.ts.map +1 -0
- package/dist/tools/scrapeUrls.js +100 -0
- package/dist/tools/scrapeUrls.js.map +1 -0
- package/dist/tools/webSearch.d.ts +69 -0
- package/dist/tools/webSearch.d.ts.map +1 -0
- package/dist/tools/webSearch.js +120 -0
- package/dist/tools/webSearch.js.map +1 -0
- package/dist/tools/youtubeTranscribe.d.ts +45 -0
- package/dist/tools/youtubeTranscribe.d.ts.map +1 -0
- package/dist/tools/youtubeTranscribe.js +88 -0
- package/dist/tools/youtubeTranscribe.js.map +1 -0
- package/package.json +48 -0
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Model listing tools
|
|
3
|
+
*
|
|
4
|
+
* - nanogpt_list_text_models
|
|
5
|
+
* - nanogpt_list_image_models
|
|
6
|
+
* - nanogpt_list_audio_models
|
|
7
|
+
* - nanogpt_list_video_models
|
|
8
|
+
*/
|
|
9
|
+
import { z } from 'zod';
|
|
10
|
+
import { requestJson } from '../httpClient.js';
|
|
11
|
+
import { handleToolError, processRawResponse, buildContent, zodToJsonSchema } from '../toolUtils.js';
|
|
12
|
+
// Common input schema for text models (defaults to detailed=false)
|
|
13
|
+
const textModelsInputSchema = z.object({
|
|
14
|
+
detailed: z.boolean().optional(),
|
|
15
|
+
include_raw: z.boolean().optional().default(false),
|
|
16
|
+
});
|
|
17
|
+
// Common input schema for other models (defaults to detailed=true)
|
|
18
|
+
const otherModelsInputSchema = z.object({
|
|
19
|
+
detailed: z.boolean().optional(),
|
|
20
|
+
include_raw: z.boolean().optional().default(false),
|
|
21
|
+
});
|
|
22
|
+
// Audio models has an extra `type` parameter
|
|
23
|
+
const audioModelsInputSchema = z.object({
|
|
24
|
+
detailed: z.boolean().optional(),
|
|
25
|
+
type: z.enum(['tts', 'stt', 'all']).optional(),
|
|
26
|
+
include_raw: z.boolean().optional().default(false),
|
|
27
|
+
});
|
|
28
|
+
// Common output schema
|
|
29
|
+
const outputSchema = z.object({
|
|
30
|
+
data: z.array(z.unknown()),
|
|
31
|
+
raw: z.union([z.record(z.unknown()), z.string()]).optional(),
|
|
32
|
+
});
|
|
33
|
+
// ============================================================================
|
|
34
|
+
// nanogpt_list_text_models
|
|
35
|
+
// ============================================================================
|
|
36
|
+
export const listTextModels = {
|
|
37
|
+
name: 'nanogpt_list_text_models',
|
|
38
|
+
description: 'List available text/chat models with optional pricing details.',
|
|
39
|
+
inputSchema: textModelsInputSchema,
|
|
40
|
+
outputSchema,
|
|
41
|
+
inputJsonSchema: zodToJsonSchema(textModelsInputSchema),
|
|
42
|
+
outputJsonSchema: zodToJsonSchema(outputSchema),
|
|
43
|
+
annotations: {
|
|
44
|
+
readOnlyHint: true,
|
|
45
|
+
openWorldHint: false,
|
|
46
|
+
},
|
|
47
|
+
async handler(args) {
|
|
48
|
+
try {
|
|
49
|
+
const input = textModelsInputSchema.parse(args);
|
|
50
|
+
const query = {};
|
|
51
|
+
if (input.detailed !== undefined) {
|
|
52
|
+
query.detailed = String(input.detailed);
|
|
53
|
+
}
|
|
54
|
+
const response = await requestJson({
|
|
55
|
+
method: 'GET',
|
|
56
|
+
path: '/api/v1/models',
|
|
57
|
+
query: Object.keys(query).length > 0 ? query : undefined,
|
|
58
|
+
});
|
|
59
|
+
const data = response.json;
|
|
60
|
+
const models = data.data || [];
|
|
61
|
+
const output = {
|
|
62
|
+
data: models,
|
|
63
|
+
};
|
|
64
|
+
const { raw, resourceLink } = processRawResponse({ status: response.status, headers: response.headers, body: data }, input.include_raw);
|
|
65
|
+
if (raw !== undefined) {
|
|
66
|
+
output.raw = raw;
|
|
67
|
+
}
|
|
68
|
+
const displayText = `Found ${models.length} text model(s)`;
|
|
69
|
+
return {
|
|
70
|
+
content: buildContent(displayText, resourceLink),
|
|
71
|
+
structuredContent: output,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
catch (err) {
|
|
75
|
+
return handleToolError(err);
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
};
|
|
79
|
+
// ============================================================================
|
|
80
|
+
// nanogpt_list_image_models
|
|
81
|
+
// ============================================================================
|
|
82
|
+
export const listImageModels = {
|
|
83
|
+
name: 'nanogpt_list_image_models',
|
|
84
|
+
description: 'List available image generation models with optional pricing details.',
|
|
85
|
+
inputSchema: otherModelsInputSchema,
|
|
86
|
+
outputSchema,
|
|
87
|
+
inputJsonSchema: zodToJsonSchema(otherModelsInputSchema),
|
|
88
|
+
outputJsonSchema: zodToJsonSchema(outputSchema),
|
|
89
|
+
annotations: {
|
|
90
|
+
readOnlyHint: true,
|
|
91
|
+
openWorldHint: false,
|
|
92
|
+
},
|
|
93
|
+
async handler(args) {
|
|
94
|
+
try {
|
|
95
|
+
const input = otherModelsInputSchema.parse(args);
|
|
96
|
+
const query = {};
|
|
97
|
+
// Image models default to detailed=true on the server
|
|
98
|
+
if (input.detailed !== undefined) {
|
|
99
|
+
query.detailed = String(input.detailed);
|
|
100
|
+
}
|
|
101
|
+
const response = await requestJson({
|
|
102
|
+
method: 'GET',
|
|
103
|
+
path: '/api/v1/image-models',
|
|
104
|
+
query: Object.keys(query).length > 0 ? query : undefined,
|
|
105
|
+
});
|
|
106
|
+
const data = response.json;
|
|
107
|
+
const models = data.data || [];
|
|
108
|
+
const output = {
|
|
109
|
+
data: models,
|
|
110
|
+
};
|
|
111
|
+
const { raw, resourceLink } = processRawResponse({ status: response.status, headers: response.headers, body: data }, input.include_raw);
|
|
112
|
+
if (raw !== undefined) {
|
|
113
|
+
output.raw = raw;
|
|
114
|
+
}
|
|
115
|
+
const displayText = `Found ${models.length} image model(s)`;
|
|
116
|
+
return {
|
|
117
|
+
content: buildContent(displayText, resourceLink),
|
|
118
|
+
structuredContent: output,
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
catch (err) {
|
|
122
|
+
return handleToolError(err);
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
};
|
|
126
|
+
// ============================================================================
|
|
127
|
+
// nanogpt_list_audio_models
|
|
128
|
+
// ============================================================================
|
|
129
|
+
export const listAudioModels = {
|
|
130
|
+
name: 'nanogpt_list_audio_models',
|
|
131
|
+
description: 'List available audio models (TTS and STT) with optional pricing details.',
|
|
132
|
+
inputSchema: audioModelsInputSchema,
|
|
133
|
+
outputSchema,
|
|
134
|
+
inputJsonSchema: zodToJsonSchema(audioModelsInputSchema),
|
|
135
|
+
outputJsonSchema: zodToJsonSchema(outputSchema),
|
|
136
|
+
annotations: {
|
|
137
|
+
readOnlyHint: true,
|
|
138
|
+
openWorldHint: false,
|
|
139
|
+
},
|
|
140
|
+
async handler(args) {
|
|
141
|
+
try {
|
|
142
|
+
const input = audioModelsInputSchema.parse(args);
|
|
143
|
+
const query = {};
|
|
144
|
+
// Audio models default to detailed=true on the server
|
|
145
|
+
if (input.detailed !== undefined) {
|
|
146
|
+
query.detailed = String(input.detailed);
|
|
147
|
+
}
|
|
148
|
+
if (input.type) {
|
|
149
|
+
query.type = input.type;
|
|
150
|
+
}
|
|
151
|
+
const response = await requestJson({
|
|
152
|
+
method: 'GET',
|
|
153
|
+
path: '/api/v1/audio-models',
|
|
154
|
+
query: Object.keys(query).length > 0 ? query : undefined,
|
|
155
|
+
});
|
|
156
|
+
const data = response.json;
|
|
157
|
+
const models = data.data || [];
|
|
158
|
+
const output = {
|
|
159
|
+
data: models,
|
|
160
|
+
};
|
|
161
|
+
const { raw, resourceLink } = processRawResponse({ status: response.status, headers: response.headers, body: data }, input.include_raw);
|
|
162
|
+
if (raw !== undefined) {
|
|
163
|
+
output.raw = raw;
|
|
164
|
+
}
|
|
165
|
+
const typeLabel = input.type === 'tts' ? 'TTS' : input.type === 'stt' ? 'STT' : 'audio';
|
|
166
|
+
const displayText = `Found ${models.length} ${typeLabel} model(s)`;
|
|
167
|
+
return {
|
|
168
|
+
content: buildContent(displayText, resourceLink),
|
|
169
|
+
structuredContent: output,
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
catch (err) {
|
|
173
|
+
return handleToolError(err);
|
|
174
|
+
}
|
|
175
|
+
},
|
|
176
|
+
};
|
|
177
|
+
// ============================================================================
|
|
178
|
+
// nanogpt_list_video_models
|
|
179
|
+
// ============================================================================
|
|
180
|
+
export const listVideoModels = {
|
|
181
|
+
name: 'nanogpt_list_video_models',
|
|
182
|
+
description: 'List available video generation models with optional pricing details.',
|
|
183
|
+
inputSchema: otherModelsInputSchema,
|
|
184
|
+
outputSchema,
|
|
185
|
+
inputJsonSchema: zodToJsonSchema(otherModelsInputSchema),
|
|
186
|
+
outputJsonSchema: zodToJsonSchema(outputSchema),
|
|
187
|
+
annotations: {
|
|
188
|
+
readOnlyHint: true,
|
|
189
|
+
openWorldHint: false,
|
|
190
|
+
},
|
|
191
|
+
async handler(args) {
|
|
192
|
+
try {
|
|
193
|
+
const input = otherModelsInputSchema.parse(args);
|
|
194
|
+
const query = {};
|
|
195
|
+
// Video models default to detailed=true on the server
|
|
196
|
+
if (input.detailed !== undefined) {
|
|
197
|
+
query.detailed = String(input.detailed);
|
|
198
|
+
}
|
|
199
|
+
const response = await requestJson({
|
|
200
|
+
method: 'GET',
|
|
201
|
+
path: '/api/v1/video-models',
|
|
202
|
+
query: Object.keys(query).length > 0 ? query : undefined,
|
|
203
|
+
});
|
|
204
|
+
const data = response.json;
|
|
205
|
+
const models = data.data || [];
|
|
206
|
+
const output = {
|
|
207
|
+
data: models,
|
|
208
|
+
};
|
|
209
|
+
const { raw, resourceLink } = processRawResponse({ status: response.status, headers: response.headers, body: data }, input.include_raw);
|
|
210
|
+
if (raw !== undefined) {
|
|
211
|
+
output.raw = raw;
|
|
212
|
+
}
|
|
213
|
+
const displayText = `Found ${models.length} video model(s)`;
|
|
214
|
+
return {
|
|
215
|
+
content: buildContent(displayText, resourceLink),
|
|
216
|
+
structuredContent: output,
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
catch (err) {
|
|
220
|
+
return handleToolError(err);
|
|
221
|
+
}
|
|
222
|
+
},
|
|
223
|
+
};
|
|
224
|
+
//# sourceMappingURL=listModels.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listModels.js","sourceRoot":"","sources":["../../src/tools/listModels.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAErG,mEAAmE;AACnE,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAChC,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CACnD,CAAC,CAAC;AAEH,mEAAmE;AACnE,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAChC,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CACnD,CAAC,CAAC;AAEH,6CAA6C;AAC7C,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAChC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC9C,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CACnD,CAAC,CAAC;AAEH,uBAAuB;AACvB,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAC1B,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;CAC7D,CAAC,CAAC;AAOH,+EAA+E;AAC/E,2BAA2B;AAC3B,+EAA+E;AAE/E,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,IAAI,EAAE,0BAA0B;IAChC,WAAW,EAAE,gEAAgE;IAC7E,WAAW,EAAE,qBAAqB;IAClC,YAAY;IACZ,eAAe,EAAE,eAAe,CAAC,qBAAqB,CAAC;IACvD,gBAAgB,EAAE,eAAe,CAAC,YAAY,CAAC;IAC/C,WAAW,EAAE;QACX,YAAY,EAAE,IAAI;QAClB,aAAa,EAAE,KAAK;KACrB;IACD,KAAK,CAAC,OAAO,CAAC,IAAa;QACzB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAEhD,MAAM,KAAK,GAA2B,EAAE,CAAC;YACzC,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACjC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC1C,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAiB;gBACjD,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,gBAAgB;gBACtB,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;aACzD,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;YAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;YAE/B,MAAM,MAAM,GAA4B;gBACtC,IAAI,EAAE,MAAM;aACb,CAAC;YAEF,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,kBAAkB,CAC9C,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAClE,KAAK,CAAC,WAAW,CAClB,CAAC;YACF,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACtB,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;YACnB,CAAC;YAED,MAAM,WAAW,GAAG,SAAS,MAAM,CAAC,MAAM,gBAAgB,CAAC;YAE3D,OAAO;gBACL,OAAO,EAAE,YAAY,CAAC,WAAW,EAAE,YAAY,CAAC;gBAChD,iBAAiB,EAAE,MAAM;aAC1B,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;CACF,CAAC;AAEF,+EAA+E;AAC/E,4BAA4B;AAC5B,+EAA+E;AAE/E,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,IAAI,EAAE,2BAA2B;IACjC,WAAW,EAAE,uEAAuE;IACpF,WAAW,EAAE,sBAAsB;IACnC,YAAY;IACZ,eAAe,EAAE,eAAe,CAAC,sBAAsB,CAAC;IACxD,gBAAgB,EAAE,eAAe,CAAC,YAAY,CAAC;IAC/C,WAAW,EAAE;QACX,YAAY,EAAE,IAAI;QAClB,aAAa,EAAE,KAAK;KACrB;IACD,KAAK,CAAC,OAAO,CAAC,IAAa;QACzB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAEjD,MAAM,KAAK,GAA2B,EAAE,CAAC;YACzC,sDAAsD;YACtD,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACjC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC1C,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAiB;gBACjD,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,sBAAsB;gBAC5B,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;aACzD,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;YAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;YAE/B,MAAM,MAAM,GAA4B;gBACtC,IAAI,EAAE,MAAM;aACb,CAAC;YAEF,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,kBAAkB,CAC9C,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAClE,KAAK,CAAC,WAAW,CAClB,CAAC;YACF,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACtB,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;YACnB,CAAC;YAED,MAAM,WAAW,GAAG,SAAS,MAAM,CAAC,MAAM,iBAAiB,CAAC;YAE5D,OAAO;gBACL,OAAO,EAAE,YAAY,CAAC,WAAW,EAAE,YAAY,CAAC;gBAChD,iBAAiB,EAAE,MAAM;aAC1B,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;CACF,CAAC;AAEF,+EAA+E;AAC/E,4BAA4B;AAC5B,+EAA+E;AAE/E,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,IAAI,EAAE,2BAA2B;IACjC,WAAW,EAAE,0EAA0E;IACvF,WAAW,EAAE,sBAAsB;IACnC,YAAY;IACZ,eAAe,EAAE,eAAe,CAAC,sBAAsB,CAAC;IACxD,gBAAgB,EAAE,eAAe,CAAC,YAAY,CAAC;IAC/C,WAAW,EAAE;QACX,YAAY,EAAE,IAAI;QAClB,aAAa,EAAE,KAAK;KACrB;IACD,KAAK,CAAC,OAAO,CAAC,IAAa;QACzB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAEjD,MAAM,KAAK,GAA2B,EAAE,CAAC;YACzC,sDAAsD;YACtD,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACjC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC1C,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACf,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YAC1B,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAiB;gBACjD,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,sBAAsB;gBAC5B,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;aACzD,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;YAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;YAE/B,MAAM,MAAM,GAA4B;gBACtC,IAAI,EAAE,MAAM;aACb,CAAC;YAEF,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,kBAAkB,CAC9C,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAClE,KAAK,CAAC,WAAW,CAClB,CAAC;YACF,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACtB,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;YACnB,CAAC;YAED,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;YACxF,MAAM,WAAW,GAAG,SAAS,MAAM,CAAC,MAAM,IAAI,SAAS,WAAW,CAAC;YAEnE,OAAO;gBACL,OAAO,EAAE,YAAY,CAAC,WAAW,EAAE,YAAY,CAAC;gBAChD,iBAAiB,EAAE,MAAM;aAC1B,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;CACF,CAAC;AAEF,+EAA+E;AAC/E,4BAA4B;AAC5B,+EAA+E;AAE/E,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,IAAI,EAAE,2BAA2B;IACjC,WAAW,EAAE,uEAAuE;IACpF,WAAW,EAAE,sBAAsB;IACnC,YAAY;IACZ,eAAe,EAAE,eAAe,CAAC,sBAAsB,CAAC;IACxD,gBAAgB,EAAE,eAAe,CAAC,YAAY,CAAC;IAC/C,WAAW,EAAE;QACX,YAAY,EAAE,IAAI;QAClB,aAAa,EAAE,KAAK;KACrB;IACD,KAAK,CAAC,OAAO,CAAC,IAAa;QACzB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAEjD,MAAM,KAAK,GAA2B,EAAE,CAAC;YACzC,sDAAsD;YACtD,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACjC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC1C,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAiB;gBACjD,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,sBAAsB;gBAC5B,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;aACzD,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;YAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;YAE/B,MAAM,MAAM,GAA4B;gBACtC,IAAI,EAAE,MAAM;aACb,CAAC;YAEF,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,kBAAkB,CAC9C,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAClE,KAAK,CAAC,WAAW,CAClB,CAAC;YACF,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACtB,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;YACnB,CAAC;YAED,MAAM,WAAW,GAAG,SAAS,MAAM,CAAC,MAAM,iBAAiB,CAAC;YAE5D,OAAO;gBACL,OAAO,EAAE,YAAY,CAAC,WAAW,EAAE,YAAY,CAAC;gBAChD,iBAAiB,EAAE,MAAM;aAC1B,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* nanogpt_scrape_urls tool
|
|
3
|
+
*
|
|
4
|
+
* Scrape content from one or more web URLs.
|
|
5
|
+
*/
|
|
6
|
+
import { z } from 'zod';
|
|
7
|
+
export declare const inputSchema: z.ZodObject<{
|
|
8
|
+
urls: z.ZodArray<z.ZodString, "many">;
|
|
9
|
+
mode: z.ZodOptional<z.ZodEnum<["scrape-page", "conversation"]>>;
|
|
10
|
+
stealthMode: z.ZodOptional<z.ZodBoolean>;
|
|
11
|
+
include_raw: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
12
|
+
}, "strip", z.ZodTypeAny, {
|
|
13
|
+
include_raw: boolean;
|
|
14
|
+
urls: string[];
|
|
15
|
+
mode?: "scrape-page" | "conversation" | undefined;
|
|
16
|
+
stealthMode?: boolean | undefined;
|
|
17
|
+
}, {
|
|
18
|
+
urls: string[];
|
|
19
|
+
include_raw?: boolean | undefined;
|
|
20
|
+
mode?: "scrape-page" | "conversation" | undefined;
|
|
21
|
+
stealthMode?: boolean | undefined;
|
|
22
|
+
}>;
|
|
23
|
+
export declare const outputSchema: z.ZodObject<{
|
|
24
|
+
results: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>, "many">;
|
|
25
|
+
summary: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
26
|
+
raw: z.ZodOptional<z.ZodUnion<[z.ZodRecord<z.ZodString, z.ZodUnknown>, z.ZodString]>>;
|
|
27
|
+
}, "strip", z.ZodTypeAny, {
|
|
28
|
+
results: Record<string, unknown>[];
|
|
29
|
+
summary: Record<string, unknown>;
|
|
30
|
+
raw?: string | Record<string, unknown> | undefined;
|
|
31
|
+
}, {
|
|
32
|
+
results: Record<string, unknown>[];
|
|
33
|
+
summary: Record<string, unknown>;
|
|
34
|
+
raw?: string | Record<string, unknown> | undefined;
|
|
35
|
+
}>;
|
|
36
|
+
export declare const inputJsonSchema: import("../toolUtils.js").JsonSchema;
|
|
37
|
+
export declare const outputJsonSchema: import("../toolUtils.js").JsonSchema;
|
|
38
|
+
export declare const name = "nanogpt_scrape_urls";
|
|
39
|
+
export declare const description = "Scrape content from one or more web URLs. Returns page title, text content, and markdown.";
|
|
40
|
+
export declare const annotations: {
|
|
41
|
+
readOnlyHint: boolean;
|
|
42
|
+
openWorldHint: boolean;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Handler for nanogpt_scrape_urls
|
|
46
|
+
*/
|
|
47
|
+
export declare function handler(args: unknown): Promise<{
|
|
48
|
+
content: import("../toolUtils.js").ContentItem[];
|
|
49
|
+
structuredContent: Record<string, unknown>;
|
|
50
|
+
}>;
|
|
51
|
+
//# sourceMappingURL=scrapeUrls.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scrapeUrls.d.ts","sourceRoot":"","sources":["../../src/tools/scrapeUrls.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;EAKtB,CAAC;AAGH,eAAO,MAAM,YAAY;;;;;;;;;;;;EAIvB,CAAC;AAGH,eAAO,MAAM,eAAe,sCAA+B,CAAC;AAC5D,eAAO,MAAM,gBAAgB,sCAAgC,CAAC;AAG9D,eAAO,MAAM,IAAI,wBAAwB,CAAC;AAC1C,eAAO,MAAM,WAAW,8FACqE,CAAC;AAG9F,eAAO,MAAM,WAAW;;;CAGvB,CAAC;AA2BF;;GAEG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE,OAAO;;;GA0E1C"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* nanogpt_scrape_urls tool
|
|
3
|
+
*
|
|
4
|
+
* Scrape content from one or more web URLs.
|
|
5
|
+
*/
|
|
6
|
+
import { z } from 'zod';
|
|
7
|
+
import { McpError, ErrorCode } from '@modelcontextprotocol/sdk/types.js';
|
|
8
|
+
import { requestJson } from '../httpClient.js';
|
|
9
|
+
import { getConfig } from '../config.js';
|
|
10
|
+
import { handleToolError, processRawResponse, buildContent, zodToJsonSchema } from '../toolUtils.js';
|
|
11
|
+
// Input schema
|
|
12
|
+
export const inputSchema = z.object({
|
|
13
|
+
urls: z.array(z.string()).min(1),
|
|
14
|
+
mode: z.enum(['scrape-page', 'conversation']).optional(),
|
|
15
|
+
stealthMode: z.boolean().optional(),
|
|
16
|
+
include_raw: z.boolean().optional().default(false),
|
|
17
|
+
});
|
|
18
|
+
// Output schema
|
|
19
|
+
export const outputSchema = z.object({
|
|
20
|
+
results: z.array(z.record(z.unknown())),
|
|
21
|
+
summary: z.record(z.unknown()),
|
|
22
|
+
raw: z.union([z.record(z.unknown()), z.string()]).optional(),
|
|
23
|
+
});
|
|
24
|
+
// JSON Schemas for MCP registration
|
|
25
|
+
export const inputJsonSchema = zodToJsonSchema(inputSchema);
|
|
26
|
+
export const outputJsonSchema = zodToJsonSchema(outputSchema);
|
|
27
|
+
// Tool metadata
|
|
28
|
+
export const name = 'nanogpt_scrape_urls';
|
|
29
|
+
export const description = 'Scrape content from one or more web URLs. Returns page title, text content, and markdown.';
|
|
30
|
+
// Annotations
|
|
31
|
+
export const annotations = {
|
|
32
|
+
readOnlyHint: false,
|
|
33
|
+
openWorldHint: true,
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Handler for nanogpt_scrape_urls
|
|
37
|
+
*/
|
|
38
|
+
export async function handler(args) {
|
|
39
|
+
try {
|
|
40
|
+
// Validate input
|
|
41
|
+
const input = inputSchema.parse(args);
|
|
42
|
+
const config = getConfig();
|
|
43
|
+
// Client-side validation for max URLs
|
|
44
|
+
if (input.urls.length > config.scrapeMaxUrls) {
|
|
45
|
+
throw new McpError(ErrorCode.InvalidParams, `Maximum ${config.scrapeMaxUrls} URLs allowed per request. Received ${input.urls.length}.`);
|
|
46
|
+
}
|
|
47
|
+
// Build request body
|
|
48
|
+
const requestBody = {
|
|
49
|
+
urls: input.urls,
|
|
50
|
+
};
|
|
51
|
+
if (input.mode)
|
|
52
|
+
requestBody.mode = input.mode;
|
|
53
|
+
if (input.stealthMode !== undefined)
|
|
54
|
+
requestBody.stealthMode = input.stealthMode;
|
|
55
|
+
// Call NanoGPT API
|
|
56
|
+
const response = await requestJson({
|
|
57
|
+
method: 'POST',
|
|
58
|
+
path: '/api/scrape-urls',
|
|
59
|
+
body: requestBody,
|
|
60
|
+
});
|
|
61
|
+
const data = response.json;
|
|
62
|
+
// Build output
|
|
63
|
+
const output = {
|
|
64
|
+
results: data.results || [],
|
|
65
|
+
summary: data.summary || {},
|
|
66
|
+
};
|
|
67
|
+
// Process raw response
|
|
68
|
+
const { raw, resourceLink } = processRawResponse({ status: response.status, headers: response.headers, body: data }, input.include_raw);
|
|
69
|
+
if (raw !== undefined) {
|
|
70
|
+
output.raw = raw;
|
|
71
|
+
}
|
|
72
|
+
// Build human-readable content
|
|
73
|
+
const results = data.results || [];
|
|
74
|
+
const summary = data.summary || {};
|
|
75
|
+
let displayText = `Scraped ${results.length} URL(s):`;
|
|
76
|
+
for (const result of results) {
|
|
77
|
+
if (result.success) {
|
|
78
|
+
displayText += `\n- ${result.url}: ${result.title || 'No title'}`;
|
|
79
|
+
if (result.content) {
|
|
80
|
+
const preview = result.content.slice(0, 100);
|
|
81
|
+
displayText += ` (${preview}${result.content.length > 100 ? '...' : ''})`;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
displayText += `\n- ${result.url}: FAILED - ${result.error || 'Unknown error'}`;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
if (summary.successful !== undefined && summary.failed !== undefined) {
|
|
89
|
+
displayText += `\n\nSummary: ${summary.successful} succeeded, ${summary.failed} failed`;
|
|
90
|
+
}
|
|
91
|
+
return {
|
|
92
|
+
content: buildContent(displayText, resourceLink),
|
|
93
|
+
structuredContent: output,
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
catch (err) {
|
|
97
|
+
return handleToolError(err);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=scrapeUrls.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scrapeUrls.js","sourceRoot":"","sources":["../../src/tools/scrapeUrls.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* nanogpt_web_search tool
|
|
3
|
+
*
|
|
4
|
+
* Search the web for current information.
|
|
5
|
+
*/
|
|
6
|
+
import { z } from 'zod';
|
|
7
|
+
export declare const inputSchema: z.ZodObject<{
|
|
8
|
+
query: z.ZodString;
|
|
9
|
+
depth: z.ZodOptional<z.ZodEnum<["standard", "deep"]>>;
|
|
10
|
+
outputType: z.ZodOptional<z.ZodEnum<["searchResults", "sourcedAnswer", "structured"]>>;
|
|
11
|
+
structuredOutputSchema: z.ZodOptional<z.ZodString>;
|
|
12
|
+
includeImages: z.ZodOptional<z.ZodBoolean>;
|
|
13
|
+
fromDate: z.ZodOptional<z.ZodString>;
|
|
14
|
+
toDate: z.ZodOptional<z.ZodString>;
|
|
15
|
+
excludeDomains: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
16
|
+
includeDomains: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
17
|
+
include_raw: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
18
|
+
}, "strip", z.ZodTypeAny, {
|
|
19
|
+
query: string;
|
|
20
|
+
include_raw: boolean;
|
|
21
|
+
depth?: "standard" | "deep" | undefined;
|
|
22
|
+
outputType?: "searchResults" | "sourcedAnswer" | "structured" | undefined;
|
|
23
|
+
structuredOutputSchema?: string | undefined;
|
|
24
|
+
includeImages?: boolean | undefined;
|
|
25
|
+
fromDate?: string | undefined;
|
|
26
|
+
toDate?: string | undefined;
|
|
27
|
+
excludeDomains?: string[] | undefined;
|
|
28
|
+
includeDomains?: string[] | undefined;
|
|
29
|
+
}, {
|
|
30
|
+
query: string;
|
|
31
|
+
include_raw?: boolean | undefined;
|
|
32
|
+
depth?: "standard" | "deep" | undefined;
|
|
33
|
+
outputType?: "searchResults" | "sourcedAnswer" | "structured" | undefined;
|
|
34
|
+
structuredOutputSchema?: string | undefined;
|
|
35
|
+
includeImages?: boolean | undefined;
|
|
36
|
+
fromDate?: string | undefined;
|
|
37
|
+
toDate?: string | undefined;
|
|
38
|
+
excludeDomains?: string[] | undefined;
|
|
39
|
+
includeDomains?: string[] | undefined;
|
|
40
|
+
}>;
|
|
41
|
+
export declare const outputSchema: z.ZodObject<{
|
|
42
|
+
data: z.ZodUnknown;
|
|
43
|
+
metadata: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
44
|
+
raw: z.ZodOptional<z.ZodUnion<[z.ZodRecord<z.ZodString, z.ZodUnknown>, z.ZodString]>>;
|
|
45
|
+
}, "strip", z.ZodTypeAny, {
|
|
46
|
+
metadata: Record<string, unknown>;
|
|
47
|
+
raw?: string | Record<string, unknown> | undefined;
|
|
48
|
+
data?: unknown;
|
|
49
|
+
}, {
|
|
50
|
+
metadata: Record<string, unknown>;
|
|
51
|
+
raw?: string | Record<string, unknown> | undefined;
|
|
52
|
+
data?: unknown;
|
|
53
|
+
}>;
|
|
54
|
+
export declare const inputJsonSchema: import("../toolUtils.js").JsonSchema;
|
|
55
|
+
export declare const outputJsonSchema: import("../toolUtils.js").JsonSchema;
|
|
56
|
+
export declare const name = "nanogpt_web_search";
|
|
57
|
+
export declare const description = "Search the web for current information. Returns search results, sourced answers, or structured data.";
|
|
58
|
+
export declare const annotations: {
|
|
59
|
+
readOnlyHint: boolean;
|
|
60
|
+
openWorldHint: boolean;
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* Handler for nanogpt_web_search
|
|
64
|
+
*/
|
|
65
|
+
export declare function handler(args: unknown): Promise<{
|
|
66
|
+
content: import("../toolUtils.js").ContentItem[];
|
|
67
|
+
structuredContent: Record<string, unknown>;
|
|
68
|
+
}>;
|
|
69
|
+
//# sourceMappingURL=webSearch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webSearch.d.ts","sourceRoot":"","sources":["../../src/tools/webSearch.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWtB,CAAC;AAGH,eAAO,MAAM,YAAY;;;;;;;;;;;;EAIvB,CAAC;AAGH,eAAO,MAAM,eAAe,sCAA+B,CAAC;AAC5D,eAAO,MAAM,gBAAgB,sCAAgC,CAAC;AAG9D,eAAO,MAAM,IAAI,uBAAuB,CAAC;AACzC,eAAO,MAAM,WAAW,yGACgF,CAAC;AAGzG,eAAO,MAAM,WAAW;;;CAGvB,CAAC;AAcF;;GAEG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE,OAAO;;;GA6E1C"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* nanogpt_web_search tool
|
|
3
|
+
*
|
|
4
|
+
* Search the web for current information.
|
|
5
|
+
*/
|
|
6
|
+
import { z } from 'zod';
|
|
7
|
+
import { requestJson } from '../httpClient.js';
|
|
8
|
+
import { handleToolError, processRawResponse, buildContent, zodToJsonSchema } from '../toolUtils.js';
|
|
9
|
+
// Input schema
|
|
10
|
+
export const inputSchema = z.object({
|
|
11
|
+
query: z.string().min(1),
|
|
12
|
+
depth: z.enum(['standard', 'deep']).optional(),
|
|
13
|
+
outputType: z.enum(['searchResults', 'sourcedAnswer', 'structured']).optional(),
|
|
14
|
+
structuredOutputSchema: z.string().optional(),
|
|
15
|
+
includeImages: z.boolean().optional(),
|
|
16
|
+
fromDate: z.string().optional(),
|
|
17
|
+
toDate: z.string().optional(),
|
|
18
|
+
excludeDomains: z.array(z.string()).optional(),
|
|
19
|
+
includeDomains: z.array(z.string()).optional(),
|
|
20
|
+
include_raw: z.boolean().optional().default(false),
|
|
21
|
+
});
|
|
22
|
+
// Output schema
|
|
23
|
+
export const outputSchema = z.object({
|
|
24
|
+
data: z.unknown(),
|
|
25
|
+
metadata: z.record(z.unknown()),
|
|
26
|
+
raw: z.union([z.record(z.unknown()), z.string()]).optional(),
|
|
27
|
+
});
|
|
28
|
+
// JSON Schemas for MCP registration
|
|
29
|
+
export const inputJsonSchema = zodToJsonSchema(inputSchema);
|
|
30
|
+
export const outputJsonSchema = zodToJsonSchema(outputSchema);
|
|
31
|
+
// Tool metadata
|
|
32
|
+
export const name = 'nanogpt_web_search';
|
|
33
|
+
export const description = 'Search the web for current information. Returns search results, sourced answers, or structured data.';
|
|
34
|
+
// Annotations
|
|
35
|
+
export const annotations = {
|
|
36
|
+
readOnlyHint: false,
|
|
37
|
+
openWorldHint: true,
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Handler for nanogpt_web_search
|
|
41
|
+
*/
|
|
42
|
+
export async function handler(args) {
|
|
43
|
+
try {
|
|
44
|
+
// Validate input
|
|
45
|
+
const input = inputSchema.parse(args);
|
|
46
|
+
// Build request body
|
|
47
|
+
const requestBody = {
|
|
48
|
+
query: input.query,
|
|
49
|
+
};
|
|
50
|
+
if (input.depth)
|
|
51
|
+
requestBody.depth = input.depth;
|
|
52
|
+
if (input.outputType)
|
|
53
|
+
requestBody.outputType = input.outputType;
|
|
54
|
+
if (input.structuredOutputSchema)
|
|
55
|
+
requestBody.structuredOutputSchema = input.structuredOutputSchema;
|
|
56
|
+
if (input.includeImages !== undefined)
|
|
57
|
+
requestBody.includeImages = input.includeImages;
|
|
58
|
+
if (input.fromDate)
|
|
59
|
+
requestBody.fromDate = input.fromDate;
|
|
60
|
+
if (input.toDate)
|
|
61
|
+
requestBody.toDate = input.toDate;
|
|
62
|
+
if (input.excludeDomains)
|
|
63
|
+
requestBody.excludeDomains = input.excludeDomains;
|
|
64
|
+
if (input.includeDomains)
|
|
65
|
+
requestBody.includeDomains = input.includeDomains;
|
|
66
|
+
// Call NanoGPT API - web search can take up to 5 minutes
|
|
67
|
+
const response = await requestJson({
|
|
68
|
+
method: 'POST',
|
|
69
|
+
path: '/api/web',
|
|
70
|
+
body: requestBody,
|
|
71
|
+
timeoutMs: 300000, // 5 minutes
|
|
72
|
+
});
|
|
73
|
+
const data = response.json;
|
|
74
|
+
// Build output
|
|
75
|
+
const output = {
|
|
76
|
+
data: data.data,
|
|
77
|
+
metadata: data.metadata || {},
|
|
78
|
+
};
|
|
79
|
+
// Process raw response
|
|
80
|
+
const { raw, resourceLink } = processRawResponse({ status: response.status, headers: response.headers, body: data }, input.include_raw);
|
|
81
|
+
if (raw !== undefined) {
|
|
82
|
+
output.raw = raw;
|
|
83
|
+
}
|
|
84
|
+
// Build human-readable content
|
|
85
|
+
let displayText;
|
|
86
|
+
const resultData = data.data;
|
|
87
|
+
if (Array.isArray(resultData)) {
|
|
88
|
+
displayText = `Found ${resultData.length} result(s) for: "${input.query}"`;
|
|
89
|
+
// Add first few results as preview
|
|
90
|
+
const preview = resultData.slice(0, 3);
|
|
91
|
+
for (const item of preview) {
|
|
92
|
+
if (typeof item === 'object' && item !== null) {
|
|
93
|
+
const obj = item;
|
|
94
|
+
if (obj.title) {
|
|
95
|
+
displayText += `\n- ${obj.title}`;
|
|
96
|
+
if (obj.url)
|
|
97
|
+
displayText += ` (${obj.url})`;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
if (resultData.length > 3) {
|
|
102
|
+
displayText += `\n... and ${resultData.length - 3} more`;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
else if (typeof resultData === 'object' && resultData !== null) {
|
|
106
|
+
displayText = `Search completed for: "${input.query}"\n${JSON.stringify(resultData, null, 2).slice(0, 500)}`;
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
displayText = `Search completed for: "${input.query}"`;
|
|
110
|
+
}
|
|
111
|
+
return {
|
|
112
|
+
content: buildContent(displayText, resourceLink),
|
|
113
|
+
structuredContent: output,
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
catch (err) {
|
|
117
|
+
return handleToolError(err);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=webSearch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webSearch.js","sourceRoot":"","sources":["../../src/tools/webSearch.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* nanogpt_youtube_transcribe tool
|
|
3
|
+
*
|
|
4
|
+
* Get transcripts from YouTube videos.
|
|
5
|
+
*/
|
|
6
|
+
import { z } from 'zod';
|
|
7
|
+
export declare const inputSchema: z.ZodObject<{
|
|
8
|
+
urls: z.ZodArray<z.ZodString, "many">;
|
|
9
|
+
include_raw: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
10
|
+
}, "strip", z.ZodTypeAny, {
|
|
11
|
+
include_raw: boolean;
|
|
12
|
+
urls: string[];
|
|
13
|
+
}, {
|
|
14
|
+
urls: string[];
|
|
15
|
+
include_raw?: boolean | undefined;
|
|
16
|
+
}>;
|
|
17
|
+
export declare const outputSchema: z.ZodObject<{
|
|
18
|
+
transcripts: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>, "many">;
|
|
19
|
+
summary: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
20
|
+
raw: z.ZodOptional<z.ZodUnion<[z.ZodRecord<z.ZodString, z.ZodUnknown>, z.ZodString]>>;
|
|
21
|
+
}, "strip", z.ZodTypeAny, {
|
|
22
|
+
summary: Record<string, unknown>;
|
|
23
|
+
transcripts: Record<string, unknown>[];
|
|
24
|
+
raw?: string | Record<string, unknown> | undefined;
|
|
25
|
+
}, {
|
|
26
|
+
summary: Record<string, unknown>;
|
|
27
|
+
transcripts: Record<string, unknown>[];
|
|
28
|
+
raw?: string | Record<string, unknown> | undefined;
|
|
29
|
+
}>;
|
|
30
|
+
export declare const inputJsonSchema: import("../toolUtils.js").JsonSchema;
|
|
31
|
+
export declare const outputJsonSchema: import("../toolUtils.js").JsonSchema;
|
|
32
|
+
export declare const name = "nanogpt_youtube_transcribe";
|
|
33
|
+
export declare const description = "Get transcripts from YouTube videos. Supports up to 10 URLs per request.";
|
|
34
|
+
export declare const annotations: {
|
|
35
|
+
readOnlyHint: boolean;
|
|
36
|
+
openWorldHint: boolean;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Handler for nanogpt_youtube_transcribe
|
|
40
|
+
*/
|
|
41
|
+
export declare function handler(args: unknown): Promise<{
|
|
42
|
+
content: import("../toolUtils.js").ContentItem[];
|
|
43
|
+
structuredContent: Record<string, unknown>;
|
|
44
|
+
}>;
|
|
45
|
+
//# sourceMappingURL=youtubeTranscribe.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"youtubeTranscribe.d.ts","sourceRoot":"","sources":["../../src/tools/youtubeTranscribe.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,WAAW;;;;;;;;;EAGtB,CAAC;AAGH,eAAO,MAAM,YAAY;;;;;;;;;;;;EAIvB,CAAC;AAGH,eAAO,MAAM,eAAe,sCAA+B,CAAC;AAC5D,eAAO,MAAM,gBAAgB,sCAAgC,CAAC;AAG9D,eAAO,MAAM,IAAI,+BAA+B,CAAC;AACjD,eAAO,MAAM,WAAW,6EAA6E,CAAC;AAGtG,eAAO,MAAM,WAAW;;;CAGvB,CAAC;AAqBF;;GAEG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE,OAAO;;;GAgE1C"}
|