@uluops/registry-mcp 0.1.0 → 0.2.4

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.
Files changed (59) hide show
  1. package/CHANGELOG.md +131 -4
  2. package/LICENSE +21 -0
  3. package/README.md +100 -93
  4. package/dist/client/sdk-error-mapper.d.ts +29 -0
  5. package/dist/client/sdk-error-mapper.d.ts.map +1 -1
  6. package/dist/client/sdk-error-mapper.js +122 -20
  7. package/dist/client/sdk-error-mapper.js.map +1 -1
  8. package/dist/config/index.d.ts +7 -1
  9. package/dist/config/index.d.ts.map +1 -1
  10. package/dist/config/index.js +91 -14
  11. package/dist/config/index.js.map +1 -1
  12. package/dist/config/tool-registry.d.ts.map +1 -1
  13. package/dist/config/tool-registry.js +0 -8
  14. package/dist/config/tool-registry.js.map +1 -1
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +19 -6
  17. package/dist/index.js.map +1 -1
  18. package/dist/tools/batch-publish.js +8 -8
  19. package/dist/tools/batch-publish.js.map +1 -1
  20. package/dist/tools/index.d.ts +1 -1
  21. package/dist/tools/index.d.ts.map +1 -1
  22. package/dist/tools/index.js +2 -4
  23. package/dist/tools/index.js.map +1 -1
  24. package/dist/tools/{check-forkable.d.ts → is-forkable.d.ts} +1 -1
  25. package/dist/tools/is-forkable.d.ts.map +1 -0
  26. package/dist/tools/{check-forkable.js → is-forkable.js} +1 -1
  27. package/dist/tools/is-forkable.js.map +1 -0
  28. package/dist/tools/render-definition.d.ts +3 -0
  29. package/dist/tools/render-definition.d.ts.map +1 -1
  30. package/dist/tools/render-definition.js +15 -1
  31. package/dist/tools/render-definition.js.map +1 -1
  32. package/dist/tools/update-and-publish.d.ts.map +1 -1
  33. package/dist/tools/update-and-publish.js +22 -10
  34. package/dist/tools/update-and-publish.js.map +1 -1
  35. package/dist/tools/update-definition.d.ts.map +1 -1
  36. package/dist/tools/update-definition.js +2 -7
  37. package/dist/tools/update-definition.js.map +1 -1
  38. package/dist/types/config.d.ts +6 -2
  39. package/dist/types/config.d.ts.map +1 -1
  40. package/dist/utils/error-guards.d.ts +21 -0
  41. package/dist/utils/error-guards.d.ts.map +1 -0
  42. package/dist/utils/error-guards.js +26 -0
  43. package/dist/utils/error-guards.js.map +1 -0
  44. package/dist/utils/logger.d.ts.map +1 -1
  45. package/dist/utils/logger.js +28 -3
  46. package/dist/utils/logger.js.map +1 -1
  47. package/dist/utils/read-yaml-file.d.ts.map +1 -1
  48. package/dist/utils/read-yaml-file.js +16 -1
  49. package/dist/utils/read-yaml-file.js.map +1 -1
  50. package/dist/utils/tool-handler.d.ts.map +1 -1
  51. package/dist/utils/tool-handler.js +20 -8
  52. package/dist/utils/tool-handler.js.map +1 -1
  53. package/package.json +21 -20
  54. package/dist/tools/check-forkable.d.ts.map +0 -1
  55. package/dist/tools/check-forkable.js.map +0 -1
  56. package/dist/tools/sync-models.d.ts +0 -12
  57. package/dist/tools/sync-models.d.ts.map +0 -1
  58. package/dist/tools/sync-models.js +0 -32
  59. package/dist/tools/sync-models.js.map +0 -1
@@ -23,11 +23,41 @@ function getErrorMessage(error, fallback) {
23
23
  }
24
24
  /** Extract HTTP status code from SDK errors when available */
25
25
  function getStatusCode(error) {
26
- if (error && typeof error === 'object' && 'statusCode' in error) {
26
+ if (error !== null && typeof error === 'object' && 'statusCode' in error) {
27
27
  return error.statusCode;
28
28
  }
29
29
  return undefined;
30
30
  }
31
+ /**
32
+ * Validate that a server-supplied URL is safe to embed in MCP responses.
33
+ *
34
+ * The 402 handler embeds `upgradeUrl` from the API response into MCP text
35
+ * that AI agents read as context. A compromised or attacker-controlled API
36
+ * could emit `javascript:`, `data:`, or untrusted-host URLs as prompt-
37
+ * injection bait. This guard restricts the embedded URL to:
38
+ * - https:// only (no javascript:/data:/file:/http:)
39
+ * - hosts ending in `.uluops.ai` or the apex `uluops.ai`
40
+ *
41
+ * Mirrors the SSRF defense in config/index.ts for symmetry — outgoing
42
+ * payload URLs face the same trust constraints as incoming registry URLs.
43
+ */
44
+ function isSafeUpgradeUrl(url) {
45
+ let parsed;
46
+ try {
47
+ parsed = new URL(url);
48
+ }
49
+ catch {
50
+ return false;
51
+ }
52
+ if (parsed.protocol !== 'https:')
53
+ return false;
54
+ const hostname = parsed.hostname.toLowerCase();
55
+ if (hostname === 'uluops.ai')
56
+ return true;
57
+ if (hostname.endsWith('.uluops.ai'))
58
+ return true;
59
+ return false;
60
+ }
31
61
  /** Build a structured error response with optional metadata */
32
62
  function buildErrorResponse(message, metadata) {
33
63
  const payload = { error: message };
@@ -39,6 +69,65 @@ function buildErrorResponse(message, metadata) {
39
69
  isError: true,
40
70
  };
41
71
  }
72
+ /**
73
+ * Extract the same structured-error fields as `mapSdkErrorToMcp` produces,
74
+ * but without wrapping them in an `McpToolResponse`. Useful inside batch
75
+ * loops where each per-item failure should embed the rich error context
76
+ * (402 upgrade URL, 429 retry-after, 409 nextAvailable) into the parent
77
+ * response rather than producing one MCP error envelope per failure.
78
+ */
79
+ export function extractErrorContext(error) {
80
+ const status = getStatusCode(error);
81
+ if (status === 402) {
82
+ const details = error.details ?? {};
83
+ const requiredTier = typeof details['requiredTier'] === 'string' ? details['requiredTier'] : undefined;
84
+ const currentTier = typeof details['currentTier'] === 'string' ? details['currentTier'] : undefined;
85
+ const def = (details['definition'] !== null && typeof details['definition'] === 'object')
86
+ ? details['definition']
87
+ : undefined;
88
+ const rawUpgradeUrl = typeof details['upgradeUrl'] === 'string' ? details['upgradeUrl'] : undefined;
89
+ // Drop server-supplied URLs that don't pass the protocol/host guard.
90
+ // A compromised or attacker-controlled API could emit javascript:/data:
91
+ // or off-domain URLs as prompt-injection bait for the consuming agent.
92
+ const safeUpgradeUrl = rawUpgradeUrl !== undefined && isSafeUpgradeUrl(rawUpgradeUrl)
93
+ ? rawUpgradeUrl
94
+ : undefined;
95
+ const sep = safeUpgradeUrl?.includes('?') === true ? '&' : '?';
96
+ const trackedUrl = safeUpgradeUrl !== undefined ? `${safeUpgradeUrl}${sep}source=mcp` : undefined;
97
+ return {
98
+ message: sanitizeErrorMessage(getErrorMessage(error, 'Subscription required')),
99
+ status,
100
+ ...(requiredTier !== undefined ? { required_tier: requiredTier } : {}),
101
+ ...(currentTier !== undefined ? { current_tier: currentTier } : {}),
102
+ ...(def !== undefined ? { definition: def } : {}),
103
+ ...(trackedUrl !== undefined ? { upgrade_url: trackedUrl } : {}),
104
+ };
105
+ }
106
+ if (isRateLimitError(error)) {
107
+ const details = error.details ?? {};
108
+ const retryAfter = typeof details['retryAfter'] === 'number' ? details['retryAfter'] : undefined;
109
+ return {
110
+ message: sanitizeErrorMessage(getErrorMessage(error, 'Rate limit exceeded')),
111
+ status,
112
+ ...(retryAfter !== undefined ? { retry_after: retryAfter } : {}),
113
+ };
114
+ }
115
+ if (isConflictError(error)) {
116
+ const details = 'details' in error
117
+ ? error.details
118
+ : undefined;
119
+ const nextAvailable = details?.['nextAvailable'];
120
+ return {
121
+ message: sanitizeErrorMessage(getErrorMessage(error, 'Resource conflict')),
122
+ ...(status !== undefined ? { status } : {}),
123
+ ...(nextAvailable !== undefined ? { nextAvailable } : {}),
124
+ };
125
+ }
126
+ return {
127
+ message: sanitizeErrorMessage(getErrorMessage(error, 'Unknown error')),
128
+ ...(status !== undefined ? { status } : {}),
129
+ };
130
+ }
42
131
  /**
43
132
  * Map an SDK error to an MCP tool response.
44
133
  *
@@ -51,16 +140,17 @@ function buildErrorResponse(message, metadata) {
51
140
  export function mapSdkErrorToMcp(error) {
52
141
  const statusCode = getStatusCode(error);
53
142
  if (isNotFoundError(error)) {
54
- return buildErrorResponse(sanitizeErrorMessage(getErrorMessage(error, 'Resource not found')), statusCode ? { status: statusCode } : undefined);
143
+ return buildErrorResponse(sanitizeErrorMessage(getErrorMessage(error, 'Resource not found')), statusCode !== undefined ? { status: statusCode } : undefined);
55
144
  }
56
145
  if (isRateLimitError(error)) {
57
146
  const retryAfter = error.retryAfter;
58
- return buildErrorResponse(retryAfter
147
+ const hasRetryAfter = typeof retryAfter === 'number' && retryAfter > 0;
148
+ return buildErrorResponse(hasRetryAfter
59
149
  ? `Rate limit exceeded. Retry after ${String(retryAfter)} seconds.`
60
- : 'Rate limit exceeded, please retry later.', { status: 429, ...(retryAfter ? { retry_after_seconds: retryAfter } : {}) });
150
+ : 'Rate limit exceeded, please retry later.', { status: 429, ...(hasRetryAfter ? { retry_after_seconds: retryAfter } : {}) });
61
151
  }
62
152
  if (isValidationError(error)) {
63
- return buildErrorResponse(sanitizeErrorMessage(getErrorMessage(error, 'Invalid request parameters')), statusCode ? { status: statusCode } : undefined);
153
+ return buildErrorResponse(sanitizeErrorMessage(getErrorMessage(error, 'Invalid request parameters')), statusCode !== undefined ? { status: statusCode } : undefined);
64
154
  }
65
155
  if (error instanceof UnauthorizedError) {
66
156
  return buildErrorResponse('Authentication required. Verify ULUOPS_API_KEY is set to a valid ulr_* key.', { status: 401 });
@@ -74,19 +164,30 @@ export function mapSdkErrorToMcp(error) {
74
164
  const requiredTier = details.requiredTier;
75
165
  const currentTier = details.currentTier;
76
166
  const def = details.definition;
77
- const upgradeUrl = details.upgradeUrl;
78
- const sep = upgradeUrl?.includes('?') ? '&' : '?';
79
- const trackedUrl = upgradeUrl ? `${upgradeUrl}${sep}source=mcp` : undefined;
80
- const defLabel = def?.name ? `${def.type ?? 'definition'}/${def.name}` : 'this definition';
81
- const tierLabel = requiredTier ? ` Requires ${requiredTier} tier or higher.` : '';
82
- const currentLabel = currentTier ? ` Your current tier: ${currentTier}.` : '';
167
+ const rawUpgradeUrl = details.upgradeUrl;
168
+ // Restrict the embedded URL to https://*.uluops.ai to prevent
169
+ // server-controlled prompt-injection bait reaching the agent's context.
170
+ const safeUpgradeUrl = rawUpgradeUrl !== undefined && isSafeUpgradeUrl(rawUpgradeUrl)
171
+ ? rawUpgradeUrl
172
+ : undefined;
173
+ const sep = safeUpgradeUrl?.includes('?') === true ? '&' : '?';
174
+ const trackedUrl = safeUpgradeUrl !== undefined ? `${safeUpgradeUrl}${sep}source=mcp` : undefined;
175
+ const defLabel = def?.name !== undefined && def.name !== ''
176
+ ? `${def.type ?? 'definition'}/${def.name}`
177
+ : 'this definition';
178
+ const tierLabel = requiredTier !== undefined && requiredTier !== ''
179
+ ? ` Requires ${requiredTier} tier or higher.`
180
+ : '';
181
+ const currentLabel = currentTier !== undefined && currentTier !== ''
182
+ ? ` Your current tier: ${currentTier}.`
183
+ : '';
83
184
  return buildErrorResponse(`Subscription required to access ${defLabel}.${tierLabel}${currentLabel}` +
84
- (trackedUrl ? ` Upgrade: ${trackedUrl}` : ''), {
185
+ (trackedUrl !== undefined ? ` Upgrade: ${trackedUrl}` : ''), {
85
186
  status: 402,
86
- ...(requiredTier ? { required_tier: requiredTier } : {}),
87
- ...(currentTier ? { current_tier: currentTier } : {}),
88
- ...(def ? { definition: def } : {}),
89
- ...(trackedUrl ? { upgrade_url: trackedUrl } : {}),
187
+ ...(requiredTier !== undefined && requiredTier !== '' ? { required_tier: requiredTier } : {}),
188
+ ...(currentTier !== undefined && currentTier !== '' ? { current_tier: currentTier } : {}),
189
+ ...(def !== undefined ? { definition: def } : {}),
190
+ ...(trackedUrl !== undefined ? { upgrade_url: trackedUrl } : {}),
90
191
  });
91
192
  }
92
193
  if (isConflictError(error)) {
@@ -94,16 +195,17 @@ export function mapSdkErrorToMcp(error) {
94
195
  const details = 'details' in error
95
196
  ? error.details
96
197
  : undefined;
198
+ const nextAvailable = details?.nextAvailable;
97
199
  return buildErrorResponse(sanitizeErrorMessage(getErrorMessage(error, 'Resource conflict')), {
98
- ...(statusCode ? { status: statusCode } : {}),
99
- ...(details?.nextAvailable ? { nextAvailable: details.nextAvailable } : {}),
200
+ ...(statusCode !== undefined ? { status: statusCode } : {}),
201
+ ...(nextAvailable !== undefined && nextAvailable !== null ? { nextAvailable } : {}),
100
202
  });
101
203
  }
102
204
  if (isUnprocessableError(error)) {
103
- return buildErrorResponse(sanitizeErrorMessage(getErrorMessage(error, 'Unprocessable request')), statusCode ? { status: statusCode } : undefined);
205
+ return buildErrorResponse(sanitizeErrorMessage(getErrorMessage(error, 'Unprocessable request')), statusCode !== undefined ? { status: statusCode } : undefined);
104
206
  }
105
207
  if (isRegistryApiError(error)) {
106
- return buildErrorResponse(sanitizeErrorMessage(getErrorMessage(error, 'Internal server error')), statusCode ? { status: statusCode } : undefined);
208
+ return buildErrorResponse(sanitizeErrorMessage(getErrorMessage(error, 'Internal server error')), statusCode !== undefined ? { status: statusCode } : undefined);
107
209
  }
108
210
  if (error instanceof Error) {
109
211
  return buildErrorResponse(sanitizeErrorMessage(error.message));
@@ -1 +1 @@
1
- {"version":3,"file":"sdk-error-mapper.js","sourceRoot":"","sources":["../../src/client/sdk-error-mapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sdk-error-mapper.js","sourceRoot":"","sources":["../../src/client/sdk-error-mapper.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,12 @@ export declare const VERSION: string;
12
12
  export declare function loadConfig(): RegistryMcpConfig;
13
13
  /**
14
14
  * Validate that required configuration is present and well-formed.
15
+ *
16
+ * Returns a list of non-fatal warnings (e.g., custom registry URL accepted
17
+ * via escape hatch) that the caller should log so the user sees what
18
+ * happened during startup.
15
19
  */
16
- export declare function validateConfig(config: RegistryMcpConfig): void;
20
+ export declare function validateConfig(config: RegistryMcpConfig): {
21
+ warnings: string[];
22
+ };
17
23
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAY,MAAM,mBAAmB,CAAC;AAKrE,kEAAkE;AAClE,eAAO,MAAM,OAAO,QAAa,CAAC;AA0BlC;;GAEG;AACH,wBAAgB,UAAU,IAAI,iBAAiB,CA2B9C;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CA4B9D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAY,MAAM,mBAAmB,CAAC;AAKrE,kEAAkE;AAClE,eAAO,MAAM,OAAO,QAAa,CAAC;AAyBlC;;GAEG;AACH,wBAAgB,UAAU,IAAI,iBAAiB,CA6B9C;AAwCD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,iBAAiB,GAAG;IAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAqEhF"}
@@ -8,7 +8,6 @@ const require = createRequire(import.meta.url);
8
8
  const { version: pkgVersion } = require('../../package.json');
9
9
  /** Package version read from package.json at module load time. */
10
10
  export const VERSION = pkgVersion;
11
- const DEFAULT_BASE_URL = 'https://api.uluops.ai/api/v1/registry';
12
11
  const DEFAULT_TIMEOUT = 30000;
13
12
  const DEFAULT_RETRIES = 3;
14
13
  const DEFAULT_LOG_LEVEL = 'info';
@@ -34,9 +33,11 @@ function parseInteger(value, defaultValue) {
34
33
  * Load configuration from environment variables.
35
34
  */
36
35
  export function loadConfig() {
37
- // Treat both unset (undefined) and empty string as "use default" — the test
38
- // suite documents this intent. `??` alone would keep empty string as a value.
39
- const apiUrl = process.env['ULUOPS_REGISTRY_URL'] || DEFAULT_BASE_URL; // eslint-disable-line @typescript-eslint/prefer-nullish-coalescing
36
+ // ULUOPS_REGISTRY_URL is optional. When unset or empty, RegistryClient falls
37
+ // back to @uluops/registry-sdk's DEFAULT_BASE_URL (prod by default,
38
+ // localhost when NODE_ENV=development).
39
+ const rawUrl = process.env['ULUOPS_REGISTRY_URL'];
40
+ const apiUrl = rawUrl !== undefined && rawUrl !== '' ? rawUrl : undefined;
40
41
  const apiKey = process.env['ULUOPS_API_KEY'];
41
42
  const orgSlug = process.env['ULUOPS_ORG_SLUG'];
42
43
  return {
@@ -60,24 +61,99 @@ export function loadConfig() {
60
61
  },
61
62
  };
62
63
  }
64
+ /**
65
+ * Hosts allowlisted for the registry URL by default. Anything else must
66
+ * be explicitly opted into via ULUOPS_ALLOW_ANY_REGISTRY_HOST=1.
67
+ * Loopback names (localhost, 127.x.x.x, ::1) are also accepted to support
68
+ * local development against a self-hosted instance.
69
+ *
70
+ * Suffix check requires the leading dot — `endsWith('uluops.ai')` without
71
+ * the dot would accept attacker-controlled `eviluluops.ai`. The exact-
72
+ * match branch covers the bare apex.
73
+ */
74
+ function isAllowedRegistryHost(hostname) {
75
+ if (hostname === 'localhost')
76
+ return true;
77
+ if (hostname === '127.0.0.1' || hostname.startsWith('127.'))
78
+ return true;
79
+ if (hostname === '::1' || hostname === '[::1]')
80
+ return true;
81
+ if (hostname === 'uluops.ai')
82
+ return true;
83
+ if (hostname.endsWith('.uluops.ai'))
84
+ return true;
85
+ return false;
86
+ }
87
+ /**
88
+ * RFC-1918, IMDS, and link-local addresses that should never receive the
89
+ * API key by accident. Even with ULUOPS_ALLOW_ANY_REGISTRY_HOST=1, these
90
+ * hosts require an explicit ULUOPS_ALLOW_PRIVATE_REGISTRY=1 second escape
91
+ * hatch — the typical AI-agent-driven misconfiguration we are defending
92
+ * against would not set both env vars.
93
+ */
94
+ function isPrivateOrMetadataHost(hostname) {
95
+ // AWS / GCP / Azure instance metadata service
96
+ if (hostname === '169.254.169.254')
97
+ return true;
98
+ // RFC-1918 ranges (rough prefix match; sufficient for defense-in-depth)
99
+ if (hostname.startsWith('10.'))
100
+ return true;
101
+ if (hostname.startsWith('192.168.'))
102
+ return true;
103
+ if (/^172\.(1[6-9]|2\d|3[01])\./.test(hostname))
104
+ return true;
105
+ // Link-local
106
+ if (hostname.startsWith('169.254.'))
107
+ return true;
108
+ return false;
109
+ }
63
110
  /**
64
111
  * Validate that required configuration is present and well-formed.
112
+ *
113
+ * Returns a list of non-fatal warnings (e.g., custom registry URL accepted
114
+ * via escape hatch) that the caller should log so the user sees what
115
+ * happened during startup.
65
116
  */
66
117
  export function validateConfig(config) {
67
- if (!config.api.baseUrl) {
68
- throw new Error('Registry API base URL is required');
69
- }
70
- try {
71
- const parsed = new URL(config.api.baseUrl);
118
+ const warnings = [];
119
+ // baseUrl is optional. When undefined, RegistryClient falls back to the
120
+ // SDK's DEFAULT_BASE_URL — a trusted compile-time constant, so the SSRF
121
+ // defense below only runs when the operator explicitly set a URL.
122
+ if (config.api.baseUrl !== undefined) {
123
+ let parsed;
124
+ try {
125
+ parsed = new URL(config.api.baseUrl);
126
+ }
127
+ catch {
128
+ throw new Error(`Invalid Registry API URL: ${config.api.baseUrl}`);
129
+ }
72
130
  if (parsed.protocol !== 'http:' && parsed.protocol !== 'https:') {
73
131
  throw new Error(`Registry API URL must use http or https scheme, got: ${parsed.protocol}`);
74
132
  }
75
- }
76
- catch (error) {
77
- if (error instanceof Error && error.message.includes('scheme')) {
78
- throw error;
133
+ // SSRF defense (CWE-918). The URL receives ULUOPS_API_KEY as a Bearer
134
+ // header on every request. By default only *.uluops.ai (the canonical
135
+ // host) and loopback (localhost dev) are allowed without opt-in.
136
+ const allowAnyHost = process.env['ULUOPS_ALLOW_ANY_REGISTRY_HOST'] === '1';
137
+ const allowPrivate = process.env['ULUOPS_ALLOW_PRIVATE_REGISTRY'] === '1';
138
+ const hostname = parsed.hostname.toLowerCase();
139
+ if (isPrivateOrMetadataHost(hostname) && !allowPrivate) {
140
+ throw new Error(`Registry API URL host '${hostname}' is a private or instance-metadata address. ` +
141
+ `If you really intend this, set ULUOPS_ALLOW_PRIVATE_REGISTRY=1 to acknowledge the risk.`);
142
+ }
143
+ if (!isAllowedRegistryHost(hostname) && !allowAnyHost) {
144
+ throw new Error(`Registry API URL host '${hostname}' is not on the default allowlist. ` +
145
+ `By default only *.uluops.ai and loopback are accepted to prevent the ` +
146
+ `API key from being forwarded to untrusted hosts. If you are pointing ` +
147
+ `at a non-production endpoint, set ULUOPS_ALLOW_ANY_REGISTRY_HOST=1 to ` +
148
+ `acknowledge the risk.`);
149
+ }
150
+ if (allowAnyHost && !isAllowedRegistryHost(hostname)) {
151
+ warnings.push(`Registry API URL host '${hostname}' accepted via ULUOPS_ALLOW_ANY_REGISTRY_HOST=1. ` +
152
+ `Every API call will forward ULUOPS_API_KEY as a Bearer header to this host.`);
153
+ }
154
+ if (parsed.username !== '' || parsed.password !== '') {
155
+ throw new Error('Registry API URL must not include userinfo (user:pass@). Set ULUOPS_API_KEY instead.');
79
156
  }
80
- throw new Error(`Invalid Registry API URL: ${config.api.baseUrl}`);
81
157
  }
82
158
  if (config.api.apiKey === undefined || config.api.apiKey === '') {
83
159
  throw new Error('API key is required. Set ULUOPS_API_KEY');
@@ -88,5 +164,6 @@ export function validateConfig(config) {
88
164
  if (config.api.retries < 0) {
89
165
  throw new Error('Retries must be a non-negative number');
90
166
  }
167
+ return { warnings };
91
168
  }
92
169
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tool-registry.d.ts","sourceRoot":"","sources":["../../src/config/tool-registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAKlD,eAAO,MAAM,YAAY,EAAE,QAAQ,EA6XlC,CAAC"}
1
+ {"version":3,"file":"tool-registry.d.ts","sourceRoot":"","sources":["../../src/config/tool-registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAKlD,eAAO,MAAM,YAAY,EAAE,QAAQ,EAqXlC,CAAC"}
@@ -275,14 +275,6 @@ export const toolRegistry = [
275
275
  quotaPerMinute: 240,
276
276
  quotaPerHour: 5000,
277
277
  },
278
- {
279
- name: 'sync_models',
280
- sideEffects: 'write',
281
- maxArgsSize: 10 * KB,
282
- maxEgressBytes: 200 * KB,
283
- quotaPerMinute: 10,
284
- quotaPerHour: 50,
285
- },
286
278
  {
287
279
  name: 'get_user',
288
280
  sideEffects: 'read',
@@ -1 +1 @@
1
- {"version":3,"file":"tool-registry.js","sourceRoot":"","sources":["../../src/config/tool-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-registry.js","sourceRoot":"","sources":["../../src/config/tool-registry.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;GAKG;AAYH,iBAAe,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAuJnC;AAED,OAAO,EAAE,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;GAKG;AAaH,iBAAe,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CA4JnC;AAED,OAAO,EAAE,IAAI,EAAE,CAAC"}
package/dist/index.js CHANGED
@@ -5,6 +5,7 @@
5
5
  * Thin protocol adapter that enables Claude Code to interact with
6
6
  * the UluOps Registry API via MCP, using @uluops/registry-sdk.
7
7
  */
8
+ import { fileURLToPath } from 'node:url';
8
9
  import { SecureMcpServer } from 'mcp-secure-server';
9
10
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
10
11
  import { RegistryClient } from '@uluops/registry-sdk';
@@ -20,21 +21,26 @@ async function main() {
20
21
  process.exit(0);
21
22
  }
22
23
  const config = loadConfig();
23
- validateConfig(config);
24
+ const { warnings: configWarnings } = validateConfig(config);
24
25
  const logger = createLogger({
25
26
  level: config.security.logLevel,
26
27
  enableFileLogging: config.security.enableLogging,
27
28
  logDir: config.security.logDir,
28
29
  });
30
+ for (const warning of configWarnings) {
31
+ logger.warn(warning);
32
+ }
29
33
  logger.info('Starting UluOps Registry MCP client', {
30
34
  version: config.server.version,
31
- apiUrl: config.api.baseUrl,
35
+ apiUrl: config.api.baseUrl ?? '(SDK default)',
32
36
  });
33
37
  // Retry config applies to all requests including writes. This is safe because:
34
38
  // - The SDK only retries on network errors and 5xx responses (not 4xx)
35
39
  // - Registry API write operations are idempotent (create returns existing on conflict)
36
- // Detect auth type: ulr_ prefix = API key, otherwise = session token
37
- const isApiKey = config.api.apiKey?.startsWith('ulr_');
40
+ // Detect auth type: ulr_ prefix = API key, otherwise = session token.
41
+ // Explicit `=== true` to handle the nullable-boolean case from optional
42
+ // chaining (undefined apiKey → undefined isApiKey, falls to session-token).
43
+ const isApiKey = config.api.apiKey?.startsWith('ulr_') === true;
38
44
  const registryClient = new RegistryClient({
39
45
  baseUrl: config.api.baseUrl,
40
46
  ...(isApiKey ? { apiKey: config.api.apiKey } : { sessionToken: config.api.apiKey }),
@@ -133,7 +139,6 @@ async function main() {
133
139
  'list_providers',
134
140
  'list_aliases',
135
141
  'get_translator_version',
136
- 'sync_models',
137
142
  'get_user',
138
143
  'batch_users',
139
144
  'list_languages',
@@ -149,7 +154,15 @@ async function main() {
149
154
  });
150
155
  }
151
156
  export { main };
152
- if (process.env.NODE_ENV !== 'test') {
157
+ // Auto-run main() only when this module is the program entry point.
158
+ // Tests import `{ main }` directly and call it themselves; they do not
159
+ // need (and previously relied on a fragile `NODE_ENV=test` guard to
160
+ // suppress) auto-execution. The ESM-standard entry-point check below is
161
+ // stable across NODE_ENV values, so a stray `NODE_ENV=test` in the user's
162
+ // shell no longer silently stops the server from starting.
163
+ const isEntryPoint = typeof process.argv[1] === 'string' &&
164
+ process.argv[1] === fileURLToPath(import.meta.url);
165
+ if (isEntryPoint) {
153
166
  main().catch((error) => {
154
167
  // console.error is intentional here — logger may not be initialized yet at startup
155
168
  const message = error instanceof Error ? error.message : String(error);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,KAAK,UAAU,IAAI;IACjB,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACtE,uFAAuF;QACvF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;QACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,cAAc,CAAC,MAAM,CAAC,CAAC;IAEvB,MAAM,MAAM,GAAG,YAAY,CAAC;QAC1B,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ;QAC/B,iBAAiB,EAAE,MAAM,CAAC,QAAQ,CAAC,aAAa;QAChD,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;KAC/B,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,CAAC,qCAAqC,EAAE;QACjD,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO;QAC9B,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO;KAC3B,CAAC,CAAC;IAEH,+EAA+E;IAC/E,uEAAuE;IACvE,uFAAuF;IACvF,qEAAqE;IACrE,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IACvD,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC;QACxC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO;QAC3B,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QACnF,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO;QAC3B,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO;QAC3B,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO;KAC5B,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;QACzD,aAAa,EAAE,OAAO;QACtB,oBAAoB,EAAE,GAAG;QACzB,cAAc,EAAE,GAAG,GAAG,IAAI;QAC1B,aAAa,EAAE,GAAG;QAElB,cAAc,EAAE,EAAE;QAClB,aAAa,EAAE,IAAI;QACnB,6EAA6E;QAC7E,uDAAuD;QACvD,mBAAmB,EAAE;YACnB,OAAO,EAAE,KAAK;SACf;QAED,YAAY;QAEZ,aAAa,EAAE;YACb,WAAW,EAAE,IAAI;YACjB,YAAY,EAAE,IAAI;SACnB;QAED,cAAc,EAAE;YACd,cAAc,EAAE,CAAC,UAAU,CAAC;SAC7B;QAED,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,aAAa;QAC5C,cAAc,EAAE,MAAM,CAAC,QAAQ,CAAC,cAAc;QAC9C,qBAAqB,EAAE,MAAM,CAAC,QAAQ,CAAC,qBAAqB;KAC7D,CAAC,CAAC;IAEH,gBAAgB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACzC,oBAAoB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAE7C,MAAM,QAAQ,GAAG,CAAC,MAAc,EAAQ,EAAE;QACxC,MAAM,CAAC,IAAI,CAAC,YAAY,MAAM,4BAA4B,CAAC,CAAC;QAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QACxB,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACrB,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;QACzB,QAAQ,CAAC,SAAS,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,KAAK,EAAE,EAAE;QACxC,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE;YACjC,KAAK,EAAE,KAAK,CAAC,OAAO;SACrB,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,MAAM,EAAE,EAAE;QAC1C,MAAM,CAAC,KAAK,CAAC,qBAAqB,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,iFAAiF;IACjF,uFAAuF;IACvF,IAAI,OAAO,SAAS,CAAC,KAAK,KAAK,UAAU,IAAI,OAAO,SAAS,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;QACnF,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAC/E,CAAC;IACD,MAAM,MAAM,CAAC,OAAO,CAAC,SAAiD,CAAC,CAAC;IAExE,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE;QAC5C,KAAK,EAAE;YACL,OAAO,EAAE,CAAC,kBAAkB,CAAC;YAC7B,OAAO,EAAE;gBACP,kBAAkB;gBAClB,gBAAgB;gBAChB,oBAAoB;gBACpB,aAAa;gBACb,eAAe;gBACf,qBAAqB;gBACrB,mBAAmB;aACpB;YACD,WAAW,EAAE;gBACX,mBAAmB;gBACnB,mBAAmB;gBACnB,oBAAoB;gBACpB,sBAAsB;gBACtB,mBAAmB;gBACnB,oBAAoB;gBACpB,eAAe;gBACf,eAAe;gBACf,eAAe;gBACf,kBAAkB;gBAClB,gBAAgB;gBAChB,qBAAqB;gBACrB,YAAY;aACb;YACD,QAAQ,EAAE;gBACR,iBAAiB;gBACjB,aAAa;gBACb,kBAAkB;gBAClB,kBAAkB;gBAClB,wBAAwB;gBACxB,oBAAoB;gBACpB,WAAW;gBACX,gBAAgB;gBAChB,cAAc;gBACd,wBAAwB;gBACxB,aAAa;gBACb,UAAU;gBACV,aAAa;gBACb,gBAAgB;gBAChB,cAAc;aACf;SACF;QACD,SAAS,EAAE;YACT,wBAAwB;YACxB,mBAAmB;YACnB,6BAA6B;YAC7B,sBAAsB;SACvB;KACF,CAAC,CAAC;AACL,CAAC;AAED,OAAO,EAAE,IAAI,EAAE,CAAC;AAEhB,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;IACpC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;QAC9B,mFAAmF;QACnF,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,OAAO,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@
6
6
  */
7
7
  import { z } from 'zod';
8
8
  import { DefinitionTypeSchema, createSuccessResponse } from '../types/index.js';
9
- import { mapSdkErrorToMcp, mapZodErrorToMcp, sanitizeErrorMessage } from '../client/sdk-error-mapper.js';
9
+ import { mapSdkErrorToMcp, mapZodErrorToMcp, extractErrorContext } from '../client/sdk-error-mapper.js';
10
10
  import { trimDefinitionResponse } from '../utils/trim-definition.js';
11
11
  const DefinitionRefSchema = z.object({
12
12
  type: DefinitionTypeSchema,
@@ -32,18 +32,18 @@ export function registerBatchPublishTool(server, registryClient) {
32
32
  published.push({ ...trimmed, warnings });
33
33
  }
34
34
  catch (error) {
35
- const message = error instanceof Error
36
- ? sanitizeErrorMessage(error.message)
37
- : 'Unknown error';
38
- const statusCode = error && typeof error === 'object' && 'statusCode' in error
39
- ? error.statusCode
40
- : undefined;
35
+ // Route per-item failures through extractErrorContext so the
36
+ // batch response surfaces the same rich error metadata that
37
+ // single-call tools get via mapSdkErrorToMcp: 402 upgradeUrl
38
+ // and tier info, 429 retry_after, 409 nextAvailable.
39
+ const ctx = extractErrorContext(error);
40
+ const { message, ...rest } = ctx;
41
41
  failed.push({
42
42
  type: def.type,
43
43
  name: def.name,
44
44
  version: def.version,
45
45
  error: message,
46
- ...(statusCode ? { status: statusCode } : {}),
46
+ ...rest,
47
47
  });
48
48
  }
49
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"batch-publish.js","sourceRoot":"","sources":["../../src/tools/batch-publish.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"batch-publish.js","sourceRoot":"","sources":["../../src/tools/batch-publish.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  import type { RegistryClient } from '@uluops/registry-sdk';
5
5
  import type { McpServerToolRegistration } from '../types/index.js';
6
6
  /**
7
- * Register all 45 MCP tools with the server.
7
+ * Register all 44 MCP tools with the server.
8
8
  * @param server - MCP server instance to register tools on.
9
9
  * @param registryClient - Registry SDK client for API calls.
10
10
  */