MCP
Établi's MCP server
Établi's tools for AI assistants and coding agents, at https://api.etabli.io/mcp. With no key they plan physical work and draft it for the person to claim and publish on etabli.io; with a buyer key, https://api.etabli.io/mcp/full runs the whole loop, from posting a project to placing orders.
- Server URL
https://api.etabli.io/mcp- Transport
- Streamable HTTP, stateless
- Authentication
- None. A buyer key adds tools
- Skill
npx skills add https://etabli.io
Add it to your agent
One command or link per client. No key, no sign-in: the server's tools plan work, draft it for the person to claim, and request firm prices, and nothing on it spends money.
Claude Code
claude mcp add --transport http etabli https://api.etabli.io/mcpCodex
codex mcp add etabli --url https://api.etabli.io/mcpOr add it to
~/.codex/config.toml, which the Codex CLI, the IDE extension and the ChatGPT desktop app share:~/.codex/config.toml
[mcp_servers.etabli]url = "https://api.etabli.io/mcp"Cursor
Add to CursorOr open cursor.com/install-mcp in a browser.
VS Code (Copilot)
Add to VS CodeOr run
code --add-mcp '{"name":"etabli","type":"http","url":"https://api.etabli.io/mcp"}'.Gemini CLI
gemini mcp add --transport http etabli https://api.etabli.io/mcpClaude (claude.ai, desktop)
Add a custom connectorOr: Customize → Connectors → Add custom connector, with the URL
https://api.etabli.io/mcpand no sign-in.ChatGPT
chatgpt.com/plugins → + → Add custom MCP server → Connection: URL
https://api.etabli.io/mcp, Authentication: none → create it as a plugin.Kiro
Goose
Any MCP client
Streamable HTTP, no authentication. Some clients call the type
streamableHttporstreamable_http.mcp.json (most clients)
{ "mcpServers": { "etabli": { "type": "http", "url": "https://api.etabli.io/mcp" } }}Skill (70+ agents)
npx skills add https://etabli.ioInstalls Établi's skill,
order-physical-work, into the agents on your machine: when to use Établi and how to order with it.
Tools
| Tool | Needs | Does |
|---|---|---|
how_etabli_works | Nothing | What Établi is, the delivery shapes with examples, the flow, and what needs an account. |
preview_quote | Nothing | The plan: a job card per leg, with open questions and suggested answers. No price of Établi's own; nothing is ordered. |
create_project | Nothing | Drafts the project for the person to claim. Returns claimLine, to show them word for word (a link with a short code), and a project key to keep. Nothing reaches workshops and nothing is charged until they claim and publish it on etabli.io. |
get_project | The draft's project key, or a buyer key | Where a project stands: the claim, each leg, the latest events, and next, what to do now and when to look again. |
request_firm_prices | The person's yes | Firm prices by email instead of a draft: puts the request out to bid and emails the person the offers. It shares their name and email: call it only once they have agreed. |
get_tender, list_clarifications, list_project_offers, list_offers, get_order, get_statement | A buyer key | Read-only status of that buyer's projects, tenders, offers and orders. |
post_project, post_tender, answer_questions | A buyer key, on /mcp/full | Plan a request into legs, or one tender, and answer their questions. |
publish_project, publish_tender, answer_clarification, award_project, award_tender, place_order | A buyer key, on /mcp/full | Put work out to bid, answer workshops, award contracts and place orders. These reach workshops or commit money: confirm each with the person. |
With a buyer key
On https://api.etabli.io/mcp, a buyer key (Authorization: Bearer etb_live_…) adds the read-only status tools. For the whole loop, connect to https://api.etabli.io/mcp/full and keep the key in an environment variable, never in a link or a prompt:
Claude Code
claude mcp add --transport http etabli https://api.etabli.io/mcp/full --header "Authorization: Bearer $ETABLI_API_KEY"Codex
codex mcp add etabli --url https://api.etabli.io/mcp/full --bearer-token-env-var ETABLI_API_KEYCursor
.cursor/mcp.json
{ "mcpServers": { "etabli": { "url": "https://api.etabli.io/mcp/full", "headers": { "Authorization": "Bearer ${env:ETABLI_API_KEY}" } } }}
An assistant working for one person doesn't need a key: create_project drafts the project, and the person claims and publishes it on etabli.io. Buyer keys are for companies that run the whole loop themselves: request API access.
What an assistant should know
- Show the person
create_project'sclaimLineword for word, on its own line, and keep theprojectKeyout of the conversation. Only the person can claim and publish the project: never claim it for them. - Bids take days once the person publishes. Check with
get_projectwhen itsnextsays, not sooner, and tell the person they'll get a status link when they claim. - Ask the person before
request_firm_prices, and before passingcontacttocreate_project: both share their name and email.request_firm_pricescan't be recalled; many clients ask for approval too, because it is marked destructive. - Confirm with the person before
award_project,award_tenderand everyplace_order: they commit real money. - Don't quote a price before the bids are in. Établi has no price list; a preview has no price of its own.
- In a headless run (
claude -p, an agent SDK) nobody can approve a tool call. Allowlist the read-only tools, or call the HTTP preview, which needs no approval:POST /v1/quotes/preview. - Everything the server does goes through the same API: the docs have the same steps over HTTP.
Try it
Once it's connected, ask your assistant:
- “Plan 48 embroidered quarter-zips with our logo, shipped to our office within 3 weeks.”
- “Send a branded hoodie to each of our 35 remote employees' homes. Can Établi do that?”
- “We sell t-shirts online. Could someone print and ship each order within 3 days?”
- “Pastel self-watering pots made overseas in lots of 100, and a US nursery that pots a plant in one and ships each order.”
Protocol
- Streamable HTTP: JSON-RPC over POST. Stateless, so there's no session or stream to open (a GET answers 405).
- MCP protocol 2026-07-28, and 2025-era clients through the
initializehandshake. - Requests are rate-limited per IP address, across
/mcpand/mcp/full. - Browser requests from other websites' origins get 403; the assistants' own origins are allowed.
- In clients that show MCP Apps,
preview_quotedraws the plan as a job card.