@cogitator-ai/mcp 17.0.11 → 19.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/README.md +63 -22
- package/dist/adapter/tool-adapter.d.ts +7 -3
- package/dist/adapter/tool-adapter.d.ts.map +1 -1
- package/dist/adapter/tool-adapter.js +99 -29
- package/dist/adapter/tool-adapter.js.map +1 -1
- package/dist/client/mcp-client.d.ts +32 -5
- package/dist/client/mcp-client.d.ts.map +1 -1
- package/dist/client/mcp-client.js +188 -102
- package/dist/client/mcp-client.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/server/mcp-server.d.ts +19 -6
- package/dist/server/mcp-server.d.ts.map +1 -1
- package/dist/server/mcp-server.js +167 -141
- package/dist/server/mcp-server.js.map +1 -1
- package/dist/types.d.ts +12 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +11 -12
package/README.md
CHANGED
|
@@ -171,12 +171,14 @@ interface MCPRetryConfig {
|
|
|
171
171
|
|
|
172
172
|
#### Automatic Retry Behavior
|
|
173
173
|
|
|
174
|
-
All MCP operations (`callTool`, `listResources`, `readResource`, `listPrompts`, `getPrompt`) automatically retry on:
|
|
174
|
+
All MCP operations (`callTool`, `listResources`, `readResource`, `listPrompts`, `getPrompt`) automatically retry on transient failures:
|
|
175
175
|
|
|
176
|
-
- Connection errors (ECONNREFUSED, ECONNRESET,
|
|
177
|
-
-
|
|
176
|
+
- Connection errors (ECONNREFUSED, ECONNRESET, closed connections)
|
|
177
|
+
- Request timeouts
|
|
178
178
|
- Network failures
|
|
179
179
|
|
|
180
|
+
Deterministic failures are **not** retried: JSON-RPC protocol errors from the server (invalid params, unknown tool, internal handler errors), tool results with `isError: true`, and calls whose `signal` was aborted fail immediately.
|
|
181
|
+
|
|
180
182
|
When a connection error is detected with `autoReconnect: true`, the client will:
|
|
181
183
|
|
|
182
184
|
1. Close the existing connection
|
|
@@ -184,6 +186,8 @@ When a connection error is detected with `autoReconnect: true`, the client will:
|
|
|
184
186
|
3. Reconnect with exponential backoff
|
|
185
187
|
4. Continue the operation on the new connection
|
|
186
188
|
|
|
189
|
+
Concurrent operations that lose the connection at the same time share a single reconnection.
|
|
190
|
+
|
|
187
191
|
#### Manual Reconnection
|
|
188
192
|
|
|
189
193
|
```typescript
|
|
@@ -219,10 +223,15 @@ const tools = await client.getTools();
|
|
|
219
223
|
|
|
220
224
|
const result = await client.callTool('tool_name', { arg: 'value' });
|
|
221
225
|
|
|
226
|
+
const controller = new AbortController();
|
|
227
|
+
await client.callTool('slow_tool', {}, { signal: controller.signal, timeout: 10_000 });
|
|
228
|
+
|
|
222
229
|
const resources = await client.listResources();
|
|
223
230
|
|
|
224
231
|
const content = await client.readResource('file://path/to/file');
|
|
225
232
|
|
|
233
|
+
const allParts = await client.readResourceContents('file://path/to/dir');
|
|
234
|
+
|
|
226
235
|
const prompts = await client.listPrompts();
|
|
227
236
|
|
|
228
237
|
const messages = await client.getPrompt('prompt_name', { arg: 'value' });
|
|
@@ -230,6 +239,24 @@ const messages = await client.getPrompt('prompt_name', { arg: 'value' });
|
|
|
230
239
|
await client.close();
|
|
231
240
|
```
|
|
232
241
|
|
|
242
|
+
### Tool Results and Errors
|
|
243
|
+
|
|
244
|
+
`callTool` returns the server's `structuredContent` when present; otherwise the content blocks are unwrapped — text blocks are JSON-parsed when possible, a single block is returned as-is, multiple blocks are returned as an array, and an empty result is `null`.
|
|
245
|
+
|
|
246
|
+
When the server reports a tool failure (`isError: true`), `callTool` throws an `MCPToolError` carrying the tool name and the original content blocks. Tools produced by `getTools()` / `wrapMCPTools()` therefore surface MCP tool failures as regular Cogitator tool errors, and they forward the run's abort signal to the server.
|
|
247
|
+
|
|
248
|
+
```typescript
|
|
249
|
+
import { MCPToolError } from '@cogitator-ai/mcp';
|
|
250
|
+
|
|
251
|
+
try {
|
|
252
|
+
await client.callTool('delete_file', { path: '/protected' });
|
|
253
|
+
} catch (error) {
|
|
254
|
+
if (error instanceof MCPToolError) {
|
|
255
|
+
console.error(error.toolName, error.message, error.content);
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
```
|
|
259
|
+
|
|
233
260
|
### Helper Function
|
|
234
261
|
|
|
235
262
|
For quick one-liner connections:
|
|
@@ -287,13 +314,17 @@ interface MCPServerConfig {
|
|
|
287
314
|
transport: 'stdio' | 'http' | 'sse';
|
|
288
315
|
|
|
289
316
|
// For HTTP transport
|
|
290
|
-
port?: number; // Default: 3000
|
|
317
|
+
port?: number; // Default: 3000 (use 0 for a random free port)
|
|
291
318
|
host?: string; // Default: 'localhost'
|
|
319
|
+
maxBodySize?: number; // Default: 10 MB, larger bodies get 413
|
|
320
|
+
corsOrigin?: string; // Default: '*'
|
|
292
321
|
|
|
293
|
-
logging?: boolean; //
|
|
322
|
+
logging?: boolean; // Diagnostic logging to stderr (stdout stays clean for stdio JSON-RPC)
|
|
294
323
|
}
|
|
295
324
|
```
|
|
296
325
|
|
|
326
|
+
Tool arguments are validated by the MCP SDK against the tool's full Zod schema (including refinements, transforms and object modifiers such as `z.looseObject`). Invalid arguments and thrown errors are returned to the client as `isError` tool results. Errors thrown by resource `read` and prompt `get` handlers are returned as JSON-RPC errors.
|
|
327
|
+
|
|
297
328
|
### Server Methods
|
|
298
329
|
|
|
299
330
|
```typescript
|
|
@@ -318,9 +349,10 @@ server.unregisterPrompt('summarize'); // only before start()
|
|
|
318
349
|
server.getRegisteredPrompts();
|
|
319
350
|
|
|
320
351
|
// Lifecycle
|
|
321
|
-
await server.start();
|
|
352
|
+
await server.start(); // rejects if the HTTP port cannot be bound
|
|
322
353
|
server.isRunning();
|
|
323
|
-
|
|
354
|
+
server.getPort(); // bound HTTP port, useful with port: 0
|
|
355
|
+
await server.stop(); // also closes open HTTP connections
|
|
324
356
|
```
|
|
325
357
|
|
|
326
358
|
### Registering Resources
|
|
@@ -632,21 +664,30 @@ const result = zodSchema.parse({
|
|
|
632
664
|
|
|
633
665
|
### Supported Conversions
|
|
634
666
|
|
|
635
|
-
| JSON Schema | Zod
|
|
636
|
-
| -------------------------------- |
|
|
637
|
-
| `string` | `z.string()`
|
|
638
|
-
| `string` + `minLength/maxLength` | `z.string().min().max()`
|
|
639
|
-
| `string` + `pattern` | `z.string().regex()`
|
|
640
|
-
| `string` + `format: email` | `z.string().email()`
|
|
641
|
-
| `string` + `format: uri` | `z.string().url()`
|
|
642
|
-
| `number` | `z.number()`
|
|
643
|
-
| `integer` | `z.number().int()`
|
|
644
|
-
| `number` + `minimum/maximum` | `z.number().min().max()`
|
|
645
|
-
| `boolean` | `z.boolean()`
|
|
646
|
-
| `array` | `z.array()`
|
|
647
|
-
| `object` | `z.object()`
|
|
648
|
-
| `
|
|
649
|
-
| `
|
|
667
|
+
| JSON Schema | Zod |
|
|
668
|
+
| -------------------------------- | -------------------------------- |
|
|
669
|
+
| `string` | `z.string()` |
|
|
670
|
+
| `string` + `minLength/maxLength` | `z.string().min().max()` |
|
|
671
|
+
| `string` + `pattern` | `z.string().regex()` |
|
|
672
|
+
| `string` + `format: email` | `z.string().email()` |
|
|
673
|
+
| `string` + `format: uri` | `z.string().url()` |
|
|
674
|
+
| `number` | `z.number()` |
|
|
675
|
+
| `integer` | `z.number().int()` |
|
|
676
|
+
| `number` + `minimum/maximum` | `z.number().min().max()` |
|
|
677
|
+
| `boolean` | `z.boolean()` |
|
|
678
|
+
| `array` | `z.array()` |
|
|
679
|
+
| `object` | `z.object()` |
|
|
680
|
+
| `object` without `properties` | `z.looseObject({})` |
|
|
681
|
+
| `additionalProperties: true` | `z.looseObject()` |
|
|
682
|
+
| `additionalProperties: {schema}` | `.catchall()` / `z.record()` |
|
|
683
|
+
| `null` | `z.null()` |
|
|
684
|
+
| `enum` | `z.enum()` / literal union |
|
|
685
|
+
| `const` | `z.literal()` |
|
|
686
|
+
| `type: ['string', 'null']` | `z.union()` |
|
|
687
|
+
| `nullable: true` (OpenAPI) | `.nullable()` |
|
|
688
|
+
| `oneOf` / `anyOf` / `allOf` | `z.union()` / `z.intersection()` |
|
|
689
|
+
|
|
690
|
+
Patterns that are not valid ECMAScript regular expressions are ignored instead of failing the whole conversion.
|
|
650
691
|
|
|
651
692
|
---
|
|
652
693
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Converts between Cogitator Tool format and MCP Tool format.
|
|
5
5
|
* Enables bidirectional interoperability.
|
|
6
6
|
*/
|
|
7
|
-
import { type ZodTypeAny, type ZodObject } from 'zod';
|
|
7
|
+
import { z, type ZodTypeAny, type ZodObject } from 'zod';
|
|
8
8
|
import type { Tool, ToolSchema } from '@cogitator-ai/types';
|
|
9
9
|
import type { MCPToolDefinition, MCPToolContent, ToolAdapterOptions } from '../types.js';
|
|
10
10
|
import type { MCPClient } from '../client/mcp-client.js';
|
|
@@ -26,9 +26,12 @@ export declare function jsonSchemaToZod(schema: {
|
|
|
26
26
|
type: string;
|
|
27
27
|
properties?: Record<string, JsonSchemaProperty>;
|
|
28
28
|
required?: string[];
|
|
29
|
-
|
|
29
|
+
additionalProperties?: boolean | JsonSchemaProperty;
|
|
30
|
+
}): ZodObject<Record<string, ZodTypeAny>, z.core.$ZodObjectConfig>;
|
|
30
31
|
interface JsonSchemaProperty {
|
|
31
|
-
type?: string;
|
|
32
|
+
type?: string | string[];
|
|
33
|
+
const?: unknown;
|
|
34
|
+
nullable?: boolean;
|
|
32
35
|
description?: string;
|
|
33
36
|
enum?: unknown[];
|
|
34
37
|
items?: JsonSchemaProperty;
|
|
@@ -41,6 +44,7 @@ interface JsonSchemaProperty {
|
|
|
41
44
|
maxLength?: number;
|
|
42
45
|
pattern?: string;
|
|
43
46
|
format?: string;
|
|
47
|
+
additionalProperties?: boolean | JsonSchemaProperty;
|
|
44
48
|
oneOf?: JsonSchemaProperty[];
|
|
45
49
|
anyOf?: JsonSchemaProperty[];
|
|
46
50
|
allOf?: JsonSchemaProperty[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-adapter.d.ts","sourceRoot":"","sources":["../../src/adapter/tool-adapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"tool-adapter.d.ts","sourceRoot":"","sources":["../../src/adapter/tool-adapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,KAAK,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,KAAK,CAAC;AACzD,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAe,MAAM,qBAAqB,CAAC;AACzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACtF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG;IACnD,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB,CAeA;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAChD,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,oBAAoB,CAAC,EAAE,OAAO,GAAG,kBAAkB,CAAC;CACrD,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAmCjE;AAED,UAAU,kBAAkB;IAC1B,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAChD,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oBAAoB,CAAC,EAAE,OAAO,GAAG,kBAAkB,CAAC;IACpD,KAAK,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC7B,KAAK,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC7B,KAAK,CAAC,EAAE,kBAAkB,EAAE,CAAC;CAC9B;AA2ID;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,iBAAiB,CAY5D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,iBAAiB,CAUrE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,iBAAiB,EAC1B,MAAM,EAAE,SAAS,EACjB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,IAAI,CAyCN;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,SAAS,EACjB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,IAAI,EAAE,CAAC,CAGjB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG,cAAc,EAAE,CAkBpE;AA8BD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,OAAO,CAiBrE"}
|
|
@@ -25,9 +25,12 @@ export function zodToJsonSchema(schema) {
|
|
|
25
25
|
* Complex schemas may need manual adjustment.
|
|
26
26
|
*/
|
|
27
27
|
export function jsonSchemaToZod(schema) {
|
|
28
|
-
if (schema.type !== 'object'
|
|
28
|
+
if (schema.type !== 'object') {
|
|
29
29
|
return z.object({});
|
|
30
30
|
}
|
|
31
|
+
if (!schema.properties) {
|
|
32
|
+
return schema.additionalProperties === false ? z.object({}) : z.looseObject({});
|
|
33
|
+
}
|
|
31
34
|
const shape = {};
|
|
32
35
|
const required = new Set(schema.required ?? []);
|
|
33
36
|
for (const [key, prop] of Object.entries(schema.properties)) {
|
|
@@ -43,9 +46,38 @@ export function jsonSchemaToZod(schema) {
|
|
|
43
46
|
}
|
|
44
47
|
shape[key] = zodType;
|
|
45
48
|
}
|
|
49
|
+
if (schema.additionalProperties === true) {
|
|
50
|
+
return z.looseObject(shape);
|
|
51
|
+
}
|
|
52
|
+
if (typeof schema.additionalProperties === 'object' && schema.additionalProperties !== null) {
|
|
53
|
+
return z.object(shape).catchall(jsonSchemaPropertyToZod(schema.additionalProperties));
|
|
54
|
+
}
|
|
46
55
|
return z.object(shape);
|
|
47
56
|
}
|
|
57
|
+
function isJsonLiteral(value) {
|
|
58
|
+
return (value === null ||
|
|
59
|
+
typeof value === 'string' ||
|
|
60
|
+
typeof value === 'number' ||
|
|
61
|
+
typeof value === 'boolean');
|
|
62
|
+
}
|
|
48
63
|
function jsonSchemaPropertyToZod(prop) {
|
|
64
|
+
const schema = jsonSchemaPropertyToZodInner(prop);
|
|
65
|
+
return prop.nullable === true ? schema.nullable() : schema;
|
|
66
|
+
}
|
|
67
|
+
function jsonSchemaPropertyToZodInner(prop) {
|
|
68
|
+
if (Array.isArray(prop.type)) {
|
|
69
|
+
const variants = prop.type.map((type) => jsonSchemaPropertyToZodInner({ ...prop, type }));
|
|
70
|
+
if (variants.length === 0) {
|
|
71
|
+
return z.unknown();
|
|
72
|
+
}
|
|
73
|
+
if (variants.length === 1) {
|
|
74
|
+
return variants[0];
|
|
75
|
+
}
|
|
76
|
+
return z.union(variants);
|
|
77
|
+
}
|
|
78
|
+
if (prop.const !== undefined && isJsonLiteral(prop.const)) {
|
|
79
|
+
return z.literal(prop.const);
|
|
80
|
+
}
|
|
49
81
|
if (prop.allOf && prop.allOf.length > 0) {
|
|
50
82
|
const schemas = prop.allOf.map((variant) => jsonSchemaPropertyToZod(variant));
|
|
51
83
|
return schemas.reduce((acc, schema) => z.intersection(acc, schema));
|
|
@@ -58,17 +90,16 @@ function jsonSchemaPropertyToZod(prop) {
|
|
|
58
90
|
}
|
|
59
91
|
return z.union(schemas);
|
|
60
92
|
}
|
|
61
|
-
if (prop.enum &&
|
|
62
|
-
|
|
63
|
-
|
|
93
|
+
if (Array.isArray(prop.enum) && prop.enum.length > 0 && prop.enum.every(isJsonLiteral)) {
|
|
94
|
+
const values = prop.enum;
|
|
95
|
+
if (values.length >= 2 && values.every((v) => typeof v === 'string')) {
|
|
96
|
+
return z.enum(values);
|
|
64
97
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
return
|
|
68
|
-
}
|
|
69
|
-
if (prop.enum.length === 1) {
|
|
70
|
-
return z.literal(prop.enum[0]);
|
|
98
|
+
const literals = values.map((v) => z.literal(v));
|
|
99
|
+
if (literals.length === 1) {
|
|
100
|
+
return literals[0];
|
|
71
101
|
}
|
|
102
|
+
return z.union([literals[0], literals[1], ...literals.slice(2)]);
|
|
72
103
|
}
|
|
73
104
|
switch (prop.type) {
|
|
74
105
|
case 'string': {
|
|
@@ -80,7 +111,10 @@ function jsonSchemaPropertyToZod(prop) {
|
|
|
80
111
|
schema = schema.max(prop.maxLength);
|
|
81
112
|
}
|
|
82
113
|
if (prop.pattern) {
|
|
83
|
-
|
|
114
|
+
const pattern = compilePattern(prop.pattern);
|
|
115
|
+
if (pattern) {
|
|
116
|
+
schema = schema.regex(pattern);
|
|
117
|
+
}
|
|
84
118
|
}
|
|
85
119
|
if (prop.format === 'email') {
|
|
86
120
|
schema = schema.email();
|
|
@@ -113,8 +147,12 @@ function jsonSchemaPropertyToZod(prop) {
|
|
|
113
147
|
type: 'object',
|
|
114
148
|
properties: prop.properties,
|
|
115
149
|
required: prop.required,
|
|
150
|
+
additionalProperties: prop.additionalProperties,
|
|
116
151
|
});
|
|
117
152
|
}
|
|
153
|
+
if (typeof prop.additionalProperties === 'object' && prop.additionalProperties !== null) {
|
|
154
|
+
return z.record(z.string(), jsonSchemaPropertyToZod(prop.additionalProperties));
|
|
155
|
+
}
|
|
118
156
|
return z.record(z.string(), z.unknown());
|
|
119
157
|
}
|
|
120
158
|
case 'null':
|
|
@@ -123,6 +161,19 @@ function jsonSchemaPropertyToZod(prop) {
|
|
|
123
161
|
return z.unknown();
|
|
124
162
|
}
|
|
125
163
|
}
|
|
164
|
+
function compilePattern(pattern) {
|
|
165
|
+
try {
|
|
166
|
+
return new RegExp(pattern, 'u');
|
|
167
|
+
}
|
|
168
|
+
catch {
|
|
169
|
+
try {
|
|
170
|
+
return new RegExp(pattern);
|
|
171
|
+
}
|
|
172
|
+
catch {
|
|
173
|
+
return undefined;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
126
177
|
/**
|
|
127
178
|
* Convert a Cogitator Tool to MCP tool definition format
|
|
128
179
|
*/
|
|
@@ -162,25 +213,29 @@ export function mcpToCogitator(mcpTool, client, options) {
|
|
|
162
213
|
const description = options?.descriptionTransform
|
|
163
214
|
? options.descriptionTransform(mcpTool.description)
|
|
164
215
|
: mcpTool.description;
|
|
216
|
+
const rawInputSchema = mcpTool.inputSchema;
|
|
165
217
|
const inputSchema = {
|
|
166
218
|
type: 'object',
|
|
167
|
-
properties:
|
|
168
|
-
required:
|
|
219
|
+
properties: rawInputSchema.properties,
|
|
220
|
+
required: rawInputSchema.required,
|
|
221
|
+
additionalProperties: rawInputSchema.additionalProperties,
|
|
169
222
|
};
|
|
170
223
|
const parameters = jsonSchemaToZod(inputSchema);
|
|
171
224
|
const tool = {
|
|
172
225
|
name,
|
|
173
226
|
description,
|
|
174
227
|
parameters,
|
|
175
|
-
execute: async (params,
|
|
176
|
-
return client.callTool(mcpTool.name, params)
|
|
228
|
+
execute: async (params, context) => {
|
|
229
|
+
return client.callTool(mcpTool.name, (params ?? {}), {
|
|
230
|
+
signal: context?.signal,
|
|
231
|
+
});
|
|
177
232
|
},
|
|
178
233
|
toJSON: () => ({
|
|
179
234
|
name,
|
|
180
235
|
description,
|
|
181
236
|
parameters: {
|
|
182
237
|
type: 'object',
|
|
183
|
-
properties: mcpTool.inputSchema.properties,
|
|
238
|
+
properties: mcpTool.inputSchema.properties ?? {},
|
|
184
239
|
required: mcpTool.inputSchema.required,
|
|
185
240
|
},
|
|
186
241
|
}),
|
|
@@ -215,15 +270,38 @@ export function resultToMCPContent(result) {
|
|
|
215
270
|
return [{ type: 'text', text: result }];
|
|
216
271
|
}
|
|
217
272
|
if (typeof result === 'object') {
|
|
218
|
-
if (Array.isArray(result) &&
|
|
219
|
-
result.length > 0 &&
|
|
220
|
-
result.every((item) => typeof item === 'object' && item !== null && 'type' in item)) {
|
|
273
|
+
if (Array.isArray(result) && result.length > 0 && result.every(isMCPToolContent)) {
|
|
221
274
|
return result;
|
|
222
275
|
}
|
|
223
276
|
return [{ type: 'text', text: JSON.stringify(result, null, 2) }];
|
|
224
277
|
}
|
|
225
278
|
return [{ type: 'text', text: String(result) }];
|
|
226
279
|
}
|
|
280
|
+
/**
|
|
281
|
+
* Check whether a value is a well-formed MCP tool content block
|
|
282
|
+
*/
|
|
283
|
+
function isMCPToolContent(value) {
|
|
284
|
+
if (typeof value !== 'object' || value === null) {
|
|
285
|
+
return false;
|
|
286
|
+
}
|
|
287
|
+
const item = value;
|
|
288
|
+
switch (item.type) {
|
|
289
|
+
case 'text':
|
|
290
|
+
return typeof item.text === 'string';
|
|
291
|
+
case 'image':
|
|
292
|
+
case 'audio':
|
|
293
|
+
return typeof item.data === 'string' && typeof item.mimeType === 'string';
|
|
294
|
+
case 'resource': {
|
|
295
|
+
const resource = item.resource;
|
|
296
|
+
return (typeof resource === 'object' &&
|
|
297
|
+
resource !== null &&
|
|
298
|
+
typeof resource.uri === 'string' &&
|
|
299
|
+
(typeof resource.text === 'string' || typeof resource.blob === 'string'));
|
|
300
|
+
}
|
|
301
|
+
default:
|
|
302
|
+
return false;
|
|
303
|
+
}
|
|
304
|
+
}
|
|
227
305
|
/**
|
|
228
306
|
* Convert MCP content to a simple result value
|
|
229
307
|
*/
|
|
@@ -231,16 +309,7 @@ export function mcpContentToResult(content) {
|
|
|
231
309
|
if (!content || content.length === 0) {
|
|
232
310
|
return null;
|
|
233
311
|
}
|
|
234
|
-
|
|
235
|
-
const text = content[0].text;
|
|
236
|
-
try {
|
|
237
|
-
return JSON.parse(text);
|
|
238
|
-
}
|
|
239
|
-
catch {
|
|
240
|
-
return text;
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
return content.map((item) => {
|
|
312
|
+
const values = content.map((item) => {
|
|
244
313
|
if (item.type === 'text') {
|
|
245
314
|
try {
|
|
246
315
|
return JSON.parse(item.text);
|
|
@@ -251,5 +320,6 @@ export function mcpContentToResult(content) {
|
|
|
251
320
|
}
|
|
252
321
|
return item;
|
|
253
322
|
});
|
|
323
|
+
return values.length === 1 ? values[0] : values;
|
|
254
324
|
}
|
|
255
325
|
//# sourceMappingURL=tool-adapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-adapter.js","sourceRoot":"","sources":["../../src/adapter/tool-adapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tool-adapter.js","sourceRoot":"","sources":["../../src/adapter/tool-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,16 @@
|
|
|
5
5
|
* resources, and prompts.
|
|
6
6
|
*/
|
|
7
7
|
import type { Tool } from '@cogitator-ai/types';
|
|
8
|
-
import type { MCPClientConfig, MCPResource, MCPResourceContent, MCPPrompt, MCPPromptMessage, MCPToolDefinition } from '../types.js';
|
|
8
|
+
import type { MCPClientConfig, MCPResource, MCPResourceContent, MCPPrompt, MCPPromptMessage, MCPToolDefinition, MCPToolContent, MCPCallToolOptions } from '../types.js';
|
|
9
|
+
/**
|
|
10
|
+
* Error raised when an MCP server reports a tool failure (`isError: true`).
|
|
11
|
+
* Tool failures are deterministic results, so they are never retried.
|
|
12
|
+
*/
|
|
13
|
+
export declare class MCPToolError extends Error {
|
|
14
|
+
readonly toolName: string;
|
|
15
|
+
readonly content: MCPToolContent[];
|
|
16
|
+
constructor(toolName: string, content: MCPToolContent[]);
|
|
17
|
+
}
|
|
9
18
|
/**
|
|
10
19
|
* MCP Client for connecting to external MCP servers
|
|
11
20
|
*
|
|
@@ -35,7 +44,8 @@ export declare class MCPClient {
|
|
|
35
44
|
private client;
|
|
36
45
|
private transport;
|
|
37
46
|
private connected;
|
|
38
|
-
private
|
|
47
|
+
private closed;
|
|
48
|
+
private reconnectPromise;
|
|
39
49
|
private config;
|
|
40
50
|
private retryConfig;
|
|
41
51
|
private serverCapabilities;
|
|
@@ -65,9 +75,14 @@ export declare class MCPClient {
|
|
|
65
75
|
*/
|
|
66
76
|
isReconnecting(): boolean;
|
|
67
77
|
/**
|
|
68
|
-
* Attempt to reconnect to the server
|
|
78
|
+
* Attempt to reconnect to the server.
|
|
79
|
+
*
|
|
80
|
+
* Concurrent callers share the same in-flight reconnection, so parallel
|
|
81
|
+
* operations that all observe a dropped connection wait for one reconnect
|
|
82
|
+
* instead of failing.
|
|
69
83
|
*/
|
|
70
84
|
reconnect(): Promise<void>;
|
|
85
|
+
private performReconnect;
|
|
71
86
|
/**
|
|
72
87
|
* Execute an operation with retry logic
|
|
73
88
|
*/
|
|
@@ -85,15 +100,27 @@ export declare class MCPClient {
|
|
|
85
100
|
/**
|
|
86
101
|
* Call a tool on the MCP server with automatic retry on failure
|
|
87
102
|
*/
|
|
88
|
-
|
|
103
|
+
/**
|
|
104
|
+
* Call a tool on the MCP server with automatic retry on transient failures.
|
|
105
|
+
*
|
|
106
|
+
* Returns `structuredContent` when the server provides it, otherwise the
|
|
107
|
+
* text/JSON value(s) of the content blocks. Throws {@link MCPToolError}
|
|
108
|
+
* when the server reports `isError: true`; such failures are not retried.
|
|
109
|
+
*/
|
|
110
|
+
callTool(name: string, args: Record<string, unknown>, options?: MCPCallToolOptions): Promise<unknown>;
|
|
89
111
|
/**
|
|
90
112
|
* List available resources from the MCP server with automatic retry
|
|
91
113
|
*/
|
|
92
114
|
listResources(): Promise<MCPResource[]>;
|
|
93
115
|
/**
|
|
94
|
-
* Read a resource from the MCP server with automatic retry
|
|
116
|
+
* Read a resource from the MCP server with automatic retry.
|
|
117
|
+
* Returns the first content entry; use {@link readResourceContents} for all of them.
|
|
95
118
|
*/
|
|
96
119
|
readResource(uri: string): Promise<MCPResourceContent>;
|
|
120
|
+
/**
|
|
121
|
+
* Read every content entry of a resource (e.g. multi-part or templated resources)
|
|
122
|
+
*/
|
|
123
|
+
readResourceContents(uri: string): Promise<MCPResourceContent[]>;
|
|
97
124
|
/**
|
|
98
125
|
* List available prompts from the MCP server with automatic retry
|
|
99
126
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-client.d.ts","sourceRoot":"","sources":["../../src/client/mcp-client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"mcp-client.d.ts","sourceRoot":"","sources":["../../src/client/mcp-client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAEhD,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACX,kBAAkB,EAClB,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EAEd,kBAAkB,EACnB,MAAM,UAAU,CAAC;AAkBlB;;;GAGG;AACH,qBAAa,YAAa,SAAQ,KAAK;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC;gBAEvB,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE;CAUxD;AA8BD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,gBAAgB,CAA8B;IACtD,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,kBAAkB,CAInB;IAEP,OAAO;IAOP;;OAEG;WACU,OAAO,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC;IAajE;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IA4B9B;;OAEG;YACW,UAAU;IAkCxB;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACH,eAAe,IAAI,OAAO,IAAI,CAAC,kBAAkB;IAIjD;;OAEG;IACH,cAAc,IAAI,OAAO;IAIzB;;;;;;OAMG;IACH,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;YAYZ,gBAAgB;IAmD9B;;OAEG;YACW,SAAS;IA+DvB;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAyBzD;;;;OAIG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IAKjC;;OAEG;IACH;;;;;;OAMG;IACG,QAAQ,CACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,OAAO,CAAC;IAiCnB;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IA0B7C;;;OAGG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAK5D;;OAEG;IACG,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAYtE;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IA6BzC;;OAEG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAiBzF;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAW7B;AA8BD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC;IACvE,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B,CAAC,CASD"}
|