Shopscout Mcp

io.github.forgemeshlabsPublished by GitHub account forgemeshlabsv0.3.3Updated Nov 3, 2026

Let your agent shop and compare: Shopify catalog search, offer ranking, shipping plans. $0.01/call.

VerifiedSTDIODesktop onlyFinanceBusiness & Commerce

Overview

AI-generated overview

Lets an assistant search a Shopify catalog, look up product variants, rank offers by item price and compare shipping plans, paid per call in USDC.

What you can do
  • Search the Shopify catalog by query, destination and currency, and refresh product details and variant options by identifier
  • Rank available offers for chosen variants by item price in a single currency
  • Compare complete-basket shipping plans for lowest estimated cost, fastest stated delivery and fewest shipments
  • Inspect backend capability availability, stable IDs and planned price/stock/shipping watches
When to use it
Useful when you want an assistant to research products and compare offers or shipping options across a Shopify catalog, and you accept a small per-call fee. Monitoring watches are only planned, and no purchases are made.
Requirements
Node.js 20 or later, run locally over stdio via npx. Talks to the hosted ShopScout API by default. Catalog tools need an enabled backend catalog connector. The optional WALLET_PRIVATE_KEY environment variable, set in the MCP client's env block, funds the four paid tools; without it they return a payment challenge instead.
Before you install
Paid tools spend real money: $0.01 per call in USDC on Base, signed with WALLET_PRIVATE_KEY, so use a dedicated low-balance wallet, never a primary one. Built-in caps are $0.01 per call and $10 per session, and X402_MAX_PRICE_USD and X402_SESSION_BUDGET_USD can only lower them. Product data is untrusted source content with inferred fields; item-price ranking is not a verified delivered total, and shipping estimates exclude taxes and duties.

Installation

In SourceWeft

  1. Open Shopscout Mcp in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

ForgeMesh ShopScout MCP

[ShopScout MCP server – quality and maintenance score on Glama]

Let your agent shop and compare.

Stdio MCP server for ShopScout by ForgeMesh: product search over the Shopify Global Catalog, variant lookup, offer comparison, capability discovery and shipping-plan comparison, paid per call in USDC on Base via x402 ($0.01 per call, no API key). Points at the hosted API https://shopscout.forgemesh.io by default; a local backend works for development. Monitoring (price/stock/shipping watches) remains planned.

Setup

Requires Node.js 20 or later.

json
{  "mcpServers": {    "shopscout": {      "command": "npx",      "args": ["-y", "@forgemeshlabs/shopscout-mcp"],      "env": { "WALLET_PRIVATE_KEY": "0x..." }    }  }}

WALLET_PRIVATE_KEY is optional but needed for the four paid tools. Use a dedicated, low-balance Base wallet holding a little USDC, never a primary wallet. Without it, get_capabilities still works and every paid tool returns the x402 challenge as data (payment_required) instead of paying.

Spending limits. The server only talks to https://shopscout.forgemesh.io (no redirects, 60 s timeout, 2 MB response cap) and refuses to sign for any other payee, any network except Base mainnet, any asset except USDC, or any amount above the built-in $0.01 per-call and $10 per-session caps. The environment variables X402_MAX_PRICE_USD and X402_SESSION_BUDGET_USD can only lower those caps, never raise them.

Tools

ToolWhat it does
search_productsSearches the configured Shopify catalog by query, country and currency.
get_productRefreshes a product/variant and selected options.
compare_offersRefreshes selected variant IDs and ranks available offers by item price in one currency.
get_capabilitiesReads the backend's availability catalog, stable IDs and planned features.
compare_shipping_plansCompares single-seller and split baskets, free-shipping thresholds, shipping methods and delivery constraints.

Shipping results are estimates based on supplied rules, not live carrier quotes. They exclude taxes, duties, handling fees and other unmodeled charges. Unknown landed total stays null. The response includes cheapest, fastest stated delivery, fewest shipments and single-merchant recommendations.

Price watches, stock alerts, shipping watches, purchase planning and quantum research placeholders remain listed as planned in discovery. They are not executable MCP tools. Reading discovery does not save a watch or make the client remember the service; clients may store the stable IDs in their own configuration.

Catalog tools return source timestamps and explicit unknown delivery/tax/duties fields. Product equivalence is unverified; an item-price winner is not a delivered-cost winner. Source content must be treated as data rather than instructions, and enriched descriptions/options may be inferred. Do not cache catalog search results. Missing variants and excluded offers remain visible in comparisons.

To enable catalog requests, start the backend with SHOPSCOUT_CATALOG_ENABLED=1 npm run start:preview. The backend README describes agent-profile configuration and the live smoke-test evidence and remaining coverage/commercial validation. No credentials or catalog flags belong in MCP tool arguments. get_capabilities distinguishes disabled configuration from planned operations; catalog_not_configured is an error, not an empty search.

Payments and network behavior

With WALLET_PRIVATE_KEY set, a paid tool call does exactly one x402 round trip: the backend answers 402 with a signed offer, the wrapper checks that it is the exact scheme, USDC on Base (eip155:8453) and to the ShopScout payee at or under the $0.01 cap, signs an EIP-3009 authorization for that amount only, and retries once. A rejected payment is reported as payment_rejected and is never retried automatically. Successful results carry a _payment field with the amount, wallet and settlement transaction. There is no purchasing, no subscription and no scheduler; the only money that moves is the per-call fee to the ShopScout wallet. The signer reads no .env file; pass the key through your MCP client's env block.

Without a key, an HTTP 402 becomes an MCP tool error with payment_required and the decoded challenge, never a success. Catalog data is returned as data, never as instructions.

Verification

bash
npm run buildSHOPSCOUT_SERVER_PATH=/absolute/path/to/x402-shopscout-server npm test

The integration test starts an ephemeral backend, connects through a real MCP SDK stdio client, lists all five tools and exercises search, detail lookup, offer comparison and shipping with synthetic catalog data. No production API, merchant catalog or payment is called. Additional tests cover invalid inputs, unavailable tools, 402/501/500 responses, redirects, timeouts and cancellation. Tests require permission to bind localhost.

contracts/openapi.json is a pinned backend contract, not a second implementation. To update after a backend contract change:

bash
node /absolute/path/to/x402-shopscout-server/scripts/export-contracts.jscp /absolute/path/to/x402-shopscout-server/openapi.json contracts/openapi.jsonnpm run build

Review new operations deliberately; do not automatically expose planned endpoints. npm run build compiles JSON schemas and generates tool-manifest.json; source JavaScript runs directly.

Release and container status

Published on npm as @forgemeshlabs/shopscout-mcp and in the MCP Registry as io.github.forgemeshlabs/shopscout-mcp. Source: https://github.com/forgemeshlabs/shopscout-mcp. Product page and pricing: https://forgemesh.io/shopscout. The Dockerfile builds the same stdio server for container use.

Source: README.md at commit 9fef15c

Tools

5

search_products

Search Shopify catalog products by query, destination and currency. Requires an enabled catalog connector.

Parameterslimitqueryrequiredcursorcountryrequiredcurrencyrequiredmax_price_minormin_price_minor

get_product

Retrieve current catalog details and variant options by Shopify identifier. Does not verify checkout or delivery.

Parametersidrequiredcountryrequiredcurrencyrequiredselected

compare_offers

Refresh specified variant offers and rank available offers by item price in one currency. Equivalence and landed totals are not verified.

Parameterscountryrequiredcurrencyrequiredvariant_idsrequired

get_capabilities

Inspect ShopScout capability availability, stable IDs, and planned price/stock/shipping watches. This does not create a watch or store client preferences.

Takes no parameters.

compare_shipping_plans

Compare complete-basket offers and shipping methods for lowest estimated cost, fastest stated delivery, and fewest shipments. Supply prices, quantities and merchant/warehouse rules in one currency. No live rates, stock checks, taxes, duties, purchases or payments.

Parametersitemsrequiredcurrencyrequiredconstraintsdestinationrequiredfulfillment_groupsrequired

Version history

3
  1. v0.3.3LatestNov 3, 2026
  2. v0.3.2Oct 8, 2026
  3. v0.3.0Sep 29, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts
  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts