@mcp-ts/sdk 1.5.2 → 1.6.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 +89 -27
- package/dist/adapters/agui-adapter.d.mts +1 -1
- package/dist/adapters/agui-adapter.d.ts +1 -1
- package/dist/adapters/agui-adapter.js +76 -19
- package/dist/adapters/agui-adapter.js.map +1 -1
- package/dist/adapters/agui-adapter.mjs +76 -19
- package/dist/adapters/agui-adapter.mjs.map +1 -1
- package/dist/adapters/agui-middleware.d.mts +5 -1
- package/dist/adapters/agui-middleware.d.ts +5 -1
- package/dist/adapters/agui-middleware.js +116 -49
- package/dist/adapters/agui-middleware.js.map +1 -1
- package/dist/adapters/agui-middleware.mjs +117 -50
- package/dist/adapters/agui-middleware.mjs.map +1 -1
- package/dist/adapters/ai-adapter.d.mts +1 -1
- package/dist/adapters/ai-adapter.d.ts +1 -1
- package/dist/adapters/ai-adapter.js +76 -19
- package/dist/adapters/ai-adapter.js.map +1 -1
- package/dist/adapters/ai-adapter.mjs +76 -19
- package/dist/adapters/ai-adapter.mjs.map +1 -1
- package/dist/adapters/langchain-adapter.d.mts +1 -1
- package/dist/adapters/langchain-adapter.d.ts +1 -1
- package/dist/adapters/langchain-adapter.js +76 -19
- package/dist/adapters/langchain-adapter.js.map +1 -1
- package/dist/adapters/langchain-adapter.mjs +76 -19
- package/dist/adapters/langchain-adapter.mjs.map +1 -1
- package/dist/client/react.js.map +1 -1
- package/dist/client/react.mjs.map +1 -1
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +207 -43
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +207 -44
- package/dist/index.mjs.map +1 -1
- package/dist/server/index.js +1 -3
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +1 -3
- package/dist/server/index.mjs.map +1 -1
- package/dist/shared/index.d.mts +15 -8
- package/dist/shared/index.d.ts +15 -8
- package/dist/shared/index.js +206 -40
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/index.mjs +206 -41
- package/dist/shared/index.mjs.map +1 -1
- package/dist/{tool-router-DsKhRmJm.d.ts → tool-router-Bn9R0KWr.d.ts} +56 -7
- package/dist/{tool-router-DK0RJblO.d.mts → tool-router-_O2tIwf7.d.mts} +56 -7
- package/package.json +5 -3
- package/src/adapters/agui-middleware.ts +163 -59
- package/src/server/mcp/oauth-client.ts +4 -4
- package/src/shared/index.ts +4 -0
- package/src/shared/meta-tools.ts +172 -37
- package/src/shared/tool-index.ts +123 -7
- package/src/shared/tool-router.ts +40 -7
|
@@ -28,10 +28,20 @@
|
|
|
28
28
|
|
|
29
29
|
import type { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
30
30
|
import type { ToolClient, ToolClientProvider } from './types.js';
|
|
31
|
-
import {
|
|
31
|
+
import {
|
|
32
|
+
ToolIndex,
|
|
33
|
+
type IndexedTool,
|
|
34
|
+
type ToolLookupOptions,
|
|
35
|
+
type ToolListResult,
|
|
36
|
+
type ToolSearchOptions,
|
|
37
|
+
type ToolServerSummary,
|
|
38
|
+
type ToolSummary,
|
|
39
|
+
type EmbedFn,
|
|
40
|
+
} from './tool-index.js';
|
|
32
41
|
import { SchemaCompressor, type CompactTool } from './schema-compressor.js';
|
|
33
42
|
import {
|
|
34
43
|
createSearchToolDefinition,
|
|
44
|
+
createListServersToolDefinition,
|
|
35
45
|
createRegexSearchToolDefinition,
|
|
36
46
|
createGetSchemaToolDefinition,
|
|
37
47
|
createExecuteToolDefinition,
|
|
@@ -159,7 +169,7 @@ export class ToolRouter {
|
|
|
159
169
|
* This is the main method adapters should call.
|
|
160
170
|
*
|
|
161
171
|
* - `all` → returns all tools (unchanged behavior)
|
|
162
|
-
* - `search` → returns only meta-tools (
|
|
172
|
+
* - `search` → returns only meta-tools (mcp_search_tools, mcp_get_tool_schema, mcp_execute_tool)
|
|
163
173
|
* - `groups` → returns tools from active groups only
|
|
164
174
|
*/
|
|
165
175
|
async getFilteredTools(): Promise<Tool[]> {
|
|
@@ -195,9 +205,14 @@ export class ToolRouter {
|
|
|
195
205
|
* Search tools by natural-language query.
|
|
196
206
|
* Works regardless of strategy.
|
|
197
207
|
*/
|
|
198
|
-
async searchTools(
|
|
208
|
+
async searchTools(
|
|
209
|
+
query: string,
|
|
210
|
+
topK?: number,
|
|
211
|
+
options: ToolSearchOptions = {}
|
|
212
|
+
): Promise<ToolSummary[]> {
|
|
199
213
|
await this.ensureInitialized();
|
|
200
|
-
|
|
214
|
+
const limit = topK ?? this.maxTools;
|
|
215
|
+
return this.index.search(query, limit, options);
|
|
201
216
|
}
|
|
202
217
|
|
|
203
218
|
/**
|
|
@@ -209,12 +224,28 @@ export class ToolRouter {
|
|
|
209
224
|
return this.index.searchRegex(pattern, topK ?? this.maxTools);
|
|
210
225
|
}
|
|
211
226
|
|
|
227
|
+
/** List connected MCP servers with indexed tool counts. */
|
|
228
|
+
async listServers(options: ToolSearchOptions = {}): Promise<ToolServerSummary[]> {
|
|
229
|
+
await this.ensureInitialized();
|
|
230
|
+
return this.index.listServers(options);
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
/** List tools deterministically, optionally scoped to a server. */
|
|
234
|
+
async listTools(options: ToolSearchOptions & { limit?: number; cursor?: string } = {}): Promise<ToolListResult> {
|
|
235
|
+
await this.ensureInitialized();
|
|
236
|
+
return this.index.listTools(options);
|
|
237
|
+
}
|
|
238
|
+
|
|
212
239
|
/**
|
|
213
240
|
* Get the full tool definition by name.
|
|
214
241
|
* If tool name is ambiguous, use namespace to specify the server.
|
|
215
242
|
*/
|
|
216
|
-
getToolSchema(
|
|
217
|
-
|
|
243
|
+
getToolSchema(
|
|
244
|
+
toolName: string,
|
|
245
|
+
namespace?: string,
|
|
246
|
+
options: ToolLookupOptions = {}
|
|
247
|
+
): IndexedTool | undefined {
|
|
248
|
+
const matches = this.index.getTool(toolName, namespace, options);
|
|
218
249
|
|
|
219
250
|
if (matches.length === 0) return undefined;
|
|
220
251
|
|
|
@@ -318,7 +349,7 @@ export class ToolRouter {
|
|
|
318
349
|
throw new Error(
|
|
319
350
|
`Tool "${toolName}" not found${
|
|
320
351
|
namespace ? ` on server "${namespace}"` : ''
|
|
321
|
-
}. Use
|
|
352
|
+
}. Use mcp_search_tools or mcp_search_tool_regex to discover available tools.`
|
|
322
353
|
);
|
|
323
354
|
}
|
|
324
355
|
|
|
@@ -462,9 +493,11 @@ export class ToolRouter {
|
|
|
462
493
|
private getMetaToolDefinitions(): Tool[] {
|
|
463
494
|
return [
|
|
464
495
|
createSearchToolDefinition(),
|
|
496
|
+
createListServersToolDefinition(),
|
|
465
497
|
createRegexSearchToolDefinition(),
|
|
466
498
|
createGetSchemaToolDefinition(),
|
|
467
499
|
createExecuteToolDefinition(),
|
|
468
500
|
];
|
|
469
501
|
}
|
|
502
|
+
|
|
470
503
|
}
|