@mcpmesh/sdk 1.0.1 → 1.1.0-beta.2
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/__tests__/claude-handler.test.js +5 -3
- package/dist/__tests__/claude-handler.test.js.map +1 -1
- package/dist/__tests__/openai-handler.test.js +3 -1
- package/dist/__tests__/openai-handler.test.js.map +1 -1
- package/dist/__tests__/response-parser.test.js +2 -1
- package/dist/__tests__/response-parser.test.js.map +1 -1
- package/dist/__tests__/sse.test.js +4 -4
- package/dist/__tests__/sse.test.js.map +1 -1
- package/dist/__tests__/tracing.test.js +10 -6
- package/dist/__tests__/tracing.test.js.map +1 -1
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +7 -0
- package/dist/agent.js.map +1 -1
- package/dist/http-pool.d.ts +21 -0
- package/dist/http-pool.d.ts.map +1 -0
- package/dist/http-pool.js +72 -0
- package/dist/http-pool.js.map +1 -0
- package/dist/llm-agent.d.ts +3 -0
- package/dist/llm-agent.d.ts.map +1 -1
- package/dist/llm-agent.js +52 -9
- package/dist/llm-agent.js.map +1 -1
- package/dist/llm-provider.d.ts.map +1 -1
- package/dist/llm-provider.js +3 -5
- package/dist/llm-provider.js.map +1 -1
- package/dist/llm.d.ts +2 -0
- package/dist/llm.d.ts.map +1 -1
- package/dist/llm.js +2 -0
- package/dist/llm.js.map +1 -1
- package/dist/provider-handlers/claude-handler.d.ts +1 -0
- package/dist/provider-handlers/claude-handler.d.ts.map +1 -1
- package/dist/provider-handlers/claude-handler.js +5 -51
- package/dist/provider-handlers/claude-handler.js.map +1 -1
- package/dist/provider-handlers/gemini-handler.d.ts +3 -3
- package/dist/provider-handlers/gemini-handler.d.ts.map +1 -1
- package/dist/provider-handlers/gemini-handler.js +9 -41
- package/dist/provider-handlers/gemini-handler.js.map +1 -1
- package/dist/provider-handlers/generic-handler.d.ts +2 -1
- package/dist/provider-handlers/generic-handler.d.ts.map +1 -1
- package/dist/provider-handlers/generic-handler.js +4 -32
- package/dist/provider-handlers/generic-handler.js.map +1 -1
- package/dist/provider-handlers/openai-handler.d.ts +1 -4
- package/dist/provider-handlers/openai-handler.d.ts.map +1 -1
- package/dist/provider-handlers/openai-handler.js +5 -43
- package/dist/provider-handlers/openai-handler.js.map +1 -1
- package/dist/provider-handlers/provider-handler.d.ts +7 -27
- package/dist/provider-handlers/provider-handler.d.ts.map +1 -1
- package/dist/provider-handlers/provider-handler.js +20 -137
- package/dist/provider-handlers/provider-handler.js.map +1 -1
- package/dist/proxy.d.ts +13 -1
- package/dist/proxy.d.ts.map +1 -1
- package/dist/proxy.js +63 -38
- package/dist/proxy.js.map +1 -1
- package/dist/response-parser.d.ts +2 -2
- package/dist/response-parser.d.ts.map +1 -1
- package/dist/response-parser.js +4 -57
- package/dist/response-parser.js.map +1 -1
- package/dist/sse.d.ts +4 -0
- package/dist/sse.d.ts.map +1 -1
- package/dist/sse.js +10 -16
- package/dist/sse.js.map +1 -1
- package/dist/timeout-utils.d.ts +1 -0
- package/dist/timeout-utils.d.ts.map +1 -1
- package/dist/timeout-utils.js +7 -3
- package/dist/timeout-utils.js.map +1 -1
- package/dist/tracing.d.ts +12 -1
- package/dist/tracing.d.ts.map +1 -1
- package/dist/tracing.js +42 -7
- package/dist/tracing.js.map +1 -1
- package/dist/types.d.ts +13 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* src/runtime/python/_mcp_mesh/engine/provider_handlers/base_provider_handler.py
|
|
9
9
|
*/
|
|
10
10
|
import { createDebug } from "../debug.js";
|
|
11
|
+
import { sanitizeSchema as coreSanitizeSchema, makeSchemaStrict as coreMakeSchemaStrict, detectMediaParams as coreDetectMediaParams, } from "@mcpmesh/core";
|
|
11
12
|
const debug = createDebug("provider-handler");
|
|
12
13
|
/**
|
|
13
14
|
* Wrap tool result content in AI SDK v6 ToolResultOutput format.
|
|
@@ -138,104 +139,12 @@ export function convertMessagesToVercelFormat(messages) {
|
|
|
138
139
|
});
|
|
139
140
|
}
|
|
140
141
|
// ============================================================================
|
|
141
|
-
// Shared Constants
|
|
142
|
-
// ============================================================================
|
|
143
|
-
/**
|
|
144
|
-
* Base tool calling instructions shared across all providers.
|
|
145
|
-
*
|
|
146
|
-
* Claude handler adds anti-XML instruction on top of this.
|
|
147
|
-
*/
|
|
148
|
-
export const BASE_TOOL_INSTRUCTIONS = `
|
|
149
|
-
IMPORTANT TOOL CALLING RULES:
|
|
150
|
-
- You have access to tools that you can call to gather information
|
|
151
|
-
- Make ONE tool call at a time
|
|
152
|
-
- After receiving tool results, you can make additional calls if needed
|
|
153
|
-
- Once you have all needed information, provide your final response
|
|
154
|
-
`;
|
|
155
|
-
/**
|
|
156
|
-
* Anti-XML instruction for Claude (prevents <invoke> style tool calls).
|
|
157
|
-
*/
|
|
158
|
-
export const CLAUDE_ANTI_XML_INSTRUCTION = `- NEVER use XML-style syntax like <invoke name="tool_name"/>`;
|
|
159
|
-
/**
|
|
160
|
-
* Decision guide shared across all providers.
|
|
161
|
-
*
|
|
162
|
-
* Helps LLMs decide when to call tools vs. return JSON directly.
|
|
163
|
-
* Used in both strict mode (with tools) and hint mode.
|
|
164
|
-
*/
|
|
165
|
-
export const DECISION_GUIDE = `
|
|
166
|
-
DECISION GUIDE:
|
|
167
|
-
- If your answer requires real-time data (weather, calculations, etc.), call the appropriate tool FIRST, then format your response as JSON.
|
|
168
|
-
- If your answer is general knowledge (like facts, explanations, definitions), directly return your response as JSON WITHOUT calling tools.
|
|
169
|
-
- After calling a tool and receiving results, STOP calling tools and return your final JSON response.`;
|
|
170
|
-
// ============================================================================
|
|
171
142
|
// Shared Schema Utilities
|
|
172
143
|
// ============================================================================
|
|
173
|
-
|
|
174
|
-
* Keywords that are validation-only and not supported by LLM structured output APIs.
|
|
175
|
-
*/
|
|
176
|
-
const UNSUPPORTED_SCHEMA_KEYWORDS = new Set([
|
|
177
|
-
"minimum",
|
|
178
|
-
"maximum",
|
|
179
|
-
"exclusiveMinimum",
|
|
180
|
-
"exclusiveMaximum",
|
|
181
|
-
"minLength",
|
|
182
|
-
"maxLength",
|
|
183
|
-
"minItems",
|
|
184
|
-
"maxItems",
|
|
185
|
-
"pattern",
|
|
186
|
-
"multipleOf",
|
|
187
|
-
]);
|
|
188
|
-
/**
|
|
189
|
-
* Walk a JSON Schema tree, invoking `visitor` on every schema node.
|
|
190
|
-
*
|
|
191
|
-
* Recurses into $defs, properties, items, prefixItems, and anyOf/oneOf/allOf.
|
|
192
|
-
*/
|
|
193
|
-
function walkSchemaRecursive(obj, visitor) {
|
|
194
|
-
if (typeof obj !== "object" || obj === null)
|
|
195
|
-
return;
|
|
196
|
-
const record = obj;
|
|
197
|
-
visitor(record);
|
|
198
|
-
// Recurse into $defs
|
|
199
|
-
if (record.$defs && typeof record.$defs === "object") {
|
|
200
|
-
for (const def of Object.values(record.$defs)) {
|
|
201
|
-
walkSchemaRecursive(def, visitor);
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
// Recurse into properties
|
|
205
|
-
if (record.properties && typeof record.properties === "object") {
|
|
206
|
-
for (const prop of Object.values(record.properties)) {
|
|
207
|
-
walkSchemaRecursive(prop, visitor);
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
// Recurse into items (single schema or legacy array form)
|
|
211
|
-
if (record.items) {
|
|
212
|
-
if (Array.isArray(record.items)) {
|
|
213
|
-
for (const item of record.items) {
|
|
214
|
-
walkSchemaRecursive(item, visitor);
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
else {
|
|
218
|
-
walkSchemaRecursive(record.items, visitor);
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
// Recurse into prefixItems (tuple validation in JSON Schema draft 2020-12)
|
|
222
|
-
if (Array.isArray(record.prefixItems)) {
|
|
223
|
-
for (const item of record.prefixItems) {
|
|
224
|
-
walkSchemaRecursive(item, visitor);
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
// Recurse into anyOf/oneOf/allOf
|
|
228
|
-
for (const keyword of ["anyOf", "oneOf", "allOf"]) {
|
|
229
|
-
if (Array.isArray(record[keyword])) {
|
|
230
|
-
for (const variant of record[keyword]) {
|
|
231
|
-
walkSchemaRecursive(variant, visitor);
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
// ---- Public schema utilities ---------------------------------------------
|
|
144
|
+
// ---- Public schema utilities (delegated to Rust core) --------------------
|
|
237
145
|
/**
|
|
238
146
|
* Sanitize a JSON schema by removing validation keywords unsupported by LLM APIs.
|
|
147
|
+
* Delegates to Rust core.
|
|
239
148
|
*
|
|
240
149
|
* LLM structured output APIs (Claude, OpenAI, Gemini) typically only support
|
|
241
150
|
* the structural parts of JSON Schema, not validation constraints. This function
|
|
@@ -245,17 +154,12 @@ function walkSchemaRecursive(obj, visitor) {
|
|
|
245
154
|
* @returns New schema with unsupported validation keywords removed
|
|
246
155
|
*/
|
|
247
156
|
export function sanitizeSchemaForStructuredOutput(schema) {
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
walkSchemaRecursive(result, (node) => {
|
|
251
|
-
for (const keyword of UNSUPPORTED_SCHEMA_KEYWORDS) {
|
|
252
|
-
delete node[keyword];
|
|
253
|
-
}
|
|
254
|
-
});
|
|
255
|
-
return result;
|
|
157
|
+
const result = coreSanitizeSchema(JSON.stringify(schema));
|
|
158
|
+
return JSON.parse(result);
|
|
256
159
|
}
|
|
257
160
|
/**
|
|
258
161
|
* Make a JSON schema strict for structured output.
|
|
162
|
+
* Delegates to Rust core.
|
|
259
163
|
*
|
|
260
164
|
* This is a shared utility used by OpenAI, Gemini, and Claude handlers.
|
|
261
165
|
* Adds additionalProperties: false to all object types and optionally
|
|
@@ -267,45 +171,24 @@ export function sanitizeSchemaForStructuredOutput(schema) {
|
|
|
267
171
|
*/
|
|
268
172
|
export function makeSchemaStrict(schema, options = {}) {
|
|
269
173
|
const { addAllRequired = true } = options;
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
walkSchemaRecursive(result, (node) => {
|
|
273
|
-
if (node.type === "object") {
|
|
274
|
-
node.additionalProperties = false;
|
|
275
|
-
if (addAllRequired && node.properties && typeof node.properties === "object") {
|
|
276
|
-
node.required = Object.keys(node.properties);
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
});
|
|
280
|
-
return result;
|
|
174
|
+
const result = coreMakeSchemaStrict(JSON.stringify(schema), addAllRequired);
|
|
175
|
+
return JSON.parse(result);
|
|
281
176
|
}
|
|
282
177
|
/**
|
|
283
|
-
*
|
|
284
|
-
*
|
|
285
|
-
* Extracts field names, types, required markers, and descriptions from an
|
|
286
|
-
* OutputSchema and returns formatted text suitable for embedding in a system prompt.
|
|
178
|
+
* Check if any tool schema contains media parameters (x-media-type).
|
|
179
|
+
* Delegates to Rust core.
|
|
287
180
|
*
|
|
288
|
-
* @param
|
|
289
|
-
* @returns
|
|
181
|
+
* @param toolSchemas - Array of tool schemas to check
|
|
182
|
+
* @returns true if any tool has media parameters
|
|
290
183
|
*/
|
|
291
|
-
export function
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
const reqMarker = isRequired ? " (required)" : " (optional)";
|
|
300
|
-
const desc = fieldSchema.description;
|
|
301
|
-
const descText = desc ? ` - ${desc}` : "";
|
|
302
|
-
fieldDescriptions.push(` - ${fieldName}: ${fieldType}${reqMarker}${descText}`);
|
|
303
|
-
exampleObj[fieldName] = `<${fieldType}>`;
|
|
304
|
-
}
|
|
305
|
-
return {
|
|
306
|
-
fieldsText: fieldDescriptions.join("\n"),
|
|
307
|
-
exampleJson: JSON.stringify(exampleObj, null, 2),
|
|
308
|
-
};
|
|
184
|
+
export function hasMediaParams(toolSchemas) {
|
|
185
|
+
if (!toolSchemas || toolSchemas.length === 0)
|
|
186
|
+
return false;
|
|
187
|
+
return toolSchemas.some((tool) => {
|
|
188
|
+
if (!tool.function.parameters)
|
|
189
|
+
return false;
|
|
190
|
+
return coreDetectMediaParams(JSON.stringify(tool.function.parameters));
|
|
191
|
+
});
|
|
309
192
|
}
|
|
310
193
|
/**
|
|
311
194
|
* Build the common baseline for prepareRequest across all providers.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-handler.js","sourceRoot":"","sources":["../../src/provider-handlers/provider-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"provider-handler.js","sourceRoot":"","sources":["../../src/provider-handlers/provider-handler.ts"],"names":[],"mappings":"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"}
|
package/dist/proxy.d.ts
CHANGED
|
@@ -5,6 +5,18 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import type { McpMeshTool, DependencyKwargs, DependencySpec, NormalizedDependency } from "./types.js";
|
|
7
7
|
import type { TraceContext } from "./tracing.js";
|
|
8
|
+
/** Options for callMcpTool, derived from DependencyKwargs. */
|
|
9
|
+
export interface CallOptions {
|
|
10
|
+
timeout: number;
|
|
11
|
+
maxAttempts: number;
|
|
12
|
+
streamTimeout: number;
|
|
13
|
+
customHeaders?: Record<string, string>;
|
|
14
|
+
retryDelay: number;
|
|
15
|
+
retryBackoff: number;
|
|
16
|
+
maxResponseSize: number;
|
|
17
|
+
}
|
|
18
|
+
/** Default CallOptions for internal callers that don't go through createProxy. */
|
|
19
|
+
export declare const DEFAULT_CALL_OPTIONS: CallOptions;
|
|
8
20
|
/**
|
|
9
21
|
* Run a function with propagated headers context.
|
|
10
22
|
*/
|
|
@@ -44,7 +56,7 @@ export declare function createProxy(endpoint: string, capability: string, functi
|
|
|
44
56
|
* POST /mcp with JSON-RPC 2.0 payload.
|
|
45
57
|
* Includes distributed tracing: propagates trace context and publishes spans.
|
|
46
58
|
*/
|
|
47
|
-
export declare function callMcpTool(endpoint: string, toolName: string, args: Record<string, unknown> | undefined,
|
|
59
|
+
export declare function callMcpTool(endpoint: string, toolName: string, args: Record<string, unknown> | undefined, options: CallOptions, capability: string, extraHeaders?: Record<string, string>): Promise<string | MultiContentResult>;
|
|
48
60
|
/**
|
|
49
61
|
* Multi-content result returned when MCP response contains non-text content
|
|
50
62
|
* items (resource_link, image, embedded_resource, etc.).
|
package/dist/proxy.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACtG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACtG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAUjD,8DAA8D;AAC9D,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,kFAAkF;AAClF,eAAO,MAAM,oBAAoB,EAAE,WAOlC,CAAC;AAcF;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,EACxC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,EAAE,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GACvB,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAEhB;AAED;;GAEG;AACH,wBAAgB,2BAA2B,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAEpE;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EACnC,GAAG,EAAE,YAAY,EACjB,EAAE,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GACvB,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAEhB;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,IAAI,YAAY,GAAG,IAAI,CAE5D;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,GAAG,IAAI,CAGtE;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,MAAM,CAAC,EAAE,gBAAgB,GACxB,WAAW,CA8Db;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACzC,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACpC,OAAO,CAAC,MAAM,GAAG,kBAAkB,CAAC,CA0JtC;AAkGD;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,eAAe,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;CACpC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,kBAAkB,CA8D3E;AAgBD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,cAAc,GAAG,oBAAoB,CAS7E"}
|
package/dist/proxy.js
CHANGED
|
@@ -6,6 +6,16 @@
|
|
|
6
6
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
7
7
|
import { generateSpanId, publishTraceSpan, createTraceHeaders, matchesPropagateHeader, } from "./tracing.js";
|
|
8
8
|
import { isTimeoutError } from "./timeout-utils.js";
|
|
9
|
+
import { getDispatcher } from "./http-pool.js";
|
|
10
|
+
/** Default CallOptions for internal callers that don't go through createProxy. */
|
|
11
|
+
export const DEFAULT_CALL_OPTIONS = {
|
|
12
|
+
timeout: 30_000,
|
|
13
|
+
maxAttempts: 1,
|
|
14
|
+
streamTimeout: 300_000,
|
|
15
|
+
retryDelay: 100,
|
|
16
|
+
retryBackoff: 2.0,
|
|
17
|
+
maxResponseSize: 10 * 1024 * 1024,
|
|
18
|
+
};
|
|
9
19
|
/**
|
|
10
20
|
* AsyncLocalStorage for trace context - provides async-safe context propagation.
|
|
11
21
|
* Unlike module-level variables, this correctly handles concurrent requests
|
|
@@ -59,13 +69,24 @@ export function setCurrentTraceContext(_ctx) {
|
|
|
59
69
|
* and also has methods for calling other tools on the agent.
|
|
60
70
|
*/
|
|
61
71
|
export function createProxy(endpoint, capability, functionName, kwargs) {
|
|
62
|
-
const
|
|
63
|
-
|
|
72
|
+
const options = {
|
|
73
|
+
timeout: (kwargs?.timeout ?? 30) * 1000,
|
|
74
|
+
maxAttempts: kwargs?.maxAttempts ?? 1,
|
|
75
|
+
streamTimeout: (kwargs?.streamTimeout ?? 300) * 1000,
|
|
76
|
+
customHeaders: kwargs?.customHeaders,
|
|
77
|
+
retryDelay: (kwargs?.retryDelay ?? 0.1) * 1000,
|
|
78
|
+
retryBackoff: kwargs?.retryBackoff ?? 2.0,
|
|
79
|
+
maxResponseSize: kwargs?.maxResponseSize ?? 10 * 1024 * 1024,
|
|
80
|
+
};
|
|
81
|
+
// Use streamTimeout when streaming is enabled
|
|
82
|
+
if (kwargs?.streaming) {
|
|
83
|
+
options.timeout = options.streamTimeout;
|
|
84
|
+
}
|
|
64
85
|
// The proxy function that calls the bound tool
|
|
65
86
|
// Returns parsed object (like Python) or raw string if not JSON
|
|
66
87
|
// Multi-content results (resource_link, image, etc.) are returned as-is
|
|
67
|
-
const proxyFn = async (args,
|
|
68
|
-
const result = await callMcpTool(endpoint, functionName, args,
|
|
88
|
+
const proxyFn = async (args, callParams) => {
|
|
89
|
+
const result = await callMcpTool(endpoint, functionName, args, options, capability, callParams?.headers);
|
|
69
90
|
// Multi-content results are returned as structured objects
|
|
70
91
|
if (typeof result === "object") {
|
|
71
92
|
return result;
|
|
@@ -85,8 +106,8 @@ export function createProxy(endpoint, capability, functionName, kwargs) {
|
|
|
85
106
|
functionName: { value: functionName, writable: false },
|
|
86
107
|
isAvailable: { value: true, writable: false },
|
|
87
108
|
callTool: {
|
|
88
|
-
value: async (toolName, args,
|
|
89
|
-
const result = await callMcpTool(endpoint, toolName, args,
|
|
109
|
+
value: async (toolName, args, callParams) => {
|
|
110
|
+
const result = await callMcpTool(endpoint, toolName, args, options, capability, callParams?.headers);
|
|
90
111
|
if (typeof result === "object") {
|
|
91
112
|
return result;
|
|
92
113
|
}
|
|
@@ -109,7 +130,7 @@ export function createProxy(endpoint, capability, functionName, kwargs) {
|
|
|
109
130
|
* POST /mcp with JSON-RPC 2.0 payload.
|
|
110
131
|
* Includes distributed tracing: propagates trace context and publishes spans.
|
|
111
132
|
*/
|
|
112
|
-
export async function callMcpTool(endpoint, toolName, args,
|
|
133
|
+
export async function callMcpTool(endpoint, toolName, args, options, capability, extraHeaders) {
|
|
113
134
|
// Ensure endpoint ends with /mcp
|
|
114
135
|
const mcpEndpoint = endpoint.endsWith("/mcp")
|
|
115
136
|
? endpoint
|
|
@@ -151,94 +172,96 @@ export async function callMcpTool(endpoint, toolName, args, timeout, maxAttempts
|
|
|
151
172
|
},
|
|
152
173
|
};
|
|
153
174
|
let lastError = null;
|
|
154
|
-
|
|
175
|
+
const bodyStr = JSON.stringify(payload);
|
|
176
|
+
const requestBytes = Buffer.byteLength(bodyStr, "utf8");
|
|
177
|
+
for (let attempt = 0; attempt < options.maxAttempts; attempt++) {
|
|
155
178
|
try {
|
|
156
179
|
const controller = new AbortController();
|
|
157
|
-
const timeoutId = setTimeout(() => controller.abort(), timeout);
|
|
158
|
-
// Build headers
|
|
180
|
+
const timeoutId = setTimeout(() => controller.abort(), options.timeout);
|
|
181
|
+
// Build headers: custom headers first, then protocol-required headers override
|
|
159
182
|
const headers = {
|
|
183
|
+
...(options.customHeaders ?? {}),
|
|
160
184
|
"Content-Type": "application/json",
|
|
161
185
|
Accept: "application/json, text/event-stream",
|
|
162
186
|
};
|
|
163
|
-
// Propagate trace context
|
|
187
|
+
// Propagate trace context (higher priority)
|
|
164
188
|
if (traceCtx && spanId) {
|
|
165
189
|
Object.assign(headers, createTraceHeaders(traceCtx.traceId, spanId));
|
|
166
190
|
}
|
|
167
|
-
// Inject merged headers
|
|
191
|
+
// Inject merged headers (highest priority)
|
|
168
192
|
for (const [key, value] of Object.entries(mergedHeaders)) {
|
|
169
193
|
headers[key] = value;
|
|
170
194
|
}
|
|
171
|
-
// Build fetch options
|
|
172
195
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
173
196
|
const fetchOptions = {
|
|
174
197
|
method: "POST",
|
|
175
198
|
headers,
|
|
176
|
-
body:
|
|
199
|
+
body: bodyStr,
|
|
177
200
|
signal: controller.signal,
|
|
178
201
|
};
|
|
179
|
-
//
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
const { getTlsOptions } = await import("./tls-config.js");
|
|
184
|
-
const tlsOpts = getTlsOptions();
|
|
185
|
-
if (tlsOpts) {
|
|
186
|
-
fetchOptions.dispatcher = new Agent({ connect: tlsOpts });
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
catch (err) {
|
|
190
|
-
console.warn("mTLS proxy setup failed for HTTPS endpoint:", err);
|
|
191
|
-
}
|
|
202
|
+
// Use pooled dispatcher for connection reuse
|
|
203
|
+
const dispatcher = getDispatcher(mcpEndpoint);
|
|
204
|
+
if (dispatcher) {
|
|
205
|
+
fetchOptions.dispatcher = dispatcher;
|
|
192
206
|
}
|
|
193
207
|
const response = await fetch(mcpEndpoint, fetchOptions);
|
|
194
208
|
clearTimeout(timeoutId);
|
|
195
209
|
if (!response.ok) {
|
|
196
210
|
throw new Error(`MCP call failed: ${response.status} ${response.statusText}`);
|
|
197
211
|
}
|
|
212
|
+
// Check response size against limit
|
|
213
|
+
const contentLength = parseInt(response.headers.get("content-length") ?? "0", 10);
|
|
214
|
+
if (contentLength > 0 && contentLength > options.maxResponseSize) {
|
|
215
|
+
throw new Error(`Response size ${contentLength} bytes exceeds limit of ${options.maxResponseSize} bytes`);
|
|
216
|
+
}
|
|
198
217
|
const contentType = response.headers.get("content-type") ?? "";
|
|
199
218
|
// Handle SSE streaming response
|
|
200
219
|
if (contentType.includes("text/event-stream")) {
|
|
201
220
|
const sseResult = await parseSSEResponse(response);
|
|
221
|
+
// Estimate response size from content-length header (exact size not available for SSE)
|
|
222
|
+
const sseResponseBytes = contentLength > 0 ? contentLength : undefined;
|
|
202
223
|
// Publish success span
|
|
203
|
-
publishProxySpan(traceCtx, spanId, startTime, toolName, capability, endpoint, true, null, typeof sseResult);
|
|
224
|
+
publishProxySpan(traceCtx, spanId, startTime, toolName, capability, endpoint, true, null, typeof sseResult, requestBytes, sseResponseBytes);
|
|
204
225
|
return sseResult;
|
|
205
226
|
}
|
|
206
|
-
// Handle JSON response
|
|
207
|
-
const
|
|
227
|
+
// Handle JSON response — read as text to measure byte size
|
|
228
|
+
const responseText = await response.text();
|
|
229
|
+
const responseBytes = Buffer.byteLength(responseText, "utf8");
|
|
230
|
+
const result = JSON.parse(responseText);
|
|
208
231
|
if (result.error) {
|
|
209
232
|
const errorMsg = result.error.message ?? JSON.stringify(result.error);
|
|
210
233
|
// Publish error span
|
|
211
|
-
publishProxySpan(traceCtx, spanId, startTime, toolName, capability, endpoint, false, errorMsg, "error");
|
|
234
|
+
publishProxySpan(traceCtx, spanId, startTime, toolName, capability, endpoint, false, errorMsg, "error", requestBytes, responseBytes);
|
|
212
235
|
throw new Error(`MCP error: ${errorMsg}`);
|
|
213
236
|
}
|
|
214
237
|
// Extract content from result
|
|
215
238
|
const content = extractContent(result.result);
|
|
216
239
|
// Publish success span
|
|
217
|
-
publishProxySpan(traceCtx, spanId, startTime, toolName, capability, endpoint, true, null, typeof content);
|
|
240
|
+
publishProxySpan(traceCtx, spanId, startTime, toolName, capability, endpoint, true, null, typeof content, requestBytes, responseBytes);
|
|
218
241
|
return content;
|
|
219
242
|
}
|
|
220
243
|
catch (err) {
|
|
221
244
|
lastError = err instanceof Error ? err : new Error(String(err));
|
|
222
245
|
// Don't retry on abort (timeout)
|
|
223
246
|
if (isTimeoutError(lastError)) {
|
|
224
|
-
publishProxySpan(traceCtx, spanId, startTime, toolName, capability, endpoint, false, "timeout", "error");
|
|
225
|
-
throw new Error(`MCP call timed out after ${timeout}ms`);
|
|
247
|
+
publishProxySpan(traceCtx, spanId, startTime, toolName, capability, endpoint, false, "timeout", "error", requestBytes);
|
|
248
|
+
throw new Error(`MCP call timed out after ${options.timeout}ms`);
|
|
226
249
|
}
|
|
227
250
|
// Retry on network errors
|
|
228
|
-
if (attempt < maxAttempts - 1) {
|
|
229
|
-
await sleep(
|
|
251
|
+
if (attempt < options.maxAttempts - 1) {
|
|
252
|
+
await sleep(options.retryDelay * Math.pow(options.retryBackoff, attempt));
|
|
230
253
|
continue;
|
|
231
254
|
}
|
|
232
255
|
}
|
|
233
256
|
}
|
|
234
257
|
// All retries failed
|
|
235
|
-
publishProxySpan(traceCtx, spanId, startTime, toolName, capability, endpoint, false, lastError?.message ?? "unknown", "error");
|
|
258
|
+
publishProxySpan(traceCtx, spanId, startTime, toolName, capability, endpoint, false, lastError?.message ?? "unknown", "error", requestBytes);
|
|
236
259
|
throw lastError ?? new Error("MCP call failed");
|
|
237
260
|
}
|
|
238
261
|
/**
|
|
239
262
|
* Helper to publish a proxy call span (fire and forget).
|
|
240
263
|
*/
|
|
241
|
-
function publishProxySpan(traceCtx, spanId, startTime, _toolName, _capability, endpoint, success, error, resultType) {
|
|
264
|
+
function publishProxySpan(traceCtx, spanId, startTime, _toolName, _capability, endpoint, success, error, resultType, requestBytes, responseBytes) {
|
|
242
265
|
if (!traceCtx || !spanId)
|
|
243
266
|
return;
|
|
244
267
|
const endTime = Date.now() / 1000;
|
|
@@ -260,6 +283,8 @@ function publishProxySpan(traceCtx, spanId, startTime, _toolName, _capability, e
|
|
|
260
283
|
dependencies: [endpoint],
|
|
261
284
|
injectedDependencies: 0,
|
|
262
285
|
meshPositions: [],
|
|
286
|
+
requestBytes,
|
|
287
|
+
responseBytes,
|
|
263
288
|
}).catch(() => {
|
|
264
289
|
// Silently ignore publish errors
|
|
265
290
|
});
|
package/dist/proxy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,10 +24,10 @@ export { ResponseParseError };
|
|
|
24
24
|
/**
|
|
25
25
|
* Extract JSON from a string that may contain markdown code blocks.
|
|
26
26
|
*
|
|
27
|
-
* Handles:
|
|
27
|
+
* Delegates to Rust core for extraction. Handles:
|
|
28
28
|
* - ```json ... ``` code blocks
|
|
29
29
|
* - ``` ... ``` code blocks (no language)
|
|
30
|
-
* - Raw JSON (object or array) using progressive
|
|
30
|
+
* - Raw JSON (object or array) using progressive parse
|
|
31
31
|
*/
|
|
32
32
|
export declare function extractJson(content: string): string | null;
|
|
33
33
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response-parser.d.ts","sourceRoot":"","sources":["../src/response-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"response-parser.d.ts","sourceRoot":"","sources":["../src/response-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,KAAK,CAAC;AAG7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAGjD,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAE9B;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAE1D;AAED;;;;GAIG;AACH,qBAAa,cAAc,CAAC,CAAC,GAAG,MAAM;IACpC,OAAO,CAAC,MAAM,CAAoB;IAElC;;;;OAIG;gBACS,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IAI/B;;;;;;;;;OASG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC;IA0CzB;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IAQnC;;OAEG;IACH,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;IAI9B;;OAEG;IACH,SAAS,IAAI,OAAO;CAGrB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,GAAG,MAAM,EAC7C,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GAClB,cAAc,CAAC,CAAC,CAAC,CAEnB;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CA2BpE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAO1D"}
|
package/dist/response-parser.js
CHANGED
|
@@ -19,73 +19,20 @@
|
|
|
19
19
|
* ```
|
|
20
20
|
*/
|
|
21
21
|
import { zodToJsonSchema } from "zod-to-json-schema";
|
|
22
|
+
import { extractJson as coreExtractJson } from "@mcpmesh/core";
|
|
22
23
|
import { ResponseParseError } from "./errors.js";
|
|
23
24
|
// Re-export for backwards compatibility
|
|
24
25
|
export { ResponseParseError };
|
|
25
26
|
/**
|
|
26
27
|
* Extract JSON from a string that may contain markdown code blocks.
|
|
27
28
|
*
|
|
28
|
-
* Handles:
|
|
29
|
+
* Delegates to Rust core for extraction. Handles:
|
|
29
30
|
* - ```json ... ``` code blocks
|
|
30
31
|
* - ``` ... ``` code blocks (no language)
|
|
31
|
-
* - Raw JSON (object or array) using progressive
|
|
32
|
+
* - Raw JSON (object or array) using progressive parse
|
|
32
33
|
*/
|
|
33
34
|
export function extractJson(content) {
|
|
34
|
-
|
|
35
|
-
const codeBlockMatch = content.match(/```(?:json)?\s*([\s\S]*?)```/);
|
|
36
|
-
if (codeBlockMatch) {
|
|
37
|
-
return codeBlockMatch[1].trim();
|
|
38
|
-
}
|
|
39
|
-
// Strategy 2: Try to find JSON object using progressive JSON.parse
|
|
40
|
-
// This handles braces inside strings correctly
|
|
41
|
-
const braceStart = content.indexOf("{");
|
|
42
|
-
if (braceStart !== -1) {
|
|
43
|
-
const result = tryProgressiveParse(content, braceStart, "{", "}");
|
|
44
|
-
if (result)
|
|
45
|
-
return result;
|
|
46
|
-
}
|
|
47
|
-
// Strategy 3: Try to find JSON array using progressive JSON.parse
|
|
48
|
-
const bracketStart = content.indexOf("[");
|
|
49
|
-
if (bracketStart !== -1) {
|
|
50
|
-
const result = tryProgressiveParse(content, bracketStart, "[", "]");
|
|
51
|
-
if (result)
|
|
52
|
-
return result;
|
|
53
|
-
}
|
|
54
|
-
return null;
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Try to extract valid JSON by progressively extending the end position.
|
|
58
|
-
* This correctly handles braces/brackets inside string values.
|
|
59
|
-
*/
|
|
60
|
-
function tryProgressiveParse(content, start, openChar, closeChar) {
|
|
61
|
-
// Quick check: count characters to find potential end positions
|
|
62
|
-
let depth = 0;
|
|
63
|
-
const potentialEnds = [];
|
|
64
|
-
for (let i = start; i < content.length; i++) {
|
|
65
|
-
const char = content[i];
|
|
66
|
-
if (char === openChar) {
|
|
67
|
-
depth++;
|
|
68
|
-
}
|
|
69
|
-
else if (char === closeChar) {
|
|
70
|
-
depth--;
|
|
71
|
-
if (depth === 0) {
|
|
72
|
-
potentialEnds.push(i);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
// Try each potential end position (shortest first for efficiency)
|
|
77
|
-
for (const end of potentialEnds) {
|
|
78
|
-
const candidate = content.slice(start, end + 1);
|
|
79
|
-
try {
|
|
80
|
-
JSON.parse(candidate);
|
|
81
|
-
return candidate;
|
|
82
|
-
}
|
|
83
|
-
catch {
|
|
84
|
-
// Not valid JSON, try next potential end
|
|
85
|
-
continue;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
return null;
|
|
35
|
+
return coreExtractJson(content) ?? null;
|
|
89
36
|
}
|
|
90
37
|
/**
|
|
91
38
|
* Parser for LLM responses with optional Zod schema validation.
|