@uluops/registry-mcp 0.12.0 → 0.13.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/CHANGELOG.md CHANGED
@@ -4,10 +4,16 @@
4
4
 
5
5
  ### Added
6
6
 
7
+ - `batch_users` accepts `format: 'envelope'` to expose validated found/missing user IDs, with canonical lowercase UUIDs deduplicated in request order. Default map output is preserved.
8
+
7
9
  - Unsupported `name-v1` capability errors retain their code/tool context and explain that no keyword fallback was performed.
8
10
  - Exact-name and literal-prefix discovery with `name`/`match` on `list_definitions` and `match` on `search_definitions`; existing keyword searches retain their behavior.
9
11
  - Page, sort, and order on `search_definitions`, and optional FULLTEXT relevance in compact list rows.
10
12
 
13
+ ### Changed
14
+
15
+ - Pin `@uluops/registry-sdk` to 0.60.0 from public npm for the F19 response contract; replace the local Verdaccio SDK lock resolution for cold consumer installs.
16
+
11
17
  ### Fixed
12
18
 
13
19
  - Resolve the SDK consumer lockfile against npmjs and refresh the existing sdk-core integrity for cold installs.
@@ -15,6 +21,9 @@
15
21
  - List page requests without a limit now explicitly send limit 50, keeping offset calculation and server page size aligned.
16
22
  - Numeric parameter coercion remains available for schemas with search combination refinements.
17
23
 
24
+ ### Security
25
+ - Update the Hono override to 4.13.7 and resolve proxy-addr 2.0.8 to clear inherited production advisories before the F19 release.
26
+
18
27
  ## [0.11.4] - 2026-10-03
19
28
 
20
29
  ### Changed
package/README.md CHANGED
@@ -198,7 +198,7 @@ Lifecycle refusals now carry `allowedTransitions`; blocked deletion carries `blo
198
198
  |------|-------------|
199
199
  | `record_execution` | Record a definition execution (idempotent). Admin-only — executions are recorded automatically by the runtime; user keys get a 403 explaining this |
200
200
  | `get_user` | Get public user profile |
201
- | `batch_users` | Batch user lookup (max 100) |
201
+ | `batch_users` | Batch user lookup (max 100); optional `format: 'envelope'` returns `{data,foundIds,missingIds}` |
202
202
 
203
203
  ### Analytics (P3)
204
204
  | Tool | Description |
@@ -302,3 +302,10 @@ by OR-any and are not keyword searched. Actual FULLTEXT rows may include numeric
302
302
  `relevance`, retained in compact list output. Search responses retain the full
303
303
  list rows. A list request with `page` and no `limit` explicitly uses limit 50,
304
304
  matching the API's default; MCP limits remain capped at 100.
305
+
306
+ `batch_users` defaults to the existing map (`format: 'map'` is also accepted).
307
+ With `format: 'envelope'`, UUID inputs are normalized to lowercase and deduplicated
308
+ in request order; both ID arrays use that order and canonical spelling. Unknown,
309
+ deleted, and null profiles appear in `missingIds`. The 100-input limit applies
310
+ before deduplication. The SDK requires consistent producer `found`/`notFound`
311
+ metadata and returns a response-validation error when it is absent or invalid.
@@ -8,10 +8,13 @@ import type { RegistryClient } from '@uluops/registry-sdk';
8
8
  import { type McpServerToolRegistration } from '../types/index.js';
9
9
  export declare const BatchUsersInputSchema: z.ZodObject<{
10
10
  ids: z.ZodArray<z.ZodString, "many">;
11
+ format: z.ZodOptional<z.ZodEnum<["map", "envelope"]>>;
11
12
  }, "strip", z.ZodTypeAny, {
12
13
  ids: string[];
14
+ format?: "map" | "envelope" | undefined;
13
15
  }, {
14
16
  ids: string[];
17
+ format?: "map" | "envelope" | undefined;
15
18
  }>;
16
19
  export declare function registerBatchUsersTool(server: McpServerToolRegistration, registryClient: RegistryClient): void;
17
20
  //# sourceMappingURL=batch-users.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"batch-users.d.ts","sourceRoot":"","sources":["../../src/tools/batch-users.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAGnE,eAAO,MAAM,qBAAqB;;;;;;EAEhC,CAAC;AAEH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,yBAAyB,EACjC,cAAc,EAAE,cAAc,GAC7B,IAAI,CAON"}
1
+ {"version":3,"file":"batch-users.d.ts","sourceRoot":"","sources":["../../src/tools/batch-users.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAGnE,eAAO,MAAM,qBAAqB;;;;;;;;;EAGhC,CAAC;AAEH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,yBAAyB,EACjC,cAAc,EAAE,cAAc,GAC7B,IAAI,CASN"}
@@ -7,8 +7,11 @@ import { z } from 'zod';
7
7
  import { createToolHandler } from '../utils/tool-handler.js';
8
8
  export const BatchUsersInputSchema = z.object({
9
9
  ids: z.array(z.string().min(1)).min(1).max(100),
10
+ format: z.enum(['map', 'envelope']).optional(),
10
11
  });
11
12
  export function registerBatchUsersTool(server, registryClient) {
12
- server.tool('batch_users', 'Batch lookup of public user profiles by IDs (max 100).', BatchUsersInputSchema.shape, createToolHandler(BatchUsersInputSchema, (n) => registryClient.users.batch(n.ids), { toolName: 'batch_users' }));
13
+ server.tool('batch_users', 'Batch lookup of public user profiles by IDs (max 100). Optional format=envelope returns data, foundIds and missingIds with lowercase UUIDs deduplicated in request order; default is a map.', BatchUsersInputSchema.shape, createToolHandler(BatchUsersInputSchema, (n) => n.format === 'envelope'
14
+ ? registryClient.users.batch(n.ids, { format: 'envelope' })
15
+ : registryClient.users.batch(n.ids), { toolName: 'batch_users' }));
13
16
  }
14
17
  //# sourceMappingURL=batch-users.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"batch-users.js","sourceRoot":"","sources":["../../src/tools/batch-users.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;CAChD,CAAC,CAAC;AAEH,MAAM,UAAU,sBAAsB,CACpC,MAAiC,EACjC,cAA8B;IAE9B,MAAM,CAAC,IAAI,CACT,aAAa,EACb,wDAAwD,EACxD,qBAAqB,CAAC,KAAK,EAC3B,iBAAiB,CAAC,qBAAqB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CAChH,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"batch-users.js","sourceRoot":"","sources":["../../src/tools/batch-users.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IAC/C,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE;CAC/C,CAAC,CAAC;AAEH,MAAM,UAAU,sBAAsB,CACpC,MAAiC,EACjC,cAA8B;IAE9B,MAAM,CAAC,IAAI,CACT,aAAa,EACb,6LAA6L,EAC7L,qBAAqB,CAAC,KAAK,EAC3B,iBAAiB,CAAC,qBAAqB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU;QACrE,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;QAC3D,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CACpE,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uluops/registry-mcp",
3
- "version": "0.12.0",
3
+ "version": "0.13.0",
4
4
  "description": "MCP server for the UluOps Registry API — definition management, versioning, and analytics",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -62,7 +62,7 @@
62
62
  },
63
63
  "dependencies": {
64
64
  "@modelcontextprotocol/sdk": "^1.30.0",
65
- "@uluops/registry-sdk": "0.59.0",
65
+ "@uluops/registry-sdk": "0.60.0",
66
66
  "@uluops/sdk-core": "0.18.1",
67
67
  "mcp-secure-server": "0.0.25-security",
68
68
  "zod": "3.25.76"
@@ -81,7 +81,7 @@
81
81
  "vitest": "4.1.8"
82
82
  },
83
83
  "overrides": {
84
- "hono": "4.13.5",
84
+ "hono": "4.13.7",
85
85
  "@hono/node-server": "2.0.12"
86
86
  }
87
87
  }