Hou Tea — Buy Chinese tea via x402 USDC
About
The first Model Context Protocol server that lets AI agents browse, recommend, compare, and BUY real physical products with USDC stablecoin via the x402 protocol.
Details
- Author
- jackrain19743
- Downloads
- 273
- Categories
- Other
Jump to
- Browse catalog with filters (category, price, season, difficulty)
- Natural-language tea recommendations
- Deep product explanations with brewing guides and stories
- Initiate x402 USDC payment intents
- Poll order status and list past orders
- Progressive tool discovery (core + extended tools)
- Structured response envelopes with error codes and hand-off hints
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
Hou Tea — Buy Chinese tea via x402 USDCCommand (node, npx, python, etc.)Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
Install by running npx -y @hou-tea/mcp-server and configure it in your MCP client’s config file (e.g. claude_desktop_config.json for Claude Desktop, ~/.cursor/mcp.json for Cursor). No environment variables are required for basic use. Ask your agent to recommend tea or make a purchase — payment handling requires a separate x402-capable wallet MCP like @coinbase/payments-mcp.
hou_tea_browse
Browse the hou-tea Chinese tea catalog. Returns products with name, price (USD/USDC), images, taste profile, fermentation level, season, and a ready-to-render `card` object. Filter by category, price range, season, or brewing difficulty.
hou_tea_recommend
Get curated tea recommendations from a natural-language query. The server parses intent, applies semantic match, and returns ranked products with explanation. Use this whenever the user asks 'recommend me a tea for X' or describes a mood/occasion/use-case.
hou_tea_explain
Get a deep explainer for one product: origin story, brewing guide (water temp, steep time, ratio), health benefits, talking points, cultural context, and cross-sell suggestions. Use after the user shows interest in a specific product.
hou_tea_compare
Side-by-side comparison of 2–4 products across sensory profile, price, brewing difficulty, season, and use-case. Use when the user is choosing between specific candidates.
hou_tea_filter_by_health
Filter products by health constraints. Returns only teas safe under the given conditions (e.g. avoid caffeine for insomnia or pregnancy, avoid strong tannins for sensitive stomachs).
hou_tea_get_payment_requirements
Initiate an x402 USDC payment intent for a product. Returns HTTP 402-style payment requirements (recipient address, amount, Base chain network). The agent should then use a wallet MCP (e.g. @coinbase/payments-mcp) to send USDC and complete the order. This tool does NOT sign or send transactions.
hou_tea_check_order
Poll the status of a previously created order. Status transitions: pending_payment → confirmed (after on-chain USDC settlement is verified).
hou_tea_agent_card
Fetch the full hou-tea agent capability descriptor (/.well-known/agent). Useful for discovering the latest API surface, payment recipient address, and supported networks. Call this if other tools behave unexpectedly.
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"hou tea \u2014 buy chinese tea via x402 usdc": {
"hou-tea": {
"command": "npx",
"args": [
"-y",
"@hou-tea/mcp-server"
],
"env": {
"HOU_TEA_AGENT_KEY": "optional-leave-empty-for-public-catalog"
}
}
}
}
}
McpServers
{
"hou-tea": {
"command": "npx",
"args": [
"-y",
"@hou-tea/mcp-server"
],
"env": {
"HOU_TEA_AGENT_KEY": "optional-leave-empty-for-public-catalog"
}
}
}
@hou-tea/mcp-server
> Agent-app MCP server for hou-tea.com — let your AI agent browse, recommend, and buy authentic Chinese tea with USDC via the x402 protocol.
Designed for Claude Desktop, Cursor, Cline, Continue, Zed, and any Model Context Protocol compatible AI agent.
> v0.2.0-beta — server now ships as an agent app layer, not just a tool list:
> progressive tool discovery (core + extended), strict JSON Schemas, structured
> response/error envelopes (ok, data, error, next_action, meta.request_id),
> stable error codes, and explicit hand-off hints to wallet MCPs. See
> What changed in 0.2.0 below.
---
What it does
Exposes the hou-tea agent API as MCP tools so your AI assistant can shop on your behalf.
Default tools/list (core + meta) — always visible:
| Tool | What it does |
|---|---|
| hou_tea_browse | List tea catalog with filters (category, price, season, difficulty) |
| hou_tea_recommend | Natural-language recommendations: "warming tea for cold winter nights" |
| hou_tea_explain | Deep dive on one product: brewing guide, story, health info |
| hou_tea_get_payment_requirements | Initiate x402 payment intent (returns recipient + amount; auto register_buyer_list_token / buyer_list_token for buyer order history) |
| hou_tea_check_order | Poll order status after payment |
| hou_tea_list_my_orders | List your x402 orders by buyer_list_token (Bearer; uses HOU_TEA_BUYER_LIST_TOKEN env) |
| hou_tea_discover_extended | Reveal extended tools (compare / health-filter / agent-card) on demand |
Extended (revealed after hou_tea_discover_extended):
| Tool | What it does |
|---|---|
| hou_tea_compare | Side-by-side comparison of 2–4 candidates |
| hou_tea_filter_by_health | Filter by conditions: pregnant, insomnia, caffeine sensitive |
| hou_tea_agent_card | Fetch full agent capability descriptor (diagnostics) |
Payment is handled by an x402-capable wallet MCP (e.g. @coinbase/payments-mcp) — this server only emits payment intents, it never holds keys or signs transactions.
---
Install
Claude Desktop
Edit claude_desktop_config.json (Settings → Developer → Edit Config):
{
"mcpServers": {
"hou-tea": {
"command": "npx",
"args": ["-y", "@hou-tea/mcp-server"]
},
"coinbase-payments": {
"command": "npx",
"args": ["-y", "@coinbase/payments-mcp"],
"env": {
"EVM_PRIVATE_KEY": "0x..."
}
}
}
}
Restart Claude Desktop. You should see "hou-tea" listed under tools.
Cursor
Add to ~/.cursor/mcp.json or <project>/.cursor/mcp.json:
{
"mcpServers": {
"hou-tea": {
"command": "npx",
"args": ["-y", "@hou-tea/mcp-server"]
}
}
}
Cline / Continue / Zed
Same npx -y @hou-tea/mcp-server invocation in their MCP config.
---
Try it
After install, ask your agent:
> "Recommend a warming tea for winter nights, around $30."
The agent will call hou_tea_recommend, return real products with prices and brewing notes, then offer to buy.
> "I'll take the first one."
The agent calls hou_tea_get_payment_requirements, gets back a 402 with the merchant's Base-chain USDC address and amount, plus a buy_request_body field (includes register_buyer_list_token or your saved buyer_list_token). The retry POST to /pay/api/v1/buy after paying must use that exact JSON body plus the X-Payment header — otherwise buyer grouping breaks. If you've also installed @coinbase/payments-mcp with a funded wallet, configure it to forward the same body. After the first successful purchase, copy buyer_list_token from the JSON response into MCP env HOU_TEA_BUYER_LIST_TOKEN so hou_tea_list_my_orders and future checkouts stay under one identity.
---
Configuration
All settings via environment variables (optional):
| Env var | Default | Purpose |
|---|---|---|
| HOU_TEA_API_BASE | https://hou-tea.com | Override API host (e.g. for staging). |
| HOU_TEA_PAY_BASE | https://hou-tea.com/pay | Override x402 middleware host. |
| HOU_TEA_STORE_ID | fengshui | Default store_id. |
| HOU_TEA_AGENT_KEY | (none) | Optional X-Agent-Key for higher rate limits / private skills. Contact support@hou-tea.com. |
| HOU_TEA_BUYER_LIST_TOKEN | (none) | After first successful /buy, paste the buyer_list_token from the response. Future hou_tea_get_payment_requirements calls send this as buyer_list_token; enables hou_tea_list_my_orders. |
| HOU_TEA_AUTO_REGISTER_BUYER_LIST_TOKEN | true | Set to false to stop sending register_buyer_list_token / buyer_list_token on /buy (legacy behavior). |
Most users need none of these — the public catalog and x402 buy endpoint are open. For buyer order history, set HOU_TEA_BUYER_LIST_TOKEN once you have it from a confirmed purchase.
---
Architecture
┌─────────────────┐ ┌────────────────────┐
│ Claude / Cursor │ │ hou-tea.com │
│ │ HTTPS │ /api/agent/ │
│ ┌─────────────┐ │ ──────► │ (catalog/ │
│ │ hou-tea MCP │ │ ◄────── │ recommend/etc.) │
│ └─────────────┘ │ └────────────────────┘
│ │
│ ┌─────────────┐ │ HTTPS ┌────────────────────┐
│ │ payments MCP│ │ ──────► │ /pay/api/v1/buy │
│ │ (Coinbase) │ │ ◄ 402 ─ │ x402-middleware │
│ └─────────────┘ │ │ │
│ │ │ Base │ verifies on- │
│ └─────────┼──────►──┤ chain tx, marks │
│ USDC transfer │ chain │ order confirmed │
└─────────────────┘ └────────────────────┘
---
Build from source
git clone https://github.com/hou-tea/hou-tea-mcp-server.git
cd hou-tea-mcp-server
npm install
npm run build
node dist/index.js # speaks MCP over stdio
npm run test:unit # offline unit tests (envelope + registry)
npm run test:smoke # live HTTP smoke (hits hou-tea.com)
npm run test:mcp # full MCP stdio smoke (build + spawn)
---
What changed in 0.2.0-beta
Anthropic's Skills + MCP guidance pushes MCP servers from "a flat list of tools"
toward an agent app layer: progressive discovery, strict schemas,
program-friendly responses, and explicit hand-off to other MCPs.
This release brings that posture to @hou-tea/mcp-server:
1. Progressive tool discovery. Default tools/list returns 6 core tools
+ hou_tea_discover_extended. Extended tools (hou_tea_compare,
hou_tea_filter_by_health, hou_tea_agent_card) are revealed on demand.
Calling an extended tool before discovery returns a structured error:
{ "ok": false,
"error": { "code": "extended_not_revealed",
"retryable": true,
"hint": "Call hou_tea_discover_extended …" } }
2. Structured envelope on every call.
{
"ok": true,
"data": { / tool payload */ },
"next_action": [
{ "tool": "hou_tea_explain", "reason": "...", "args_hint": { "skill_id": "..." } }
],
"meta": { "request_id": "req_…", "tool": "hou_tea_recommend",
"took_ms": 412, "server_version": "0.2.0-beta.0" }
}
Errors share the same envelope with ok: false and a stable error.code
(bad_request, unauthorized, not_found, conflict, timeout,
rate_limited, server_error, network_error,
missing_buyer_list_token, extended_not_revealed, unknown_tool,
internal_error). Each error also carries retryable and a hint.
3. Strict JSON Schema. Every inputSchema sets
additionalProperties: false, with required, enum, pattern,
minItems / maxItems etc. — so agent-side validators can rely on it.
4. Hand-off hints to wallet MCP. hou_tea_get_payment_requirements
returns the 402 buy_request_body plus a next_action block that points
the agent to an x402 wallet MCP (e.g. @coinbase/payments-mcp) and then
back to hou_tea_check_order.
5. Traceability. Every response carries meta.request_id so you can
include it in support tickets / logs.
This is a next-tagged beta; install with:
```bash
npm i @hou-tea/mcp-server@next
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



