@convertcom/mcp-server 0.0.1-beta.6 → 0.0.1-beta.8
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/build/api-config.d.ts +1 -1
- package/build/api-config.js +10 -16
- package/build/api-config.js.map +1 -1
- package/build/executor.d.ts +1 -3
- package/build/executor.js +235 -51
- package/build/executor.js.map +1 -1
- package/build/index.d.ts +0 -8
- package/build/index.js +99 -45
- package/build/index.js.map +1 -1
- package/build/kb-hybrid.d.ts +20 -0
- package/build/kb-hybrid.js +69 -0
- package/build/kb-hybrid.js.map +1 -0
- package/build/kb-semantic.d.ts +16 -0
- package/build/kb-semantic.js +97 -0
- package/build/kb-semantic.js.map +1 -0
- package/build/namespaced.d.ts +6 -0
- package/build/namespaced.js +421 -51
- package/build/namespaced.js.map +1 -1
- package/build/shared.d.ts +6 -0
- package/build/shared.js +14 -0
- package/build/shared.js.map +1 -0
- package/build/tools.js +527 -816
- package/build/tools.js.map +1 -1
- package/package.json +27 -21
package/build/namespaced.js
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
import { toolDefinitionMap } from './tools.js';
|
|
2
2
|
import { executeToolByName } from './executor.js';
|
|
3
|
+
import { JSON_SCHEMA_DRAFT_2020_12, pathParamsFromTemplate } from './shared.js';
|
|
4
|
+
function requiredPathParamsForDef(def) {
|
|
5
|
+
const declared = (def.executionParameters || [])
|
|
6
|
+
.filter((p) => p.in === 'path')
|
|
7
|
+
.map((p) => p.name);
|
|
8
|
+
const inferred = def.pathTemplate ? pathParamsFromTemplate(def.pathTemplate) : [];
|
|
9
|
+
return [...new Set([...declared, ...inferred])];
|
|
10
|
+
}
|
|
3
11
|
const REGISTRY = {
|
|
4
12
|
accounts: {
|
|
5
13
|
list: 'getaccountslist',
|
|
@@ -121,6 +129,281 @@ const REGISTRY = {
|
|
|
121
129
|
delete: 'deletefeature',
|
|
122
130
|
},
|
|
123
131
|
};
|
|
132
|
+
/** Human-readable titles for each namespace */
|
|
133
|
+
const NAMESPACE_TITLES = {
|
|
134
|
+
accounts: 'Accounts',
|
|
135
|
+
projects: 'Projects',
|
|
136
|
+
domains: 'Domains',
|
|
137
|
+
experiences: 'Experiences',
|
|
138
|
+
sections: 'Sections',
|
|
139
|
+
goals: 'Goals',
|
|
140
|
+
tags: 'Tags',
|
|
141
|
+
hypotheses: 'Hypotheses',
|
|
142
|
+
knowledgebases: 'Knowledge Bases',
|
|
143
|
+
observations: 'Observations',
|
|
144
|
+
locations: 'Locations',
|
|
145
|
+
audiences: 'Audiences',
|
|
146
|
+
features: 'Features',
|
|
147
|
+
};
|
|
148
|
+
/** Namespace-level descriptions for agents — richer than the auto-generated "Namespace 'X'" */
|
|
149
|
+
const NAMESPACE_DESCRIPTIONS = {
|
|
150
|
+
accounts: 'Manage Convert.com accounts via the live API — get account details, live visitor data, history, users, API/SDK keys.',
|
|
151
|
+
projects: 'Manage Convert.com projects via the live API — list, create, update projects, get live visitor data and change history.',
|
|
152
|
+
domains: 'Manage domains in the user\'s Convert.com account — add, verify (check_code), update, delete domains for a project.',
|
|
153
|
+
experiences: 'Manage A/B tests, MVTs, split URL tests, deploys, and feature rollouts in the user\'s Convert.com account. Use type "a/b" (with slash, not underscore).',
|
|
154
|
+
sections: 'Manage multi-page sections within MVT experiences via the Convert.com API. Requires experience_id in path — sections are experience-scoped.',
|
|
155
|
+
goals: 'Manage conversion goals in the user\'s Convert.com account — page visits, clicks, form submits, revenue, custom JS. Use goal_key for get_by_key.',
|
|
156
|
+
tags: 'Manage tags in the user\'s Convert.com account for organizing experiences and other resources.',
|
|
157
|
+
hypotheses: 'Manage CRO hypotheses in the user\'s Convert.com account with PIE/ICE prioritization scoring (UPPERCASE).',
|
|
158
|
+
knowledgebases: 'Manage knowledge base entries in the user\'s Convert.com account. Note: path param uses underscores — knowledge_base_id (not knowledgebase_id).',
|
|
159
|
+
observations: 'Manage observations in the user\'s Convert.com account. ⚠️ update action has a known backend bug (500).',
|
|
160
|
+
locations: 'Manage page targeting rules in the user\'s Convert.com account (URL match, JS condition, DOM element trigger). Rules use nested OR→AND→OR_WHEN structure.',
|
|
161
|
+
audiences: 'Manage visitor segmentation rules in the user\'s Convert.com account. Rules use nested OR→AND→OR_WHEN structure similar to locations.',
|
|
162
|
+
features: 'Manage feature flags in the user\'s Convert.com account — only works in fullstack project types. Returns 422 for web/standard projects.',
|
|
163
|
+
};
|
|
164
|
+
/**
|
|
165
|
+
* Per-action agent guidance. Appended to generated descriptions as "Agent Notes:".
|
|
166
|
+
* Keys are "namespace.action" strings matching REGISTRY entries.
|
|
167
|
+
* This map survives `yarn generate` — it's hand-curated like REGISTRY.
|
|
168
|
+
*/
|
|
169
|
+
export const ACTION_NOTES = {
|
|
170
|
+
// ── experiences ──────────────────────────────────────────
|
|
171
|
+
'experiences.create': [
|
|
172
|
+
'Type enum: "a/b", "a/a", "mvt", "split_url", "multipage", "deploy" (standard projects), "a/b_fullstack", "feature_rollout" (fullstack projects only).',
|
|
173
|
+
'Required body fields: name, type, url. If status is omitted, MCP defaults it to "draft".',
|
|
174
|
+
'Setting status to "active" requires explicit user confirmation at tool-call level: confirmation: { "user_confirmed": true, "reason": "..." }.',
|
|
175
|
+
'a/b_fullstack and feature_rollout return 422 on non-fullstack projects.',
|
|
176
|
+
'Minimal example: { "body": { "name": "My Test", "type": "a/b", "status": "draft", "url": "https://example.com" } }',
|
|
177
|
+
].join('\n'),
|
|
178
|
+
'experiences.update': 'Setting body.status to "active" requires explicit user confirmation at tool-call level: confirmation: { "user_confirmed": true, "reason": "..." }.',
|
|
179
|
+
'experiences.get_by_key': 'Path parameter is "experience_key" (not "key"). Pass in path: { "experience_key": "abc123" }.',
|
|
180
|
+
'experiences.daily_traffic_allocation': 'Only works when MAB (Multi-Armed Bandit) is configured on the experience. Returns 422 otherwise.',
|
|
181
|
+
'experiences.update_variation': [
|
|
182
|
+
'Body is required and must be a non-empty object. Empty/missing body is rejected at MCP layer to avoid silent no-op updates.',
|
|
183
|
+
'Requires "variation_id" in path. Get variation IDs from experiences.get with query: { "include": ["variations"], "expand": ["variations"] }.',
|
|
184
|
+
'To add CSS/JS changes, use the "changes" array in body. Each change needs "type" and "data":',
|
|
185
|
+
' - type "customCode": data = { css: "...", js: "..." } — for custom CSS/JS code',
|
|
186
|
+
' - type "defaultCode": data = { css: "...", js: "...", custom_js: "..." } — for Visual Editor changes',
|
|
187
|
+
' - type "defaultRedirect": data = { original_pattern, variation_pattern, case_sensitive } — for split URL',
|
|
188
|
+
' - type "fullStackFeature": data = { feature_id, variables_data } — for fullstack features',
|
|
189
|
+
'Example adding custom CSS+JS: { "body": { "changes": [{ "type": "customCode", "data": { "css": "body{color:red}", "js": "console.log(1)" } }] } }',
|
|
190
|
+
'To clear all changes: { "body": { "changes": [] } }',
|
|
191
|
+
'To update an existing change, include its integer "id" from the previous response.',
|
|
192
|
+
].join('\n'),
|
|
193
|
+
'experiences.get_variation_screenshot': 'Requires "variation_id" in path. Returns 404 ("No image found") for draft experiences or variations with no visual editor changes yet — this is normal.',
|
|
194
|
+
'experiences.get_change': [
|
|
195
|
+
'Requires account_id, project_id, experience_id, and change_id in path.',
|
|
196
|
+
'⚠️ Known schema issue: path params may not be auto-validated. Pass all four IDs explicitly in path.',
|
|
197
|
+
'Get change IDs from the update_variation response or from experiences.get with include/expand variations.',
|
|
198
|
+
].join('\n'),
|
|
199
|
+
'experiences.update_change': [
|
|
200
|
+
'Requires account_id, project_id, experience_id, and change_id in path.',
|
|
201
|
+
'⚠️ Known schema issue: path params may not be auto-validated. Pass all four IDs explicitly in path.',
|
|
202
|
+
'Body uses same structure as update_variation changes: { type, data }.',
|
|
203
|
+
'For customCode: { "type": "customCode", "data": { "css": "...", "js": "..." } }',
|
|
204
|
+
'For defaultCode: { "type": "defaultCode", "data": { "css": "...", "js": "...", "custom_js": "..." } }',
|
|
205
|
+
].join('\n'),
|
|
206
|
+
'experiences.aggregated_report': 'Works on any experience. Returns empty data arrays for draft/inactive experiences.',
|
|
207
|
+
'experiences.daily_report': 'Works on any experience. Returns empty data arrays for draft/inactive experiences.',
|
|
208
|
+
// ── locations ────────────────────────────────────────────
|
|
209
|
+
'locations.create': [
|
|
210
|
+
'Required body fields: name, rules, trigger.',
|
|
211
|
+
'Rules use nested OR→AND→OR_WHEN structure.',
|
|
212
|
+
'Minimal example: { "body": { "name": "Homepage", "rules": { "OR": [{ "AND": [{ "OR_WHEN": [{ "rule_type": "url", "value": "example.com", "matching": { "match_type": "contains" } }] }] }] }, "trigger": { "type": "upon_run" } } }',
|
|
213
|
+
].join('\n'),
|
|
214
|
+
// ── audiences ────────────────────────────────────────────
|
|
215
|
+
'audiences.create': [
|
|
216
|
+
'Required body fields: name, type, rules.',
|
|
217
|
+
'Type enum: "segmentation", "transient_condition", "permanent".',
|
|
218
|
+
'Rules use nested OR→AND→OR_WHEN structure (same as locations but more rule_type options).',
|
|
219
|
+
'For visitor_type rules, use match_type: "equals" (not "matches").',
|
|
220
|
+
'Minimal example: { "body": { "name": "Returning Visitors", "type": "segmentation", "rules": { "OR": [{ "AND": [{ "OR_WHEN": [{ "rule_type": "visitor_type", "value": "returning", "matching": { "match_type": "equals" } }] }] }] } } }',
|
|
221
|
+
].join('\n'),
|
|
222
|
+
// ── hypotheses ───────────────────────────────────────────
|
|
223
|
+
'hypotheses.create': [
|
|
224
|
+
'Required body fields: name, status (use "draft"), prioritization_score_type, prioritization_score_attributes.',
|
|
225
|
+
'prioritization_score_type: "PIE" or "ICE" (UPPERCASE only).',
|
|
226
|
+
'For PIE: attributes are { potential, importance, ease } (values 1-5).',
|
|
227
|
+
'For ICE: attributes are { impact, confidence, ease } (values 1-5).',
|
|
228
|
+
'Minimal example: { "body": { "name": "Bigger CTA button", "status": "draft", "prioritization_score_type": "PIE", "prioritization_score_attributes": { "potential": 4, "importance": 3, "ease": 5 } } }',
|
|
229
|
+
].join('\n'),
|
|
230
|
+
'hypotheses.convert': 'Converts hypothesis to experience. The hypothesis must have associated goals and locations first. Returns 422 if prerequisites are missing.',
|
|
231
|
+
'hypotheses.update_status': [
|
|
232
|
+
'Body is { "status": "<value>" }. Valid statuses: "draft", "applied", "completed", "archived", "proven", "disproven".',
|
|
233
|
+
'Status transitions follow a strict state machine:',
|
|
234
|
+
' draft ↔ applied → completed → { archived, proven, disproven }',
|
|
235
|
+
'Only allowed transitions: draft→applied, applied→draft, applied→completed, completed→archived, completed→proven, completed→disproven.',
|
|
236
|
+
'Returns 422 "Status cannot be updated to the desired one" for invalid transitions.',
|
|
237
|
+
].join('\n'),
|
|
238
|
+
// ── knowledgebases ───────────────────────────────────────
|
|
239
|
+
'knowledgebases.create': 'Required body fields: name, summary. Optional: description, url, start_date, end_date.',
|
|
240
|
+
'knowledgebases.get': 'Path parameter is "knowledge_base_id" (with underscores, not "knowledgebase_id").',
|
|
241
|
+
'knowledgebases.update': [
|
|
242
|
+
'Path parameter is "knowledge_base_id" (with underscores).',
|
|
243
|
+
'Currently only accepts "status" field in body ("active" or "archived"). Other fields like name or summary will fail schema validation.',
|
|
244
|
+
].join('\n'),
|
|
245
|
+
'knowledgebases.delete': 'Path parameter is "knowledge_base_id" (with underscores, not "knowledgebase_id").',
|
|
246
|
+
// ── observations ─────────────────────────────────────────
|
|
247
|
+
'observations.update': '⚠️ Known backend bug — API returns 500 on update. Workaround: create a new observation + delete the old one.',
|
|
248
|
+
// ── features ─────────────────────────────────────────────
|
|
249
|
+
'features.create': [
|
|
250
|
+
'Only works in fullstack project types. Returns 422 for web/standard projects.',
|
|
251
|
+
'Required body fields: name, key, variables (array).',
|
|
252
|
+
'Variable type enum: "boolean", "string", "integer", "json". default_value must match the type (e.g., true for boolean, not "true").',
|
|
253
|
+
'Minimal example: { "body": { "name": "Dark Mode", "key": "dark_mode", "variables": [{ "key": "enabled", "type": "boolean", "default_value": false }] } }',
|
|
254
|
+
].join('\n'),
|
|
255
|
+
'features.get_by_key': 'Path parameter is "feature_key" (not "key"). Pass in path: { "feature_key": "abc123" }.',
|
|
256
|
+
// ── sections ─────────────────────────────────────────────
|
|
257
|
+
'sections.list': 'Requires "experience_id" in path — sections are experience-scoped, not project-scoped.',
|
|
258
|
+
'sections.create': [
|
|
259
|
+
'Requires "experience_id" in path — sections are experience-scoped.',
|
|
260
|
+
'Only works for MVT (multivariate) experiences. Returns 403 for A/B and other types.',
|
|
261
|
+
'Required body field: "versions" array with at least one version object.',
|
|
262
|
+
'Minimal example: { "body": { "name": "New Section", "versions": [{ "name": "Original", "url": "https://example.com" }] } }',
|
|
263
|
+
].join('\n'),
|
|
264
|
+
'sections.update': [
|
|
265
|
+
'Requires "experience_id" and "section_id" in path — sections are experience-scoped.',
|
|
266
|
+
'Required body field: "versions" array (same format as sections.create).',
|
|
267
|
+
'Example: { "body": { "name": "Updated Section", "versions": [{ "name": "V1", "url": "https://example.com" }] } }',
|
|
268
|
+
].join('\n'),
|
|
269
|
+
// ── goals ────────────────────────────────────────────────
|
|
270
|
+
'goals.get_by_key': 'Path parameter is "goal_key" (not "key"). Pass in path: { "goal_key": "abc123" }.',
|
|
271
|
+
'goals.create': [
|
|
272
|
+
'Type enum: "visits_page", "clicks_link", "submits_form", "revenue", "engagement", "scrolls_to", "custom_js".',
|
|
273
|
+
'For page-visit goals, include "urls" array with objects: { "match_type": "contains"|"equals"|"regex", "value": "https://..." }.',
|
|
274
|
+
].join('\n'),
|
|
275
|
+
// ── accounts ─────────────────────────────────────────────
|
|
276
|
+
'accounts.list_sdk_keys': 'Requires "project_id" in path even though it\'s under the accounts namespace.',
|
|
277
|
+
'accounts.create_sdk_key': 'Requires "project_id" in path even though it\'s under the accounts namespace. May return 401 if API credentials lack SDK key management permissions.',
|
|
278
|
+
};
|
|
279
|
+
function isNonArrayObject(value) {
|
|
280
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
281
|
+
}
|
|
282
|
+
function hasActivationConfirmation(confirmation) {
|
|
283
|
+
if (!isNonArrayObject(confirmation))
|
|
284
|
+
return false;
|
|
285
|
+
return confirmation.user_confirmed === true;
|
|
286
|
+
}
|
|
287
|
+
function normalizeBodyForAction(namespace, action, body) {
|
|
288
|
+
if (namespace !== 'experiences' || action !== 'create')
|
|
289
|
+
return body;
|
|
290
|
+
if (!isNonArrayObject(body))
|
|
291
|
+
return body;
|
|
292
|
+
const statusRaw = body.status;
|
|
293
|
+
const isMissing = statusRaw === undefined || statusRaw === null;
|
|
294
|
+
const isEmpty = typeof statusRaw === 'string' && statusRaw.trim() === '';
|
|
295
|
+
if (isMissing || isEmpty) {
|
|
296
|
+
return { ...body, status: 'draft' };
|
|
297
|
+
}
|
|
298
|
+
return body;
|
|
299
|
+
}
|
|
300
|
+
function evaluateGuardrails(namespace, action, body, confirmation) {
|
|
301
|
+
if (namespace !== 'experiences')
|
|
302
|
+
return null;
|
|
303
|
+
if (action === 'update_variation') {
|
|
304
|
+
if (!isNonArrayObject(body) || Object.keys(body).length === 0) {
|
|
305
|
+
return {
|
|
306
|
+
code: 'BodyRequired',
|
|
307
|
+
message: 'experiences.update_variation requires a non-empty "body" object (for example {"changes":[...]} or {"status":"running"}).',
|
|
308
|
+
};
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
if ((action === 'create' || action === 'update') && isNonArrayObject(body)) {
|
|
312
|
+
const statusRaw = body.status;
|
|
313
|
+
const status = typeof statusRaw === 'string' ? statusRaw.trim().toLowerCase() : null;
|
|
314
|
+
if (status === 'active' && !hasActivationConfirmation(confirmation)) {
|
|
315
|
+
return {
|
|
316
|
+
code: 'ActivationConfirmationRequired',
|
|
317
|
+
message: 'Setting experience status to "active" requires explicit user confirmation. Ask the user to confirm first, then retry with confirmation: { "user_confirmed": true, "reason": "..." }.',
|
|
318
|
+
};
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
return null;
|
|
322
|
+
}
|
|
323
|
+
/**
|
|
324
|
+
* Walk a JSON Schema tree and extract all enum fields with their paths
|
|
325
|
+
* and required fields. Handles allOf/oneOf/anyOf composition.
|
|
326
|
+
* Used to surface schema constraints that LLMs can't parse from raw JSON Schema.
|
|
327
|
+
*/
|
|
328
|
+
function extractBodyHints(inputSchema) {
|
|
329
|
+
const rbSchema = inputSchema?.properties?.requestBody;
|
|
330
|
+
if (!rbSchema)
|
|
331
|
+
return null;
|
|
332
|
+
const visited = new WeakSet();
|
|
333
|
+
const enumMap = new Map();
|
|
334
|
+
const requiredAtLevel = new Map();
|
|
335
|
+
function walk(schema, path) {
|
|
336
|
+
if (!schema || typeof schema !== 'object')
|
|
337
|
+
return;
|
|
338
|
+
if (visited.has(schema))
|
|
339
|
+
return;
|
|
340
|
+
visited.add(schema);
|
|
341
|
+
// Collect enum values
|
|
342
|
+
if (Array.isArray(schema.enum)) {
|
|
343
|
+
const vals = schema.enum.filter((v) => typeof v === 'string' || typeof v === 'number');
|
|
344
|
+
if (vals.length > 0 && path) {
|
|
345
|
+
const existing = enumMap.get(path) || new Set();
|
|
346
|
+
vals.forEach((v) => existing.add(String(v)));
|
|
347
|
+
enumMap.set(path, existing);
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
// Collect required fields
|
|
351
|
+
if (Array.isArray(schema.required) && schema.required.length > 0) {
|
|
352
|
+
const level = path || '(root)';
|
|
353
|
+
const existing = requiredAtLevel.get(level) || new Set();
|
|
354
|
+
schema.required.forEach((r) => existing.add(r));
|
|
355
|
+
requiredAtLevel.set(level, existing);
|
|
356
|
+
}
|
|
357
|
+
// Walk properties
|
|
358
|
+
if (schema.properties && typeof schema.properties === 'object') {
|
|
359
|
+
for (const [key, value] of Object.entries(schema.properties)) {
|
|
360
|
+
const prop = value;
|
|
361
|
+
if (prop.readOnly)
|
|
362
|
+
continue; // skip auto-generated IDs
|
|
363
|
+
walk(prop, path ? `${path}.${key}` : key);
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
// Walk array items
|
|
367
|
+
if (schema.items) {
|
|
368
|
+
walk(schema.items, `${path}[]`);
|
|
369
|
+
}
|
|
370
|
+
// Walk composition keywords
|
|
371
|
+
for (const kw of ['allOf', 'oneOf', 'anyOf']) {
|
|
372
|
+
if (Array.isArray(schema[kw])) {
|
|
373
|
+
for (const sub of schema[kw]) {
|
|
374
|
+
walk(sub, path);
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
walk(rbSchema, '');
|
|
380
|
+
const lines = [];
|
|
381
|
+
// Show enum fields with valid values (sorted by path depth, shallow first)
|
|
382
|
+
const enumEntries = [...enumMap.entries()]
|
|
383
|
+
.sort((a, b) => a[0].split('.').length - b[0].split('.').length);
|
|
384
|
+
for (const [field, values] of enumEntries) {
|
|
385
|
+
const valArr = [...values];
|
|
386
|
+
if (valArr.length > 12) {
|
|
387
|
+
lines.push(` ${field}: ${valArr.slice(0, 10).map(v => `"${v}"`).join(', ')}, ... (${valArr.length} values)`);
|
|
388
|
+
}
|
|
389
|
+
else {
|
|
390
|
+
lines.push(` ${field}: ${valArr.map(v => `"${v}"`).join(', ')}`);
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
// Show required fields per level
|
|
394
|
+
for (const [level, fields] of requiredAtLevel) {
|
|
395
|
+
const fieldArr = [...fields].filter(f => f !== 'id'); // skip auto-assigned ids
|
|
396
|
+
if (fieldArr.length === 0)
|
|
397
|
+
continue;
|
|
398
|
+
if (level === '(root)') {
|
|
399
|
+
lines.push(` Required: ${fieldArr.join(', ')}`);
|
|
400
|
+
}
|
|
401
|
+
else {
|
|
402
|
+
lines.push(` Required in ${level}: ${fieldArr.join(', ')}`);
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
return lines.length > 0 ? lines.join('\n') : null;
|
|
406
|
+
}
|
|
124
407
|
function actionsForToolset(namespace, toolSet) {
|
|
125
408
|
const all = Object.entries(REGISTRY[namespace] || {});
|
|
126
409
|
if (toolSet === 'all')
|
|
@@ -128,42 +411,81 @@ function actionsForToolset(namespace, toolSet) {
|
|
|
128
411
|
// reporting/readOnly: include only underlying tools that start with 'get'
|
|
129
412
|
return all.filter(([, tool]) => tool.startsWith('get')).map(([a]) => a);
|
|
130
413
|
}
|
|
414
|
+
/**
|
|
415
|
+
* Compute MCP tool annotations from the filtered action set.
|
|
416
|
+
* Annotations reflect the worst-case capability of the exposed actions:
|
|
417
|
+
* - readOnlyHint: true only when ALL actions are reads
|
|
418
|
+
* - destructiveHint: true when ANY action is a delete
|
|
419
|
+
* - idempotentHint: true only when ALL actions are reads (GETs are idempotent)
|
|
420
|
+
* - openWorldHint: false — all tools affect bounded Convert API resources
|
|
421
|
+
*/
|
|
422
|
+
function annotationsForNamespace(ns, actions) {
|
|
423
|
+
const hasWriteAction = actions.some((a) => {
|
|
424
|
+
const toolName = REGISTRY[ns]?.[a];
|
|
425
|
+
return toolName && !toolName.startsWith('get');
|
|
426
|
+
});
|
|
427
|
+
const hasDeleteAction = actions.includes('delete');
|
|
428
|
+
return {
|
|
429
|
+
title: NAMESPACE_TITLES[ns] ?? ns,
|
|
430
|
+
readOnlyHint: !hasWriteAction,
|
|
431
|
+
destructiveHint: hasWriteAction && hasDeleteAction,
|
|
432
|
+
idempotentHint: !hasWriteAction,
|
|
433
|
+
openWorldHint: false,
|
|
434
|
+
};
|
|
435
|
+
}
|
|
131
436
|
export function getNamespacedTools(toolSet) {
|
|
132
437
|
return Object.keys(REGISTRY).map((ns) => {
|
|
133
438
|
const actions = actionsForToolset(ns, toolSet);
|
|
134
|
-
|
|
135
|
-
|
|
439
|
+
// Build rich namespace description from curated map or fallback
|
|
440
|
+
const nsDesc = NAMESPACE_DESCRIPTIONS[ns] || `Manage ${ns} in the user's Convert.com account via the live API.`;
|
|
441
|
+
const description = `${nsDesc} Available actions: ${actions.join(', ')}.`;
|
|
442
|
+
// Build structured metadata for each action, merging ACTION_NOTES
|
|
136
443
|
const actionMetadata = actions.map((action) => {
|
|
137
444
|
const toolName = REGISTRY[ns][action];
|
|
138
445
|
const def = toolDefinitionMap.get(toolName);
|
|
139
446
|
if (!def)
|
|
140
447
|
return { action, description: 'No metadata available' };
|
|
141
|
-
const pathParams = (def
|
|
142
|
-
.filter((p) => p.in === 'path')
|
|
143
|
-
.map((p) => p.name);
|
|
448
|
+
const pathParams = requiredPathParamsForDef(def);
|
|
144
449
|
const queryParams = (def.executionParameters || [])
|
|
145
450
|
.filter((p) => p.in === 'query')
|
|
146
451
|
.map((p) => p.name);
|
|
147
452
|
const hasBody = !!def.requestBodyContentType;
|
|
453
|
+
const baseDesc = def.description || 'No description';
|
|
454
|
+
const note = ACTION_NOTES[`${ns}.${action}`];
|
|
455
|
+
const bodyHints = hasBody ? extractBodyHints(def.inputSchema) : null;
|
|
456
|
+
const parts = [baseDesc];
|
|
457
|
+
if (note)
|
|
458
|
+
parts.push(`Agent Notes:\n${note}`);
|
|
459
|
+
if (bodyHints)
|
|
460
|
+
parts.push(`Body schema:\n${bodyHints}`);
|
|
461
|
+
const fullDesc = parts.join('\n\n');
|
|
148
462
|
return {
|
|
149
463
|
action,
|
|
150
|
-
description:
|
|
464
|
+
description: fullDesc,
|
|
151
465
|
method: def.method.toUpperCase(),
|
|
152
466
|
path_parameters: pathParams,
|
|
153
467
|
query_parameters: queryParams,
|
|
154
468
|
accepts_body: hasBody,
|
|
155
469
|
};
|
|
156
470
|
});
|
|
471
|
+
// Hint in action description when notes are available
|
|
472
|
+
const actionsWithNotes = actions.filter(a => ACTION_NOTES[`${ns}.${a}`]);
|
|
473
|
+
const actionDesc = actionsWithNotes.length
|
|
474
|
+
? 'Action to perform. See _meta.available_actions for detailed per-action guidance.'
|
|
475
|
+
: 'Action to perform';
|
|
157
476
|
return {
|
|
158
477
|
name: ns,
|
|
478
|
+
title: NAMESPACE_TITLES[ns] ?? ns,
|
|
159
479
|
description,
|
|
160
480
|
inputSchema: {
|
|
481
|
+
$schema: JSON_SCHEMA_DRAFT_2020_12,
|
|
161
482
|
type: 'object',
|
|
162
483
|
properties: {
|
|
163
|
-
action: { type: 'string', enum: actions, description:
|
|
484
|
+
action: { type: 'string', enum: actions, description: actionDesc },
|
|
164
485
|
path: { type: 'object', additionalProperties: true, description: 'Path params: e.g., account_id, project_id, experience_id' },
|
|
165
486
|
query: { type: 'object', additionalProperties: true, description: 'Query parameters for the API request. Array parameters (like include, expand) must always be passed as arrays, even for single values. IMPORTANT: When using "include" to fetch related resources, you MUST also use "expand" with identical values to get complete object data instead of just numeric IDs. Examples: {"include": ["goals"], "expand": ["goals"]} (correct) vs {"include": ["goals"]} (incorrect - returns useless IDs only).' },
|
|
166
487
|
body: { type: 'object', additionalProperties: true, description: 'Request body (for create/update/clone, etc.)' },
|
|
488
|
+
confirmation: { type: 'object', additionalProperties: true, description: 'Optional explicit user confirmation metadata for sensitive actions. Example: {"user_confirmed": true, "reason": "User approved activation"}' },
|
|
167
489
|
},
|
|
168
490
|
required: ['action'],
|
|
169
491
|
_meta: {
|
|
@@ -171,85 +493,133 @@ export function getNamespacedTools(toolSet) {
|
|
|
171
493
|
available_actions: actionMetadata,
|
|
172
494
|
},
|
|
173
495
|
},
|
|
496
|
+
outputSchema: {
|
|
497
|
+
$schema: JSON_SCHEMA_DRAFT_2020_12,
|
|
498
|
+
type: 'object',
|
|
499
|
+
description: 'Standardized namespace tool result envelope.',
|
|
500
|
+
properties: {
|
|
501
|
+
ok: { type: 'boolean', description: 'True on success, false on tool-level error.' },
|
|
502
|
+
namespace: { type: 'string', description: 'Namespace that handled the request.' },
|
|
503
|
+
action: { type: 'string', description: 'Namespace action requested by the model.' },
|
|
504
|
+
delegate: { type: 'string', description: 'Underlying generated tool ID executed for this action.' },
|
|
505
|
+
status: { type: 'number', description: 'HTTP status code from the Convert API (when available).' },
|
|
506
|
+
data: { description: 'Raw API response payload for successful requests.' },
|
|
507
|
+
error: { description: 'Error code/object for failed requests.' },
|
|
508
|
+
issues: { type: 'array', items: { type: 'object' }, description: 'Validation issues, if present.' },
|
|
509
|
+
},
|
|
510
|
+
additionalProperties: true,
|
|
511
|
+
},
|
|
512
|
+
annotations: annotationsForNamespace(ns, actions),
|
|
174
513
|
};
|
|
175
514
|
});
|
|
176
515
|
}
|
|
516
|
+
function withNamespaceEnvelope(result, namespace, action, delegate) {
|
|
517
|
+
const base = (result.structuredContent && typeof result.structuredContent === 'object')
|
|
518
|
+
? result.structuredContent
|
|
519
|
+
: {};
|
|
520
|
+
const envelope = {
|
|
521
|
+
ok: !result.isError,
|
|
522
|
+
namespace,
|
|
523
|
+
...base,
|
|
524
|
+
};
|
|
525
|
+
if (action)
|
|
526
|
+
envelope.action = action;
|
|
527
|
+
if (delegate)
|
|
528
|
+
envelope.delegate = delegate;
|
|
529
|
+
if (result.isError && typeof envelope.error === 'undefined') {
|
|
530
|
+
const fallbackText = result.content?.[0]?.type === 'text' ? result.content[0].text : 'Unknown error';
|
|
531
|
+
envelope.error = fallbackText;
|
|
532
|
+
}
|
|
533
|
+
return {
|
|
534
|
+
...result,
|
|
535
|
+
structuredContent: envelope,
|
|
536
|
+
};
|
|
537
|
+
}
|
|
177
538
|
export async function executeNamespacedTool(namespace, args) {
|
|
178
539
|
if (!REGISTRY[namespace]) {
|
|
179
540
|
const error = { error: 'UnknownNamespace', namespace, available_namespaces: Object.keys(REGISTRY) };
|
|
180
|
-
return {
|
|
181
|
-
content: [
|
|
182
|
-
|
|
183
|
-
{ type: 'text', text: JSON.stringify(error, null, 2) }
|
|
184
|
-
],
|
|
541
|
+
return withNamespaceEnvelope({
|
|
542
|
+
content: [{ type: 'text', text: `Unknown namespace: ${namespace}` }],
|
|
543
|
+
structuredContent: error,
|
|
185
544
|
isError: true,
|
|
186
|
-
};
|
|
545
|
+
}, namespace);
|
|
187
546
|
}
|
|
188
547
|
if (!args || typeof args !== 'object') {
|
|
189
|
-
const error = { error: 'InvalidArguments', message: 'Expected object with fields: action, path, query, body' };
|
|
190
|
-
return {
|
|
191
|
-
content: [
|
|
192
|
-
|
|
193
|
-
{ type: 'text', text: JSON.stringify(error, null, 2) }
|
|
194
|
-
],
|
|
548
|
+
const error = { error: 'InvalidArguments', message: 'Expected object with fields: action, path, query, body, confirmation' };
|
|
549
|
+
return withNamespaceEnvelope({
|
|
550
|
+
content: [{ type: 'text', text: `Invalid arguments. Expected object with fields: action, path, query, body, confirmation.` }],
|
|
551
|
+
structuredContent: error,
|
|
195
552
|
isError: true,
|
|
196
|
-
};
|
|
553
|
+
}, namespace);
|
|
197
554
|
}
|
|
198
|
-
const { action, path = {}, query = {}, body } = args;
|
|
555
|
+
const { action, path = {}, query = {}, body, confirmation } = args;
|
|
199
556
|
if (!action || typeof action !== 'string') {
|
|
200
557
|
const error = { error: 'MissingAction', message: 'The action field is required and must be a string' };
|
|
201
|
-
return {
|
|
202
|
-
content: [
|
|
203
|
-
|
|
204
|
-
{ type: 'text', text: JSON.stringify(error, null, 2) }
|
|
205
|
-
],
|
|
558
|
+
return withNamespaceEnvelope({
|
|
559
|
+
content: [{ type: 'text', text: `Missing or invalid 'action'.` }],
|
|
560
|
+
structuredContent: error,
|
|
206
561
|
isError: true,
|
|
207
|
-
};
|
|
562
|
+
}, namespace);
|
|
208
563
|
}
|
|
209
564
|
const delegate = REGISTRY[namespace][action];
|
|
210
565
|
if (!delegate) {
|
|
211
566
|
const available = Object.keys(REGISTRY[namespace]);
|
|
212
567
|
const error = { error: 'UnknownAction', namespace, action, available_actions: available };
|
|
213
|
-
return {
|
|
214
|
-
content: [
|
|
215
|
-
|
|
216
|
-
{ type: 'text', text: JSON.stringify(error, null, 2) }
|
|
217
|
-
],
|
|
568
|
+
return withNamespaceEnvelope({
|
|
569
|
+
content: [{ type: 'text', text: `Unknown action '${action}' for namespace '${namespace}'. Available: ${available.join(', ')}` }],
|
|
570
|
+
structuredContent: error,
|
|
218
571
|
isError: true,
|
|
219
|
-
};
|
|
572
|
+
}, namespace, action);
|
|
220
573
|
}
|
|
221
574
|
const def = toolDefinitionMap.get(delegate);
|
|
222
575
|
if (!def) {
|
|
223
576
|
const error = { error: 'InternalError', message: 'Delegate tool not found', delegate };
|
|
224
|
-
return {
|
|
225
|
-
content: [
|
|
226
|
-
|
|
227
|
-
{ type: 'text', text: JSON.stringify(error, null, 2) }
|
|
228
|
-
],
|
|
577
|
+
return withNamespaceEnvelope({
|
|
578
|
+
content: [{ type: 'text', text: `Internal error: delegate tool not found: ${delegate}` }],
|
|
579
|
+
structuredContent: error,
|
|
229
580
|
isError: true,
|
|
230
|
-
};
|
|
581
|
+
}, namespace, action, delegate);
|
|
231
582
|
}
|
|
232
583
|
// Validate required path params early for better error messages
|
|
233
|
-
const requiredPathParams = (def
|
|
584
|
+
const requiredPathParams = requiredPathParamsForDef(def);
|
|
234
585
|
const missing = requiredPathParams.filter((k) => !(k in path));
|
|
235
586
|
if (missing.length) {
|
|
587
|
+
const note = ACTION_NOTES[`${namespace}.${action}`];
|
|
588
|
+
const hint = note ? `\n\nHint for ${namespace}.${action}:\n${note}` : '';
|
|
236
589
|
const error = { error: 'MissingPathParameters', namespace, action, missing_parameters: missing };
|
|
237
|
-
return {
|
|
238
|
-
content: [
|
|
239
|
-
|
|
240
|
-
{ type: 'text', text: JSON.stringify(error, null, 2) }
|
|
241
|
-
],
|
|
590
|
+
return withNamespaceEnvelope({
|
|
591
|
+
content: [{ type: 'text', text: `Missing required path parameters: ${missing.map(k => `path.${k}`).join(', ')}${hint}` }],
|
|
592
|
+
structuredContent: error,
|
|
242
593
|
isError: true,
|
|
243
|
-
};
|
|
594
|
+
}, namespace, action, delegate);
|
|
595
|
+
}
|
|
596
|
+
const normalizedBody = normalizeBodyForAction(namespace, action, body);
|
|
597
|
+
const guardrail = evaluateGuardrails(namespace, action, normalizedBody, confirmation);
|
|
598
|
+
if (guardrail) {
|
|
599
|
+
return withNamespaceEnvelope({
|
|
600
|
+
content: [{ type: 'text', text: guardrail.message }],
|
|
601
|
+
structuredContent: {
|
|
602
|
+
error: guardrail.code,
|
|
603
|
+
namespace,
|
|
604
|
+
action,
|
|
605
|
+
message: guardrail.message,
|
|
606
|
+
},
|
|
607
|
+
isError: true,
|
|
608
|
+
}, namespace, action, delegate);
|
|
244
609
|
}
|
|
245
610
|
const flattenedArgs = { ...path, ...query };
|
|
246
|
-
if (def.requestBodyContentType && typeof
|
|
247
|
-
flattenedArgs.requestBody =
|
|
611
|
+
if (def.requestBodyContentType && typeof normalizedBody !== 'undefined') {
|
|
612
|
+
flattenedArgs.requestBody = normalizedBody;
|
|
248
613
|
}
|
|
249
|
-
|
|
250
|
-
|
|
614
|
+
const result = await executeToolByName(delegate, flattenedArgs);
|
|
615
|
+
// Append action-specific guidance to error messages so agents can self-correct
|
|
616
|
+
if (result.isError) {
|
|
617
|
+
const note = ACTION_NOTES[`${namespace}.${action}`];
|
|
618
|
+
if (note && result.content?.[0]?.type === 'text') {
|
|
619
|
+
result.content[0].text += `\n\nHint for ${namespace}.${action}:\n${note}`;
|
|
620
|
+
}
|
|
251
621
|
}
|
|
252
|
-
return
|
|
622
|
+
return withNamespaceEnvelope(result, namespace, action, delegate);
|
|
253
623
|
}
|
|
254
624
|
export function isNamespace(name) {
|
|
255
625
|
return Object.prototype.hasOwnProperty.call(REGISTRY, name);
|
package/build/namespaced.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"namespaced.js","sourceRoot":"","sources":["../src/namespaced.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"namespaced.js","sourceRoot":"","sources":["../src/namespaced.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export type JsonObject = Record<string, any>;
|
|
2
|
+
export declare const JSON_SCHEMA_DRAFT_2020_12 = "https://json-schema.org/draft/2020-12/schema";
|
|
3
|
+
/**
|
|
4
|
+
* Extract path parameter names from a URL template like "/accounts/{account_id}/projects/{project_id}".
|
|
5
|
+
*/
|
|
6
|
+
export declare function pathParamsFromTemplate(pathTemplate: string): string[];
|