Read-only MCP server · Zoho Inventory
A private Agent Studio-style connector for Zoho Inventory
One-time OAuth, available to every agent the merchant runs, scoped to their organization, read-only by construction, and audited call by call.
Use it from your agent
The public demo server runs against synthetic data for Chai & Co (DEMO).
claude mcp add --transport http mb-demo https://merchantbridge-api.vercel.app/mcp/demoThen ask: “Is CHAI-250 in stock in Bengaluru, and at what price?”
3-minute tour
What a reviewer sees
Everything below runs live against the demo tenant, with no account.
Open the playground
No login. Pick a scenario card modeled on an Agent Studio launch agent.
Watch a real agent work
A live LLM agent calls the MCP server; the trace shows each tool, its args, latency, cache hits, governor decisions and budget left.
Break Zoho on purpose
Flip "Zoho 429 (code 44)" or "Expired token" and see the backoff, the circuit, and a structured RATE_LIMITED result.
Ask it to change data
The refusal card makes zero tool calls: there are no write tools to call.
Plug it into your own Claude
Copy one command and the same demo server shows up in Claude Code or as a Claude.ai custom connector.
Agent Studio principles
Principle, then the feature that enforces it
Agent Studio publishes its guardrails; this connector maps each one to something the server does, not something the prompt asks for.
| Principle | How MerchantBridge enforces it |
|---|---|
| Review first | Read-only by construction: GET-only client, READ scopes only, no write tools exist. |
| Verified first-party data | Every result carries as_of and a zoho_url deep link so a human can check the claim. |
| Validation layer | Zod schemas on input and output, scope checks, email and phone masking, free text fenced as untrusted. |
| Audit trail | Exactly one usage event per tool call, success or error, with masked arguments. |
| Data stays put | No mirroring of merchant data; only a short-TTL cache keyed by tenant. |
Architecture
One thin door, one governed path to Zoho
MCP is only the door. Every tool runs through the same runtime and every Zoho request goes through the rate governor, so the public demo exercises exactly what a merchant’s agents would.
Merchant agents
This site
MerchantBridge API
MCP server
ToolRuntime
Rate governor
Zoho Inventory
FakeZoho
Tool surface
10 read-only tools
Lists return at most 100 rows with an opaque cursor; every result stays under 10K tokens. Money comes back in minor units so it compares directly with Razorpay amounts.
zoho_check_stock
Stock per location, reorder level and price for several known items at once: up to 25 ids or 5 SKUs.
zoho_find_by_payment_reference
A Razorpay pay_ / order_ / rfnd_ id or UPI UTR to the payment, the invoices it paid and the order shipped.
zoho_get_connection_status
Organization, data center, plan, requested scopes, remaining daily budget and circuit state.
zoho_get_invoice
One invoice: balance, due date, line items and the linked sales order.
zoho_get_item
One item by id or exact SKU: price, stock per location, reorder level.
zoho_get_sales_order
One sales order with line items, packages, tracking and invoices embedded.
zoho_list_invoices
Invoices filtered by status, customer, due date or reference number.
zoho_list_sales_orders
Sales orders filtered by customer, status or date within the first 600 orders Zoho returns (believed newest first).
zoho_search_customers
Customers by name, company, email or phone (contact details masked).
zoho_search_items
Items by text, SKU or name, including low-stock and per-location filters.
See it answer a dispute in one turn
Payment reference to invoice to sales order to tracking number, with the trace open.