@j0hanz/fetch-url-mcp 1.2.0 → 1.3.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/cache.d.ts +9 -3
- package/dist/cache.d.ts.map +1 -0
- package/dist/cache.js +44 -110
- package/dist/cache.js.map +1 -0
- package/dist/cli.d.ts +1 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +9 -4
- package/dist/cli.js.map +1 -0
- package/dist/config.d.ts +2 -3
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +18 -25
- package/dist/config.js.map +1 -0
- package/dist/crypto.d.ts +1 -0
- package/dist/crypto.d.ts.map +1 -0
- package/dist/crypto.js +1 -0
- package/dist/crypto.js.map +1 -0
- package/dist/dom-noise-removal.d.ts +2 -1
- package/dist/dom-noise-removal.d.ts.map +1 -0
- package/dist/dom-noise-removal.js +8 -4
- package/dist/dom-noise-removal.js.map +1 -0
- package/dist/download.d.ts +4 -0
- package/dist/download.d.ts.map +1 -0
- package/dist/download.js +106 -0
- package/dist/download.js.map +1 -0
- package/dist/errors.d.ts +1 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +1 -0
- package/dist/errors.js.map +1 -0
- package/dist/examples/mcp-fetch-url-client.js +19 -3
- package/dist/examples/mcp-fetch-url-client.js.map +1 -1
- package/dist/fetch-content.d.ts +1 -0
- package/dist/fetch-content.d.ts.map +1 -0
- package/dist/fetch-content.js +14 -14
- package/dist/fetch-content.js.map +1 -0
- package/dist/fetch-stream.d.ts +1 -0
- package/dist/fetch-stream.d.ts.map +1 -0
- package/dist/fetch-stream.js +6 -3
- package/dist/fetch-stream.js.map +1 -0
- package/dist/fetch.d.ts +1 -0
- package/dist/fetch.d.ts.map +1 -0
- package/dist/fetch.js +120 -51
- package/dist/fetch.js.map +1 -0
- package/dist/host-normalization.d.ts +1 -0
- package/dist/host-normalization.d.ts.map +1 -0
- package/dist/host-normalization.js +19 -6
- package/dist/host-normalization.js.map +1 -0
- package/dist/http/auth.d.ts +35 -0
- package/dist/http/auth.d.ts.map +1 -0
- package/dist/http/auth.js +283 -0
- package/dist/http/auth.js.map +1 -0
- package/dist/http/health.d.ts +7 -0
- package/dist/http/health.d.ts.map +1 -0
- package/dist/http/health.js +166 -0
- package/dist/http/health.js.map +1 -0
- package/dist/http/helpers.d.ts +58 -0
- package/dist/http/helpers.d.ts.map +1 -0
- package/dist/http/helpers.js +372 -0
- package/dist/http/helpers.js.map +1 -0
- package/dist/{http-native.d.ts → http/native.d.ts} +1 -0
- package/dist/http/native.d.ts.map +1 -0
- package/dist/http/native.js +529 -0
- package/dist/http/native.js.map +1 -0
- package/dist/http/rate-limit.d.ts +13 -0
- package/dist/http/rate-limit.d.ts.map +1 -0
- package/dist/http/rate-limit.js +81 -0
- package/dist/http/rate-limit.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -0
- package/dist/instructions.d.ts +2 -0
- package/dist/instructions.d.ts.map +1 -0
- package/dist/instructions.js +108 -0
- package/dist/instructions.js.map +1 -0
- package/dist/ip-blocklist.d.ts +1 -0
- package/dist/ip-blocklist.d.ts.map +1 -0
- package/dist/ip-blocklist.js +2 -0
- package/dist/ip-blocklist.js.map +1 -0
- package/dist/json.d.ts +2 -1
- package/dist/json.d.ts.map +1 -0
- package/dist/json.js +19 -6
- package/dist/json.js.map +1 -0
- package/dist/language-detection.d.ts +1 -0
- package/dist/language-detection.d.ts.map +1 -0
- package/dist/language-detection.js +1 -0
- package/dist/language-detection.js.map +1 -0
- package/dist/markdown-cleanup.d.ts +2 -1
- package/dist/markdown-cleanup.d.ts.map +1 -0
- package/dist/markdown-cleanup.js +51 -52
- package/dist/markdown-cleanup.js.map +1 -0
- package/dist/mcp-validator.d.ts +1 -0
- package/dist/mcp-validator.d.ts.map +1 -0
- package/dist/mcp-validator.js +16 -8
- package/dist/mcp-validator.js.map +1 -0
- package/dist/mcp.d.ts +2 -2
- package/dist/mcp.d.ts.map +1 -0
- package/dist/mcp.js +17 -333
- package/dist/mcp.js.map +1 -0
- package/dist/observability.d.ts +2 -0
- package/dist/observability.d.ts.map +1 -0
- package/dist/observability.js +30 -5
- package/dist/observability.js.map +1 -0
- package/dist/prompts.d.ts +1 -0
- package/dist/prompts.d.ts.map +1 -0
- package/dist/prompts.js +15 -3
- package/dist/prompts.js.map +1 -0
- package/dist/resources.d.ts +1 -0
- package/dist/resources.d.ts.map +1 -0
- package/dist/resources.js +30 -23
- package/dist/resources.js.map +1 -0
- package/dist/server-tuning.d.ts +1 -0
- package/dist/server-tuning.d.ts.map +1 -0
- package/dist/server-tuning.js +11 -15
- package/dist/server-tuning.js.map +1 -0
- package/dist/server.d.ts +1 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +23 -23
- package/dist/server.js.map +1 -0
- package/dist/session.d.ts +1 -0
- package/dist/session.d.ts.map +1 -0
- package/dist/session.js +55 -28
- package/dist/session.js.map +1 -0
- package/dist/tasks/execution.d.ts +42 -0
- package/dist/tasks/execution.d.ts.map +1 -0
- package/dist/tasks/execution.js +232 -0
- package/dist/tasks/execution.js.map +1 -0
- package/dist/{tasks.d.ts → tasks/manager.d.ts} +6 -0
- package/dist/tasks/manager.d.ts.map +1 -0
- package/dist/{tasks.js → tasks/manager.js} +86 -37
- package/dist/tasks/manager.js.map +1 -0
- package/dist/tasks/owner.d.ts +33 -0
- package/dist/tasks/owner.d.ts.map +1 -0
- package/dist/tasks/owner.js +99 -0
- package/dist/tasks/owner.js.map +1 -0
- package/dist/timer-utils.d.ts +1 -0
- package/dist/timer-utils.d.ts.map +1 -0
- package/dist/timer-utils.js +12 -5
- package/dist/timer-utils.js.map +1 -0
- package/dist/tool-errors.d.ts +12 -0
- package/dist/tool-errors.d.ts.map +1 -0
- package/dist/tool-errors.js +52 -0
- package/dist/tool-errors.js.map +1 -0
- package/dist/tool-pipeline.d.ts +72 -0
- package/dist/tool-pipeline.d.ts.map +1 -0
- package/dist/tool-pipeline.js +407 -0
- package/dist/tool-pipeline.js.map +1 -0
- package/dist/tool-progress.d.ts +32 -0
- package/dist/tool-progress.d.ts.map +1 -0
- package/dist/tool-progress.js +123 -0
- package/dist/tool-progress.js.map +1 -0
- package/dist/tools.d.ts +35 -111
- package/dist/tools.d.ts.map +1 -0
- package/dist/tools.js +93 -566
- package/dist/tools.js.map +1 -0
- package/dist/{transform.d.ts → transform/transform.d.ts} +2 -1
- package/dist/transform/transform.d.ts.map +1 -0
- package/dist/{transform.js → transform/transform.js} +73 -769
- package/dist/transform/transform.js.map +1 -0
- package/dist/{transform-types.d.ts → transform/types.d.ts} +1 -0
- package/dist/transform/types.d.ts.map +1 -0
- package/dist/{transform-types.js → transform/types.js} +1 -0
- package/dist/transform/types.js.map +1 -0
- package/dist/transform/worker-pool.d.ts +93 -0
- package/dist/transform/worker-pool.d.ts.map +1 -0
- package/dist/transform/worker-pool.js +759 -0
- package/dist/transform/worker-pool.js.map +1 -0
- package/dist/transform/workers/transform-child.d.ts +2 -0
- package/dist/transform/workers/transform-child.d.ts.map +1 -0
- package/dist/{workers → transform/workers}/transform-child.js +3 -1
- package/dist/transform/workers/transform-child.js.map +1 -0
- package/dist/transform/workers/transform-worker.d.ts +2 -0
- package/dist/transform/workers/transform-worker.d.ts.map +1 -0
- package/dist/{workers → transform/workers}/transform-worker.js +2 -1
- package/dist/transform/workers/transform-worker.js.map +1 -0
- package/dist/type-guards.d.ts +1 -0
- package/dist/type-guards.d.ts.map +1 -0
- package/dist/type-guards.js +1 -0
- package/dist/type-guards.js.map +1 -0
- package/package.json +6 -7
- package/dist/AGENTS.md +0 -152
- package/dist/http-native.js +0 -1320
- package/dist/instructions.md +0 -113
- package/dist/workers/transform-child.d.ts +0 -1
- package/dist/workers/transform-worker.d.ts +0 -1
package/dist/mcp.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
|
+
import { CallToolRequestSchema, ErrorCode, McpError, } from '@modelcontextprotocol/sdk/types.js';
|
|
1
2
|
import { randomUUID } from 'node:crypto';
|
|
2
3
|
import { z } from 'zod';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { taskManager } from './tasks.js';
|
|
6
|
-
import {
|
|
7
|
-
|
|
4
|
+
import { runWithRequestContext } from './observability.js';
|
|
5
|
+
import { abortTaskExecution, emitTaskStatusNotification, handleToolCallRequest, throwTaskNotFound, toTaskSummary, withRelatedTaskMeta, } from './tasks/execution.js';
|
|
6
|
+
import { taskManager } from './tasks/manager.js';
|
|
7
|
+
import { isServerResult, parseHandlerExtra, resolveTaskOwnerKey, resolveToolCallContext, } from './tasks/owner.js';
|
|
8
|
+
// Re-export public API so existing consumers (tests, other modules) keep working.
|
|
9
|
+
export { cancelTasksForOwner, abortAllTaskExecutions, } from './tasks/execution.js';
|
|
8
10
|
/* -------------------------------------------------------------------------------------------------
|
|
9
11
|
* Tasks API schemas
|
|
10
12
|
* ------------------------------------------------------------------------------------------------- */
|
|
@@ -37,6 +39,9 @@ const TaskResultSchema = z
|
|
|
37
39
|
params: z.object({ taskId: z.string() }).loose(),
|
|
38
40
|
})
|
|
39
41
|
.loose();
|
|
42
|
+
/* -------------------------------------------------------------------------------------------------
|
|
43
|
+
* Tool call interception (tools/call) with task support
|
|
44
|
+
* ------------------------------------------------------------------------------------------------- */
|
|
40
45
|
const MIN_TASK_TTL_MS = 1_000;
|
|
41
46
|
const MAX_TASK_TTL_MS = 86_400_000;
|
|
42
47
|
const ExtendedCallToolRequestSchema = z
|
|
@@ -77,293 +82,6 @@ function parseExtendedCallToolRequest(request) {
|
|
|
77
82
|
return parsed.data;
|
|
78
83
|
throw new McpError(ErrorCode.InvalidParams, 'Invalid tool request');
|
|
79
84
|
}
|
|
80
|
-
function isRecord(value) {
|
|
81
|
-
return isObject(value);
|
|
82
|
-
}
|
|
83
|
-
function normalizeSendNotification(sendNotification) {
|
|
84
|
-
if (typeof sendNotification !== 'function')
|
|
85
|
-
return undefined;
|
|
86
|
-
const notify = sendNotification;
|
|
87
|
-
return async (notification) => {
|
|
88
|
-
await Promise.resolve(notify(notification));
|
|
89
|
-
};
|
|
90
|
-
}
|
|
91
|
-
function parseHandlerExtra(extra) {
|
|
92
|
-
if (!isObject(extra))
|
|
93
|
-
return undefined;
|
|
94
|
-
const parsed = {};
|
|
95
|
-
const { sessionId, authInfo, signal, requestId, sendNotification } = extra;
|
|
96
|
-
if (typeof sessionId === 'string')
|
|
97
|
-
parsed.sessionId = sessionId;
|
|
98
|
-
if (isObject(authInfo)) {
|
|
99
|
-
const { clientId, token } = authInfo;
|
|
100
|
-
const normalized = {};
|
|
101
|
-
if (typeof clientId === 'string')
|
|
102
|
-
normalized.clientId = clientId;
|
|
103
|
-
if (typeof token === 'string')
|
|
104
|
-
normalized.token = token;
|
|
105
|
-
if (normalized.clientId || normalized.token)
|
|
106
|
-
parsed.authInfo = normalized;
|
|
107
|
-
}
|
|
108
|
-
if (signal instanceof AbortSignal)
|
|
109
|
-
parsed.signal = signal;
|
|
110
|
-
if (typeof requestId === 'string' || typeof requestId === 'number') {
|
|
111
|
-
parsed.requestId = requestId;
|
|
112
|
-
}
|
|
113
|
-
const normalizedSendNotification = normalizeSendNotification(sendNotification);
|
|
114
|
-
if (normalizedSendNotification) {
|
|
115
|
-
parsed.sendNotification = normalizedSendNotification;
|
|
116
|
-
}
|
|
117
|
-
return parsed;
|
|
118
|
-
}
|
|
119
|
-
function isServerResult(value) {
|
|
120
|
-
return (isObject(value) && Array.isArray(value.content));
|
|
121
|
-
}
|
|
122
|
-
function tryReadToolStructuredError(value) {
|
|
123
|
-
if (!isObject(value))
|
|
124
|
-
return undefined;
|
|
125
|
-
const record = value;
|
|
126
|
-
if (!isObject(record.structuredContent))
|
|
127
|
-
return undefined;
|
|
128
|
-
const structured = record.structuredContent;
|
|
129
|
-
return typeof structured.error === 'string' ? structured.error : undefined;
|
|
130
|
-
}
|
|
131
|
-
function resolveTaskOwnerKey(extra) {
|
|
132
|
-
if (extra?.sessionId)
|
|
133
|
-
return `session:${extra.sessionId}`;
|
|
134
|
-
if (extra?.authInfo?.clientId)
|
|
135
|
-
return `client:${extra.authInfo.clientId}`;
|
|
136
|
-
if (extra?.authInfo?.token)
|
|
137
|
-
return `token:${extra.authInfo.token}`;
|
|
138
|
-
return 'default';
|
|
139
|
-
}
|
|
140
|
-
function resolveToolCallContext(extra) {
|
|
141
|
-
const context = {
|
|
142
|
-
ownerKey: resolveTaskOwnerKey(extra),
|
|
143
|
-
};
|
|
144
|
-
if (extra?.signal)
|
|
145
|
-
context.signal = extra.signal;
|
|
146
|
-
if (extra?.requestId !== undefined)
|
|
147
|
-
context.requestId = extra.requestId;
|
|
148
|
-
if (extra?.sendNotification)
|
|
149
|
-
context.sendNotification = extra.sendNotification;
|
|
150
|
-
return context;
|
|
151
|
-
}
|
|
152
|
-
function requireFetchUrlArgs(args) {
|
|
153
|
-
const parsed = fetchUrlInputSchema.safeParse(args);
|
|
154
|
-
if (!parsed.success) {
|
|
155
|
-
throw new McpError(ErrorCode.InvalidParams, 'Invalid arguments for fetch-url');
|
|
156
|
-
}
|
|
157
|
-
return parsed.data;
|
|
158
|
-
}
|
|
159
|
-
function throwTaskNotFound() {
|
|
160
|
-
throw new McpError(ErrorCode.InvalidParams, 'Failed to retrieve task: Task not found');
|
|
161
|
-
}
|
|
162
|
-
function requireFetchUrlToolName(name) {
|
|
163
|
-
if (name === FETCH_URL_TOOL_NAME)
|
|
164
|
-
return;
|
|
165
|
-
throw new McpError(ErrorCode.MethodNotFound, `Tool '${name}' does not support task execution`);
|
|
166
|
-
}
|
|
167
|
-
function buildRelatedTaskMeta(taskId, meta) {
|
|
168
|
-
return {
|
|
169
|
-
...(meta ?? {}),
|
|
170
|
-
'io.modelcontextprotocol/related-task': { taskId },
|
|
171
|
-
};
|
|
172
|
-
}
|
|
173
|
-
function buildCreateTaskResult(task) {
|
|
174
|
-
return {
|
|
175
|
-
task,
|
|
176
|
-
_meta: {
|
|
177
|
-
'io.modelcontextprotocol/related-task': {
|
|
178
|
-
taskId: task.taskId,
|
|
179
|
-
status: task.status,
|
|
180
|
-
...(task.statusMessage ? { statusMessage: task.statusMessage } : {}),
|
|
181
|
-
createdAt: task.createdAt,
|
|
182
|
-
lastUpdatedAt: task.lastUpdatedAt,
|
|
183
|
-
ttl: task.ttl,
|
|
184
|
-
pollInterval: task.pollInterval,
|
|
185
|
-
},
|
|
186
|
-
},
|
|
187
|
-
};
|
|
188
|
-
}
|
|
189
|
-
/**
|
|
190
|
-
* Track in-flight task executions so `tasks/cancel` can actually abort work.
|
|
191
|
-
* This is intentionally local to this module (no new files, no global singletons elsewhere).
|
|
192
|
-
*/
|
|
193
|
-
const taskAbortControllers = new Map();
|
|
194
|
-
function attachAbortController(taskId) {
|
|
195
|
-
const existing = taskAbortControllers.get(taskId);
|
|
196
|
-
if (existing) {
|
|
197
|
-
// Defensive: should not happen, but avoid leaking the old controller.
|
|
198
|
-
taskAbortControllers.delete(taskId);
|
|
199
|
-
}
|
|
200
|
-
const controller = new AbortController();
|
|
201
|
-
taskAbortControllers.set(taskId, controller);
|
|
202
|
-
return controller;
|
|
203
|
-
}
|
|
204
|
-
function abortTaskExecution(taskId) {
|
|
205
|
-
const controller = taskAbortControllers.get(taskId);
|
|
206
|
-
if (!controller)
|
|
207
|
-
return;
|
|
208
|
-
controller.abort();
|
|
209
|
-
taskAbortControllers.delete(taskId);
|
|
210
|
-
}
|
|
211
|
-
function clearTaskExecution(taskId) {
|
|
212
|
-
taskAbortControllers.delete(taskId);
|
|
213
|
-
}
|
|
214
|
-
export function cancelTasksForOwner(ownerKey, statusMessage = 'The task was cancelled because its owner session ended.') {
|
|
215
|
-
if (!ownerKey)
|
|
216
|
-
return 0;
|
|
217
|
-
const cancelled = taskManager.cancelTasksByOwner(ownerKey, statusMessage);
|
|
218
|
-
for (const task of cancelled) {
|
|
219
|
-
abortTaskExecution(task.taskId);
|
|
220
|
-
}
|
|
221
|
-
return cancelled.length;
|
|
222
|
-
}
|
|
223
|
-
export function abortAllTaskExecutions() {
|
|
224
|
-
for (const taskId of taskAbortControllers.keys())
|
|
225
|
-
abortTaskExecution(taskId);
|
|
226
|
-
}
|
|
227
|
-
function buildTaskStatusParams(task) {
|
|
228
|
-
return {
|
|
229
|
-
taskId: task.taskId,
|
|
230
|
-
status: task.status,
|
|
231
|
-
...(task.statusMessage ? { statusMessage: task.statusMessage } : {}),
|
|
232
|
-
createdAt: task.createdAt,
|
|
233
|
-
lastUpdatedAt: task.lastUpdatedAt,
|
|
234
|
-
ttl: task.ttl,
|
|
235
|
-
pollInterval: task.pollInterval,
|
|
236
|
-
};
|
|
237
|
-
}
|
|
238
|
-
function emitTaskStatusNotification(server, task) {
|
|
239
|
-
if (!server.isConnected())
|
|
240
|
-
return;
|
|
241
|
-
void server.server
|
|
242
|
-
.notification({
|
|
243
|
-
method: 'notifications/tasks/status',
|
|
244
|
-
params: buildTaskStatusParams(task),
|
|
245
|
-
})
|
|
246
|
-
.catch((error) => {
|
|
247
|
-
logWarn('Failed to send task status notification', {
|
|
248
|
-
taskId: task.taskId,
|
|
249
|
-
status: task.status,
|
|
250
|
-
error,
|
|
251
|
-
});
|
|
252
|
-
});
|
|
253
|
-
}
|
|
254
|
-
function updateWorkingTaskStatus(server, taskId, statusMessage) {
|
|
255
|
-
const current = taskManager.getTask(taskId);
|
|
256
|
-
if (current?.status !== 'working')
|
|
257
|
-
return;
|
|
258
|
-
if (current.statusMessage === statusMessage)
|
|
259
|
-
return;
|
|
260
|
-
taskManager.updateTask(taskId, { statusMessage });
|
|
261
|
-
const updated = taskManager.getTask(taskId);
|
|
262
|
-
if (updated)
|
|
263
|
-
emitTaskStatusNotification(server, updated);
|
|
264
|
-
}
|
|
265
|
-
async function runFetchTaskExecution(params) {
|
|
266
|
-
const { server, taskId, args, meta, sendNotification } = params;
|
|
267
|
-
return runWithRequestContext({ requestId: taskId, operationId: taskId }, async () => {
|
|
268
|
-
const controller = attachAbortController(taskId);
|
|
269
|
-
try {
|
|
270
|
-
const relatedMeta = buildRelatedTaskMeta(taskId, meta);
|
|
271
|
-
const result = await fetchUrlToolHandler(args, {
|
|
272
|
-
signal: controller.signal,
|
|
273
|
-
requestId: taskId, // Correlation
|
|
274
|
-
_meta: relatedMeta,
|
|
275
|
-
...(sendNotification ? { sendNotification } : {}),
|
|
276
|
-
onProgress: (_progress, message) => {
|
|
277
|
-
updateWorkingTaskStatus(server, taskId, message);
|
|
278
|
-
},
|
|
279
|
-
});
|
|
280
|
-
const isToolError = isRecord(result) &&
|
|
281
|
-
typeof result['isError'] === 'boolean' &&
|
|
282
|
-
result['isError'];
|
|
283
|
-
taskManager.updateTask(taskId, {
|
|
284
|
-
status: isToolError ? 'failed' : 'completed',
|
|
285
|
-
statusMessage: isToolError
|
|
286
|
-
? (tryReadToolStructuredError(result) ?? 'Tool execution failed')
|
|
287
|
-
: 'Task completed successfully.',
|
|
288
|
-
result,
|
|
289
|
-
});
|
|
290
|
-
const task = taskManager.getTask(taskId);
|
|
291
|
-
if (task)
|
|
292
|
-
emitTaskStatusNotification(server, task);
|
|
293
|
-
}
|
|
294
|
-
catch (error) {
|
|
295
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
296
|
-
const errorPayload = error instanceof McpError
|
|
297
|
-
? {
|
|
298
|
-
code: error.code,
|
|
299
|
-
message: errorMessage,
|
|
300
|
-
data: error.data,
|
|
301
|
-
}
|
|
302
|
-
: {
|
|
303
|
-
code: ErrorCode.InternalError,
|
|
304
|
-
message: errorMessage,
|
|
305
|
-
};
|
|
306
|
-
taskManager.updateTask(taskId, {
|
|
307
|
-
status: 'failed',
|
|
308
|
-
statusMessage: errorMessage,
|
|
309
|
-
error: errorPayload,
|
|
310
|
-
});
|
|
311
|
-
const task = taskManager.getTask(taskId);
|
|
312
|
-
if (task)
|
|
313
|
-
emitTaskStatusNotification(server, task);
|
|
314
|
-
}
|
|
315
|
-
finally {
|
|
316
|
-
clearTaskExecution(taskId);
|
|
317
|
-
}
|
|
318
|
-
});
|
|
319
|
-
}
|
|
320
|
-
function handleTaskToolCall(server, params, context) {
|
|
321
|
-
requireFetchUrlToolName(params.name);
|
|
322
|
-
const validArgs = requireFetchUrlArgs(params.arguments);
|
|
323
|
-
const task = taskManager.createTask(params.task?.ttl !== undefined ? { ttl: params.task.ttl } : undefined, 'Task started', context.ownerKey);
|
|
324
|
-
void runFetchTaskExecution({
|
|
325
|
-
server,
|
|
326
|
-
taskId: task.taskId,
|
|
327
|
-
args: validArgs,
|
|
328
|
-
...(params._meta ? { meta: params._meta } : {}),
|
|
329
|
-
...(context.sendNotification
|
|
330
|
-
? { sendNotification: context.sendNotification }
|
|
331
|
-
: {}),
|
|
332
|
-
});
|
|
333
|
-
return buildCreateTaskResult({
|
|
334
|
-
taskId: task.taskId,
|
|
335
|
-
status: task.status,
|
|
336
|
-
...(task.statusMessage ? { statusMessage: task.statusMessage } : {}),
|
|
337
|
-
createdAt: task.createdAt,
|
|
338
|
-
lastUpdatedAt: task.lastUpdatedAt,
|
|
339
|
-
ttl: task.ttl,
|
|
340
|
-
pollInterval: task.pollInterval,
|
|
341
|
-
});
|
|
342
|
-
}
|
|
343
|
-
async function handleDirectToolCall(params, context) {
|
|
344
|
-
const args = requireFetchUrlArgs(params.arguments);
|
|
345
|
-
const extra = {
|
|
346
|
-
...(context.signal ? { signal: context.signal } : {}),
|
|
347
|
-
...(context.requestId !== undefined
|
|
348
|
-
? { requestId: context.requestId }
|
|
349
|
-
: {}),
|
|
350
|
-
...(context.sendNotification
|
|
351
|
-
? { sendNotification: context.sendNotification }
|
|
352
|
-
: {}),
|
|
353
|
-
...(params._meta ? { _meta: params._meta } : {}),
|
|
354
|
-
};
|
|
355
|
-
return fetchUrlToolHandler(args, extra);
|
|
356
|
-
}
|
|
357
|
-
async function handleToolCallRequest(server, request, context) {
|
|
358
|
-
const { params } = request;
|
|
359
|
-
if (params.task) {
|
|
360
|
-
return handleTaskToolCall(server, params, context);
|
|
361
|
-
}
|
|
362
|
-
if (params.name === FETCH_URL_TOOL_NAME) {
|
|
363
|
-
return handleDirectToolCall(params, context);
|
|
364
|
-
}
|
|
365
|
-
throw new McpError(ErrorCode.MethodNotFound, `Unknown tool: ${params.name}`);
|
|
366
|
-
}
|
|
367
85
|
/* -------------------------------------------------------------------------------------------------
|
|
368
86
|
* Register handlers
|
|
369
87
|
* ------------------------------------------------------------------------------------------------- */
|
|
@@ -391,15 +109,7 @@ export function registerTaskHandlers(server) {
|
|
|
391
109
|
const task = taskManager.getTask(taskId, ownerKey);
|
|
392
110
|
if (!task)
|
|
393
111
|
throwTaskNotFound();
|
|
394
|
-
return Promise.resolve(
|
|
395
|
-
taskId: task.taskId,
|
|
396
|
-
status: task.status,
|
|
397
|
-
statusMessage: task.statusMessage,
|
|
398
|
-
createdAt: task.createdAt,
|
|
399
|
-
lastUpdatedAt: task.lastUpdatedAt,
|
|
400
|
-
ttl: task.ttl,
|
|
401
|
-
pollInterval: task.pollInterval,
|
|
402
|
-
});
|
|
112
|
+
return Promise.resolve(toTaskSummary(task));
|
|
403
113
|
});
|
|
404
114
|
server.server.setRequestHandler(TaskResultSchema, async (request, extra) => {
|
|
405
115
|
const { taskId } = request.params;
|
|
@@ -408,6 +118,7 @@ export function registerTaskHandlers(server) {
|
|
|
408
118
|
const task = await taskManager.waitForTerminalTask(taskId, ownerKey, parsedExtra?.signal);
|
|
409
119
|
if (!task)
|
|
410
120
|
throwTaskNotFound();
|
|
121
|
+
taskManager.shrinkTtlAfterDelivery(taskId);
|
|
411
122
|
if (task.status === 'failed') {
|
|
412
123
|
if (task.error) {
|
|
413
124
|
throw new McpError(task.error.code, task.error.message, task.error.data);
|
|
@@ -422,13 +133,7 @@ export function registerTaskHandlers(server) {
|
|
|
422
133
|
],
|
|
423
134
|
isError: true,
|
|
424
135
|
};
|
|
425
|
-
return Promise.resolve(
|
|
426
|
-
...fallback,
|
|
427
|
-
_meta: {
|
|
428
|
-
...fallback._meta,
|
|
429
|
-
'io.modelcontextprotocol/related-task': { taskId: task.taskId },
|
|
430
|
-
},
|
|
431
|
-
});
|
|
136
|
+
return Promise.resolve(withRelatedTaskMeta(fallback, task.taskId));
|
|
432
137
|
}
|
|
433
138
|
if (task.status === 'cancelled') {
|
|
434
139
|
throw new McpError(ErrorCode.InvalidRequest, 'Task was cancelled');
|
|
@@ -436,13 +141,7 @@ export function registerTaskHandlers(server) {
|
|
|
436
141
|
const result = isServerResult(task.result)
|
|
437
142
|
? task.result
|
|
438
143
|
: { content: [] };
|
|
439
|
-
return Promise.resolve(
|
|
440
|
-
...result,
|
|
441
|
-
_meta: {
|
|
442
|
-
...result._meta,
|
|
443
|
-
'io.modelcontextprotocol/related-task': { taskId: task.taskId },
|
|
444
|
-
},
|
|
445
|
-
});
|
|
144
|
+
return Promise.resolve(withRelatedTaskMeta(result, task.taskId));
|
|
446
145
|
});
|
|
447
146
|
server.server.setRequestHandler(TaskListSchema, async (request, extra) => {
|
|
448
147
|
const parsedExtra = parseHandlerExtra(extra);
|
|
@@ -450,14 +149,7 @@ export function registerTaskHandlers(server) {
|
|
|
450
149
|
const cursor = request.params?.cursor;
|
|
451
150
|
const { tasks, nextCursor } = taskManager.listTasks(cursor === undefined ? { ownerKey } : { ownerKey, cursor });
|
|
452
151
|
return Promise.resolve({
|
|
453
|
-
tasks: tasks.map((
|
|
454
|
-
taskId: t.taskId,
|
|
455
|
-
status: t.status,
|
|
456
|
-
createdAt: t.createdAt,
|
|
457
|
-
lastUpdatedAt: t.lastUpdatedAt,
|
|
458
|
-
ttl: t.ttl,
|
|
459
|
-
pollInterval: t.pollInterval,
|
|
460
|
-
})),
|
|
152
|
+
tasks: tasks.map((task) => toTaskSummary(task)),
|
|
461
153
|
nextCursor,
|
|
462
154
|
});
|
|
463
155
|
});
|
|
@@ -468,17 +160,9 @@ export function registerTaskHandlers(server) {
|
|
|
468
160
|
const task = taskManager.cancelTask(taskId, ownerKey);
|
|
469
161
|
if (!task)
|
|
470
162
|
throwTaskNotFound();
|
|
471
|
-
// Make cancellation actionable: abort any in-flight execution.
|
|
472
163
|
abortTaskExecution(taskId);
|
|
473
164
|
emitTaskStatusNotification(server, task);
|
|
474
|
-
return Promise.resolve(
|
|
475
|
-
taskId: task.taskId,
|
|
476
|
-
status: task.status,
|
|
477
|
-
statusMessage: task.statusMessage,
|
|
478
|
-
createdAt: task.createdAt,
|
|
479
|
-
lastUpdatedAt: task.lastUpdatedAt,
|
|
480
|
-
ttl: task.ttl,
|
|
481
|
-
pollInterval: task.pollInterval,
|
|
482
|
-
});
|
|
165
|
+
return Promise.resolve(toTaskSummary(task));
|
|
483
166
|
});
|
|
484
167
|
}
|
|
168
|
+
//# sourceMappingURL=mcp.js.map
|
package/dist/mcp.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"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"}
|
package/dist/observability.d.ts
CHANGED
|
@@ -17,5 +17,7 @@ export declare function logInfo(message: string, meta?: LogMetadata): void;
|
|
|
17
17
|
export declare function logDebug(message: string, meta?: LogMetadata): void;
|
|
18
18
|
export declare function logWarn(message: string, meta?: LogMetadata): void;
|
|
19
19
|
export declare function logError(message: string, error?: Error | LogMetadata): void;
|
|
20
|
+
export declare function setLogLevel(level: string): void;
|
|
20
21
|
export declare function redactUrl(rawUrl: string): string;
|
|
21
22
|
export {};
|
|
23
|
+
//# sourceMappingURL=observability.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observability.d.ts","sourceRoot":"","sources":["../src/observability.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAQzE,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE3C,UAAU,cAAc;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAaD,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAEpD;AAED,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,SAAS,GAChB,IAAI,CAGN;AAED,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAGlE;AAED,wBAAgB,kCAAkC,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAK1E;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,SAAS,GAChB,MAAM,GAAG,SAAS,CAKpB;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EACrC,OAAO,EAAE,cAAc,EACvB,EAAE,EAAE,MAAM,CAAC,GACV,CAAC,CAEH;AAMD,wBAAgB,YAAY,IAAI,MAAM,GAAG,SAAS,CAEjD;AAMD,wBAAgB,cAAc,IAAI,MAAM,GAAG,SAAS,CAEnD;AA4JD,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,IAAI,CAEjE;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,IAAI,CAElE;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,IAAI,CAEjE;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,WAAW,GAAG,IAAI,CAM3E;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAiB/C;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAWhD"}
|
package/dist/observability.js
CHANGED
|
@@ -108,12 +108,14 @@ function formatLogEntry(level, message, meta) {
|
|
|
108
108
|
}
|
|
109
109
|
return `[${createTimestamp()}] ${level.toUpperCase()}: ${message}${formatMetadata(meta)}`;
|
|
110
110
|
}
|
|
111
|
+
const LEVEL_PRIORITY = {
|
|
112
|
+
debug: 0,
|
|
113
|
+
info: 1,
|
|
114
|
+
warn: 2,
|
|
115
|
+
error: 3,
|
|
116
|
+
};
|
|
111
117
|
function shouldLog(level) {
|
|
112
|
-
|
|
113
|
-
if (level === 'debug')
|
|
114
|
-
return isDebugEnabled();
|
|
115
|
-
// All other levels always log
|
|
116
|
-
return true;
|
|
118
|
+
return LEVEL_PRIORITY[level] >= LEVEL_PRIORITY[config.logging.level];
|
|
117
119
|
}
|
|
118
120
|
function mapToMcpLevel(level) {
|
|
119
121
|
switch (level) {
|
|
@@ -161,10 +163,13 @@ function writeLog(level, message, meta) {
|
|
|
161
163
|
: mcpServer;
|
|
162
164
|
if (!server)
|
|
163
165
|
return;
|
|
166
|
+
if (!server.isConnected())
|
|
167
|
+
return;
|
|
164
168
|
try {
|
|
165
169
|
server.server
|
|
166
170
|
.sendLoggingMessage({
|
|
167
171
|
level: mapToMcpLevel(level),
|
|
172
|
+
logger: 'fetch-url-mcp',
|
|
168
173
|
// Preserve existing behavior: MCP payload includes only message + provided meta (not ALS context meta).
|
|
169
174
|
data: meta ? { message, ...meta } : message,
|
|
170
175
|
}, sessionId)
|
|
@@ -197,6 +202,25 @@ export function logError(message, error) {
|
|
|
197
202
|
: (error ?? {});
|
|
198
203
|
writeLog('error', message, errorMeta);
|
|
199
204
|
}
|
|
205
|
+
export function setLogLevel(level) {
|
|
206
|
+
const normalized = level.toLowerCase();
|
|
207
|
+
// Map MCP logging levels (RFC 5424 subset) to internal levels.
|
|
208
|
+
if (normalized === 'debug') {
|
|
209
|
+
config.logging.level = 'debug';
|
|
210
|
+
}
|
|
211
|
+
else if (normalized === 'info' || normalized === 'notice') {
|
|
212
|
+
config.logging.level = 'info';
|
|
213
|
+
}
|
|
214
|
+
else if (normalized === 'warning' || normalized === 'warn') {
|
|
215
|
+
config.logging.level = 'warn';
|
|
216
|
+
}
|
|
217
|
+
else if (normalized === 'error' ||
|
|
218
|
+
normalized === 'critical' ||
|
|
219
|
+
normalized === 'alert' ||
|
|
220
|
+
normalized === 'emergency') {
|
|
221
|
+
config.logging.level = 'error';
|
|
222
|
+
}
|
|
223
|
+
}
|
|
200
224
|
export function redactUrl(rawUrl) {
|
|
201
225
|
try {
|
|
202
226
|
const url = new URL(rawUrl);
|
|
@@ -210,3 +234,4 @@ export function redactUrl(rawUrl) {
|
|
|
210
234
|
return rawUrl;
|
|
211
235
|
}
|
|
212
236
|
}
|
|
237
|
+
//# sourceMappingURL=observability.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observability.js","sourceRoot":"","sources":["../src/observability.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAE9D,OAAO,EAAE,MAAM,EAAiB,MAAM,aAAa,CAAC;AAUpD,MAAM,cAAc,GAAG,IAAI,iBAAiB,CAAiB;IAC3D,IAAI,EAAE,gBAAgB;CACvB,CAAC,CAAC;AACH,IAAI,SAAgC,CAAC;AACrC,MAAM,cAAc,GAAG,IAAI,GAAG,EAAqB,CAAC;AACpD,IAAI,eAAe,GAAG,IAAI,CAAC;AAE3B,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;IAC9B,eAAe,GAAG,KAAK,CAAC;AAC1B,CAAC,CAAC,CAAC;AAEH,MAAM,UAAU,YAAY,CAAC,MAAiB;IAC5C,SAAS,GAAG,MAAM,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,SAAiB,EACjB,MAAiB;IAEjB,IAAI,CAAC,SAAS;QAAE,OAAO;IACvB,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,SAAiB;IAC1D,IAAI,CAAC,SAAS;QAAE,OAAO;IACvB,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,kCAAkC,CAAC,MAAiB;IAClE,KAAK,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,IAAI,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC;QACjE,IAAI,YAAY,KAAK,MAAM;YAAE,SAAS;QACtC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,MAAiB;IAEjB,KAAK,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,IAAI,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC;QACjE,IAAI,YAAY,KAAK,MAAM;YAAE,OAAO,SAAS,CAAC;IAChD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,OAAuB,EACvB,EAAW;IAEX,OAAO,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,iBAAiB;IACxB,OAAO,cAAc,CAAC,QAAQ,EAAE,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,iBAAiB,EAAE,EAAE,SAAS,CAAC;AACxC,CAAC;AAED,SAAS,YAAY;IACnB,OAAO,iBAAiB,EAAE,EAAE,SAAS,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,iBAAiB,EAAE,EAAE,WAAW,CAAC;AAC1C,CAAC;AAED,SAAS,cAAc;IACrB,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC;AAC1C,CAAC;AAED,SAAS,oBAAoB;IAC3B,MAAM,GAAG,GAAG,cAAc,CAAC,QAAQ,EAAE,CAAC;IACtC,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAE3B,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC;IAClD,MAAM,cAAc,GAAG,SAAS,IAAI,cAAc,EAAE,CAAC;IAErD,IAAI,CAAC,SAAS,IAAI,CAAC,WAAW,IAAI,CAAC,cAAc;QAAE,OAAO,SAAS,CAAC;IAEpE,MAAM,IAAI,GAAgB,EAAE,CAAC;IAC7B,IAAI,SAAS;QAAE,IAAI,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC;IAC7C,IAAI,WAAW;QAAE,IAAI,CAAC,aAAa,CAAC,GAAG,WAAW,CAAC;IACnD,IAAI,cAAc;QAAE,IAAI,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC;IAElD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,aAAa,CAAC,IAAkB;IACvC,MAAM,WAAW,GAAG,oBAAoB,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAG,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAErD,IAAI,CAAC,WAAW,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/C,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAC9B,IAAI,CAAC,OAAO;QAAE,OAAO,WAAW,CAAC;IAEjC,OAAO,EAAE,GAAG,WAAW,EAAE,GAAG,IAAI,EAAE,CAAC;AACrC,CAAC;AAED,SAAS,cAAc,CAAC,IAAkB;IACxC,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAEvB,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AACtG,CAAC;AAED,SAAS,eAAe;IACtB,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AAClC,CAAC;AAED,SAAS,cAAc,CACrB,KAAe,EACf,OAAe,EACf,IAAkB;IAElB,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,KAAK,GAA4B;YACrC,SAAS,EAAE,eAAe,EAAE;YAC5B,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE;YAC1B,OAAO;SACR,CAAC;QACF,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,IAAI,eAAe,EAAE,KAAK,KAAK,CAAC,WAAW,EAAE,KAAK,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;AAC5F,CAAC;AAED,MAAM,cAAc,GAAuC;IACzD,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;CACT,CAAC;AAEF,SAAS,SAAS,CAAC,KAAe;IAChC,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,aAAa,CACpB,KAAe;IAEf,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,MAAM;YACT,OAAO,SAAS,CAAC;QACnB,KAAK,OAAO;YACV,OAAO,OAAO,CAAC;QACjB,KAAK,OAAO;YACV,OAAO,OAAO,CAAC;QACjB,KAAK,MAAM,CAAC;QACZ;YACE,OAAO,MAAM,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAY;IACpC,IAAI,GAAG,YAAY,KAAK;QAAE,OAAO,GAAG,CAAC,OAAO,CAAC;IAC7C,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC;IACxC,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,SAAS,eAAe,CAAC,IAAY;IACnC,IAAI,CAAC,eAAe;QAAE,OAAO;IAC7B,IAAI,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QAC7D,eAAe,GAAG,KAAK,CAAC;QACxB,OAAO;IACT,CAAC;IACD,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,yDAAyD;QACzD,eAAe,GAAG,KAAK,CAAC;IAC1B,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,KAAe,EAAE,OAAe,EAAE,IAAkB;IACpE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QAAE,OAAO;IAE9B,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAClD,eAAe,CAAC,GAAG,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEvD,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,MAAM,MAAM,GAAG,SAAS;QACtB,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC;QAC9C,CAAC,CAAC,SAAS,CAAC;IACd,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;QAAE,OAAO;IAElC,IAAI,CAAC;QACH,MAAM,CAAC,MAAM;aACV,kBAAkB,CACjB;YACE,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC;YAC3B,MAAM,EAAE,eAAe;YACvB,wGAAwG;YACxG,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO;SAC5C,EACD,SAAS,CACV;aACA,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;YACtB,IAAI,CAAC,cAAc,EAAE;gBAAE,OAAO;YAC9B,MAAM,SAAS,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAExC,eAAe,CACb,IAAI,eAAe,EAAE,uCACnB,SAAS,CAAC,CAAC,CAAC,eAAe,SAAS,GAAG,CAAC,CAAC,CAAC,EAC5C,KAAK,SAAS,IAAI,CACnB,CAAC;QACJ,CAAC,CAAC,CAAC;IACP,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,IAAI,CAAC,cAAc,EAAE;YAAE,OAAO;QAE9B,MAAM,SAAS,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACxC,eAAe,CACb,IAAI,eAAe,EAAE,sDAAsD,SAAS,IAAI,CACzF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,OAAe,EAAE,IAAkB;IACzD,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,OAAe,EAAE,IAAkB;IAC1D,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,OAAe,EAAE,IAAkB;IACzD,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,OAAe,EAAE,KAA2B;IACnE,MAAM,SAAS,GACb,KAAK,YAAY,KAAK;QACpB,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE;QAC9C,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IACvC,+DAA+D;IAC/D,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;QAC3B,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC;IACjC,CAAC;SAAM,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC5D,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC;IAChC,CAAC;SAAM,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;QAC7D,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC;IAChC,CAAC;SAAM,IACL,UAAU,KAAK,OAAO;QACtB,UAAU,KAAK,UAAU;QACzB,UAAU,KAAK,OAAO;QACtB,UAAU,KAAK,WAAW,EAC1B,CAAC;QACD,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC;IACjC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,MAAc;IACtC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5B,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC;QAClB,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC;QAClB,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;QACd,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC;QAChB,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC;IAChB,CAAC;AACH,CAAC"}
|
package/dist/prompts.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,UAAU,QAAQ;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;CAClB;AAgBD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,EACjB,YAAY,EAAE,MAAM,EACpB,QAAQ,CAAC,EAAE,QAAQ,GAClB,IAAI,CAwBN"}
|
package/dist/prompts.js
CHANGED
|
@@ -1,10 +1,21 @@
|
|
|
1
|
+
function buildOptionalPromptIcons(iconInfo) {
|
|
2
|
+
if (!iconInfo)
|
|
3
|
+
return {};
|
|
4
|
+
return {
|
|
5
|
+
icons: [
|
|
6
|
+
{
|
|
7
|
+
src: iconInfo.src,
|
|
8
|
+
mimeType: iconInfo.mimeType,
|
|
9
|
+
},
|
|
10
|
+
],
|
|
11
|
+
};
|
|
12
|
+
}
|
|
1
13
|
export function registerGetHelpPrompt(server, instructions, iconInfo) {
|
|
2
|
-
const description = 'Return
|
|
3
|
-
const iconConfig = iconInfo ? { icons: [{ ...iconInfo }] } : {};
|
|
14
|
+
const description = 'Return Fetch URL server instructions: how to fetch URLs, handle truncated content, recover full content via cacheResourceUri, use task mode for long pages, and route errors by code.';
|
|
4
15
|
server.registerPrompt('get-help', {
|
|
5
16
|
title: 'Get Help',
|
|
6
17
|
description,
|
|
7
|
-
...
|
|
18
|
+
...buildOptionalPromptIcons(iconInfo),
|
|
8
19
|
}, () => ({
|
|
9
20
|
description,
|
|
10
21
|
messages: [
|
|
@@ -18,3 +29,4 @@ export function registerGetHelpPrompt(server, instructions, iconInfo) {
|
|
|
18
29
|
],
|
|
19
30
|
}));
|
|
20
31
|
}
|
|
32
|
+
//# sourceMappingURL=prompts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAQA,SAAS,wBAAwB,CAC/B,QAAmB;IAEnB,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAC;IACzB,OAAO;QACL,KAAK,EAAE;YACL;gBACE,GAAG,EAAE,QAAQ,CAAC,GAAG;gBACjB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;aAC5B;SACF;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,MAAiB,EACjB,YAAoB,EACpB,QAAmB;IAEnB,MAAM,WAAW,GACf,uLAAuL,CAAC;IAE1L,MAAM,CAAC,cAAc,CACnB,UAAU,EACV;QACE,KAAK,EAAE,UAAU;QACjB,WAAW;QACX,GAAG,wBAAwB,CAAC,QAAQ,CAAC;KACtC,EACD,GAAoB,EAAE,CAAC,CAAC;QACtB,WAAW;QACX,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,YAAY;iBACnB;aACF;SACF;KACF,CAAC,CACH,CAAC;AACJ,CAAC"}
|
package/dist/resources.d.ts
CHANGED
|
@@ -6,3 +6,4 @@ interface IconInfo {
|
|
|
6
6
|
export declare function registerInstructionResource(server: McpServer, instructions: string, iconInfo?: IconInfo): void;
|
|
7
7
|
export declare function registerCacheResourceTemplate(server: McpServer, iconInfo?: IconInfo): void;
|
|
8
8
|
export {};
|
|
9
|
+
//# sourceMappingURL=resources.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../src/resources.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EAEf,MAAM,yCAAyC,CAAC;AAqBjD,UAAU,QAAQ;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;CAClB;AAgVD,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,SAAS,EACjB,YAAY,EAAE,MAAM,EACpB,QAAQ,CAAC,EAAE,QAAQ,GAClB,IAAI,CAwBN;AAED,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,SAAS,EACjB,QAAQ,CAAC,EAAE,QAAQ,GAClB,IAAI,CA4BN"}
|