torob-mcp
Click on "Deploy 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., "@torob-mcpCheapest iPhone 13 in Iran and is it a good time to buy?"
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.
torob-mcp
An MCP server for torob.com, Iran's price-comparison engine. Ask your assistant what something costs in Iran, who sells it cheapest, whether the price is good right now, and whether the shop can be trusted.
Unofficial. This project is not affiliated with, endorsed by, or connected to Torob in any way. It is an independent client for the undocumented JSON endpoints torob.com's own website uses. Those can change or stop working without notice. All prices come from Torob and are reported as-is.
What it does
Fifteen tools covering search, prices, sellers, price history, physical shops and shop trust
signals. Prices are normalized to Toman. Persian, English and Finglish queries all work —
ayfon 13 finds what you'd expect.
You: What's the cheapest iPhone 13 in Iran right now, and is it a good time to buy?
→ search_torob(query: "iPhone 13")
→ product_price_chart(product_id: …) verdict: "great" — at the 25th percentile of 12 weeks
→ product_sellers(product_id: …) cheapest reliable seller, ★5, 300-500 orders in 90 daysRelated MCP server: Finland Shopping MCP
Install
Needs Node 22+.
Claude Code
claude mcp add torob -- npx -y torob-mcpClaude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json on macOS,
%APPDATA%\Claude\claude_desktop_config.json on Windows:
{
"mcpServers": {
"torob": {
"command": "npx",
"args": ["-y", "torob-mcp"]
}
}
}Cursor
.cursor/mcp.json in your project, or ~/.cursor/mcp.json globally:
{
"mcpServers": {
"torob": {
"command": "npx",
"args": ["-y", "torob-mcp"]
}
}
}Try it without installing
npx -y torob-mcp --help
npx -y @modelcontextprotocol/inspector npx -y torob-mcpTools
Tool | What it answers |
| "What does X cost?" — query plus category, brand, price range, condition and sort |
| Turns a vague, misspelled or Finglish query into phrases that work |
| Price range, seller count, specs, category path |
| Who sells it, cheapest-reliable-first, with trust signals |
| ~a year of weekly prices, plus a verdict: great / fair / high |
| Storage, RAM and region siblings with their own prices |
| Torob's own "similar" list |
| Physical shops stocking it, filterable by city |
| Shop city, score, enamad trust seal, time on Torob |
| Browse a whole category rather than searching |
| Discover category ids, brand ids and the price span |
| 2–5 products side by side, showing only what differs |
| "Best X under Y Toman", ranked |
| Cards for up to 10 ids at once |
| A shareable torob.com link (costs no request) |
Example prompts
«قیمت گوشی سامسونگ A55 چنده؟» — what does the Samsung A55 cost?
"Best wireless headphones under 2 million Toman"
"Is 113 million Toman a good price for a used iPhone 13 Pro right now?"
"Which shops in Shiraz have this in stock?"
"Compare the 128GB and 256GB versions"
"Is this seller trustworthy? They're much cheaper than everyone else."
A good habit: ask it to link the product URL, because prices move constantly.
Remote mode
torob-mcp --http # 127.0.0.1:3000
torob-mcp --http --port 8080
torob-mcp --http --host 0.0.0.0 # requires TOROB_AUTH_TOKENBinds loopback by default.
A non-loopback bind requires
TOROB_AUTH_TOKEN(16+ chars) unless you pass--insecure.Origin and Host are validated (DNS-rebinding protection); no wildcard CORS.
GET /healthzmakes no upstream call.POST /mcpis the transport.
Configuration
Everything is optional and validated at startup. See .env.example.
Variable | Default | What it does |
|
| Queries are logged at |
|
| Sent on every request. Keep it honest. |
|
| Simultaneous upstream requests (1–4). |
|
| Token bucket against Torob. |
|
| Search cache. Product |
| — | Bearer token for HTTP mode. Required on non-local binds. |
| — | Comma-separated. Empty rejects all browser Origins. |
Deployment
⚠️ Torob blocks many cloud egress IPs. This is the single most likely reason a deployment fails. Cloudflare Workers and datacenter ranges (AWS, GCP, Azure, Hetzner, DigitalOcean, …) are frequently blocked or served a challenge page instead of JSON. The server reports this as a
Blockederror rather than hanging.An Iranian VPS, or a home connection in Iran, is the reliable option. Test first with
pnpm test:livefrom the target host.
Full Docker, Iranian VPS, Fly.io and Railway recipes: docs/DEPLOY.md.
Workers egress probe (Phase 5.0 gate): docs/WORKERS_EGRESS.md.
Workers deploy guide: docs/DEPLOY_WORKERS.md.
Security model
Designed on the assumption that it runs on your machine and its output lands in an LLM's
context window. Full detail in docs/THREAT_MODEL.md.
Host allowlist.
torob.comandapi.torob.comonly, re-checked on every redirect hop. Product ids are validated as UUIDs before a URL is ever built.Prompt-injection hygiene. Merchant-written titles and notes are third-party text. Control characters, bidi overrides and zero-width characters (except ZWNJ, meaningful in Persian) are stripped; fields are truncated. This reduces the risk, it does not eliminate it — the real protection is that this server is entirely read-only.
Sponsored placements are labelled
sponsored: true, never hidden.Shop profiles are an allowlist. ~15 of Torob's ~72 shop fields are emitted; the rest (billing internals, personal contact) are dropped.
Supply chain. Four runtime dependencies, lockfile committed, install scripts disabled, npm provenance via OIDC, Actions pinned to SHAs, CodeQL + gitleaks + Scorecard + Trivy, SBOM per release, cosign-signed image.
What is sent to Torob
Only what a query needs: your search text (normalized), the ids and filters you asked for,
page and size, our User-Agent, and unavoidably your IP address. One exception carries a derived
deliver_city header: product_stores with a city argument.
No telemetry, no analytics, no disk persistence, no cookie jar. Full detail in
docs/PRIVACY.md.
Development
pnpm install --frozen-lockfile
pnpm check # oxlint + oxfmt + typecheck
pnpm test # offline and deterministic
pnpm test:live # opt-in, hits the real API
pnpm build
pnpm inspect # MCP Inspector, interactive
pnpm inspect:cli # Inspector CLI checksMonorepo: packages/core is runtime-agnostic (no node:*; everything injected through Runtime);
apps/node is the published package. See docs/ARCHITECTURE.md and
CONTRIBUTING.md.
Docs
Wiki · Index · Endpoints · Architecture · Threat model · Privacy · Deploy · Dependencies · Security policy · Contributing
User-facing guides live in wiki/ (Getting started, Tools, Recipes, Deploy).
Deep technical reference stays in docs/. Publish to the GitHub Wiki tab with
pnpm wiki:publish after the first wiki page exists on GitHub.
License
MIT © Siamak Mokhtari
This server cannot be deployed
Maintenance
Related MCP Connectors
Cross-merchant product search with real price history, comparisons, and demand signals.
Search 100+ US retailers, 260M+ products with real-time pricing, stock, and price history. Documentation - https://www.lemmebuyit.com/developer Homepage - https://www.lemmebuyit.com
AI shopping comparison — search 50M+ products, compare prices, find deals
Shopping search across 100M+ products, with every retailer's offer and live price in one place.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables searching and comparing product prices across Turkish supermarket chains (BIM, A101, Migros, SOK, etc.) with location-based filtering. Provides access to Turkish market data from marketfiyati.org.tr for price tracking and comparison.3MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to search and compare live prices from Finnish marketplaces (Hinta.fi, Tori.fi, Huuto.net) for new and used products like electronics, furniture, and more.MIT
- FlicenseNot gradedqualityDmaintenanceEnables searching and comparing products across Pakistani e-commerce platforms Daraz, Telemart, and iShopping, filtering by price and ratings.-
- FlicenseAqualityDmaintenanceEnables searching, price comparison, trend analysis, and saving of Korean e-commerce products (Naver Shopping) using natural language.4-