Skip to main content
Glama

Server Details

Check a product CSV, handles, variant matrices and metafield keys. 4 of 6 free.

Ownership verified
Status
Healthy
Uptime
100.0% over the last 24 hours
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
GarphenGate/moltline-mcp
GitHub Stars
0
Server Listing
moltline-mcp
ChatGPT
–
Claude
–

TDQS

A4.5/5.0

Scored across 6 tools

Disambiguation5/5

Each tool targets a clearly distinct artifact (prices, metafield keys, payout math, CSV headers, handles, variant counts). Descriptions go further by explicitly stating 'Not for X: that is Y', pre-empting the most likely misselections. No two tools share purpose.

Naming Consistency4/5

All names are snake_case descriptive noun phrases (product_csv_check, url_handle, variant_matrix), so the style is internally consistent and readable. There is no verb_noun action pattern across the set, but no mixing of conventions either.

Tool Count5/5

Six focused tools map neatly onto the pre-import checklist stages (handles, options, headers, metafields, pricing, payouts). Each earns its place, with no filler or vanity tools.

Completeness4/5

Coverage of the Shopify import-prep lifecycle is good: handles, variants, CSV columns, metafields, pricing and payout estimates. The notable gap is row-level value validation (e.g. prices, SKUs, images), which the descriptions acknowledge by deferring it but do not provide.

Available Tools

6 tools
bulk_price_changeBulk Price ChangeA
Read-onlyIdempotent
Inspect

Apply one pricing rule across a list of prices and show the effect. PREMIUM (license).

Percentage first, then the flat amount, then rounding, stated explicitly because the order changes the answer. Typical input {"prices": [19.99, 24.5], "change_pct": 10, "charm_ending": ".99"} returns {"rows": [{"was": 19.99, "now": 21.99}, {"was": 24.5, "now": 26.99}], "total_was": 44.49, "total_now": 48.98, "uplift_pct": 10.09}.

Use when repricing a catalogue before export. Not for what a price nets you after Shopify's fees: that is payout_estimate. Errors: on invalid, missing, or malformed input this tool never raises a protocol error; it returns {"error": ""} (for example {"error": "prices must contain at least one price"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.

NameRequiredDescriptionDefault
pricesYesCurrent prices, at least one, each greater than 0.
round_toNoRounding increment applied last, e.g. 0.01 or 0.05. Default 0.01.
change_pctNoPercentage change applied first, e.g. 10 to raise by 10% or -5 to cut by 5%. Default 0.
change_flatNoFlat amount applied after the percentage. Default 0.
charm_endingNoForce every price to end in these cents, e.g. ".99" or ".95". Applied after rounding. Empty by default.

Output Schema

NameRequiredDescription

No output parameters

metafield_key_checkMetafield Key CheckA
Read-onlyIdempotent
Inspect

Validate a metafield namespace and key before you define it. FREE.

Shopify metafield namespaces and keys are lowercase alphanumerics and underscores; a capital letter or a dash is rejected at definition time, usually after the rest of the import has already run. Typical input {"namespace": "custom", "key": "Care-Instructions"} returns {"ok": false, "problems": ["key: dashes and capitals are not allowed"], "suggested_key": "care_instructions"}.

Use when designing metafields. Not for the CSV column that carries them: that is product_csv_check. Errors: on invalid, missing, or malformed input this tool never raises a protocol error; it returns {"error": ""}. Every call is read-only and idempotent, so after correcting the input it is always safe to retry.

NameRequiredDescriptionDefault
keyYesThe metafield key, e.g. "care_instructions".
namespaceYesThe metafield namespace, e.g. "custom".
value_typeNoThe intended metafield type, echoed back for your record, e.g. "single_line_text_field". Not validated against Shopify's type list, which changes.single_line_text_field

Output Schema

NameRequiredDescription

No output parameters

payout_estimatePayout EstimateA
Read-onlyIdempotent
Inspect

Estimate what actually lands in the bank after processing fees. PREMIUM (license).

Typical input {"order_total": 84.5, "fee_pct": 2.9, "fee_fixed": 0.3, "orders": 120, "refund_rate_pct": 4} returns {"gross": 10140.0, "fees": 330.06, "refunds": 405.6, "net_payout": 9404.34, "effective_fee_pct": 3.26}.

Use for cash-flow planning. Not as an authoritative fee schedule: rates depend on your plan, country and card mix, so pass your own. Errors: on invalid, missing, or malformed input this tool never raises a protocol error; it returns {"error": ""}. Every call is read-only and idempotent, so after correcting the input it is always safe to retry.

NameRequiredDescriptionDefault
ordersNoHow many orders to model. Default 1.
fee_pctNoPercentage fee per transaction. Default 2.9 (a common published rate, not a promise about your account).
fee_fixedNoFixed fee per transaction. Default 0.30.
order_totalYesValue of one order including anything the processor takes a percentage of. Must be greater than 0.
refund_rate_pctNoShare of order value refunded, as a percentage. Default 0.

Output Schema

NameRequiredDescription

No output parameters

product_csv_checkProduct Csv CheckA
Read-onlyIdempotent
Inspect

Check a product CSV's header row against Shopify's current columns. FREE.

Catches the failure that wastes the most time: a template copied from an out-of-date guide, using column names Shopify renamed. Typical input {"header_row": ["Handle", "Title", "Body (HTML)", "Variant Price"]} returns {"ok": false, "missing_required": [], "renamed": [{"found": "Handle", "use": "URL handle"}, ...], "unrecognised": [], "verdict": "..."}.

Use before an import, on the header row alone. Not for whether the values in the rows are valid: check a handle with url_handle and a metafield key with metafield_key_check. Errors: on invalid, missing, or malformed input this tool never raises a protocol error; it returns {"error": ""} (for example {"error": "header_row must contain at least one column name"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.

NameRequiredDescriptionDefault
modeNo"new" when creating products, where Shopify requires only Title; "update" when changing existing ones, where it also requires URL handle. Default "new".new
header_rowYesThe CSV's first row as a list of column names, exactly as written in the file, e.g. ["Handle", "Title", "Variant Price"].

Output Schema

NameRequiredDescription

No output parameters

url_handleUrl HandleA
Read-onlyIdempotent
Inspect

Turn a product title into a valid, unique Shopify URL handle. FREE.

Shopify handles are lowercase, may contain letters, numbers and dashes, and may not contain spaces. Typical input {"title": "Men's Merino Wool Socks (2-Pack)"} returns {"handle": "mens-merino-wool-socks-2-pack", "valid": true, "changed": true, "collisions": []}.

Use when generating handles for an import, or checking one you already have. Not for validating a whole header row: that is product_csv_check. Errors: on invalid, missing, or malformed input this tool never raises a protocol error; it returns {"error": ""} (for example {"error": "title must not be empty"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.

NameRequiredDescriptionDefault
titleYesThe product title or a candidate handle, e.g. "Men's Merino Wool Socks".
existingNoHandles already used in the store or the file, so a collision can be reported and a suffixed alternative suggested. Optional.

Output Schema

NameRequiredDescription

No output parameters

variant_matrixVariant MatrixA
Read-onlyIdempotent
Inspect

Count the variants a set of options produces, and flag the ceilings. FREE.

Option counts multiply, so three modest lists become a number nobody intended. Typical input {"options": {"Size": ["S", "M", "L"], "Colour": ["Black", "Navy"]}} returns {"option_count": 2, "variant_count": 6, "within_limits": true, "per_option": {"Size": 3, "Colour": 2}}.

Use before building an import file, to find out whether the catalogue needs splitting into several products. Not for validating the resulting CSV's columns: that is product_csv_check. Errors: on invalid, missing, or malformed input this tool never raises a protocol error; it returns {"error": ""} (for example {"error": "options must contain at least one option"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.

NameRequiredDescriptionDefault
optionsYesOption names mapped to their values, e.g. {"Size": ["S", "M"], "Colour": ["Black"]}. Each list needs at least one value.
list_rowsNoWhen true, also return every variant combination. Off by default because the list can be very large.
max_optionsNoCeiling on distinct option names. Default 3.
max_variantsNoCeiling to check against. Default 2048, which is the limit Shopify announced on 15 October 2025, up from 100. Override it if your plan differs.

Output Schema

NameRequiredDescription

No output parameters

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Changedpayout_estimate1 field changed
      • changedInput schema / properties / fee_pct / description
        Previous value: -"Percentage fee per transaction. Default 2.9 — a common\npublished rate, not a promise about your account."New value: +"Percentage fee per transaction. Default 2.9 (a common\npublished rate, not a promise about your account)."
  2. 6 tool updates
    • First observedbulk_price_change
    • First observedmetafield_key_check
    • First observedpayout_estimate
    • First observedproduct_csv_check
    • First observedurl_handle
    • First observedvariant_matrix

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables analyzing sales and stock CSV files to identify what to reorder, how much to buy, when products will run out, and how much inventory is tied up in dead stock. Provides read-only inventory checks and CSV column inspection without uploading data.
    131 npm
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables agents to find duplicate customers and contacts in CSV files by comparing emails, phone numbers, names, and companies, returning confidence levels and the evidence behind each match. It also inspects CSV files to reveal detected columns and row counts without exposing row contents.
    85 npm
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables agents to diff inventory snapshots from CSV files or live Shopify stores, surfacing SKU mismatches, oversell risks, blank-vs-zero issues, barcode conflicts, and sync health, with data processed locally.
    698 npm
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.