Procurement MCP
Searches AliExpress retail listings in federated marketplace search and reverse image search, returning matching supplier listings with price, MOQ, and supplier info.
Searches Amazon AU listings in federated marketplace search, with optional Keepa price history and relevance filtering, and is included in reverse image search across global retail.
Searches eBay AU listings via the eBay Browse API, including real sold-price data that feeds price history and using seller ratings in trust ranking.
Searches Facebook Marketplace listings via a hosted API, supporting Australian location targeting for local purchases.
Searches Gumtree AU classifieds listings via a hosted scraper API.
Searches Taobao listings in federated marketplace search vai TMAPI, with item search and detail, price normalisation to AUD, and shipping ETA.
Included as a global retail source in reverse image search, matching product photos to Walmart listings with price and supplier data.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Procurement MCPfind the cheapest 1L milk at Coles or Woolworths"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Procurement MCP — federated search across Chinese + Australian marketplaces
Integration-only. Every source is a hosted API you call with a key — no scrapers are built here. Chinese sources via aggregators (TMAPI), Australian sources via official APIs where they exist (eBay AU) and hosted scraper-APIs where they don't (Gumtree, Facebook Marketplace).
Natural-language procurement: find me the cheapest / fastest shipped / best value <item> → normalised Offer[] ranked by landed cost, ETA and seller trust.
Identity for sign-ups: io+agent@jupiter.au (approved).
Quick start
uv sync
cp .env.example .env # add keys
uv run mcp dev server.py # Inspector at http://localhost:5173
uv run python server.py # stdio — for Claude Desktop
uv run mcp install server.py # install into Claude DesktopMock fallback means the server is demo-able with zero keys — search_offers returns synthetic offers and health reports mock_fallback: true.
Related MCP server: buywhere-singapore-value-intelligence
Tools
Tool | Purpose |
| Federated parallel search. |
| Reverse image search — photo to matching 1688/Alibaba/AliExpress/global supplier listings with price, MOQ, supplier. |
| Detail for |
| Which integrations are configured (no secrets). |
Prompt | System prompt for procurement reasoning. |
All tools run concurrent asyncio fan-out with per-marketplace timeout (PROCUREMENT_TIMEOUT_S, default 8s) and never fail the whole search if one marketplace errors.
Deal-signal lanes (no marketplace required)
Beyond marketplaces, the federation carries deal-vetting signals:
ozbargain/cheapies— the sites' own official RSS feeds (/deals/feed), parsed with stdlibxml.etree— no key, no ToS risk. Each offer carriescommunity(votes ±, comments, clicks, expiry, brand, tags) parsed from theozb:metaextension and<category>taxonomy, plus price-from-title and the affiliategotolink. Thebest_valuetrust term uses net community votes — a +5-voted deal outranks a heuristic 4.8-star seller.ozbargain_search— true keyword search over OzBargain via the hosted Apify actorparseforge/ozbargain-australia-scraper(reusesAPIFY_TOKEN; costs Apify credits).ebay_sold— real eBay AU sold prices (what items actually sold for, not asking) viacaffein.dev/ebay-sold-listingswithebaySite: ebay.com.au. Sold comps land inprice_history— a ranking correction no official API offers.keepaprice history — whenKEEPA_API_KEYis set,amazon_auoffers get aprice_historyblock (90-day avg/min via Keepa's official API, domain 12 = amazon.com.au).
Grocery lanes — unit economics
woolworths, coles, aldi via the dromb Apify series ($0.30/1k):
operation: search with unit pricing, specials and barcodes. Grocery offers carry unit_price_aud + unit + regular_price_aud — price_aud holds the effective price (special when present). The cheapest ranker sorts on unit price when available, because a $4.50 2L milk beats a $3.10 1L and item price cannot express that. Costco deliberately excluded — every store actor targets costco.com (US/USD); revisit if an AU actor appears.
search_offers gates grocery and Amazon results with a relevance filter (every query term must appear in title/brand/category) — ALDI's catalogue search fuzzes "milk" into oil and lollipops without it.
search_by_image(image_url, destination, max_results)
Sourcing by photo — reverse image search across 1688 (wholesale factories), alibaba (B2B), aliexpress (retail), global (Amazon/Walmart/eBay and thousands of retail sites). Hand it a photo from any listing and get matching supplier listings with price, MOQ, supplier name and location. Alibaba's own visual-search tech, $0.10/search.
API keys — where to sign up as io+agent@jupiter.au
Recommended primary (full Chinese width in one key)
TMAPI — https://console.tmapi.io/user/signup → Account Center →
apiToken. Covers taobao/tmall/1688/pdd/jd withitem_search+item_detail. Free 200/mo, paid from ~$8/mo. SetTMAPI_TOKEN.AliExpress Affiliate (official, moderate barrier) — https://openservice.aliexpress.com → UAC account with
io+agent@jupiter.au→ join Affiliate Program → create app (1–2 day approval) →AppKey/AppSecret→ setALIEXPRESS_APP_KEY/ALIEXPRESS_APP_SECRET.
Australian
eBay AU — https://developer.ebay.com → Create app with
io+agent@jupiter.au→ obtainAppID(Client ID) +CertID(Client Secret) → setEBAY_APP_ID/EBAY_CERT_ID. Server does client-credentials flow forhttps://api.ebay.com/identity/v1/oauth/tokenscopehttps://api.ebay.com/oauth/api_scopeand callsbuy/browse/v1/item_summary/searchwithX-EBAY-C-MARKETPLACE-ID: EBAY_AU.Amazon AU — Seller Central Professional + https://developer.amazonservices.com → SP-API Far East endpoint
https://sellingpartnerapi-fe.amazon.com(for catalogue/pricing if you are a seller) or Product Advertising APIPA-API 5.0viaAMAZON_PAAPI_*+PARTNER_TAG=jupiter-22.
Hosted scraper-APIs (you call, they run browsers)
SociaVault — https://sociavault.com → Facebook Marketplace
search+item(SOCIAVAULT_API_KEY). Supports AU lat/lng. Pay-per-request, real-time.Apify — https://console.apify.com/settings/integrations →
APIFY_TOKEN→ actorcrawlerbros/gumtree-scraperfor Gumtree AU (residential + Akamai bypass handled by Apify).
Optional: ELIM_API_TOKEN (https://elim.asia) and RAPIDAPI_KEY for Otcommerce JD fallback.
Behaviour and ranking
Price normalisation —
price_cny→price_audviaCNY_TO_AUD(default 0.215). Landed cost =price_aud * qty + shipping.intl_estimate_aud.qty < moq(1688) pushes to end and is flagged.ETA —
shipping.eta_days[min, max].Trust —
seller.rating/source_reliability(authoritative>aggregator>best_effort).Sorts —
cheapestby landed cost,fastestby ETA,best_valuecomposite0.5 price + 0.25 speed + 0.25 trust.
Project layout
pyproject.toml
server.py # FastMCP server + all integrations
.env.example
research/ # hyperresearch vault (light run procurement-mcp-51d4f3)Database — Postgres on 10.1.1.3
When DATABASE_URL is set, the server caches federated results and logs searches in the fleet Postgres (10.1.1.3:5432, jupiter db, schema procurement per stack law). When unset it runs stateless.
# Example — set in .env
DATABASE_URL=postgresql://procurement:__SET_ME__@10.1.1.3:5432/jupiter
PROCUREMENT_PG_SCHEMA=procurement
# Apply once
psql "$DATABASE_URL" -f migrations/001_procurement_cache.sqlhealth() reports database.enabled / database.error without leaking secrets. Cache TTL is PROCUREMENT_CACHE_TTL_S (default 3600s). Tables: procurement.search_cache (keyed by query+marketplaces+sort+qty+ship_to) and procurement.search_log.
Development
# Use the hyperresearch venv that already has deps, or create your own
/home/io/projects/hyperresearch-opencode/.venv/bin/python -m py_compile server.py
/home/io/projects/hyperresearch-opencode/.venv/bin/ruff check server.py
/home/io/projects/hyperresearch-opencode/.venv/bin/python -c "from server import health; print(health())"This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Routes natural-language shopping queries to merchant storefronts, returns normalized results.
Cross-merchant product search with real price history, comparisons, and demand signals.
Semantic product search over Singapore e-commerce, ranked by an auditable entropy-based value-score
AI-agent product catalog: search, lookup & purchase routing over verified merchant data.
Related MCP Servers
- FlicenseAqualityDmaintenanceEnables AI-powered shopping assistance by analyzing natural language shopping queries and automating product searches on multiple e-commerce platforms.12
- FlicenseNot gradedqualityFmaintenanceSemantic product search and price-intelligence API over Singapore e-commerce data. Computes auditable value-scores from Shannon entropy across vendor price distributions, with pay-per-call pricing via x402 (USDC) alongside Stripe.
- AlicenseNot gradedqualityCmaintenanceEnables searching and comparing products from Woolworths and Coles supermarkets.MIT
- AlicenseNot gradedqualityCmaintenanceEnables querying and comparing prices, availability, ratings, reviews, and seller details from major Russian and Chinese marketplaces (Wildberries, Ozon, Yandex Market, and others) without requiring API keys, via a unified MCP interface.3MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/belikh/procurement'
If you have feedback or need assistance with the MCP directory API, please join our Discord server