Skill hosts
Best for Cursor and Claude Code skills. OpenClaw shares the Local agent hosts section with Hermes — install snippets are first on each card.
Open skill hostsSellToAI is the merchant-side bridge into the AI surfaces buyers already trust. Drop the SDK / SKILL / MCP / OpenAPI snippet into your agent host below, and SellToAI will translate every shopping turn into a structured intent your store can answer with real proposals — not links. Use the Developer Console when production `/v1/*` calls need a Bearer API key.
Need to install or configure a host first? Start with the official docs:
Most teams only need one surface to start. Pick the host or protocol you already use, copy the first block, then drop into the deeper workflow only if you need merchant-side negotiation.
Best for Cursor and Claude Code skills. OpenClaw shares the Local agent hosts section with Hermes — install snippets are first on each card.
Open skill hostsBest for ChatGPT and Gemini. Paste one manifest URL and start calling the gateway with hosted tools.
Open OpenAPI appsBest for Codex and Claude Desktop. Add a single `mcpServers` entry and call SellToAI as a local tool.
Open MCP setupHermes lives under Local agent hosts next to OpenClaw. Need raw REST only? Jump to Anything else after you finish the Hermes card.
Open Hermes / A2A flowThese URLs are the shared front doors behind every channel-specific guide on this page.
https://selltoai.ai/openapi.json
https://selltoai.ai/.well-known/agent-card.json
https://selltoai.ai/skills/install.sh
https://selltoai.ai/v1
Drop the SellToAI Shop skill into OpenClaw with a single curl command. Works in any new chat.
curl -fsSL https://openclaw.ai/install.sh | bash
# Already have Node 22+? Alternative:
# npm install -g openclaw@latest
curl -fsSL https://selltoai.ai/skills/install.sh | bash
mkdir -p ~/.openclaw/skills/moras-shop && \
curl -fsSL https://selltoai.ai/skills/moras-shop/SKILL.md \
-o ~/.openclaw/skills/moras-shop/SKILL.md
use the moras-shop skill: recommend a small birthday gift for a 5 year old kid
Unlike OpenClaw (a SKILL.md file), Hermes wires SellToAI through A2A: register the Agent Card URL once, then call message/send with skill_id from that JSON—or skip A2A and use GET /v1/recommend like any REST client.
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
1) Register — In Hermes (or your CrewAI / AutoGen / LangGraph setup), add the Agent Card URL below as the Moras agent discovery endpoint. Exact setting name is in NousResearch docs; it is not a file path like ~/.openclaw/skills/.
2) Discover — Hermes fetches the JSON; shopping uses skill_id "recommend_products" (see "skills" in that file).
3) Invoke — POST https://selltoai.ai/a2a with jsonrpc "message/send" and message.metadata.skill_id (example in the next block). For async tasks, poll SSE as in the final block.
Shortcut — Same gateway: GET https://selltoai.ai/v1/recommend?intent=...&channel=hermes (no JSON-RPC).
https://selltoai.ai/.well-known/agent-card.json
curl -X POST https://selltoai.ai/a2a \
-H "Content-Type: application/json" \
-H "X-Channel: hermes" \
-d '{
"jsonrpc":"2.0",
"id":"req-1",
"method":"message/send",
"params":{
"message":{
"role":"user",
"parts":[{"kind":"text","text":"recommend a small birthday gift for a 5 year old kid"}],
"metadata":{"skill_id":"recommend_products","async":true,"limit":3}
}
}
}'
curl -N https://selltoai.ai/a2a/tasks/TASK_ID/events
Cursor reads agent skills from ~/.cursor/skills. Same one-liner as OpenClaw.
curl -fsSL https://selltoai.ai/skills/install.sh | bash
> use the moras-shop skill — find me a portable blender
Claude Code skills live in ~/.claude/skills. Same installer, different target dir.
curl -fsSL https://selltoai.ai/skills/install.sh | bash
recommend trending pet products on TikTok Shop
ChatGPT consumes our OpenAPI 3.0 manifest. Paste the URL in your Custom GPT or Apps SDK config, then configure Bearer auth.
https://selltoai.ai/openapi.json
Authentication type: API Key
Auth type: Bearer
Header: Authorization: Bearer MA2A.xxx
When the user asks for a product recommendation, gift idea, or "what should I buy",
call recommendProducts with the user's intent paraphrased into one short English line.
Return each card's cta.primary.url verbatim — never rewrite the buy link.
Gemini Extensions / Gems also speak OpenAPI. Same manifest URL; configure Bearer auth for protected /v1/* calls.
https://selltoai.ai/openapi.json
recommend a small birthday gift for a 5 year old
Codex and Claude Desktop can spawn our MCP wrapper as a stdio child process. Add this to your MCP config.
{
"mcpServers": {
"moras-shop": {
"command": "npx",
"args": ["-y", "moras-a2a-mcp@latest"],
"env": {
"MORAS_A2A_BASE_URL": "https://selltoai.ai",
"MORAS_A2A_CHANNEL": "codex"
}
}
}
}
cd /path/to/moras-A2A && npm install
MORAS_A2A_BASE_URL=https://selltoai.ai node bin/mcp.js
Use the REST layer directly for both buyer-side discovery and merchant-side exchange objects.
curl 'https://selltoai.ai/v1/recommend?intent=birthday%20gift%20for%205%20year%20old&limit=3' \
-H 'Authorization: Bearer MA2A.xxx' \
-H 'X-Channel: my-agent'
curl -X POST https://selltoai.ai/v1/developers/register \
-H 'Content-Type: application/json' \
-d '{"display_name":"My Agent","contact_email":"[email protected]","password":"change-me-now","company":"Example Labs"}'
curl https://selltoai.ai/v1/developers/me \
-H 'Authorization: Bearer moras_dev_xxx'
curl 'https://selltoai.ai/v1/developers/logs?limit=20' \
-H 'Authorization: Bearer moras_dev_xxx'
curl -X POST https://selltoai.ai/v1/intents \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer MA2A.xxx' \
-H 'X-Channel: my-agent' \
-d '{"raw_query":"birthday gift for a 5 year old","region":"US","audience":"parent","budget_range":{"max":35,"currency":"USD"}}'
curl -X POST https://selltoai.ai/v1/merchant/register \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer MA2A.xxx' \
-H 'X-Channel: merchant-onboarding' \
-d '{"merchant_id":"mch_demo","agent_endpoint":"https://example.com/webhook","subscription_tags":["outdoor"],"capabilities":["stock_check"],"regions":["US"]}'
curl -X POST https://selltoai.ai/v1/agents/register \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer MA2A.xxx' \
-H 'X-Channel: agent-registry' \
-d '{"agent_id":"payment_demo","agent_type":"payment","endpoint":"https://example.com/a2a","protocols":["a2a-jsonrpc","webhook"],"auth_methods":["intent_mandate"],"capability_profile":{"payment":{"create_checkout":true}}}'
curl 'https://selltoai.ai/v1/agents?agent_type=payment&status=active' \
-H 'Authorization: Bearer MA2A.xxx'
curl -X POST https://selltoai.ai/v1/proposals \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer MA2A.xxx' \
-H 'X-Merchant-Token: mrt_xxx' \
-d '{"merchant_agent_id":"mch_demo","intent_id":"int_xxx","product_id":"123456789","offer_title":"Trail-ready lantern bundle","price":29.99,"inventory_status":"in_stock","shipping_commitment":{"eta_days":3}}'
curl -X POST https://selltoai.ai/v1/match \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer MA2A.xxx' \
-H 'X-Channel: my-agent' \
-d '{"intent_id":"int_xxx","proposal_ids":["prp_xxx","prp_yyy"],"limit":3}'
curl -X POST https://selltoai.ai/v1/commerce-runtime \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer ***' \
-H 'X-Channel: my-agent' \
-d '{"runtime_session":{"entry_agent_id":"my-agent","mode":"assisted_commerce"},"commerce_budget":{"max_merchant_queries":3,"require_user_confirmation_before_payment":true},"skill_refs":["enterprise_gifting_sop"],"intent":{"raw_query":"birthday gift for a 5 year old","region":"US","audience":"parent"},"proposal":{"merchant_agent_id":"moras-core","product_id":"demo-gift","offer_title":"Curated birthday gift bundle","price":29.99}}'
curl -X POST https://selltoai.ai/v1/agentic-checkout \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer ***' \
-H 'X-Channel: my-agent' \
-d '{"buyer_agent_id":"gpt-shopper-agent","raw_query":"birthday gift for a 3 year old nephew under $40","region":"US","commerce_budget":{"max":40,"currency":"USD"},"proposal":{"merchant_agent_id":"toy-merchant-agent","product_id":101,"title":"Montessori Wooden Animal Puzzle","price":28.5,"currency":"USD","checkout_url":"https://merchant.example/checkout/puzzle-101","commission_plan":{"type":"success_fee","rate_bps":1200,"currency":"USD"}}}'
curl -X POST https://selltoai.ai/v1/agentic-checkout/chk_xxx/confirm \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer ***' \
-H 'X-Channel: my-agent' \
-d '{"match_token_id":"mtk_xxx","proposal_id":"prp_xxx","expected_amount":28.5,"currency":"USD","buyer_confirmation":{"confirmed_by":"gpt-shopper-agent","consent":true,"user_visible_summary":"Buy Montessori Wooden Animal Puzzle for $28.50."}}'
curl -X POST https://selltoai.ai/v1/match/mch_xxx/accept \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer MA2A.xxx' \
-H 'X-Channel: my-agent' \
-d '{"proposal_id":"prp_xxx"}'
curl https://selltoai.ai/v1/match-tokens/mtk_xxx \
-H 'Authorization: Bearer MA2A.xxx'
curl -X POST https://selltoai.ai/v1/decision-events \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer MA2A.xxx' \
-H 'X-Channel: my-agent' \
-d '{"event_type":"proposal.remixed","intent_id":"int_xxx","proposal_id":"prp_xxx","action":"change_color","from":"black","to":"cream","reason":"prefers warm minimalist tone","actor_agent_id":"user-agent"}'
curl -X POST https://selltoai.ai/v1/experience-feed \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer MA2A.xxx' \
-H 'X-Channel: my-agent' \
-d '{"agent_id":"user-agent","taste_profile":{"visual_preferences":["warm minimalist","cream palette"],"negative_preferences":["glossy plastic"]},"inspiration_refs":[{"source":"pinterest","url":"https://example.test/pin/1","scene":"small apartment"}],"limit":3}'
curl -X POST https://selltoai.ai/v1/intent-mandates/sign \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer MA2A.xxx' \
-d '{"product_id":"3003","amount_limit":129.99}'
curl https://selltoai.ai/v1/cards/rec_xxxxxxxx \
-H 'Authorization: Bearer MA2A.xxx'
curl 'https://selltoai.ai/v1/creators/eva_creator/showcase?limit=6' \
-H 'Authorization: Bearer MA2A.xxx'
X-Channel: <your-agent-slug>