Skip to main content
Glama

CommerceWeave MCP

One MCP server. Three commerce platforms.

Connect AI agents to Allegro, Base.com and WooCommerce through one secure, self-hosted MCP server. It runs on your machine over stdio: no VPS, no database, no SaaS account.

Status: v0.1.0, validated against local servers that implement each platform's documented protocol, not yet against live accounts. See what is and is not tested.

Why

Model Context Protocol lets an AI client (Claude Code, Claude Desktop, Cursor, …) call tools you provide. Most commerce connectors cover one platform, expose its API as-is, and let the model write straight away.

CommerceWeave is different in four ways:

  1. One interface. The same commerce_* tools answer questions across Allegro, Base.com and WooCommerce with normalized products and orders that keep every platform id.

  2. Honest answers. Imported orders are de-duplicated (Allegro order imported into Base is not counted twice), currencies are never mixed, revenue is never called profit, and every result says if it is incomplete.

  3. Read-only by default. Writes are proposals with before/after, bound to an exact plan, and only run after you approve in a terminal. The model cannot approve itself.

  4. Local. npx it from your MCP client. Credentials stay on your machine.

It does not replace the official integrations. WooCommerce ships its own MCP integration (developer preview), and several single-platform Allegro and Base.com MCP servers cover far more API methods than this one. See the landscape.

Related MCP server: E-commerce MCP Server

What works

Platform

Products

Orders

Stock

Prices

Writes (via approved proposals)

Allegro

list / search / get offers

list / get / events

offer stock

buy-now price

stock, price (async command API), order fulfillment status

Base.com

catalog products + variants

list / get / journal / statuses

per warehouse

per price group

stock, price, order status

WooCommerce

list / search / get, variations, categories

list / get

product & variation

regular/sale

stock, regular price, order status

Unified tools: list connections, list/find products, list/get orders, low stock, inventory report, sales summary, stock discrepancies, three prepare_* tools, get_proposal, execute_proposal. Full list: docs/tools.md. Not implemented yet: order notes, product creation, offer publish/end, HTTP transport.

Quick start

Requires Node.js 22+.

1. Try it with synthetic data (no accounts needed).

claude mcp add commerceweave-demo -e COMMERCEWEAVE_DEMO=true -- npx -y commerceweave-mcp

Not on npm yet? From a clone: npm ci && npm run build, then claude mcp add commerceweave-demo -e COMMERCEWEAVE_DEMO=true -- node /absolute/path/to/commerceweave-mcp/dist/index.js.

2. Connect your stores. Put credentials in environment variables or a config file with env:NAME references, never in a command line (shell history). Per-platform steps: docs/setup.md.

export WOO_ENABLED=true WOO_STORE_URL=https://your-shop.example   # + WOO_CONSUMER_KEY / WOO_CONSUMER_SECRET from your secret store
npx commerceweave-mcp doctor        # checks config + one read-only call per connection, prints no secrets

Allegro needs a one-time authorization: npx commerceweave-mcp setup allegro.

3. Connect your client. Claude Code · Claude Desktop · Cursor · any stdio MCP client (npx -y commerceweave-mcp).

4. Ask.

Examples

  • "Show today's orders across all connected stores."

  • "Which products are running low on stock?"

  • "Find stock discrepancies between Base.com and WooCommerce."

  • "Prepare a 5% price increase for these 10 products."

  • "Summarize last week's sales without double-counting imported orders."

Real output from the demo server: docs/demo-output.md.

Safety

approval flow

  • COMMERCEWEAVE_MODE=read_only is the default: no write tool is even registered.

  • proposal: the model can prepare plans (nothing is sent to a platform).

  • approval_required: a plan runs only after you run commerceweave-mcp approve <id> in your own terminal and type the code shown next to the plan. Approvals are single-use, expire (15 min default), are bound to the exact plan, and execution aborts if the live value changed.

  • No background or autonomous changes. No arbitrary-endpoint tool. No bulk delete.

  • Order data is masked unless explicitly requested. Seller/buyer text is delivered as labelled untrusted data.

Read the threat model and its limits: docs/safety.md. Important: do not give the agent an unrestricted shell on the same account; it could bypass the terminal approval.

Token storage: Allegro OAuth tokens are kept in a 0600 JSON file under ~/.commerceweave (plaintext) unless you set COMMERCEWEAVE_TOKEN_KEY, which encrypts them with AES-256-GCM.

Documentation

Setup per platform · Tool reference · Safety · Architecture · API compatibility & sources · Landscape · Troubleshooting · MCP Registry · Security policy · Contributing · Changelog

Data protection

Orders contain personal data. Tool output goes to your AI provider. You are the data controller: check your provider's terms and your GDPR obligations before enabling includePersonalData. CommerceWeave stores no customer data on disk, and its redaction is best effort.

Development

npm ci
npm run check   # lint, typecheck, tests (real stdio MCP sessions), build

License and author

MIT. Built and maintained by LuroWeb.

Allegro, Base.com (BaseLinker) and WooCommerce are trademarks of their respective owners. This project is independent and not affiliated with, endorsed by or sponsored by any of them. Names are used descriptively.

Need a custom AI-commerce integration? LuroWeb builds custom integrations, workflows and automation for e-commerce businesses.

Available Tools

9 tools
commerce_find_productFind a product by SKU, EAN or nameA
Read-onlyIdempotent

Looks for the same product on several platforms by SKU, EAN or name. SKU matches are exact; name search is a substring match. Matches are candidates only: SKUs may be missing or reused, so confirm identity before using a result as a write target.

Inputs: ean, sku, query, connectionIds.

commerce_find_stock_discrepanciesCompare stock across storesA
Read-onlyIdempotent

Compares stock for the same product on several connections. Pairs items by explicit config mapping first, then by SKU/EAN only when unique in each store; ambiguous or unmatched items are listed rather than guessed. Changes nothing. Optionally pass sourceOfTruth (a connection id) to get suggested updates, which can be turned into a reviewable proposal with commerce_prepare_stock_update.

Inputs: connectionIds, sourceOfTruth, maxItemsPerConnection.

commerce_get_orderGet one orderA
Read-onlyIdempotent

Fetches one order by its platform id from a specific connection, normalized. Personal data is masked unless includePersonalData=true.

Inputs: orderId (required), connectionId (required), includePersonalData.

commerce_inventory_reportInventory overview per storeB
Read-onlyIdempotent

Per-connection inventory summary: number of sellable items, total units, out-of-stock, low-stock and unmanaged counts. Units are not summed across platforms because the same stock may be published in several places.

Inputs: lowThreshold, connectionIds, maxItemsPerConnection.

commerce_list_connectionsList commerce connectionsA
Read-onlyIdempotent

Lists configured store connections (Allegro, Base.com, WooCommerce) with ids, platform, environment, write capability and the active safety mode. Never returns credentials. Call this first to learn valid connection ids.

Inputs: no named parameters.

commerce_list_ordersList orders across storesA
Read-onlyIdempotent

Lists orders from all (or selected) connections for a local day, last N days, or an explicit range, normalized and de-duplicated: orders imported from another platform are flagged with duplicate (status "confirmed" = same sale proven by ids, "potential" = unproven). Personal data is masked unless includePersonalData=true. complete is false if any connection failed or results were truncated.

Inputs: to, date, days, from, +4 more.

commerce_list_productsList products across storesA
Read-onlyIdempotent

Lists products/offers in a normalized shape (source ids, SKU, EAN, gross prices, stock, variants). Pages are per connection: one connection per call is recommended for large catalogs. Stock total is null when the platform does not manage a quantity. Base prices carry no currency (null).

Inputs: page, limit, query, connectionIds, +1 more.

commerce_low_stockFind products running lowA
Read-onlyIdempotent

Lists sellable items (variants individually) with stock <= threshold on each connection, lowest first. Items whose platform does not manage a quantity are skipped and counted, never treated as zero. Reports which connections were incomplete or failed.

Inputs: threshold, connectionIds, maxItemsPerConnection.

commerce_sales_summarySales summary without double countingA
Read-onlyIdempotent

Gross revenue and order counts per currency and connection for a period. Confirmed imported duplicates (e.g. Base orders imported from Allegro) are excluded; potential duplicates are included but reported separately. Cancelled, refunded and (by default) unpaid orders are excluded. This is revenue, not profit; currencies are never converted.

Inputs: to, date, days, from, +4 more.

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    A3.8/5.0

    Scored across 9 tools

    Disambiguation4/5

    Most tools target clearly distinct operations (listing connections, products, orders, per-order fetch, sales summary), and the three stock-related tools are differentiated by their descriptions (low-stock listing vs. per-connection summary vs. cross-platform comparison). The overlap between commerce_list_products and commerce_inventory_report, and the cluster of stock tools, still requires careful reading but is manageable.

    Naming Consistency4/5

    All names share a `commerce_` prefix and snake_case, which is highly predictable. However, six follow verb_noun (list_products, find_product, get_order) while three are noun-only (low_stock, inventory_report, sales_summary), a minor deviation.

    Tool Count5/5

    Nine tools is well within the sweet spot and each one covers a distinct reporting or lookup concern. No tool feels redundant enough to remove.

    Completeness3/5

    The surface is a coherent read/analytics layer, but commerce_find_stock_discrepancies points to `commerce_prepare_stock_update`, which does not exist on this server — a hard dead end. There is also no write path at all despite connections exposing write capability and safety mode, and no get-product detail tool.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables connecting 13 e-commerce platforms such as Amazon, eBay, WooCommerce, and OTTO to Claude, ChatGPT, Copilot, and Cursor, exposing 160 tools to manage stores, orders, products, and marketplaces through natural language.
      AGPL 3.0
    • A
      license
      B
      quality
      C
      maintenance
      A read-only MCP server that lets an Agent Studio agent query a WooCommerce store's orders, products, inventory and customers, with pagination, filtering, typed errors and automatic rate-limit retry. It never mutates store data, keeping the blast radius of an agent's actions bounded to reads.
      7
      MIT