Spree Commerce: open-source B2B and marketplace ecommerce
Open-source B2B and marketplace ecommerce; new stores include an MCP server for AI agents.
Description from the maker (original English)
Search and invoke real AI capabilities on modelmarket.dev. Free trial, then a prepaid key.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
X-API-KeyValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
This address needs a key in a request header, which the add-connector menu cannot set. Use Claude Code, Cursor or VS Code instead.
Run this in your terminal
claude mcp add --transport http aimarket-hub https://modelmarket.dev/mcp --header 'X-API-Key: your-value'Fill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"aimarket-hub": {
"url": "https://modelmarket.dev/mcp",
"headers": {
"X-API-Key": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"aimarket-hub": {
"type": "http",
"url": "https://modelmarket.dev/mcp",
"headers": {
"X-API-Key": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This address needs a key in a request header, which the add-connector menu cannot set. Use Claude Code, Cursor or VS Code instead.
Your choice stays on this device in a cookie; no account needed.
X-API-Key secret HTTP headerThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Tool names and descriptions exactly as the server reported them on Nov 8, 2026. The maker wrote them, not us; we show them as plain text.
market_searchSearch this hub's catalogue of live data and computation by what you need, in plain words. Each match gives the product_id, capability_id and source_hub to pass to market_invoke, its price, `input` (the fields its input object takes) and `relevance` from 0 to 1; a `note` says whe
market_invokeInvoke a capability found via market_search. A few trial invokes are granted per caller with no wallet, key or channel, and each returns the hub's signed receipt; when the allowance is spent the hub answers 402 and this reports that rather than inventing a result, with next_steps
pipeline_prepareValidate a graph and return a signed quote and payment offers. No work or payment. Free steps require no wallet; paid steps require buyer wallet address. Use gas_mode=required to demand gas sponsorship or auto to prefer it. Inspect ready/blockers and gas_sponsorship. Sign offers
pipeline_invokeExecute or continue the SAME prepared graph. Submit authorizations when the signed quote enables gas_sponsorship, otherwise buyer-signed transactions; none for free steps. Never submit both payment modes. Retain run_id/access_token and the exact bundle. Pending is not failure; re
pipeline_statusRead an existing pipeline, including cached signed result, without broadcasting payments or invoking providers. No wallet signer or blockchain RPC required. Inspect recovery.action for unresolved work.
pipeline_refund_preparePrepare a cash refund for a verified paid step of a finished pipeline. This moves no money. The original seller must approve the exact EIP-3009 authorization locally; never send a private key. Refunds require seller cooperation and a configured gas sponsor.
pipeline_refundSubmit the original seller's refund authorization or resume the SAME refund. The recipient is the original buyer, amount is the paid step price, and the sponsor pays gas. Preserve the exact authorization after a lost response. Returns a separately signed credit note; the original
pipeline_refund_statusRead the saved cash-refund status and signed credit note without broadcasting a transaction. No private key or RPC is required. Pending means resume the same refund, never send a replacement transfer.
weather_nowCurrent weather at a place: temperature (°C), humidity (%), pressure (hPa) and wind (m/s) from the nearest live Open-Meteo relay within 75 km, with a signed receipt. Pass latitude and longitude, or a city. Paid per call; market_search shows the current price. The first few priced
air_quality_nowCurrent air quality at a place: PM2.5 and PM10 (µg/m³), US and European AQI, from Copernicus CAMS via Open-Meteo, with a signed receipt. Pass latitude and longitude, or a city. Paid per call; market_search shows the current price. The first few priced calls per caller are free.
nearby_sensorsThe nearest live public sensors to a point, one per layer asked for (e.g. weather, air, radiation, quake), each with its reading, distance and source, and a signed receipt. Paid per call; market_search shows the current price. The first few priced calls per caller are free.
fair_randomVerifiable random bytes for a draw, raffle or tie-break: an ECVRF output over your seed plus a proof anyone can check offline. The same seed always gives the same output, so publish the seed first to show the result was not picked. Paid per call; market_search shows the current p
x402_checkCheck a signed x402 USDC payment before submitting it: recovers the EIP-712 signer, runs USDC's own checks and the seller's (payTo, amount, asset, network), and when the signature fails names the domain it was really made for (e.g. Base Sepolia's 'USDC' used on Base, where USDC i
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 8, 2026
The registry name was verified with the GitHub account alexar76, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
Responded in 1694 ms (HTTP 200)
No sign-in needed
Read 13 tool descriptions and found no hidden instructions to the AI
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 3 of 3 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: X-API-Key
It runs in the maker’s cloud. Connect over the internet with nothing to install, but what you send passes through the maker’s servers.
The GitHub repo last changed –, and the latest version (3.15.21) reached the registry 32 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.
In the same category: Spree Commerce: open-source B2B and marketplace ecommerce, Stripe MCP, MCP Cn Commerce
Servers in the same category from other makers, sorted by stars.
Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Open-source B2B and marketplace ecommerce; new stores include an MCP server for AI agents.
Stripe’s official server lets AI view and manage customers, products, payments and invoices. Connect to Stripe’s cloud and sign in with OAuth.
8 read-only MCP platform entries; support is operation-specific; merchant live acceptance pending
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
🔄 Synced from the AI-Factory monorepo (append-only history). Pull requests are welcome — merged PRs are imported back and re-synced here. Issues · Pull requests
🌐 English · Русский · Español · Français · 中文 · Glossary
Connect an agent through MCP or A2A, find a capability, pay for execution, and verify its signed receipt.
AIMarket Hub integrates MCP tool calls and A2A agent requests with federated discovery, payment controls, and signed receipts. Oracle capabilities use the same marketplace. Receipt verification authenticates the signed record; it does not establish the truth or quality of the answer.
| Start here | Connect | First call |
|---|---|---|
| MCP client | https://modelmarket.dev/mcp | market_search → market_invoke, preserving source_hub. |
| A2A agent | /.well-known/agent-card.json → /a2a | Search → invoke with a price cap → inspect the Task → verify the receipt. |
[Step-by-step guide and runnable example](docs/agent-first-call.md)
Both routes use the hub’s invoke and payment controls. Use an available free trial, or pay through credits, a mandate, or the supported x402 flow.
Agents can already pay each other. We make it possible for them to trust each other.
⚠️ Pay-on-Verified — read before relying on it. A buyer can make payment conditional on an independent verdict: the hub holds the price and pays the seller only if the delivery passes; a failing delivery is refunded. The verdict comes from an LLM jury (Metis) judging the delivery against the intent the buyer wrote — evidence, not proof. It works only on escrow-backed payment channels, for capabilities the hub executes itself, from $0.05.
→ What it does not promise · How to enable it · A run on real money
### 🟢 Just want to try the marketplace? Install nothing.
Paste `https://modelmarket.dev/mcp` into Cursor, Claude, or any Streamable-HTTP MCP client.
Start with two tools, `market_search` + `market_invoke` (the endpoint's
tools/listhas more: status, receipts, channels). A few trial invokes per caller, then 429 `trial_quota_exhausted` until the window renews; each invoke returns a signed receipt.
Pass `source_hub` from search back into invoke — most of the catalogue is federated, and omitting it 404s.
Live trial size:
free_trial.max_invokes_per_visitorin /.well-known/ai-market.json.
{
"mcpServers": { "aimarket": { "type": "streamable-http", "url": "https://modelmarket.dev/mcp" } } }
Cursor: .cursor/mcp.json. Claude Desktop: claude_desktop_config.json. Same shape. Agent skill (no clone): docs/agent-install.
### 🛠 Run your own hub
`bash
pip install "aimarket-hub[pqc]" # Python 3.11+, or: uvx --from "aimarket-hub[pqc]" aimarket …
aimarket quickstart --name "My hub" && aimarket serve
`
Then
aimarket addlists your own API (buyers pay your wallet directly),aimarket doctorruns the
admission check other hubs will run on you, and one
curlknocks on the federation. Docker:
docker compose run --rm hub quickstartthendocker compose up -d; Railway, Render and Fly files are included.
Paid computation through an oracle: configure per-oracle paid-tier credentials.
→ Run your own hub · on a platform
Already run an API?
aimarket nodemakes it a node without a hub → run a node.
No server at all? Sell a Python function on HESTIA → sell without a server.
Ecosystem: AICOM overview & live demos · Package: aimarket-hub on PyPI · Community: Discord · Pollux · Telegram · Castor
Federation hub for AI capability discovery, micropayment routing, and plugin-extensible invoke.
Reference implementation of AIMarket Protocol v2. One HTTP surface to search a federated catalog, open payment channels, invoke capabilities with safety and compliance hooks, and settle on-chain — with custody depending on the selected payment rail.
| Live hub | modelmarket.dev |
| MCP | https://modelmarket.dev/mcp |
| A2A | Agent Card and A2A guide · Agent Card |
| Agent skill | docs/agent-install |
| Well-known | /.well-known/ai-market.json |
| Plugin demo | /plugins/demo |
| Widget demo | /widget/demo |
| Plain-language value | docs/value.md |
[Codex subcontracting case study](docs/case-study-codex-subcontract.md) — A real order from Codex: two GAIA calls, 0.002 USDC on Base, signed receipts and ≈ $0.00477 total including gas.
[One-call pipelines](docs/one-call-pipelines.md) · [New live test from Codex](docs/case-study-codex-one-call.md) — 2026-09-30.
AIMarket Hub sits between capability providers (factory-shipped products, oracles, peer hubs, data-cap publishers) and consumers (Flutter desktop apps, agents, embeddable widgets, MCP clients).
Problems it solves
| Problem | Hub answer |
|---|---|
| Fragmented AI APIs | Federated search over .well-known/ai-market.json peers |
| Per-call payment friction | Pre-funded channels — one deposit, N micro-invokes, one settlement |
| Trust in anonymous sellers | Reputation scores + stake bonds (plugin) |
| Compliance & audit | Provenance receipts on every invoke (Ed25519 + W3C VC) |
| Unsafe prompts | Safety pre-check with signed rejection + refund |
No human app-store reviewer. Agents find peers over federation, pass safety + attestation gates, and invoke only verified capabilities — cryptographic trust replaces marketing trust.
| What | Federated discover → safety / reputation / TEE plugins → routed invoke |
| Why | Scales to millions of micro-capabilities; malicious listings can’t drain channels |
| Deep dive | docs/killer-feature-zero-trust-discovery.md · Ecosystem capabilities |
C4Context
title AIMarket Hub — system context
Person(consumer, "Consumer", "App, agent, or widget user") Person(provider, "Provider", "Lists capabilities on a hub")
System(hub, "AIMarket Hub", "Search, route, invoke, settle") System_Ext(peers, "Peer hubs", "Federated catalogs") System_Ext(factory, "AI-Factory", "Shipped products → capabilities") System_Ext(chain, "Base L2", "USDT channels")
Rel(consumer, hub, "discover · channel · invoke") Rel(provider, hub, "manifest · capabilities") Rel(hub, peers, "crawl · route") Rel(hub, factory, "import shipped products") Rel(hub, chain, "open/close channel")
flowchart TB
subgraph hub_process["aimarket_hub (FastAPI)"] API["api.py — REST /ai-market/v2/*"] CRW["crawler.py — BFS federation"] DB["database.py — capability index"] CH["channels.py — ledger + settle"] SG["safety_gate.py"] PR["plugin.py — PluginRegistry"] FB["factory_bridge.py"] SIG["signing.py — Ed25519 manifests"] end
subgraph plugins["plugins/ (entry_points)"] P1["safety · provenance · channels …"] end
subgraph storage["Persistence"] SQL[("SQLite / PostgreSQL")] end
API --> CRW API --> DB API --> CH API --> SG API --> PR API --> FB CRW --> DB FB --> DB DB --> SQL PR --> P1 P1 -.->|"pre/post hooks"| API
Shipped AI-Factory products are indexed as local capabilities on hub startup:
sequenceDiagram
participant Factory as AI-Factory pipeline.db participant Loader as factory_products_loader participant Bridge as factory_bridge participant Index as database (SQLite)
Note over Factory,Index: On hub startup or sync script Factory->>Loader: COMPLETED / DEPLOYED products Loader->>Bridge: normalize capabilities Bridge->>Index: upsert source_hub=local Index-->>Bridge: indexed count
Sync ops: ../scripts/sync_pipeline_mirror_and_hub.py
aimarket-hub/
├── aimarket_hub/ # Core package │ ├── api.py # HTTP routes (search, invoke, federation, plugins) │ ├── crawler.py # Peer discovery (SSRF-hardened BFS) │ ├── database.py # Cap
Only the beginning is shown; read the rest in the repo