Kalicart Global

io.github.giuseppesocci-botPublished by GitHub account giuseppesocci-botv1.1.0Updated Oct 24, 2026

Federated commerce search across independent WooCommerce merchants. Keyless, read-only MCP server.

VerifiedStreamable HTTPWeb executableWeb Search & ScrapingBusiness & Commerce

Overview

AI-generated overview

A keyless, read-only remote MCP server that lets an assistant search and compare product offers across independent WooCommerce merchants and verify price and in

What you can do
Search the federated catalog by free text, category leaf and facets such as brand, color, price range and stock, and list participating merchants and canonical categories with product counts to gauge coverage. Retrieve indexed product detail by identifier, including price, availability, attributes and variants. Check a single offer or a basket of up to 40 lines against merchant-declared data for availability, quantity and unchanged price, and estimate delivered cost from declared shipping options. Fetch a cryptographic attestation that a product row matches the merchant's signed catalog snapshot, and look up whether a given merchant domain publishes a compatible catalog.
When to use it
Useful when an assistant needs to find or compare real products across several independent stores without scraping storefronts, or to sanity-check price, stock and shipping before handing a shopper off to the merchant's own checkout.
Requirements
A remote Streamable HTTP endpoint; no API key, account or registration is declared. Network access to the hosted service is needed.
Before you install
Results are indexed snapshots, not live reads, so price and stock should be re-verified through the merchant handoff before being treated as final. The server is read-only and never transacts or takes payment; purchases happen on the merchant's store. Free-text search matches merchant catalog text with no translation, and price filters use each offer's own currency without conversion.

Installation

In SourceWeft

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

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.giuseppesocci-bot%2Fkalicart-global/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "kalicart-global": {
      "type": "http",
      "url": "https://global.kalicart.com/mcp-public"
    }
  }
}

README

KaliCart Global — Federated Commerce Search for AI Agents

One query across many independent WooCommerce stores — real products, merchant-authoritative prices, indexed snapshots with a documented live-verification path back to the merchant. Keyless, read-only, no registration.

KaliCart Global is a public Model Context Protocol server that lets an AI agent search real product offers across independent merchants that opted in through the ARC (Agent-Readable Catalog) protocol. Instead of scraping a storefront and guessing at price and stock, an agent queries a structured, federated index and gets data it can trust — then hands the shopper off to the merchant's own store to complete the purchase. The server itself never transacts.

Why it exists

Crawling a product page works when a machine only needs to read it. It breaks the moment an agent needs to act on a real price and real stock — the price may be stale, the stock may be phantom, the variant may not exist. KaliCart's approach is to make a catalog computable rather than merely crawlable: queryable and authoritative by design, served as an indexed snapshot with a documented handoff back to the merchant's own Bridge for live verification before checkout.

Reading a catalog this way is also far cheaper. A companion case study on the Bridge layer measured a live 626-product catalog served to an agent in 8,000 tokens instead of 196,595 — a ~24× reduction, small enough to fit a listing inside a model's context window instead of overflowing it (read it). Global brings the same structured, read-cheap surface to many merchants at once.

Connect

Add it to your MCP client as a remote (Streamable HTTP) server — no API key or account required:

json
{  "mcpServers": {    "kalicart-global": {      "url": "https://global.kalicart.com/mcp-public"    }  }}

Tools

All five tools are public, keyless, read-only, and idempotent.

ToolPurpose
global_searchSearch the federated index by free text (q) and/or canonical category (leaf), with facet filters (brand, gender, color, price range, stock). Returns offers with merchant-authoritative prices, UCP availability_status, storefront URLs and canonical category leaves.
get_productFull product detail by p2209_id (obtained from global_search): price, availability, attributes, variants, direct storefront URL.
lookup_merchantCheck whether a merchant domain runs an ARC-compliant catalog (KaliCart Bridge). Returns bridge version, discovery URL and federated-indexing consent flags; a miss returns probe: "not_scheduled" rather than queuing a background check. Federated-indexing consent is separate from a merchant's optional authorization of a named external provider (see Legal above); this tool does not report per-provider authorization state.
list_merchantsList participating merchants with domain, storefront URL and product count.
list_categoriesList canonical category leaves with product counts; supports parent filtering.

Typical flow: list_categories / list_merchants to understand coverage → global_search to find offers → get_product on finalists → hand off to the merchant storefront URL.

Behavior notes

  • global_search with neither q nor leaf returns a query_required error (guidance_code: USE_Q_OR_LEAF), not an empty result set — pass at least one.
  • list_categories without parent returns up to 100 leaves per call (truncated: true plus total and complete_via when there are more); use parent filtering or the paging hint to walk the full set.
  • Search results and product details are indexed snapshots (provenance.fetched_at), not a live database read — verify the selected offer via its Bridge handoff before treating price or stock as final.
  • Free-text queries match native merchant catalog text; there is no server-side translation. Use leaf and facet filters for language-neutral retrieval.
  • Price filters operate in each offer's merchant currency; no FX conversion is applied.
  • No pagination: use limit (max 25 for offers, 50 for merchants).

This repository is the public interface for the server — documentation, issue tracking and security contact. The server is a hosted service; its source is not published here.

The MIT license covers the contents of this repository only; the hosted service and catalog data are governed by the Terms of Use.

UCP Catalog

KaliCart Global also speaks the Universal Commerce Protocol Catalog capability (spec 2026-08-25), so any UCP shopping agent can query independent WooCommerce stores the same way it queries other UCP catalogs.

  • Profile: https://global.kalicart.com/.well-known/ucp (catalog search + lookup, no checkout)
  • Endpoint: https://global.kalicart.com/ucp/mcp (Streamable HTTP)
  • Tools: search_catalog, lookup_catalog, get_product. Every request must carry meta["ucp-agent"].profile.

What to expect:

  • Every variant carries its seller (the merchant), with a link to the store and, when declared, its refund policy.
  • search_catalog returns an indexed snapshot (metadata.kalicart.snapshot_at). get_product and lookup_catalog read price and availability live from the merchant's KaliCart Bridge when it answers in time (metadata.kalicart.source = "live"), and say so when they fall back to the snapshot.
  • Prices are in ISO 4217 minor units. Identifiers are stable: gid://kalicart/Product/… and gid://kalicart/ProductVariant/….
  • Categories use the KaliCart canonical taxonomy (taxonomy: "kalicart", e.g. home.bedroom.pillows); pass them back in filters.categories.
  • Perimeter: the same catalog as the public Global API — every opted-in merchant, including wine and spirits and digital goods, with the store's own age and legal checks at checkout. Surfaces built for one specific platform apply that platform's narrower product policy; the UCP endpoint does not.
  • Only merchants that installed KaliCart Bridge and opted in are indexed. KaliCart never sells, checks out or takes payment: the purchase happens on the merchant's store, and its checkout is the final authority.

Feedback

If you are evaluating or integrating this server and hit unexpected behavior, open an issue. Including the UTC timestamp of your requests lets us correlate with server logs.

For security matters, see SECURITY.md — please do not report vulnerabilities via public issues.

Related

  • KaliCart Bridge — the free WooCommerce plugin that makes a single merchant's catalog agent-readable (ARC). Bridge is the door on each store; Global is the federated index across many such doors.
  • kalicart-mcp — per-site MCP plugin for WordPress content.

Maintained by Save The Brain · Giuseppe Socci

Source: README.md at commit ebf2567

Tools

9

get_offer_attestation

Portable merchant attestation for one offer

Returns a cryptographic proof that this offer's product row is exactly the one the merchant signed in its catalog snapshot: the signed row, its bucket hashes, the Ed25519-signed manifest, the merchant public key and step-by-step verification. Trust is anchored on the merchant domain (key fingerprint published at key_anchor), not on KaliCart. It proves the row as signed at snapshot.generated_at, not the current price or stock: the checkout is authoritative. Independent verifier: https://global.kalicart.com/ucp/tools/verify-offer-attestation.js

Parametersp2209_idrequired

estimate_delivered_cost

Estimate the delivered cost of one offer to a destination

Deterministic estimate from the merchant's own data: item price x quantity plus the shipping options the store declares for the destination (flat rate = declared base rate; free shipping with its threshold, whether this quantity reaches it and how much is missing). Lists what is not included (shipping classes, cost formulas, duties, taxes on shipping). Pass variation_id for variable products. Valid within max_age_seconds of the last merchant confirmation; live=true reads the merchant now. The checkout is the only authority.

Parameterslivep2209_idrequiredquantitydestinationrequiredvariation_idmax_age_seconds

verify_basket

Verify a multi-merchant basket before handing it to checkout

Checks a basket of offers (up to 40 lines, any merchants) against the merchants' own data. Per line: variant_selected, available, quantity (declared stock) and price_unchanged (pass expected_unit_price), each true / false / unknown with evidence. Per merchant: subtotal, declared shipping options for the destination computed on that merchant's basket subtotal (free-shipping threshold, amount missing), and the exact checkout-session request (endpoint + body) to send to the merchant ONLY after the user decides. KaliCart creates no session and no order; totals are estimates and the merchant checkout is the only authority.

Parametersliveitemsrequireddestinationmax_age_seconds

verify_offer

Verify constraints on one offer (true / false / unknown)

Checks ONE offer (optionally a selected variant) and returns true, false or unknown per constraint with evidence. Pass constraints as an ARRAY, for example [{"field":"available"},{"field":"price","max":300,"currency":"EUR"},{"field":"ships_to","value":"IT:CB"}]. available has no expected key: ask for the fact and read its result. For a merchant-declared variant option use {"field":"option","keys":["pa_color"],"values":["black"]}; use only native merchant values, with variation_id for a specific variant. Nothing is inferred or translated. Results are unknown outside max_age_seconds (default 86400); live=true reads the merchant now. Checkout is the final authority.

Parameterslivep2209_idrequiredconstraintsrequiredvariation_idmax_age_seconds

lookup_merchant

Check a merchant for KaliCart Bridge

Use this when the user already knows a merchant domain and needs to check whether it publishes a KaliCart Bridge catalog, its latest observed access state, or its federation consent. This tool only reads the Global registry and never probes or modifies the merchant. Do not use it to discover products; use global_search instead.

Parametersdomainrequired

get_product

Get indexed product details

Use this after global_search when the selected candidate needs indexed details that are not already on its search card. The p2209_id must come from global_search. Variant options and colors are merchant-declared snapshot evidence matched by variation ID. This remains a snapshot, not live merchant verification; follow the returned handoff before confirming variant, price, or stock. Skip this call when the search card already answers the question.

Parametersp2209_idrequired

list_merchants

List participating merchants

Use this to inspect which WooCommerce merchants currently participate in the searchable KaliCart Global catalog and how much catalog coverage each contributes. It returns stable merchant identifiers, domains, storefront URLs, product counts, and sync time. Do not use it to find products; use global_search instead.

Parameterslimit

list_categories

Browse canonical product categories

Use this to discover the canonical category paths currently represented in KaliCart Global before calling global_search with leaf. An optional parent returns that node and its full subtree. This lists category vocabulary and counts; it does not return products.

Parametersparent

Version history

1
  1. v1.1.0LatestSep 16, 2026

Score

100% 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 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts