agent-discover 1.1.3 → 1.2.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.
@@ -2,7 +2,7 @@
2
2
  "id": "agent-discover",
3
3
  "name": "Discover",
4
4
  "icon": "explore",
5
- "version": "1.1.3",
5
+ "version": "1.2.0",
6
6
  "description": "MCP server registry — browse, install, configure, monitor",
7
7
  "ui": "./dist/ui/app.js",
8
8
  "css": "./dist/ui/styles.css",
@@ -0,0 +1,12 @@
1
+ export type Embedding = Float32Array;
2
+ export interface EmbeddingProvider {
3
+ enabled: boolean;
4
+ model: string;
5
+ /** Embed a batch of texts. Returns one Float32Array per input, in order. */
6
+ embed(texts: string[]): Promise<Embedding[]>;
7
+ }
8
+ export declare function makeEmbeddingProvider(): EmbeddingProvider;
9
+ export declare function cosineSimilarity(a: Embedding, b: Embedding): number;
10
+ export declare function encodeEmbedding(emb: Embedding): string;
11
+ export declare function decodeEmbedding(encoded: string): Embedding;
12
+ //# sourceMappingURL=embeddings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embeddings.d.ts","sourceRoot":"","sources":["../../src/domain/embeddings.ts"],"names":[],"mappings":"AAkBA,MAAM,MAAM,SAAS,GAAG,YAAY,CAAC;AAErC,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,4EAA4E;IAC5E,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;CAC9C;AAED,wBAAgB,qBAAqB,IAAI,iBAAiB,CAgBzD;AAgCD,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,GAAG,MAAM,CAYnE;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,CAKtD;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAI1D"}
@@ -0,0 +1,87 @@
1
+ // =============================================================================
2
+ // agent-discover — Embeddings provider
3
+ //
4
+ // Generates dense vector representations of tool names + descriptions for
5
+ // semantic search. Uses OpenAI text-embedding-3-small (1536 dims) when an
6
+ // OPENAI_API_KEY is available; falls back to a no-op (BM25-only ranking
7
+ // stays the default behavior in that case).
8
+ //
9
+ // The provider is intentionally minimal — no abstractions, no plugin layer,
10
+ // no batching beyond the API's natural multi-input request. Adding more
11
+ // providers later (Cohere, local sentence-transformers, etc.) is a copy-and-
12
+ // modify rather than a framework decision.
13
+ // =============================================================================
14
+ const EMBEDDING_MODEL = process.env.AGENT_DISCOVER_EMBEDDING_MODEL ?? 'text-embedding-3-small';
15
+ const EMBEDDING_DIMS = 1536; // text-embedding-3-small native dimensionality
16
+ const OPENAI_API_BASE = process.env.OPENAI_API_BASE ?? 'https://api.openai.com/v1';
17
+ export function makeEmbeddingProvider() {
18
+ const apiKey = process.env.OPENAI_API_KEY;
19
+ if (!apiKey) {
20
+ return {
21
+ enabled: false,
22
+ model: EMBEDDING_MODEL,
23
+ async embed(texts) {
24
+ return texts.map(() => new Float32Array(EMBEDDING_DIMS));
25
+ },
26
+ };
27
+ }
28
+ return {
29
+ enabled: true,
30
+ model: EMBEDDING_MODEL,
31
+ embed: (texts) => embedOpenAI(texts, apiKey),
32
+ };
33
+ }
34
+ // OpenAI embeddings API supports up to ~2048 inputs per request and ~8191
35
+ // tokens per input. We chunk large batches into safe-sized requests.
36
+ const MAX_BATCH = 256;
37
+ async function embedOpenAI(texts, apiKey) {
38
+ const out = [];
39
+ for (let i = 0; i < texts.length; i += MAX_BATCH) {
40
+ const batch = texts.slice(i, i + MAX_BATCH);
41
+ const res = await fetch(`${OPENAI_API_BASE}/embeddings`, {
42
+ method: 'POST',
43
+ headers: {
44
+ 'Content-Type': 'application/json',
45
+ Authorization: `Bearer ${apiKey}`,
46
+ },
47
+ body: JSON.stringify({ model: EMBEDDING_MODEL, input: batch }),
48
+ });
49
+ if (!res.ok) {
50
+ const text = await res.text().catch(() => '');
51
+ throw new Error(`OpenAI embeddings failed: HTTP ${res.status} ${text.slice(0, 200)}`);
52
+ }
53
+ const json = (await res.json());
54
+ // The API returns results in input-order, but be defensive: sort by index.
55
+ const sorted = [...json.data].sort((a, b) => a.index - b.index);
56
+ for (const row of sorted) {
57
+ out.push(Float32Array.from(row.embedding));
58
+ }
59
+ }
60
+ return out;
61
+ }
62
+ export function cosineSimilarity(a, b) {
63
+ if (a.length !== b.length)
64
+ return 0;
65
+ let dot = 0;
66
+ let normA = 0;
67
+ let normB = 0;
68
+ for (let i = 0; i < a.length; i++) {
69
+ dot += a[i] * b[i];
70
+ normA += a[i] * a[i];
71
+ normB += b[i] * b[i];
72
+ }
73
+ const denom = Math.sqrt(normA) * Math.sqrt(normB);
74
+ return denom === 0 ? 0 : dot / denom;
75
+ }
76
+ export function encodeEmbedding(emb) {
77
+ // Float32Array → base64 string. Compact (4 bytes per dim, base64-encoded
78
+ // = ~5.3 bytes per dim), and SQLite TEXT-friendly.
79
+ const buf = Buffer.from(emb.buffer, emb.byteOffset, emb.byteLength);
80
+ return buf.toString('base64');
81
+ }
82
+ export function decodeEmbedding(encoded) {
83
+ const buf = Buffer.from(encoded, 'base64');
84
+ // Buffer's underlying ArrayBuffer may be a slice — pass the right offset+length.
85
+ return new Float32Array(buf.buffer, buf.byteOffset, buf.byteLength / 4);
86
+ }
87
+ //# sourceMappingURL=embeddings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embeddings.js","sourceRoot":"","sources":["../../src/domain/embeddings.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import type { ServerEntry, ServerCreateInput, ServerUpdateInput, ServerTool } fr
4
4
  export declare class RegistryService {
5
5
  private readonly db;
6
6
  private readonly events;
7
+ private readonly embeddings;
7
8
  constructor(db: Db, events: EventBus);
8
9
  register(input: ServerCreateInput): ServerEntry;
9
10
  update(name: string, updates: ServerUpdateInput): ServerEntry;
@@ -29,6 +30,20 @@ export declare class RegistryService {
29
30
  description?: string;
30
31
  inputSchema?: Record<string, unknown>;
31
32
  }>): void;
33
+ /**
34
+ * Async variant of saveTools that ALSO computes and stores embeddings for
35
+ * each tool. Use this when an embedding provider is available
36
+ * (OPENAI_API_KEY set). Synchronous saveTools is unchanged so existing
37
+ * callers don't break — embeddings are an opt-in upgrade.
38
+ */
39
+ saveToolsWithEmbeddings(serverId: number, tools: Array<{
40
+ name: string;
41
+ description?: string;
42
+ inputSchema?: Record<string, unknown>;
43
+ }>): Promise<{
44
+ embedded: number;
45
+ skipped: number;
46
+ }>;
32
47
  getTools(serverId: number): ServerTool[];
33
48
  clearTools(serverId: number): void;
34
49
  /**
@@ -46,5 +61,25 @@ export declare class RegistryService {
46
61
  server_name: string;
47
62
  score: number;
48
63
  }>;
64
+ /**
65
+ * Hybrid retrieval: union of BM25 top-K and pure-cosine top-K, then
66
+ * re-ranked by combined score. Use this whenever the registry has been
67
+ * seeded with embeddings — it dramatically improves natural-language query
68
+ * accuracy by closing the "billing arrangement → subscription" semantic
69
+ * gap that BM25 alone misses.
70
+ *
71
+ * Why both: BM25-only misses paraphrased queries (no candidate has the
72
+ * literal keywords). Pure-cosine-only misses exact-keyword queries where
73
+ * BM25 has higher precision. Taking the union of candidates from both
74
+ * sides and re-ranking by the combined score handles both regimes.
75
+ *
76
+ * Cost: brute-force cosine over the entire embedded catalog. At N=10k
77
+ * with 1536-dim float32 embeddings that's ~60ms — well within budget.
78
+ * Falls back to plain BM25 when the embedding provider is disabled.
79
+ */
80
+ searchToolsHybrid(query: string, limit?: number): Promise<Array<ServerTool & {
81
+ server_name: string;
82
+ score: number;
83
+ }>>;
49
84
  }
50
85
  //# sourceMappingURL=registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/domain/registry.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAyEjG,qBAAa,eAAe;IAExB,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,EAAE,EAAE,EAAE,EACN,MAAM,EAAE,QAAQ;IAGnC,QAAQ,CAAC,KAAK,EAAE,iBAAiB,GAAG,WAAW;IAwC/C,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,WAAW;IA2C7D,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,WAAW;IAM/D,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAQ9B,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,WAAW,EAAE;IAyB3F,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,WAAW,EAAE;IA2B5F,OAAO,CAAC,cAAc;IAwBtB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAK3C,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAKvC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI;IAO9C,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAOrC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI;IAWpD,SAAS,CACP,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,KAAK,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACvC,CAAC,GACD,IAAI;IAUP,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,EAAE;IAMxC,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIlC;;;;;;;;;;OAUG;IACH,WAAW,CACT,KAAK,EAAE,MAAM,EACb,KAAK,SAAI,GACR,KAAK,CAAC,UAAU,GAAG;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAuD9D"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/domain/registry.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AA2JjG,qBAAa,eAAe;IAIxB,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJzB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;gBAG5B,EAAE,EAAE,EAAE,EACN,MAAM,EAAE,QAAQ;IAKnC,QAAQ,CAAC,KAAK,EAAE,iBAAiB,GAAG,WAAW;IAwC/C,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,WAAW;IA2C7D,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,WAAW;IAM/D,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAQ9B,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,WAAW,EAAE;IAyB3F,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,WAAW,EAAE;IA2B5F,OAAO,CAAC,cAAc;IAwBtB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAK3C,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAKvC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI;IAO9C,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAOrC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI;IAWpD,SAAS,CACP,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,KAAK,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACvC,CAAC,GACD,IAAI;IAUP;;;;;OAKG;IACG,uBAAuB,CAC3B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,KAAK,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACvC,CAAC,GACD,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAsCjD,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,EAAE;IAMxC,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIlC;;;;;;;;;;OAUG;IACH,WAAW,CACT,KAAK,EAAE,MAAM,EACb,KAAK,SAAI,GACR,KAAK,CAAC,UAAU,GAAG;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAiE7D;;;;;;;;;;;;;;;OAeG;IACG,iBAAiB,CACrB,KAAK,EAAE,MAAM,EACb,KAAK,SAAI,GACR,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CA0DvE"}
@@ -5,7 +5,82 @@
5
5
  // and uninstallation of MCP servers.
6
6
  // =============================================================================
7
7
  import { NotFoundError, ValidationError, ConflictError } from '../types.js';
8
+ import { makeEmbeddingProvider, cosineSimilarity, encodeEmbedding, decodeEmbedding, } from './embeddings.js';
8
9
  const VALID_NAME = /^[a-zA-Z0-9][a-zA-Z0-9._-]*$/;
10
+ // Map natural-language verbs to canonical CRUD verbs used in tool names.
11
+ // Each query verb expands to its canonical form (added to the token list,
12
+ // not replaced — keeps the original word so descriptions that DO use the
13
+ // natural form still match). Hand-curated from observed bench failures.
14
+ const VERB_SYNONYMS = {
15
+ // create-family
16
+ add: 'create',
17
+ make: 'create',
18
+ new: 'create',
19
+ open: 'create',
20
+ provision: 'create',
21
+ register: 'create',
22
+ // get-family
23
+ fetch: 'get',
24
+ retrieve: 'get',
25
+ read: 'get',
26
+ load: 'get',
27
+ pull: 'get',
28
+ // list-family
29
+ show: 'list',
30
+ display: 'list',
31
+ enumerate: 'list',
32
+ browse: 'list',
33
+ // update-family
34
+ change: 'update',
35
+ edit: 'update',
36
+ modify: 'update',
37
+ set: 'update',
38
+ patch: 'update',
39
+ // delete-family
40
+ cancel: 'delete',
41
+ remove: 'delete',
42
+ destroy: 'delete',
43
+ drop: 'delete',
44
+ // search-family
45
+ find: 'search',
46
+ query: 'search',
47
+ lookup: 'search',
48
+ };
49
+ // Strip trailing plural 's' so "subscriptions" matches "subscription". Naive
50
+ // but covers ~95% of English plurals in API resource names; FTS5 has no
51
+ // built-in stemming and switching to tokenize='porter' would require a
52
+ // migration. Skip very short words (us, gas, etc) and -ss endings (class,
53
+ // access).
54
+ function singularize(token) {
55
+ if (token.length <= 3)
56
+ return token;
57
+ if (token.endsWith('ies'))
58
+ return token.slice(0, -3) + 'y';
59
+ if (token.endsWith('ses') || token.endsWith('xes'))
60
+ return token.slice(0, -2);
61
+ if (token.endsWith('ss'))
62
+ return token;
63
+ if (token.endsWith('s'))
64
+ return token.slice(0, -1);
65
+ return token;
66
+ }
67
+ function expandVerbSynonyms(tokens) {
68
+ const out = [];
69
+ const seen = new Set();
70
+ for (const t of tokens) {
71
+ const sing = singularize(t);
72
+ if (!seen.has(sing)) {
73
+ seen.add(sing);
74
+ out.push(sing);
75
+ }
76
+ const canonical = VERB_SYNONYMS[t] || VERB_SYNONYMS[sing];
77
+ if (canonical && !seen.has(canonical)) {
78
+ seen.add(canonical);
79
+ out.push(canonical);
80
+ }
81
+ }
82
+ return out;
83
+ }
9
84
  function rowToServer(row) {
10
85
  return {
11
86
  id: row.id,
@@ -43,9 +118,11 @@ function rowToTool(row) {
43
118
  export class RegistryService {
44
119
  db;
45
120
  events;
121
+ embeddings;
46
122
  constructor(db, events) {
47
123
  this.db = db;
48
124
  this.events = events;
125
+ this.embeddings = makeEmbeddingProvider();
49
126
  }
50
127
  register(input) {
51
128
  if (!input.name)
@@ -225,6 +302,45 @@ export class RegistryService {
225
302
  this.db.run('INSERT INTO server_tools (server_id, name, description, input_schema) VALUES (?, ?, ?, ?)', [serverId, tool.name, tool.description ?? '', JSON.stringify(tool.inputSchema ?? {})]);
226
303
  }
227
304
  }
305
+ /**
306
+ * Async variant of saveTools that ALSO computes and stores embeddings for
307
+ * each tool. Use this when an embedding provider is available
308
+ * (OPENAI_API_KEY set). Synchronous saveTools is unchanged so existing
309
+ * callers don't break — embeddings are an opt-in upgrade.
310
+ */
311
+ async saveToolsWithEmbeddings(serverId, tools) {
312
+ if (!this.embeddings.enabled) {
313
+ this.saveTools(serverId, tools);
314
+ return { embedded: 0, skipped: tools.length };
315
+ }
316
+ // Build the embedding inputs: name + description, with the name repeated
317
+ // to up-weight name matches in the semantic space (mirrors how the BM25
318
+ // path weights name 4x description).
319
+ const inputs = tools.map((t) => `${t.name}\n${t.name}\n${t.description ?? ''}`.slice(0, 2000));
320
+ let vectors;
321
+ try {
322
+ vectors = await this.embeddings.embed(inputs);
323
+ }
324
+ catch (err) {
325
+ process.stderr.write(`[registry] embedding batch failed: ${err.message} — falling back to BM25-only\n`);
326
+ this.saveTools(serverId, tools);
327
+ return { embedded: 0, skipped: tools.length };
328
+ }
329
+ this.db.run('DELETE FROM server_tools WHERE server_id = ?', [serverId]);
330
+ for (let i = 0; i < tools.length; i++) {
331
+ const tool = tools[i];
332
+ const encoded = encodeEmbedding(vectors[i]);
333
+ this.db.run('INSERT INTO server_tools (server_id, name, description, input_schema, embedding, embedding_model) VALUES (?, ?, ?, ?, ?, ?)', [
334
+ serverId,
335
+ tool.name,
336
+ tool.description ?? '',
337
+ JSON.stringify(tool.inputSchema ?? {}),
338
+ encoded,
339
+ this.embeddings.model,
340
+ ]);
341
+ }
342
+ return { embedded: tools.length, skipped: 0 };
343
+ }
228
344
  getTools(serverId) {
229
345
  return this.db
230
346
  .queryAll('SELECT * FROM server_tools WHERE server_id = ? ORDER BY name', [serverId])
@@ -251,13 +367,21 @@ export class RegistryService {
251
367
  // Build an FTS5 query: each token becomes an OR'd prefix match. Quoting
252
368
  // each token with double quotes lets us pass through punctuation safely
253
369
  // (FTS5 reserved chars like - and . blow up otherwise).
254
- const tokens = q
370
+ const rawTokens = q
255
371
  .toLowerCase()
256
372
  .split(/[\s_\-/]+/)
257
373
  .filter((t) => t.length >= 2)
258
374
  .map((t) => t.replace(/["*]/g, ''));
259
- if (tokens.length === 0)
375
+ if (rawTokens.length === 0)
260
376
  return [];
377
+ // Verb synonym expansion. Tool names use canonical CRUD verbs
378
+ // (create, get, list, update, delete, search, export, import) but the
379
+ // agent's natural-language queries use synonyms ("fetch", "show",
380
+ // "change", "cancel", ...). Without expansion, BM25 sees those as
381
+ // unrelated tokens — bench measured this exact failure mode at N=1000.
382
+ // Expanding the query verb to its canonical form before search fixes
383
+ // ~80% of verb-disambiguation cases without changing the index.
384
+ const tokens = expandVerbSynonyms(rawTokens);
261
385
  const ftsQuery = tokens.map((t) => `"${t}"*`).join(' OR ');
262
386
  try {
263
387
  // bm25(server_tools_fts, name_weight, description_weight) — weighting
@@ -281,7 +405,7 @@ export class RegistryService {
281
405
  // confidence signal) so callers default to medium-confidence treatment.
282
406
  const conds = [];
283
407
  const params = [];
284
- for (const t of tokens) {
408
+ for (const t of rawTokens) {
285
409
  conds.push('(LOWER(t.name) LIKE ? OR LOWER(t.description) LIKE ?)');
286
410
  params.push(`%${t}%`, `%${t}%`);
287
411
  }
@@ -296,5 +420,74 @@ export class RegistryService {
296
420
  const rows = this.db.queryAll(sql, params);
297
421
  return rows.map((r) => ({ ...rowToTool(r), server_name: r.server_name, score: 0 }));
298
422
  }
423
+ /**
424
+ * Hybrid retrieval: union of BM25 top-K and pure-cosine top-K, then
425
+ * re-ranked by combined score. Use this whenever the registry has been
426
+ * seeded with embeddings — it dramatically improves natural-language query
427
+ * accuracy by closing the "billing arrangement → subscription" semantic
428
+ * gap that BM25 alone misses.
429
+ *
430
+ * Why both: BM25-only misses paraphrased queries (no candidate has the
431
+ * literal keywords). Pure-cosine-only misses exact-keyword queries where
432
+ * BM25 has higher precision. Taking the union of candidates from both
433
+ * sides and re-ranking by the combined score handles both regimes.
434
+ *
435
+ * Cost: brute-force cosine over the entire embedded catalog. At N=10k
436
+ * with 1536-dim float32 embeddings that's ~60ms — well within budget.
437
+ * Falls back to plain BM25 when the embedding provider is disabled.
438
+ */
439
+ async searchToolsHybrid(query, limit = 5) {
440
+ if (!this.embeddings.enabled) {
441
+ return this.searchTools(query, limit);
442
+ }
443
+ let queryVec;
444
+ try {
445
+ const [vec] = await this.embeddings.embed([query]);
446
+ queryVec = vec;
447
+ }
448
+ catch {
449
+ return this.searchTools(query, limit);
450
+ }
451
+ // Pure cosine over EVERY embedded tool. Brute force is fine at any
452
+ // realistic catalog size; the alternative (an ANN index) adds a native
453
+ // dep for marginal benefit below ~100k tools.
454
+ const allEmbedded = this.db.queryAll(`SELECT t.*, s.name AS server_name
455
+ FROM server_tools t
456
+ JOIN servers s ON s.id = t.server_id
457
+ WHERE t.embedding IS NOT NULL`, []);
458
+ const semanticScored = allEmbedded.map((row) => {
459
+ const emb = decodeEmbedding(row.embedding);
460
+ return { row, cosine: cosineSimilarity(queryVec, emb) };
461
+ });
462
+ // Take top 4×limit semantic candidates so the re-rank set has headroom.
463
+ semanticScored.sort((a, b) => b.cosine - a.cosine);
464
+ const topSemantic = semanticScored.slice(0, Math.max(limit * 4, 20));
465
+ // Pull BM25 candidates in parallel and merge by tool id. BM25 contributes
466
+ // exact-keyword precision; semantic contributes paraphrase recall.
467
+ const bm25Candidates = this.searchTools(query, Math.max(limit * 4, 20));
468
+ const bm25Max = Math.max(...bm25Candidates.map((r) => r.score), 1e-9);
469
+ const bm25ById = new Map();
470
+ for (const c of bm25Candidates)
471
+ bm25ById.set(c.id, c.score / bm25Max);
472
+ const merged = new Map();
473
+ for (const { row, cosine } of topSemantic) {
474
+ const lex = bm25ById.get(row.id) ?? 0;
475
+ // 70% semantic, 30% lexical — favor the embedding signal because
476
+ // that's what handles natural-language queries the bench identified.
477
+ const hybrid = 0.7 * cosine + 0.3 * lex;
478
+ merged.set(row.id, {
479
+ ...rowToTool(row),
480
+ server_name: row.server_name,
481
+ score: hybrid,
482
+ });
483
+ }
484
+ for (const c of bm25Candidates) {
485
+ if (merged.has(c.id))
486
+ continue;
487
+ merged.set(c.id, { ...c, score: 0.3 * (c.score / bm25Max) });
488
+ }
489
+ const ranked = [...merged.values()].sort((a, b) => b.score - a.score);
490
+ return ranked.slice(0, limit);
491
+ }
299
492
  }
300
493
  //# sourceMappingURL=registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/domain/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/domain/registry.ts"],"names":[],"mappings":"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"}
@@ -167,5 +167,18 @@ const migrations = [
167
167
  `);
168
168
  },
169
169
  },
170
+ {
171
+ version: 5,
172
+ up: (db) => {
173
+ // Tier 3: semantic search via embeddings. Each tool gets a vector
174
+ // representation of its name+description, stored as a JSON-encoded
175
+ // float32 array. Brute-force cosine similarity at query time — fast
176
+ // enough for any realistic catalog (~10ms for N=10k on modern CPUs)
177
+ // and avoids a native ANN dependency. Embeddings are optional: tools
178
+ // without an embedding fall back to BM25 ranking only.
179
+ addColumnIfMissing(db, 'server_tools', 'embedding', 'TEXT');
180
+ addColumnIfMissing(db, 'server_tools', 'embedding_model', 'TEXT');
181
+ },
182
+ },
170
183
  ];
171
184
  //# sourceMappingURL=database.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/storage/database.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,iCAAiC;AACjC,EAAE;AACF,wEAAwE;AACxE,oEAAoE;AACpE,6EAA6E;AAC7E,0EAA0E;AAC1E,4EAA4E;AAC5E,6BAA6B;AAC7B,gFAAgF;AAGhF,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,EACL,QAAQ,IAAI,WAAW,EACvB,kBAAkB,EAClB,SAAS,GAGV,MAAM,cAAc,CAAC;AAWtB,MAAM,UAAU,QAAQ,CAAC,UAAqB,EAAE;IAC9C,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,OAAO,WAAW,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;AAC7F,CAAC;AAED,SAAS,aAAa,CAAC,IAAa;IAClC,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IACtB,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IAC9C,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC;IAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;IACvC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpC,OAAO,IAAI,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;AACxC,CAAC;AAED,8EAA8E;AAC9E,kEAAkE;AAClE,0EAA0E;AAC1E,wDAAwD;AACxD,8EAA8E;AAE9E,MAAM,UAAU,GAAgB;IAC9B;QACE,OAAO,EAAE,CAAC;QACV,EAAE,EAAE,CAAC,EAAqB,EAAE,EAAE;YAC5B,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmDP,CAAC,CAAC;QACL,CAAC;KACF;IACD;QACE,OAAO,EAAE,CAAC;QACV,EAAE,EAAE,CAAC,EAAqB,EAAE,EAAE;YAC5B,kBAAkB,CAAC,EAAE,EAAE,SAAS,EAAE,iBAAiB,EAAE,6BAA6B,CAAC,CAAC;YACpF,kBAAkB,CAAC,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,CAAC,CAAC;YAC5D,kBAAkB,CAAC,EAAE,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,CAAC,CAAC;YAC/D,kBAAkB,CAAC,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,wBAAwB,CAAC,CAAC;YAC7E,kBAAkB,CAAC,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,mBAAmB,CAAC,CAAC;YAEtE,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;OAsBP,CAAC,CAAC;QACL,CAAC;KACF;IACD;QACE,OAAO,EAAE,CAAC;QACV,EAAE,EAAE,CAAC,EAAqB,EAAE,EAAE;YAC5B,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,iBAAiB,CAAC,EAAE,CAAC;gBAChD,EAAE,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;KACF;IACD;QACE,OAAO,EAAE,CAAC;QACV,EAAE,EAAE,CAAC,EAAqB,EAAE,EAAE;YAC5B,iEAAiE;YACjE,qEAAqE;YACrE,qEAAqE;YACrE,qEAAqE;YACrE,wEAAwE;YACxE,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BP,CAAC,CAAC;QACL,CAAC;KACF;CACF,CAAC"}
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/storage/database.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-handlers.d.ts","sourceRoot":"","sources":["../../src/transport/mcp-handlers.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGhD,KAAK,SAAS,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAydhG,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAElD,CAAC"}
1
+ {"version":3,"file":"mcp-handlers.d.ts","sourceRoot":"","sources":["../../src/transport/mcp-handlers.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGhD,KAAK,SAAS,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AA+nBhG,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAElD,CAAC"}
@@ -39,10 +39,14 @@ const handleRegistry = async (ctx, args) => {
39
39
  return registryStatus(ctx, args);
40
40
  case 'find_tool':
41
41
  return registryFindTool(ctx, args);
42
+ case 'find_tools':
43
+ return registryFindTools(ctx, args);
42
44
  case 'get_schema':
43
45
  return registryGetSchema(ctx, args);
46
+ case 'proxy_call':
47
+ return registryProxyCall(ctx, args);
44
48
  default:
45
- throw new ValidationError(`Unknown registry action: "${action}". Valid: list, install, uninstall, activate, deactivate, browse, status, find_tool, get_schema`);
49
+ throw new ValidationError(`Unknown registry action: "${action}". Valid: list, install, uninstall, activate, deactivate, browse, status, find_tool, find_tools, get_schema, proxy_call`);
46
50
  }
47
51
  };
48
52
  // ---------------------------------------------------------------------------
@@ -316,7 +320,20 @@ const registryFindTool = async (ctx, args) => {
316
320
  if (!query)
317
321
  throw new ValidationError('query is required');
318
322
  const limit = optNum(args.limit, 5);
319
- const matches = ctx.registry.searchTools(query, limit);
323
+ // When auto_activate is true (default), find_tool starts the owning child
324
+ // server AND emits notifications/tools/list_changed so the host can refetch
325
+ // the proxied tools and call them directly. This is convenient at small N
326
+ // but at large N (>1k tools) it causes the host to receive a huge tool
327
+ // catalog that may not fit in the model context. When false, the server is
328
+ // started silently and the agent must use action:"proxy_call" to invoke
329
+ // the tool via agent-discover instead of directly. Use false for huge
330
+ // catalogs.
331
+ const autoActivate = args.auto_activate !== false;
332
+ // Prefer hybrid (BM25 + semantic) when embeddings are available — closes
333
+ // the natural-language gap that pure BM25 misses (e.g., "billing
334
+ // arrangement" → "subscription"). Falls back to pure BM25 internally if
335
+ // the embedding provider is disabled.
336
+ const matches = await ctx.registry.searchToolsHybrid(query, limit);
320
337
  if (matches.length === 0) {
321
338
  return {
322
339
  found: false,
@@ -326,26 +343,33 @@ const registryFindTool = async (ctx, args) => {
326
343
  }
327
344
  const top = matches[0];
328
345
  const confidence = deriveConfidence(matches.map((m) => m.score));
329
- // Auto-activate the owning server so the agent can call the proxied tool
330
- // immediately on the next turn (no separate activate round-trip).
331
- if (!ctx.proxy.isActive(top.server_name)) {
332
- const server = ctx.registry.getByName(top.server_name);
333
- if (server &&
334
- (server.command || server.transport === 'sse' || server.transport === 'streamable-http')) {
335
- try {
336
- await ctx.proxy.activate({
337
- name: server.name,
338
- command: server.command ?? undefined,
339
- args: server.args,
340
- env: server.env,
341
- transport: server.transport,
342
- url: server.homepage ?? undefined,
343
- });
346
+ // Activate the owning server so the proxy is connected and ready. When
347
+ // autoActivate is true, ALL of the server's tools also get exposed to the
348
+ // host via getToolList — the bloat trigger at large N. When false, we
349
+ // still spin up the proxy connection (so proxy_call works) but don't mark
350
+ // the server as "active" in the registry, which keeps getToolList minimal.
351
+ const server = ctx.registry.getByName(top.server_name);
352
+ const canActivate = server &&
353
+ (server.command || server.transport === 'sse' || server.transport === 'streamable-http');
354
+ if (canActivate && !ctx.proxy.isActive(top.server_name)) {
355
+ try {
356
+ await ctx.proxy.activate({
357
+ name: server.name,
358
+ command: server.command ?? undefined,
359
+ args: server.args,
360
+ env: server.env,
361
+ transport: server.transport,
362
+ url: server.homepage ?? undefined,
363
+ });
364
+ // Only flip the registry's active flag (which makes getToolList expose
365
+ // proxied tools to the host) when autoActivate was requested. Otherwise
366
+ // the proxy is connected behind agent-discover and reachable via
367
+ // proxy_call without leaking thousands of tool schemas to the host.
368
+ if (autoActivate)
344
369
  ctx.registry.setActive(server.name, true);
345
- }
346
- catch {
347
- /* fall through — agent can still see the schema summary even if activation failed */
348
- }
370
+ }
371
+ catch {
372
+ /* fall through — agent can still see the schema summary even if activation failed */
349
373
  }
350
374
  }
351
375
  const compact = compactSchema(top.input_schema);
@@ -374,6 +398,146 @@ const registryFindTool = async (ctx, args) => {
374
398
  })),
375
399
  };
376
400
  };
401
+ // Multi-intent variant of find_tool. Halves the number of round-trips for
402
+ // tasks that chain N tools (e.g., "query Sentry then create a Linear issue"):
403
+ // the agent submits all intents in one call and gets back N independent
404
+ // results. Each result has the same shape as a single find_tool response.
405
+ const registryFindTools = async (ctx, args) => {
406
+ const intents = Array.isArray(args.intents) ? args.intents.filter(Boolean) : [];
407
+ if (intents.length === 0)
408
+ throw new ValidationError('intents (string[]) is required');
409
+ if (intents.length > 10)
410
+ throw new ValidationError('max 10 intents per call');
411
+ const limit = optNum(args.limit, 5);
412
+ // Run sequentially so we share auto-activation across the batch (the second
413
+ // intent's owning server may already be active from the first).
414
+ const results = [];
415
+ for (const intent of intents) {
416
+ const matches = await ctx.registry.searchToolsHybrid(intent, limit);
417
+ if (matches.length === 0) {
418
+ results.push({ intent, found: false, hint: 'no tools matched' });
419
+ continue;
420
+ }
421
+ const top = matches[0];
422
+ const confidence = deriveConfidence(matches.map((m) => m.score));
423
+ if (!ctx.proxy.isActive(top.server_name)) {
424
+ const server = ctx.registry.getByName(top.server_name);
425
+ if (server &&
426
+ (server.command || server.transport === 'sse' || server.transport === 'streamable-http')) {
427
+ try {
428
+ await ctx.proxy.activate({
429
+ name: server.name,
430
+ command: server.command ?? undefined,
431
+ args: server.args,
432
+ env: server.env,
433
+ transport: server.transport,
434
+ url: server.homepage ?? undefined,
435
+ });
436
+ ctx.registry.setActive(server.name, true);
437
+ }
438
+ catch {
439
+ /* fall through */
440
+ }
441
+ }
442
+ }
443
+ const compact = compactSchema(top.input_schema);
444
+ results.push({
445
+ intent,
446
+ found: true,
447
+ confidence,
448
+ score: top.score,
449
+ call_as: `mcp__${top.server_name}__${top.name}`,
450
+ tool: top.name,
451
+ description: top.description,
452
+ required_args: compact.required_args,
453
+ optional_count: compact.optional_count,
454
+ other_matches: matches.slice(1, 3).map((m) => ({
455
+ call_as: `mcp__${m.server_name}__${m.name}`,
456
+ tool: m.name,
457
+ description: m.description,
458
+ score: m.score,
459
+ })),
460
+ });
461
+ }
462
+ return { results };
463
+ };
464
+ // Invoke a proxied tool through agent-discover WITHOUT exposing it to the
465
+ // host's tool catalog. The agent calls find_tool first (with auto_activate:
466
+ // false), gets a call_as identifier, then uses proxy_call to invoke the tool
467
+ // indirectly. This keeps agent-discover at a constant 5-tool surface area
468
+ // regardless of how many tools its registered child servers actually expose
469
+ // — critical at large catalog sizes where firing notifications/tools/
470
+ // list_changed would flood the host with thousands of schemas.
471
+ const registryProxyCall = async (ctx, args) => {
472
+ const callAs = str(args.call_as);
473
+ const directServer = str(args.server);
474
+ const directTool = str(args.tool);
475
+ const toolArgs = typeof args.arguments === 'object' && args.arguments !== null
476
+ ? args.arguments
477
+ : {};
478
+ let serverName;
479
+ let toolName;
480
+ if (callAs) {
481
+ const m = /^mcp__([^_]+(?:[^_]|_(?!_))*)__(.+)$/.exec(callAs);
482
+ if (!m) {
483
+ throw new ValidationError(`call_as must be of the form "mcp__<server>__<tool>" — got "${callAs}"`);
484
+ }
485
+ serverName = m[1];
486
+ toolName = m[2];
487
+ }
488
+ else if (directServer && directTool) {
489
+ serverName = directServer;
490
+ toolName = directTool;
491
+ }
492
+ else {
493
+ throw new ValidationError('proxy_call requires either call_as or both server+tool');
494
+ }
495
+ // Auto-spin-up the server if it isn't connected yet (silent — no
496
+ // list_changed notification, no host catalog reload). Mirrors the
497
+ // find_tool({auto_activate:false}) path.
498
+ if (!ctx.proxy.isActive(serverName)) {
499
+ const server = ctx.registry.getByName(serverName);
500
+ if (!server) {
501
+ return {
502
+ isError: true,
503
+ content: [{ type: 'text', text: `unknown server "${serverName}"` }],
504
+ };
505
+ }
506
+ if (!server.command && server.transport !== 'sse' && server.transport !== 'streamable-http') {
507
+ return {
508
+ isError: true,
509
+ content: [{ type: 'text', text: `server "${serverName}" has no command` }],
510
+ };
511
+ }
512
+ try {
513
+ await ctx.proxy.activate({
514
+ name: server.name,
515
+ command: server.command ?? undefined,
516
+ args: server.args,
517
+ env: server.env,
518
+ transport: server.transport,
519
+ url: server.homepage ?? undefined,
520
+ });
521
+ }
522
+ catch (err) {
523
+ return {
524
+ isError: true,
525
+ content: [
526
+ { type: 'text', text: `failed to activate "${serverName}": ${err.message}` },
527
+ ],
528
+ };
529
+ }
530
+ }
531
+ try {
532
+ return await ctx.proxy.callTool(serverName, toolName, toolArgs);
533
+ }
534
+ catch (err) {
535
+ return {
536
+ isError: true,
537
+ content: [{ type: 'text', text: `tool call failed: ${err.message}` }],
538
+ };
539
+ }
540
+ };
377
541
  // Returns the full input_schema for a tool the agent already discovered via
378
542
  // find_tool. Use this only when the compact required_args list isn't enough
379
543
  // to invoke the tool (e.g., for tools with conditional or polymorphic args).
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-handlers.js","sourceRoot":"","sources":["../../src/transport/mcp-handlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-handlers.js","sourceRoot":"","sources":["../../src/transport/mcp-handlers.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/transport/mcp.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAQlD,eAAO,MAAM,KAAK,EAAE,cAAc,EAqDjC,CAAC;AAMF,MAAM,MAAM,WAAW,GAAG,CACxB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC1B,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAEhC,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,UAAU,GAAG,WAAW,CAc9D;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,UAAU,GAAG,cAAc,EAAE,CAU7D"}
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/transport/mcp.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAQlD,eAAO,MAAM,KAAK,EAAE,cAAc,EAiFjC,CAAC;AAMF,MAAM,MAAM,WAAW,GAAG,CACxB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC1B,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAEhC,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,UAAU,GAAG,WAAW,CA0C9D;AAyCD,wBAAgB,WAAW,CAAC,GAAG,EAAE,UAAU,GAAG,cAAc,EAAE,CAU7D"}
@@ -15,7 +15,7 @@ import { toolHandlers } from './mcp-handlers.js';
15
15
  export const tools = [
16
16
  {
17
17
  name: 'registry',
18
- description: 'MCP server registry. Actions: "find_tool" (single-call tool discovery — BM25-ranked search by intent, returns top match with required args, confidence label, and auto-activates server; PREFER THIS for tool discovery), "get_schema" (full input_schema for a tool already returned by find_tool — only needed for fat schemas with optional/polymorphic args), "list" (search local registry by server), "install" (add server from marketplace or manual config), "uninstall" (remove server), "activate" / "deactivate" (start/stop server and expose/hide its tools), "browse" (search official MCP registry), "status" (show active servers and tools).',
18
+ description: 'MCP server registry. Actions: "find_tool" (single-call tool discovery — BM25-ranked search by intent, returns top match with required args, confidence label, and auto-activates server; PREFER THIS for tool discovery), "find_tools" (batch find_tool — pass intents:[\'intent1\',\'intent2\',...] to discover N tools in ONE round-trip; use for multi-step tasks), "get_schema" (full input_schema for a tool already returned by find_tool — only needed for fat schemas with optional/polymorphic args), "list" (search local registry by server), "install" (add server from marketplace or manual config), "uninstall" (remove server), "activate" / "deactivate" (start/stop server and expose/hide its tools), "browse" (search official MCP registry), "status" (show active servers and tools).',
19
19
  inputSchema: {
20
20
  type: 'object',
21
21
  properties: {
@@ -23,7 +23,9 @@ export const tools = [
23
23
  type: 'string',
24
24
  enum: [
25
25
  'find_tool',
26
+ 'find_tools',
26
27
  'get_schema',
28
+ 'proxy_call',
27
29
  'list',
28
30
  'install',
29
31
  'uninstall',
@@ -34,10 +36,34 @@ export const tools = [
34
36
  ],
35
37
  description: 'Action to perform',
36
38
  },
37
- limit: { type: 'number', description: '[find_tool/browse] Max results' },
39
+ limit: {
40
+ type: 'number',
41
+ description: '[find_tool/find_tools/browse] Max results per query',
42
+ },
43
+ intents: {
44
+ type: 'array',
45
+ items: { type: 'string' },
46
+ description: '[find_tools] Array of intent strings — one per tool you need to discover',
47
+ },
38
48
  call_as: {
39
49
  type: 'string',
40
- description: '[get_schema] Fully-qualified mcp__server__tool name from find_tool',
50
+ description: '[get_schema/proxy_call] Fully-qualified mcp__server__tool name from find_tool',
51
+ },
52
+ server: {
53
+ type: 'string',
54
+ description: '[proxy_call] Server name (alternative to call_as)',
55
+ },
56
+ tool: {
57
+ type: 'string',
58
+ description: '[proxy_call] Tool name (alternative to call_as)',
59
+ },
60
+ arguments: {
61
+ type: 'object',
62
+ description: '[proxy_call] Arguments to pass to the proxied tool',
63
+ },
64
+ auto_activate: {
65
+ type: 'boolean',
66
+ description: '[find_tool/find_tools] When false (recommended for huge catalogs), do not expose the proxied tools to the host. Use proxy_call to invoke them instead. Default true.',
41
67
  },
42
68
  query: { type: 'string', description: '[list/browse] Search query' },
43
69
  source: { type: 'string', description: '[list] Filter by source' },
@@ -73,11 +99,70 @@ export function createToolHandler(ctx) {
73
99
  }
74
100
  const parsed = ctx.proxy.parseToolName(name);
75
101
  if (parsed) {
76
- return ctx.proxy.callTool(parsed.serverName, parsed.toolName, args);
102
+ // Wrap proxy calls so failures automatically attach a "did_you_mean"
103
+ // list of similarly-named tools. This lets the agent recover from a
104
+ // wrong-tool selection in one extra turn instead of giving up or
105
+ // re-running discovery from scratch — which the bench identified as
106
+ // the main reliability gap in the deferred-discovery flow.
107
+ try {
108
+ const result = await ctx.proxy.callTool(parsed.serverName, parsed.toolName, args);
109
+ if (result?.isError) {
110
+ return attachDidYouMean(ctx, result, parsed.toolName);
111
+ }
112
+ return result;
113
+ }
114
+ catch (err) {
115
+ const errMsg = err instanceof Error ? err.message : String(err);
116
+ const suggestions = nearestToolSuggestions(ctx, parsed.toolName);
117
+ if (suggestions.length === 0)
118
+ throw err;
119
+ return {
120
+ isError: true,
121
+ content: [
122
+ {
123
+ type: 'text',
124
+ text: `Tool call failed: ${errMsg}\n\n` +
125
+ `did_you_mean: ${suggestions.map((s) => s.call_as).join(', ')}\n` +
126
+ `Pick the closest match and call it directly — do NOT re-run find_tool.`,
127
+ },
128
+ ],
129
+ did_you_mean: suggestions,
130
+ };
131
+ }
77
132
  }
78
133
  throw new RegistryError(`Unknown tool: ${name}`, 'UNKNOWN_TOOL');
79
134
  };
80
135
  }
136
+ function nearestToolSuggestions(ctx, failedToolName) {
137
+ // Search by the failed tool's bare name. If it was wrong, the BM25-ranked
138
+ // alternatives are usually the right answer.
139
+ const matches = ctx.registry.searchTools(failedToolName.replace(/_/g, ' '), 4);
140
+ return matches
141
+ .filter((m) => m.name !== failedToolName)
142
+ .slice(0, 3)
143
+ .map((m) => ({
144
+ call_as: `mcp__${m.server_name}__${m.name}`,
145
+ tool: m.name,
146
+ description: m.description,
147
+ }));
148
+ }
149
+ function attachDidYouMean(ctx, result, failedToolName) {
150
+ const suggestions = nearestToolSuggestions(ctx, failedToolName);
151
+ if (suggestions.length === 0)
152
+ return result;
153
+ return {
154
+ ...result,
155
+ did_you_mean: suggestions,
156
+ content: [
157
+ ...result.content,
158
+ {
159
+ type: 'text',
160
+ text: `\ndid_you_mean: ${suggestions.map((s) => s.call_as).join(', ')}\n` +
161
+ `Pick the closest match and call it directly — do NOT re-run find_tool.`,
162
+ },
163
+ ],
164
+ };
165
+ }
81
166
  export function getToolList(ctx) {
82
167
  const proxiedTools = ctx.proxy.getAllProxiedTools();
83
168
  return [
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/transport/mcp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/transport/mcp.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-discover",
3
- "version": "1.1.3",
3
+ "version": "1.2.0",
4
4
  "mcpName": "io.github.keshrath/agent-discover",
5
5
  "description": "MCP server registry and marketplace — discover, install, activate, and manage MCP tools on demand",
6
6
  "type": "module",