@cloudcart/dev-mcp 0.1.2 → 0.1.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.
@@ -1,4 +1,5 @@
1
1
  import { loadSchema } from "../schema/loader.js";
2
+ import { matchAppResourceGroup } from "../app-resources.js";
2
3
  function resolveTypeRef(typeRef) {
3
4
  if (typeRef.kind === "NON_NULL") {
4
5
  return `${resolveTypeRef(typeRef.ofType)}!`;
@@ -8,9 +9,8 @@ function resolveTypeRef(typeRef) {
8
9
  }
9
10
  return typeRef.name ?? "Unknown";
10
11
  }
11
- function formatField(field) {
12
- const parts = [];
13
- let signature = field.name;
12
+ function signatureFor(field) {
13
+ let sig = field.name;
14
14
  if (field.args && field.args.length > 0) {
15
15
  const argStr = field.args
16
16
  .map((a) => {
@@ -20,70 +20,106 @@ function formatField(field) {
20
20
  return s;
21
21
  })
22
22
  .join(", ");
23
- signature += `(${argStr})`;
23
+ sig += `(${argStr})`;
24
24
  }
25
- signature += `: ${resolveTypeRef(field.type)}`;
26
- parts.push(signature);
27
- if (field.description) {
28
- parts.push(` # ${field.description}`);
25
+ sig += `: ${resolveTypeRef(field.type)}`;
26
+ return sig;
27
+ }
28
+ /** Compact one-line field: `name: Type # description` (or just signature if no desc). */
29
+ function formatField(field) {
30
+ const sig = signatureFor(field);
31
+ return field.description ? `${sig} # ${field.description}` : sig;
32
+ }
33
+ const MAX_FIELDS_PER_TYPE = 20;
34
+ /** Root types known to have been consolidated into grouped sub-types. */
35
+ const GROUPED_PARENT_HINTS = {
36
+ Product: "pricing/seo/flags/inventory/parameters/timestamps",
37
+ Order: "buyer/amounts/statuses/documents/notes/flags/timestamps",
38
+ Customer: "contact/verification/marketingPrefs/status/defaults/timestamps",
39
+ CartSettings: "registration/limits/defaults/checkoutFields/maps/orders/abandoned/legal",
40
+ };
41
+ /** True if a type looks like a Relay connection that exposes the flat `nodes` + `totalCount` alternative. */
42
+ function hasFlatNodesShape(type) {
43
+ if (!type.name.endsWith("Connection"))
44
+ return false;
45
+ const fieldNames = new Set((type.fields ?? []).map((f) => f.name));
46
+ return fieldNames.has("nodes") && fieldNames.has("totalCount");
47
+ }
48
+ /** Collect contextual hints specific to this type (nodes preference, grouped sub-types). */
49
+ function hintsForType(type) {
50
+ const hints = [];
51
+ if (hasFlatNodesShape(type)) {
52
+ hints.push("> TIP: prefer `{ nodes { ... } totalCount }` unless you need cursor pagination (~2× smaller payload).");
29
53
  }
30
- return parts.join("\n");
54
+ const grouped = GROUPED_PARENT_HINTS[type.name];
55
+ if (grouped) {
56
+ hints.push(`> TIP: ${type.name} fields live in grouped sub-types — ${grouped}.`);
57
+ }
58
+ return hints;
59
+ }
60
+ /** One-line type summary: `KIND Name # Description`. No field body. */
61
+ function formatTypeSummary(type) {
62
+ return type.description ? `${type.kind} ${type.name} # ${type.description}` : `${type.kind} ${type.name}`;
31
63
  }
32
64
  function formatType(type) {
33
- const lines = [];
34
- // Header with kind and name
35
- let header = `${type.kind} ${type.name}`;
36
- lines.push(header);
37
- if (type.description) {
38
- lines.push(` Description: ${type.description}`);
39
- }
40
- // Show implements (interfaces)
65
+ const lines = [formatTypeSummary(type)];
41
66
  if (type.interfaces && type.interfaces.length > 0) {
42
67
  const ifaceNames = type.interfaces.map((i) => i.name ?? resolveTypeRef(i)).filter(Boolean);
43
- if (ifaceNames.length > 0) {
44
- lines.push(` Implements: ${ifaceNames.join(", ")}`);
45
- }
68
+ if (ifaceNames.length > 0)
69
+ lines.push(` implements ${ifaceNames.join(", ")}`);
46
70
  }
47
71
  if (type.fields && type.fields.length > 0) {
48
- lines.push("");
49
- lines.push(" Fields:");
50
- lines.push("");
51
- for (const f of type.fields.slice(0, 20)) {
52
- lines.push(` ${formatField(f)}`);
53
- lines.push("");
72
+ const shown = type.fields.slice(0, MAX_FIELDS_PER_TYPE);
73
+ for (const f of shown) {
74
+ lines.push(` ${formatField(f)}`);
54
75
  }
55
- if (type.fields.length > 20) {
56
- lines.push(` ... and ${type.fields.length - 20} more fields`);
76
+ if (type.fields.length > MAX_FIELDS_PER_TYPE) {
77
+ // Expose the remaining field names + types (no descriptions) — critical
78
+ // fields like `Order.productsCount` must stay discoverable rather than
79
+ // being hidden behind a "... +N more fields" truncation.
80
+ const rest = type.fields.slice(MAX_FIELDS_PER_TYPE);
81
+ const sigs = rest.map((f) => signatureFor(f));
82
+ lines.push(` # +${rest.length} more: ${sigs.join(", ")}`);
57
83
  }
58
84
  }
59
85
  if (type.inputFields && type.inputFields.length > 0) {
60
- lines.push("");
61
- lines.push(" Input Fields:");
62
- lines.push("");
63
- for (const f of type.inputFields.slice(0, 20)) {
64
- lines.push(` ${f.name}: ${resolveTypeRef(f.type)}`);
65
- if (f.description) {
66
- lines.push(` # ${f.description}`);
67
- }
68
- lines.push("");
86
+ const shown = type.inputFields.slice(0, MAX_FIELDS_PER_TYPE);
87
+ for (const f of shown) {
88
+ const sig = `${f.name}: ${resolveTypeRef(f.type)}`;
89
+ lines.push(` ${f.description ? `${sig} # ${f.description}` : sig}`);
69
90
  }
70
- if (type.inputFields.length > 20) {
71
- lines.push(` ... and ${type.inputFields.length - 20} more fields`);
91
+ if (type.inputFields.length > MAX_FIELDS_PER_TYPE) {
92
+ const rest = type.inputFields.slice(MAX_FIELDS_PER_TYPE);
93
+ const sigs = rest.map((f) => `${f.name}: ${resolveTypeRef(f.type)}`);
94
+ lines.push(` # +${rest.length} more: ${sigs.join(", ")}`);
72
95
  }
73
96
  }
74
97
  if (type.enumValues && type.enumValues.length > 0) {
75
- lines.push("");
76
98
  for (const v of type.enumValues) {
77
- lines.push(` ${v.name}${v.description ? ` ${v.description}` : ""}`);
99
+ lines.push(` ${v.name}${v.description ? ` # ${v.description}` : ""}`);
78
100
  }
79
101
  }
80
102
  return lines.join("\n");
81
103
  }
82
104
  const RESULTS_LIMIT = 10;
105
+ function formatAppNotice(group) {
106
+ return `> ⚠️ ${group.label} (Application-Provided) — ${group.notice}`;
107
+ }
83
108
  export function introspectSchema(input) {
84
109
  const api = input.api ?? "admin";
85
110
  const filters = input.filter ?? ["all"];
86
111
  const includeAll = filters.includes("all");
112
+ // Reject empty/whitespace-only queries — returning a random top-10 slice
113
+ // (1 500+ tokens) helps nobody. Nudge the caller to provide a term.
114
+ const rawQuery = input.query?.trim() ?? "";
115
+ if (rawQuery === "") {
116
+ return {
117
+ content: [{
118
+ type: "text",
119
+ text: `Provide a search term (e.g. "product", "createOrder", "discount"). Empty queries are rejected to avoid flooding your context with arbitrary results.`,
120
+ }],
121
+ };
122
+ }
87
123
  let schema;
88
124
  try {
89
125
  schema = loadSchema(api);
@@ -93,47 +129,88 @@ export function introspectSchema(input) {
93
129
  content: [{ type: "text", text: `Failed to load schema for "${api}": ${e.message}` }],
94
130
  };
95
131
  }
96
- // Normalize query: trim, strip trailing 's', remove whitespace, lowercase
97
- let normalized = input.query.trim().toLowerCase().replace(/\s+/g, "");
132
+ // Normalize query: lowercase, strip whitespace, drop trailing 's' so
133
+ // "categories" and "category" both match CategoryConnection / Category.
134
+ let normalized = rawQuery.toLowerCase().replace(/\s+/g, "");
98
135
  if (normalized.endsWith("s") && normalized.length > 1) {
99
136
  normalized = normalized.slice(0, -1);
100
137
  }
101
138
  const sections = [];
139
+ // Dedup app notices across the whole response — a grouped speedy hit in
140
+ // Types + Queries + Mutations should only emit one banner.
141
+ const shownAppNotices = new Set();
142
+ let anyTruncated = false;
143
+ const renderAppPrefix = (name) => {
144
+ const appGroup = matchAppResourceGroup(name);
145
+ if (!appGroup || shownAppNotices.has(appGroup.group))
146
+ return "";
147
+ shownAppNotices.add(appGroup.group);
148
+ return formatAppNotice(appGroup) + "\n";
149
+ };
102
150
  if (includeAll || filters.includes("types")) {
103
- const matched = schema.types
104
- .filter((t) => t.name.toLowerCase().includes(normalized))
105
- .sort((a, b) => a.name.length - b.name.length)
106
- .slice(0, RESULTS_LIMIT);
151
+ const all = schema.types.filter((t) => t.name.toLowerCase().includes(normalized));
152
+ const matched = all.sort((a, b) => a.name.length - b.name.length).slice(0, RESULTS_LIMIT);
153
+ if (all.length > RESULTS_LIMIT)
154
+ anyTruncated = true;
107
155
  if (matched.length > 0) {
108
- sections.push(`## Matching GraphQL Types:\n(Results limited to ${RESULTS_LIMIT} items. Refine your search for more specific results.)\n\n` +
109
- matched.map(formatType).join("\n\n"));
156
+ // When multiple types match, only expand the top hit with full fields.
157
+ // The rest are 1-line summaries — the agent can follow up with a
158
+ // specific introspect(query: "ExactName") if they need details.
159
+ // Exact-name hits always get full detail regardless of result count.
160
+ const lines = ["## Types"];
161
+ const emittedHints = [];
162
+ matched.forEach((t, i) => {
163
+ const exactHit = t.name.toLowerCase() === normalized || t.name.toLowerCase() === rawQuery.toLowerCase();
164
+ const expand = i === 0 || exactHit || matched.length === 1;
165
+ const body = expand ? formatType(t) : formatTypeSummary(t);
166
+ lines.push(renderAppPrefix(t.name) + body);
167
+ if (expand)
168
+ emittedHints.push(...hintsForType(t));
169
+ });
170
+ // Per-type hints (nodes/totalCount, grouped sub-types) — dedup.
171
+ const uniqueHints = Array.from(new Set(emittedHints));
172
+ uniqueHints.forEach((h) => lines.push(h));
173
+ if (matched.length > 1 && !matched.every((t, i) => i === 0 || t.name.toLowerCase() === rawQuery.toLowerCase())) {
174
+ lines.push(`> Only the top match is expanded. For full fields on others, re-run with the exact type name.`);
175
+ }
176
+ sections.push(lines.join("\n\n"));
110
177
  }
111
178
  }
112
179
  if (includeAll || filters.includes("queries")) {
113
- const matched = schema.queries
114
- .filter((q) => q.name.toLowerCase().includes(normalized))
115
- .sort((a, b) => a.name.length - b.name.length)
116
- .slice(0, RESULTS_LIMIT);
180
+ const all = schema.queries.filter((q) => q.name.toLowerCase().includes(normalized));
181
+ const matched = all.sort((a, b) => a.name.length - b.name.length).slice(0, RESULTS_LIMIT);
182
+ if (all.length > RESULTS_LIMIT)
183
+ anyTruncated = true;
117
184
  if (matched.length > 0) {
118
- sections.push(`## Matching GraphQL Queries:\n(Results limited to ${RESULTS_LIMIT} items. Refine your search for more specific results.)\n\n` +
119
- matched.map((f) => formatField(f)).join("\n\n"));
185
+ sections.push(`## Queries\n` +
186
+ matched.map((f) => renderAppPrefix(f.name) + formatField(f)).join("\n"));
120
187
  }
121
188
  }
122
189
  if (includeAll || filters.includes("mutations")) {
123
- const matched = schema.mutations
124
- .filter((m) => m.name.toLowerCase().includes(normalized))
125
- .sort((a, b) => a.name.length - b.name.length)
126
- .slice(0, RESULTS_LIMIT);
190
+ const all = schema.mutations.filter((m) => m.name.toLowerCase().includes(normalized));
191
+ const matched = all.sort((a, b) => a.name.length - b.name.length).slice(0, RESULTS_LIMIT);
192
+ if (all.length > RESULTS_LIMIT)
193
+ anyTruncated = true;
127
194
  if (matched.length > 0) {
128
- sections.push(`## Matching GraphQL Mutations:\n(Results limited to ${RESULTS_LIMIT} items. Refine your search for more specific results.)\n\n` +
129
- matched.map((f) => formatField(f)).join("\n\n"));
195
+ sections.push(`## Mutations\n` +
196
+ matched.map((f) => renderAppPrefix(f.name) + formatField(f)).join("\n") +
197
+ `\n> TIP: mutation inputs are snake_case — use url_handle, first_name, price_from, etc. (outputs are camelCase).`);
130
198
  }
131
199
  }
132
- const text = sections.length > 0
133
- ? sections.join("\n\n")
134
- : `No results found for "${input.query}" in the ${api} API schema. Try a broader search term.`;
200
+ if (sections.length === 0) {
201
+ return {
202
+ content: [{
203
+ type: "text",
204
+ text: `No results for "${input.query}" in the ${api} API. Try a broader term or a different word stem.`,
205
+ }],
206
+ };
207
+ }
208
+ const header = anyTruncated
209
+ ? `> Some sections hit the ${RESULTS_LIMIT}-item cap; refine your term for more specific results.\n\n`
210
+ : "";
211
+ const footer = `\n\n> NEXT: pass your drafted query to validate_graphql_codeblocks before executing — it catches typos, wrong types, and deprecated fields.`;
135
212
  return {
136
- content: [{ type: "text", text }],
213
+ content: [{ type: "text", text: header + sections.join("\n\n") + footer }],
137
214
  };
138
215
  }
139
216
  //# sourceMappingURL=introspect-schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"introspect-schema.js","sourceRoot":"","sources":["../../src/tools/introspect-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"introspect-schema.js","sourceRoot":"","sources":["../../src/tools/introspect-schema.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate-graphql.d.ts","sourceRoot":"","sources":["../../src/tools/validate-graphql.ts"],"names":[],"mappings":"AAcA,UAAU,SAAS;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;CACxB;AAuDD,wBAAgB,eAAe,CAAC,KAAK,EAAE,aAAa;;;;;EA0FnD"}
1
+ {"version":3,"file":"validate-graphql.d.ts","sourceRoot":"","sources":["../../src/tools/validate-graphql.ts"],"names":[],"mappings":"AAcA,UAAU,SAAS;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;CACxB;AA6MD,wBAAgB,eAAe,CAAC,KAAK,EAAE,aAAa;;;;;EA+FnD"}
@@ -4,6 +4,154 @@ import { loadSchema } from "../schema/loader.js";
4
4
  function formatGraphQLError(error) {
5
5
  return error.message;
6
6
  }
7
+ /**
8
+ * Fields that existed at a root type before the Phase 3 consolidation
9
+ * and now live under a grouped sub-type. Keyed by "Parent.oldField".
10
+ */
11
+ const MOVED_FIELDS = {
12
+ "Order.quantity": "amounts.quantity",
13
+ "Order.priceTotal": "amounts.total",
14
+ "Order.priceSubtotal": "amounts.subtotal",
15
+ "Order.priceProductsSubtotal": "amounts.productsSubtotal",
16
+ "Order.vatIncluded": "amounts.vatIncluded",
17
+ "Order.weight": "amounts.weight",
18
+ "Order.customerEmail": "buyer.email",
19
+ "Order.customerFirstName": "buyer.firstName",
20
+ "Order.customerLastName": "buyer.lastName",
21
+ "Order.customerId": "buyer.customerId",
22
+ "Order.status": "statuses.status",
23
+ "Order.statusFulfillment": "statuses.fulfillment",
24
+ "Order.noteCustomer": "notes.customer",
25
+ "Order.noteAdministrator": "notes.administrator",
26
+ "Order.invoiceNumber": "documents.invoiceNumber",
27
+ "Order.invoiceDate": "documents.invoiceDate",
28
+ "Order.dateAdded": "timestamps.added",
29
+ "Order.dateArchived": "timestamps.archived",
30
+ "Product.priceFrom": "pricing.from",
31
+ "Product.priceTo": "pricing.to",
32
+ "Product.priceType": "pricing.type",
33
+ "Product.seoTitle": "seo.title",
34
+ "Product.seoDescription": "seo.description",
35
+ "Product.active": "flags.active",
36
+ "Product.digital": "flags.digital",
37
+ "Product.hidden": "flags.hidden",
38
+ "Product.draft": "flags.draft",
39
+ "Product.featured": "flags.featured",
40
+ "Product.sale": "flags.sale",
41
+ "Product.new": "flags.new",
42
+ "Product.tracking": "inventory.tracking",
43
+ "Product.threshold": "inventory.threshold",
44
+ "Product.variantsCount": "inventory.variantsCount",
45
+ "Product.dateAdded": "timestamps.added",
46
+ "Product.dateModified": "timestamps.modified",
47
+ "Product.publishDate": "timestamps.publishAt",
48
+ "Customer.firstName": "contact.firstName",
49
+ "Customer.lastName": "contact.lastName",
50
+ "Customer.phone": "contact.phone",
51
+ "Customer.active": "status.active",
52
+ "Customer.banned": "status.banned",
53
+ "Customer.marketing": "marketingPrefs.marketing",
54
+ "Customer.newsletter": "marketingPrefs.newsletter",
55
+ "Customer.emailConfirmed": "verification.emailConfirmed",
56
+ "Customer.dateAdded": "timestamps.added",
57
+ };
58
+ /** Common ORM-style field names AI agents reach for that don't exist on CloudCart types. */
59
+ const COMMON_ALIASES = {
60
+ "Order.items": "products",
61
+ "Order.lineItems": "products",
62
+ "Order.orderProducts": "products",
63
+ "Cart.items": "products",
64
+ "Cart.lineItems": "products",
65
+ };
66
+ /**
67
+ * Produce a short remediation hint for a validation error message, so the
68
+ * agent can fix the query without a second introspect round-trip.
69
+ *
70
+ * Each hint is <= 1 line. Returns null if the message is not one we
71
+ * recognise — we stay silent instead of handwaving.
72
+ */
73
+ function hintForErrorMessage(msg) {
74
+ // Moved-field check (Phase 3 consolidation): was at root, now in sub-type.
75
+ const unknownField = msg.match(/Cannot query field "([A-Za-z_][A-Za-z0-9_]*)" on type "([A-Z][A-Za-z_]+)"/);
76
+ if (unknownField) {
77
+ const [, field, parent] = unknownField;
78
+ const moved = MOVED_FIELDS[`${parent}.${field}`];
79
+ if (moved) {
80
+ return `\`${parent}.${field}\` was consolidated into a sub-type — use \`${parent} { ${moved.split(".")[0]} { ${moved.split(".")[1]} } }\`.`;
81
+ }
82
+ const alias = COMMON_ALIASES[`${parent}.${field}`];
83
+ if (alias) {
84
+ return `\`${parent}\` uses \`${alias}\` for this relation, not \`${field}\`. Example: \`{ ${parent.toLowerCase()} { ${alias} { id } } }\`.`;
85
+ }
86
+ }
87
+ // "Cannot query field "snake_case" on type "X"."
88
+ const unknownSnake = msg.match(/Cannot query field "([a-z][a-z0-9_]*_[a-z0-9_]+)" on type "([A-Za-z_]+)"/);
89
+ if (unknownSnake) {
90
+ const snake = unknownSnake[1];
91
+ const camel = snake.replace(/_([a-z0-9])/g, (_, c) => c.toUpperCase());
92
+ const parent = unknownSnake[2];
93
+ const grouped = {
94
+ Product: "pricing { from to }, seo { title description }, flags { active digital }, inventory { ... }",
95
+ Order: "buyer { email firstName }, amounts { total subtotal }, statuses { status }, notes { customer administrator }",
96
+ Customer: "contact { firstName lastName phone }, status { active banned }, marketingPrefs { marketing newsletter }",
97
+ };
98
+ const groupHint = grouped[parent] ? ` Or check grouped sub-types on ${parent}: ${grouped[parent]}.` : "";
99
+ return `Output fields are camelCase — try \`${camel}\`.${groupHint}`;
100
+ }
101
+ // "Cannot query field "title" on type "Product". Did you mean ...?"
102
+ if (/Cannot query field "title" on type "Product"/.test(msg)) {
103
+ return `Product uses \`name\`, not \`title\`. The \`title\` field does not exist on Product.`;
104
+ }
105
+ // "Cannot query field "nodes" on type "ProductConnection". Did you mean "edges"?"
106
+ const autoConn = msg.match(/Cannot query field "(nodes|totalCount)" on type "([A-Za-z]+Connection)"/);
107
+ if (autoConn) {
108
+ return `${autoConn[2]} is auto-generated by @paginate — only \`edges { node cursor }\` + \`pageInfo\` are available. Use the cursor form on this connection.`;
109
+ }
110
+ // "Field \"X\" of required type \"Y!\" was not provided."
111
+ const missingInput = msg.match(/Field "([a-zA-Z_]+)\.([a-zA-Z_]+)" of required type/);
112
+ if (missingInput) {
113
+ return `Input field \`${missingInput[2]}\` is required on \`${missingInput[1]}\`. Check with introspect_graphql_schema for the full input shape.`;
114
+ }
115
+ // "Unknown argument "camelCase" on field "X" of type "Y"."
116
+ const argCamel = msg.match(/Unknown argument "([a-z]+[A-Z][a-zA-Z]*)" on field/);
117
+ if (argCamel) {
118
+ const camel = argCamel[1];
119
+ const snake = camel.replace(/[A-Z]/g, (c) => "_" + c.toLowerCase());
120
+ return `Arguments are snake_case on this API — try \`${snake}\`.`;
121
+ }
122
+ // Missing / unknown argument on known list queries — nudge towards the
123
+ // pre-built filter args the agent is almost certainly looking for.
124
+ const argHints = {
125
+ "orders.products_count": "orders has a server-side `products_count: NumericFilter` arg for \"orders with N products\". No need to fetch all and count client-side.",
126
+ "orders.quantity": "orders has a `quantity: NumericFilter` arg for total-item filtering.",
127
+ "customers.orders_count": "customers has a server-side `orders_count: NumericFilter` arg for \"customers with >= N completed orders\".",
128
+ "customers.total_spent": "customers has a `total_spent: NumericFilter` arg (store-currency cents).",
129
+ "customers.segment": "customers has a `segment: ID` arg — pass a segment id created via createSegment.",
130
+ "products.stock": "products has a `stock: NumericFilter` arg matching any variant's quantity. Use it instead of scanning variants client-side.",
131
+ "products.has_image": "products has a `has_image: Boolean` arg — use it instead of null-checking featuredImage in a loop.",
132
+ "products.hidden": "products has a `hidden: YesNo` arg.",
133
+ "products.tracking": "products has a `tracking: YesNo` arg.",
134
+ "products.date_modified": "products has a `date_modified: DateFilter` arg.",
135
+ "products.date_added": "products has a `date_added: DateFilter` arg.",
136
+ };
137
+ const unknownArg = msg.match(/Unknown argument "([a-z_]+)" on field "(?:Query\.)?([a-z]+)"/);
138
+ if (unknownArg) {
139
+ const [, arg, field] = unknownArg;
140
+ const key = `${field}.${arg}`;
141
+ if (argHints[key])
142
+ return argHints[key];
143
+ }
144
+ return null;
145
+ }
146
+ function remediationHintsFor(errors) {
147
+ const hints = new Set();
148
+ for (const err of errors) {
149
+ const hint = hintForErrorMessage(err);
150
+ if (hint)
151
+ hints.add(hint);
152
+ }
153
+ return Array.from(hints);
154
+ }
7
155
  function detectOperationType(document) {
8
156
  for (const def of document.definitions) {
9
157
  if (def.kind === Kind.OPERATION_DEFINITION) {
@@ -103,7 +251,12 @@ export function validateGraphql(input) {
103
251
  }
104
252
  else {
105
253
  lines.push(`**Status:** ❌ FAILED`);
106
- lines.push(`**Details:** GraphQL validation errors: ${r.errors.join("; ")}\n`);
254
+ lines.push(`**Details:** GraphQL validation errors: ${r.errors.join("; ")}`);
255
+ const hints = remediationHintsFor(r.errors);
256
+ for (const h of hints) {
257
+ lines.push(`> HINT: ${h}`);
258
+ }
259
+ lines.push("");
107
260
  }
108
261
  }
109
262
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"validate-graphql.js","sourceRoot":"","sources":["../../src/tools/validate-graphql.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate-graphql.js","sourceRoot":"","sources":["../../src/tools/validate-graphql.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcart/dev-mcp",
3
- "version": "0.1.2",
4
- "description": "MCP server for CloudCart GraphQL APIs helps AI assistants write correct queries and mutations",
3
+ "version": "0.1.4",
4
+ "description": "MCP server for CloudCart GraphQL APIs \u2014 helps AI assistants write correct queries and mutations",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "bin": {