@acodera/shopify-admin-mcp 1.1.1 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +20 -12
  3. package/dist/graphql/client.js +19 -2
  4. package/dist/graphql/client.js.map +1 -1
  5. package/dist/graphql/schema-index.d.ts +9 -0
  6. package/dist/graphql/schema-index.js +58 -8
  7. package/dist/graphql/schema-index.js.map +1 -1
  8. package/dist/index.js +21 -18
  9. package/dist/index.js.map +1 -1
  10. package/dist/server.d.ts +3 -3
  11. package/dist/server.js +20 -8
  12. package/dist/server.js.map +1 -1
  13. package/dist/tools/collections.js +1 -0
  14. package/dist/tools/collections.js.map +1 -1
  15. package/dist/tools/customers.js +3 -0
  16. package/dist/tools/customers.js.map +1 -1
  17. package/dist/tools/discounts.js +37 -17
  18. package/dist/tools/discounts.js.map +1 -1
  19. package/dist/tools/files.js +2 -1
  20. package/dist/tools/files.js.map +1 -1
  21. package/dist/tools/graphql-proxy.d.ts +2 -1
  22. package/dist/tools/graphql-proxy.js +23 -9
  23. package/dist/tools/graphql-proxy.js.map +1 -1
  24. package/dist/tools/inventory.js +1 -0
  25. package/dist/tools/inventory.js.map +1 -1
  26. package/dist/tools/markets.js +5 -1
  27. package/dist/tools/markets.js.map +1 -1
  28. package/dist/tools/orders.js +3 -0
  29. package/dist/tools/orders.js.map +1 -1
  30. package/dist/tools/products.js +8 -2
  31. package/dist/tools/products.js.map +1 -1
  32. package/dist/tools/publishing.js +2 -1
  33. package/dist/tools/publishing.js.map +1 -1
  34. package/dist/tools/schema-search.d.ts +2 -2
  35. package/dist/tools/schema-search.js +6 -3
  36. package/dist/tools/schema-search.js.map +1 -1
  37. package/dist/tools/theme-guard.d.ts +14 -0
  38. package/dist/tools/theme-guard.js +81 -0
  39. package/dist/tools/theme-guard.js.map +1 -0
  40. package/dist/tools/themes.js +10 -18
  41. package/dist/tools/themes.js.map +1 -1
  42. package/dist/utils/cli.d.ts +2 -0
  43. package/dist/utils/cli.js +1 -0
  44. package/dist/utils/cli.js.map +1 -1
  45. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # @acodera/shopify-admin-mcp
2
2
 
3
+ ## 1.2.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#9](https://github.com/acoderacom/shopify-admin-mcp/pull/9) [`4ffbe0b`](https://github.com/acoderacom/shopify-admin-mcp/commit/4ffbe0be98eb30b25a24ae6a05486346db66508d) Thanks [@acoderacom](https://github.com/acoderacom)! - Apply the live-theme guard to `shopify_graphql`: `themeFilesUpsert`, `themeFilesDelete`, and `themeFilesCopy` are refused when they target the live theme, and `themePublish` is refused, unless the server runs with `--allow-live-theme-writes`. Previously raw GraphQL could skip the guard the theme tools enforce. Add `--disable-raw-graphql` (`SHOPIFY_DISABLE_RAW_GRAPHQL`) to leave out `shopify_graphql`, so `--toolsets` limits what the assistant can reach.
8
+
9
+ ### Patch Changes
10
+
11
+ - [#9](https://github.com/acoderacom/shopify-admin-mcp/pull/9) [`4ffbe0b`](https://github.com/acoderacom/shopify-admin-mcp/commit/4ffbe0be98eb30b25a24ae6a05486346db66508d) Thanks [@acoderacom](https://github.com/acoderacom)! - Discount create tools reject inputs Shopify can't apply as asked. Combining `customerIds`, `customerSegmentIds`, and `marketIds` used to fail at Shopify, because a discount takes one kind of eligibility. Passing `collectionIds` together with `productIds` or `variantIds` used to drop the products and variants without a word.
12
+
13
+ - [#9](https://github.com/acoderacom/shopify-admin-mcp/pull/9) [`4ffbe0b`](https://github.com/acoderacom/shopify-admin-mcp/commit/4ffbe0be98eb30b25a24ae6a05486346db66508d) Thanks [@acoderacom](https://github.com/acoderacom)! - Nested lists with a fixed size (product variants and metafields, order line items, inventory levels, customer addresses and orders, theme files, publications, market regions, and more) now include `pageInfo.hasNextPage`, and `shopify_product_get` returns `variantsCount`, so the assistant can tell when results were cut short. Product tools accept the `UNLISTED` status. `shopify_theme_files_get` flags files it couldn't read as an error, and `shopify_file_upload` reports Shopify's reason when a staged upload is rejected instead of a JavaScript error.
14
+
15
+ - [#9](https://github.com/acoderacom/shopify-admin-mcp/pull/9) [`4ffbe0b`](https://github.com/acoderacom/shopify-admin-mcp/commit/4ffbe0be98eb30b25a24ae6a05486346db66508d) Thanks [@acoderacom](https://github.com/acoderacom)! - The server checks credentials with a small `shop` query and connects before introspecting the schema, so a slow introspection no longer delays the client's handshake; schema tools wait for it and retry it if it failed. HTTP 429 responses honor `Retry-After` (up to a minute), and discarded responses are released before retrying. `shopify_schema_details` lists root types by name and shortens descriptions on very large types, `shopify_schema_search` rejects an empty query, and the server sends usage instructions to MCP clients.
16
+
3
17
  ## 1.1.1
4
18
 
5
19
  ### Patch Changes
package/README.md CHANGED
@@ -4,11 +4,11 @@
4
4
  [![CI](https://github.com/acoderacom/shopify-admin-mcp/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/acoderacom/shopify-admin-mcp/actions/workflows/ci.yml)
5
5
  [![License: MIT](https://img.shields.io/badge/license-MIT-blue)](LICENSE)
6
6
 
7
- MCP server providing full access to Shopify's Admin GraphQL API. Targets API version **2026-10** by default and introspects the live schema on startup, so your AI assistant always sees the exact API your store is serving.
7
+ MCP server providing full access to Shopify's Admin GraphQL API. Targets API version **2026-10** by default and introspects the live schema as soon as it starts, so your AI assistant always sees the exact API your store is serving.
8
8
 
9
9
  ## Features
10
10
 
11
- - **Raw GraphQL execution** — run any query or mutation against the Admin API
11
+ - **Raw GraphQL execution** — run any query or mutation against the Admin API, or turn it off with `--disable-raw-graphql`
12
12
  - **Live schema introspection** — search and explore the full GraphQL schema directly from your AI assistant
13
13
  - **59 convenience tools** — typed, no-GraphQL-needed tools for products and variants, collections, publishing, metafields and metaobjects (including definitions), customers, orders, inventory, discounts, file uploads, themes, and markets
14
14
  - **Toolsets** — register only the areas you need to keep the assistant's tool list short
@@ -43,7 +43,7 @@ Add `--read-only` (or `SHOPIFY_READ_ONLY=true`) when the assistant only needs to
43
43
 
44
44
  | Tool | Description |
45
45
  |------|-------------|
46
- | `shopify_graphql` | Execute any raw GraphQL query or mutation (queries only in read-only mode) |
46
+ | `shopify_graphql` | Execute any raw GraphQL query or mutation (queries only in read-only mode; left out with `--disable-raw-graphql`) |
47
47
  | `shopify_schema_search` | Search the live schema by keyword (types, queries, mutations) |
48
48
  | `shopify_schema_details` | Get full details for a specific type, query, or mutation |
49
49
 
@@ -138,7 +138,7 @@ Convenience tools are grouped into toolsets (shown in brackets), which you can s
138
138
  | `shopify_discount_delete` | Delete a discount |
139
139
  | `shopify_discount_codes_add` | Add up to 250 extra codes to a code discount |
140
140
 
141
- All create tools accept start and end dates, minimum subtotal or quantity, usage limits (codes only), which other discounts they combine with, and eligibility by customer, customer segment, or market. Percentages are given as whole numbers (`20` = 20% off).
141
+ All create tools accept start and end dates, minimum subtotal or quantity, usage limits (codes only), which other discounts they combine with, and eligibility by customer, customer segment, or market. Shopify takes one kind of eligibility per discount, so give at most one of `customerIds`, `customerSegmentIds`, or `marketIds`. Discounted items are chosen by collection or by product and variant, not both. Percentages are given as whole numbers (`20` = 20% off).
142
142
 
143
143
  ### Files `[files]`
144
144
 
@@ -202,7 +202,9 @@ All toolsets are registered by default. To keep the assistant's tool list short,
202
202
  --toolsets products,collections,publishing,files
203
203
  ```
204
204
 
205
- Available toolsets: `products`, `collections`, `publishing`, `metafields`, `metaobjects`, `customers`, `orders`, `inventory`, `discounts`, `files`, `themes`, `markets`. Raw GraphQL and schema search are always available.
205
+ Available toolsets: `products`, `collections`, `publishing`, `metafields`, `metaobjects`, `customers`, `orders`, `inventory`, `discounts`, `files`, `themes`, `markets`. Schema search is always available, and so is raw GraphQL unless you turn it off.
206
+
207
+ Toolsets shorten the tool list, but `shopify_graphql` can still run any query or mutation the app's access scopes allow. To keep the assistant to the selected toolsets, add `--disable-raw-graphql` (or `SHOPIFY_DISABLE_RAW_GRAPHQL=true`). Either way, the app's access scopes are what actually limit what the server can do, so grant only the scopes you need.
206
208
 
207
209
  ## File Uploads
208
210
 
@@ -218,7 +220,9 @@ Theme file tools read any theme, but by default they refuse to write to or delet
218
220
  2. edit the copy with `shopify_theme_files_upsert`
219
221
  3. preview and publish it from the Shopify admin
220
222
 
221
- Start the server with `--allow-live-theme-writes` (or `SHOPIFY_ALLOW_LIVE_THEME_WRITES=true`) to edit the live theme directly. Writing theme files needs `write_themes` and Shopify's theme-code exemption on the app.
223
+ `shopify_graphql` applies the same guard: `themeFilesUpsert`, `themeFilesDelete`, and `themeFilesCopy` are checked against the theme they target, and `themePublish` is refused, because publishing replaces the live theme.
224
+
225
+ Start the server with `--allow-live-theme-writes` (or `SHOPIFY_ALLOW_LIVE_THEME_WRITES=true`) to edit or publish the live theme directly. Writing theme files needs `write_themes` and Shopify's theme-code exemption on the app.
222
226
 
223
227
  ## Required API Scopes
224
228
 
@@ -283,7 +287,8 @@ npx -y @acodera/shopify-admin-mcp
283
287
  | `--read-only` | `SHOPIFY_READ_ONLY` | Expose only read tools and block mutations (`true` / `1`) |
284
288
  | `--toolsets` | `SHOPIFY_TOOLSETS` | Comma-separated toolsets to register (default: all) |
285
289
  | `--upload-dir` | `SHOPIFY_UPLOAD_DIR` | Directory that local file uploads are confined to (default: local uploads disabled) |
286
- | `--allow-live-theme-writes` | `SHOPIFY_ALLOW_LIVE_THEME_WRITES` | Allow theme file writes and deletes on the live theme (`true` / `1`) |
290
+ | `--allow-live-theme-writes` | `SHOPIFY_ALLOW_LIVE_THEME_WRITES` | Allow theme file writes and deletes on the live theme, and publishing themes through raw GraphQL (`true` / `1`) |
291
+ | `--disable-raw-graphql` | `SHOPIFY_DISABLE_RAW_GRAPHQL` | Leave out `shopify_graphql`, so only the selected toolsets can reach the store (`true` / `1`) |
287
292
 
288
293
  The store must be a `*.myshopify.com` domain, so credentials are only ever sent to Shopify. Secrets can still be passed as flags, but the server prints a warning because flags are visible to other processes on the machine.
289
294
 
@@ -446,6 +451,7 @@ Every flag at once, with client credentials:
446
451
  "--toolsets", "products,collections,publishing,metafields,metaobjects,customers,orders,inventory,discounts,files,themes,markets",
447
452
  "--upload-dir", "/Users/you/shopify-uploads",
448
453
  "--allow-live-theme-writes",
454
+ "--disable-raw-graphql",
449
455
  "--read-only"
450
456
  ]
451
457
  ```
@@ -469,6 +475,7 @@ Every flag has an environment variable, which you can put in `env` instead of `a
469
475
  | `--upload-dir` | `SHOPIFY_UPLOAD_DIR` | Absolute folder path | local uploads disabled |
470
476
  | `--read-only` | `SHOPIFY_READ_ONLY` | `true` or `1` turns it on | off |
471
477
  | `--allow-live-theme-writes` | `SHOPIFY_ALLOW_LIVE_THEME_WRITES` | `true` or `1` turns it on | off |
478
+ | `--disable-raw-graphql` | `SHOPIFY_DISABLE_RAW_GRAPHQL` | `true` or `1` turns it on | off |
472
479
 
473
480
  Every variable at once, with client credentials:
474
481
 
@@ -486,7 +493,8 @@ Every variable at once, with client credentials:
486
493
  "SHOPIFY_TOOLSETS": "products,collections,publishing,metafields,metaobjects,customers,orders,inventory,discounts,files,themes,markets",
487
494
  "SHOPIFY_UPLOAD_DIR": "/Users/you/shopify-uploads",
488
495
  "SHOPIFY_READ_ONLY": "false",
489
- "SHOPIFY_ALLOW_LIVE_THEME_WRITES": "false"
496
+ "SHOPIFY_ALLOW_LIVE_THEME_WRITES": "false",
497
+ "SHOPIFY_DISABLE_RAW_GRAPHQL": "false"
490
498
  }
491
499
  }
492
500
  }
@@ -511,14 +519,14 @@ The startup log on stderr says which method was used, for example `Connecting to
511
519
  If you set the same option both ways:
512
520
 
513
521
  - For options that take a value (`--store`, credentials, `--api-version`, `--toolsets`, `--upload-dir`), the flag wins.
514
- - For on/off options (`--read-only`, `--allow-live-theme-writes`), either one turns it on. Setting the variable to `"false"` doesn't turn off a flag that's present.
522
+ - For on/off options (`--read-only`, `--allow-live-theme-writes`, `--disable-raw-graphql`), either one turns it on. Setting the variable to `"false"` doesn't turn off a flag that's present.
515
523
  - If both an access token and client credentials are set, the access token is used.
516
524
 
517
525
  Use an absolute path for `--upload-dir`, because MCP clients start the server from their own working directory, not your project's.
518
526
 
519
527
  ## Schema Exploration
520
528
 
521
- The server introspects Shopify's live GraphQL schema on startup, so your AI assistant can discover API capabilities in real time.
529
+ The server introspects Shopify's live GraphQL schema once it has connected, so your AI assistant can discover API capabilities in real time. Introspection runs in the background, so it doesn't delay the client's connection; a schema tool called before it finishes waits for it, and a failed introspection is retried on the next call.
522
530
 
523
531
  ```
524
532
  You: "What mutations are available for metaobjects?"
@@ -530,7 +538,7 @@ You: "What fields does MetaobjectCreateInput take?"
530
538
  → Returns: full type definition with all fields, types, and descriptions
531
539
  ```
532
540
 
533
- Deprecated fields are left out of the index, so the assistant is steered toward the current API.
541
+ Deprecated fields are left out of the index, so the assistant is steered toward the current API. `shopify_schema_details` on the root `QueryRoot` or `Mutation` type lists the names of every query or mutation, and very large types have their descriptions shortened so the response stays readable.
534
542
 
535
543
  ## Development
536
544
 
@@ -552,7 +560,7 @@ npm test # unit tests; live tests are skipped without credentials
552
560
  npm run lint # type-check src and tests
553
561
  ```
554
562
 
555
- The unit tests need no network. They cover CLI validation, the HTTP client (throttle retry, token refresh), every tool's request over a real MCP connection, read-only mode, toolsets, the live-theme guard, and upload-directory confinement.
563
+ The unit tests need no network. They cover CLI validation, the HTTP client (throttle and `Retry-After` handling, token refresh), every tool's request over a real MCP connection, read-only mode, toolsets, the live-theme guard (including raw GraphQL), and upload-directory confinement.
556
564
 
557
565
  Live integration tests run against a real store when credentials are set:
558
566
 
@@ -1,6 +1,8 @@
1
1
  import { sleep } from "../utils/sleep.js";
2
2
  const REQUEST_TIMEOUT_MS = 60_000;
3
3
  const MAX_THROTTLE_RETRIES = 3;
4
+ // A 429 asking for a longer wait than this is reported rather than waited out
5
+ const MAX_RETRY_AFTER_MS = 60_000;
4
6
  function isThrottled(res) {
5
7
  return res.errors?.some((e) => e.extensions?.code === "THROTTLED") ?? false;
6
8
  }
@@ -14,6 +16,15 @@ function throttleDelayMs(res, attempt) {
14
16
  }
15
17
  return 1000 * (attempt + 1);
16
18
  }
19
+ // Retry-After is seconds (Shopify sends e.g. "2.0") or an HTTP date
20
+ function retryAfterMs(res) {
21
+ const header = res.headers.get("retry-after")?.trim();
22
+ if (!header)
23
+ return null;
24
+ const seconds = Number(header);
25
+ const ms = Number.isFinite(seconds) ? seconds * 1000 : Date.parse(header) - Date.now();
26
+ return Number.isFinite(ms) ? Math.max(0, Math.ceil(ms)) : null;
27
+ }
17
28
  export class GraphQLClient {
18
29
  auth;
19
30
  endpoint;
@@ -30,12 +41,18 @@ export class GraphQLClient {
30
41
  for (let attempt = 0;; attempt++) {
31
42
  let res = await this.post(body, await this.auth.getAccessToken());
32
43
  if (res.status === 401 && this.auth.canRefresh) {
44
+ // Release the rejected response's connection before retrying
45
+ await res.body?.cancel();
33
46
  res = await this.post(body, await this.auth.forceRefresh());
34
47
  }
35
48
  this.checkServedVersion(res);
36
49
  if (res.status === 429 && attempt < MAX_THROTTLE_RETRIES) {
37
- await sleep(1000 * (attempt + 1));
38
- continue;
50
+ const delay = retryAfterMs(res) ?? 1000 * (attempt + 1);
51
+ if (delay <= MAX_RETRY_AFTER_MS) {
52
+ await res.body?.cancel();
53
+ await sleep(delay);
54
+ continue;
55
+ }
39
56
  }
40
57
  if (!res.ok) {
41
58
  const text = await res.text();
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/graphql/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/graphql/client.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,17 @@
1
1
  import type { IntrospectedSchema, IntrospectedType, IntrospectedField, IntrospectedTypeRef } from "./introspection.js";
2
+ export type SchemaIndexLoader = () => Promise<SchemaIndex>;
3
+ /**
4
+ * Builds the index on first use and shares it between callers. A failed load isn't cached,
5
+ * so the next call tries again.
6
+ */
7
+ export declare function lazySchemaIndex(load: () => Promise<IntrospectedSchema>): SchemaIndexLoader;
2
8
  export declare class SchemaIndex {
3
9
  private typeMap;
4
10
  private queryFields;
5
11
  private mutationFields;
6
12
  private allNames;
13
+ private queryTypeName;
14
+ private mutationTypeName;
7
15
  constructor(schema: IntrospectedSchema);
8
16
  search(keyword: string, filter?: "all" | "types" | "queries" | "mutations", limit?: number): {
9
17
  types: string[];
@@ -16,6 +24,7 @@ export declare class SchemaIndex {
16
24
  formatTypeRef(ref: IntrospectedTypeRef): string;
17
25
  formatFieldSummary(field: IntrospectedField): string;
18
26
  getDetails(name: string): string | null;
27
+ private formatRootType;
19
28
  private formatType;
20
29
  private formatFieldDetails;
21
30
  }
@@ -1,9 +1,36 @@
1
+ // Type details longer than this shorten their descriptions to keep the response readable
2
+ const MAX_DETAILS_LENGTH = 20_000;
3
+ // First sentence of a description, capped so one long sentence can't dominate
4
+ function shorten(description) {
5
+ const sentence = description.split(/(?<=\.)\s/)[0] ?? description;
6
+ return sentence.length > 160 ? `${sentence.slice(0, 157)}...` : sentence;
7
+ }
8
+ /**
9
+ * Builds the index on first use and shares it between callers. A failed load isn't cached,
10
+ * so the next call tries again.
11
+ */
12
+ export function lazySchemaIndex(load) {
13
+ let pending = null;
14
+ return () => {
15
+ pending ??= load()
16
+ .then((schema) => new SchemaIndex(schema))
17
+ .catch((err) => {
18
+ pending = null;
19
+ throw err;
20
+ });
21
+ return pending;
22
+ };
23
+ }
1
24
  export class SchemaIndex {
2
25
  typeMap = new Map();
3
26
  queryFields = new Map();
4
27
  mutationFields = new Map();
5
28
  allNames = [];
29
+ queryTypeName;
30
+ mutationTypeName;
6
31
  constructor(schema) {
32
+ this.queryTypeName = schema.queryTypeName;
33
+ this.mutationTypeName = schema.mutationTypeName;
7
34
  for (const type of schema.types) {
8
35
  if (type.name.startsWith("__"))
9
36
  continue;
@@ -82,9 +109,20 @@ export class SchemaIndex {
82
109
  return `${field.name}${args}: ${this.formatTypeRef(field.type)}`;
83
110
  }
84
111
  getDetails(name) {
112
+ // The root types hold every query or mutation, far too many to describe in one response
113
+ if (name === this.queryTypeName)
114
+ return this.formatRootType(name, "queries", this.queryFields);
115
+ if (name === this.mutationTypeName)
116
+ return this.formatRootType(name, "mutations", this.mutationFields);
85
117
  const type = this.typeMap.get(name);
86
- if (type)
87
- return this.formatType(type);
118
+ if (type) {
119
+ for (const style of ["full", "short"]) {
120
+ const details = this.formatType(type, style);
121
+ if (details.length <= MAX_DETAILS_LENGTH)
122
+ return details;
123
+ }
124
+ return `${this.formatType(type, "none")}\n\n(Descriptions omitted because ${name} has too many members to describe in one response.)`;
125
+ }
88
126
  const query = this.queryFields.get(name);
89
127
  if (query)
90
128
  return this.formatFieldDetails("Query", name, query);
@@ -93,7 +131,21 @@ export class SchemaIndex {
93
131
  return this.formatFieldDetails("Mutation", name, mutation);
94
132
  return null;
95
133
  }
96
- formatType(type) {
134
+ formatRootType(name, category, fields) {
135
+ return [
136
+ `# ${name} (${fields.size} ${category})`,
137
+ "",
138
+ `Call shopify_schema_details with one of these names for its arguments and return type, or use shopify_schema_search to narrow them down:`,
139
+ "",
140
+ Array.from(fields.keys()).sort().join(", "),
141
+ ].join("\n");
142
+ }
143
+ formatType(type, style) {
144
+ const describe = (description) => {
145
+ if (!description || style === "none")
146
+ return "";
147
+ return ` — ${style === "short" ? shorten(description) : description}`;
148
+ };
97
149
  const lines = [];
98
150
  lines.push(`# ${type.name} (${type.kind})`);
99
151
  if (type.description)
@@ -104,14 +156,13 @@ export class SchemaIndex {
104
156
  if (type.fields && type.fields.length > 0) {
105
157
  lines.push("\n## Fields\n");
106
158
  for (const field of type.fields) {
107
- const desc = field.description ? ` — ${field.description}` : "";
108
- lines.push(`- ${this.formatFieldSummary(field)}${desc}`);
159
+ lines.push(`- ${this.formatFieldSummary(field)}${describe(field.description)}`);
109
160
  }
110
161
  }
111
162
  if (type.inputFields && type.inputFields.length > 0) {
112
163
  lines.push("\n## Input Fields\n");
113
164
  for (const field of type.inputFields) {
114
- const desc = field.description ? ` — ${field.description}` : "";
165
+ const desc = describe(field.description);
115
166
  const def = field.defaultValue != null ? ` (default: ${field.defaultValue})` : "";
116
167
  lines.push(`- ${field.name}: ${this.formatTypeRef(field.type)}${def}${desc}`);
117
168
  }
@@ -119,8 +170,7 @@ export class SchemaIndex {
119
170
  if (type.enumValues && type.enumValues.length > 0) {
120
171
  lines.push("\n## Enum Values\n");
121
172
  for (const val of type.enumValues) {
122
- const desc = val.description ? ` — ${val.description}` : "";
123
- lines.push(`- ${val.name}${desc}`);
173
+ lines.push(`- ${val.name}${describe(val.description)}`);
124
174
  }
125
175
  }
126
176
  if (type.possibleTypes && type.possibleTypes.length > 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"schema-index.js","sourceRoot":"","sources":["../../src/graphql/schema-index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema-index.js","sourceRoot":"","sources":["../../src/graphql/schema-index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -4,36 +4,39 @@ import { parseArgs } from "./utils/cli.js";
4
4
  import { AuthProvider } from "./auth/provider.js";
5
5
  import { GraphQLClient } from "./graphql/client.js";
6
6
  import { runIntrospection } from "./graphql/introspection.js";
7
- import { SchemaIndex } from "./graphql/schema-index.js";
7
+ import { lazySchemaIndex } from "./graphql/schema-index.js";
8
8
  import { createServer } from "./server.js";
9
+ const message = (err) => (err instanceof Error ? err.message : String(err));
9
10
  async function main() {
10
11
  const config = parseArgs(process.argv);
11
12
  console.error(`Connecting to ${config.store} (API ${config.apiVersion}, ${config.auth.mode === "access-token" ? "access token" : "client credentials"}${config.readOnly ? ", read-only" : ""})...`);
12
- const auth = new AuthProvider(config);
13
- // Validate credentials early
13
+ const client = new GraphQLClient(new AuthProvider(config), config);
14
+ // A small query that needs no access scopes validates the credentials and store up front
14
15
  try {
15
- await auth.getAccessToken();
16
+ const res = await client.execute("{ shop { name } }");
17
+ const shop = res.data?.shop;
18
+ if (!shop) {
19
+ throw new Error(res.errors?.map((e) => e.message).join(", ") || "Shopify returned no shop");
20
+ }
21
+ console.error(`Authenticated with ${shop.name}`);
16
22
  }
17
23
  catch (err) {
18
- console.error(`Authentication failed: ${err instanceof Error ? err.message : err}`);
24
+ console.error(`Authentication failed: ${message(err)}`);
19
25
  process.exit(1);
20
26
  }
21
- const client = new GraphQLClient(auth, config);
22
- console.error("Running schema introspection...");
23
- let schemaIndex;
24
- try {
27
+ // Introspection downloads the whole schema, so it runs after the server is connected
28
+ // instead of delaying the client's handshake
29
+ const loadSchemaIndex = lazySchemaIndex(async () => {
25
30
  const schema = await runIntrospection(client);
26
- schemaIndex = new SchemaIndex(schema);
27
31
  console.error(`Schema loaded: ${schema.types.length} types`);
28
- }
29
- catch (err) {
30
- console.error(`Schema introspection failed: ${err instanceof Error ? err.message : err}`);
31
- process.exit(1);
32
- }
33
- const server = createServer(client, schemaIndex, config);
34
- const transport = new StdioServerTransport();
35
- await server.connect(transport);
32
+ return schema;
33
+ });
34
+ const server = createServer(client, loadSchemaIndex, config);
35
+ await server.connect(new StdioServerTransport());
36
36
  console.error("Shopify GraphQL Admin MCP Server running");
37
+ loadSchemaIndex().catch((err) => {
38
+ console.error(`Schema introspection failed: ${message(err)}. The schema tools will retry when they're next called.`);
39
+ });
37
40
  }
38
41
  main().catch((err) => {
39
42
  console.error("Fatal error:", err);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvC,OAAO,CAAC,KAAK,CACX,iBAAiB,MAAM,CAAC,KAAK,SAAS,MAAM,CAAC,UAAU,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,oBAAoB,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,MAAM,CACrL,CAAC;IAEF,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;IAEtC,6BAA6B;IAC7B,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC9B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CACX,0BAA0B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CACrE,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAE/C,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACjD,IAAI,WAAwB,CAAC;IAC7B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC9C,WAAW,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;QACtC,OAAO,CAAC,KAAK,CACX,kBAAkB,MAAM,CAAC,KAAK,CAAC,MAAM,QAAQ,CAC9C,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CACX,gCAAgC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAC3E,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IACzD,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhC,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;AAC5D,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;IACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/server.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
2
  import type { GraphQLClient } from "./graphql/client.js";
3
- import type { SchemaIndex } from "./graphql/schema-index.js";
3
+ import type { SchemaIndexLoader } from "./graphql/schema-index.js";
4
4
  import { type Config } from "./utils/cli.js";
5
- export type ServerOptions = Pick<Config, "readOnly"> & Partial<Pick<Config, "toolsets" | "uploadDir" | "allowLiveThemeWrites">>;
6
- export declare function createServer(client: GraphQLClient, schemaIndex: SchemaIndex, options: ServerOptions): McpServer;
5
+ export type ServerOptions = Pick<Config, "readOnly"> & Partial<Pick<Config, "toolsets" | "uploadDir" | "allowLiveThemeWrites" | "disableRawGraphql">>;
6
+ export declare function createServer(client: GraphQLClient, loadSchemaIndex: SchemaIndexLoader, options: ServerOptions): McpServer;
package/dist/server.js CHANGED
@@ -32,15 +32,27 @@ const toolsetRegistrations = {
32
32
  themes: registerThemeTools,
33
33
  markets: registerMarketTools,
34
34
  };
35
- export function createServer(client, schemaIndex, options) {
36
- const server = new McpServer({
37
- name: "shopify-admin-mcp",
38
- version,
39
- });
35
+ // Sent to the MCP client at initialization to orient the model before it picks a tool
36
+ function instructions(options) {
37
+ const lines = [
38
+ "Tools for one Shopify store's Admin GraphQL API. Resources are identified by global IDs such as gid://shopify/Product/123.",
39
+ "List tools page with first and after: pass pageInfo.endCursor as after. Nested lists include pageInfo.hasNextPage, which is true when they hold more items than were returned.",
40
+ ];
41
+ lines.push(options.readOnly
42
+ ? "The server is read-only, so only tools that read data are available."
43
+ : "Mutations report validation problems as userErrors, and a call that returns userErrors is marked as an error.");
44
+ if (!options.disableRawGraphql) {
45
+ lines.push("For anything the other tools don't cover, use shopify_graphql after checking field and argument names with shopify_schema_search and shopify_schema_details.");
46
+ }
47
+ return lines.join("\n");
48
+ }
49
+ export function createServer(client, loadSchemaIndex, options) {
50
+ const server = new McpServer({ name: "shopify-admin-mcp", version }, { instructions: instructions(options) });
40
51
  const registrar = options.readOnly ? readOnlyRegistrar(server) : server;
41
- // Raw GraphQL and schema search are always available
42
- registerGraphQLProxy(registrar, client, options.readOnly);
43
- registerSchemaSearch(registrar, schemaIndex);
52
+ // Schema search is always available; raw GraphQL unless the server was told to leave it out
53
+ if (!options.disableRawGraphql)
54
+ registerGraphQLProxy(registrar, client, options);
55
+ registerSchemaSearch(registrar, loadSchemaIndex);
44
56
  for (const toolset of options.toolsets ?? TOOLSETS) {
45
57
  toolsetRegistrations[toolset](registrar, client, options);
46
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,EAAE,QAAQ,EAA6B,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAsB,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,kFAAkF;AAClF,MAAM,EAAE,OAAO,EAAE,GAAG,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,iBAAiB,CAAwB,CAAC;AAW7F,MAAM,oBAAoB,GAAqC;IAC7D,QAAQ,EAAE,oBAAoB;IAC9B,WAAW,EAAE,uBAAuB;IACpC,UAAU,EAAE,uBAAuB;IACnC,UAAU,EAAE,sBAAsB;IAClC,WAAW,EAAE,uBAAuB;IACpC,SAAS,EAAE,qBAAqB;IAChC,MAAM,EAAE,kBAAkB;IAC1B,SAAS,EAAE,sBAAsB;IACjC,SAAS,EAAE,qBAAqB;IAChC,KAAK,EAAE,iBAAiB;IACxB,MAAM,EAAE,kBAAkB;IAC1B,OAAO,EAAE,mBAAmB;CAC7B,CAAC;AAEF,MAAM,UAAU,YAAY,CAC1B,MAAqB,EACrB,WAAwB,EACxB,OAAsB;IAEtB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,mBAAmB;QACzB,OAAO;KACR,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAExE,qDAAqD;IACrD,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1D,oBAAoB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAE7C,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,QAAQ,IAAI,QAAQ,EAAE,CAAC;QACnD,oBAAoB,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -46,6 +46,7 @@ export function registerCollectionTools(server, client) {
46
46
  }
47
47
  metafields(first: 10) {
48
48
  nodes { namespace key value type }
49
+ pageInfo { hasNextPage }
49
50
  }
50
51
  updatedAt
51
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"collections.js","sourceRoot":"","sources":["../../src/tools/collections.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"collections.js","sourceRoot":"","sources":["../../src/tools/collections.ts"],"names":[],"mappings":"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"}
@@ -46,12 +46,15 @@ export function registerCustomerTools(server, client) {
46
46
  tags note
47
47
  addressesV2(first: 10) {
48
48
  nodes { address1 address2 city province country zip }
49
+ pageInfo { hasNextPage }
49
50
  }
50
51
  orders(first: 10) {
51
52
  nodes { id name totalPriceSet { shopMoney { amount currencyCode } } createdAt }
53
+ pageInfo { hasNextPage }
52
54
  }
53
55
  metafields(first: 10) {
54
56
  nodes { namespace key value type }
57
+ pageInfo { hasNextPage }
55
58
  }
56
59
  createdAt updatedAt
57
60
  }
@@ -1 +1 @@
1
- {"version":3,"file":"customers.js","sourceRoot":"","sources":["../../src/tools/customers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,SAAS,EACT,KAAK,EACL,QAAQ,EACR,UAAU,GAEX,MAAM,aAAa,CAAC;AAErB,MAAM,UAAU,qBAAqB,CACnC,MAAqB,EACrB,MAAqB;IAErB,MAAM,CAAC,YAAY,CACjB,wBAAwB,EACxB;QACE,WAAW,EAAE,2DAA2D;QACxE,WAAW,EAAE;YACX,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;YACzE,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;YACjF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;SAC/D;QACD,WAAW,EAAE,SAAS;KACvB,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;QAChC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CACjC;;;;;;;;;;;;;;;;UAgBE,EACF,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CACrC,CAAC;QACF,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;QACE,WAAW,EAAE,6BAA6B;QAC1C,WAAW,EAAE;YACX,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;SACxC;QACD,WAAW,EAAE,SAAS;KACvB,EACD,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;QACf,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CACjC;;;;;;;;;;;;;;;;;;;UAmBE,EACF,EAAE,EAAE,EAAE,CACP,CAAC;QACF,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,yBAAyB,EACzB;QACE,WAAW,EACT,sGAAsG;QACxG,WAAW,EAAE;YACX,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;YACvC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAChC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC/B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC5B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;YACrE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;YACpC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC5B;QACD,WAAW,EAAE,KAAK;KACnB,EACD,KAAK,EAAE,KAAK,EAAE,EAAE;QACd,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CACjC;;;;;UAKE,EACF,EAAE,KAAK,EAAE,CACV,CAAC;QACF,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"customers.js","sourceRoot":"","sources":["../../src/tools/customers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,SAAS,EACT,KAAK,EACL,QAAQ,EACR,UAAU,GAEX,MAAM,aAAa,CAAC;AAErB,MAAM,UAAU,qBAAqB,CACnC,MAAqB,EACrB,MAAqB;IAErB,MAAM,CAAC,YAAY,CACjB,wBAAwB,EACxB;QACE,WAAW,EAAE,2DAA2D;QACxE,WAAW,EAAE;YACX,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;YACzE,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;YACjF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;SAC/D;QACD,WAAW,EAAE,SAAS;KACvB,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;QAChC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CACjC;;;;;;;;;;;;;;;;UAgBE,EACF,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CACrC,CAAC;QACF,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;QACE,WAAW,EAAE,6BAA6B;QAC1C,WAAW,EAAE;YACX,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;SACxC;QACD,WAAW,EAAE,SAAS;KACvB,EACD,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;QACf,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CACjC;;;;;;;;;;;;;;;;;;;;;;UAsBE,EACF,EAAE,EAAE,EAAE,CACP,CAAC;QACF,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,yBAAyB,EACzB;QACE,WAAW,EACT,sGAAsG;QACxG,WAAW,EAAE;YACX,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;YACvC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAChC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC/B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC5B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;YACrE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;YACpC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC5B;QACD,WAAW,EAAE,KAAK;KACnB,EACD,KAAK,EAAE,KAAK,EAAE,EAAE;QACd,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CACjC;;;;;UAKE,EACF,EAAE,KAAK,EAAE,CACV,CAAC;QACF,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC,CACF,CAAC;AACJ,CAAC"}