Skip to content
Établi

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/mcp
  • Codex

    codex mcp add etabli --url https://api.etabli.io/mcp

    Or 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

  • VS Code (Copilot)

    Add to VS Code

    Or 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/mcp
  • Claude (claude.ai, desktop)

    Add a custom connector

    Or: Customize → Connectors → Add custom connector, with the URL https://api.etabli.io/mcp and 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 streamableHttp or streamable_http.

    mcp.json (most clients)

    {  "mcpServers": {    "etabli": {      "type": "http",      "url": "https://api.etabli.io/mcp"    }  }}
  • Skill (70+ agents)

    npx skills add https://etabli.io

    Installs Établi's skill, order-physical-work, into the agents on your machine: when to use Établi and how to order with it.

Tools

ToolNeedsDoes
how_etabli_worksNothingWhat Établi is, the delivery shapes with examples, the flow, and what needs an account.
preview_quoteNothingThe plan: a job card per leg, with open questions and suggested answers. No price of Établi's own; nothing is ordered.
create_projectNothingDrafts 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_projectThe draft's project key, or a buyer keyWhere a project stands: the claim, each leg, the latest events, and next, what to do now and when to look again.
request_firm_pricesThe person's yesFirm 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_statementA buyer keyRead-only status of that buyer's projects, tenders, offers and orders.
post_project, post_tender, answer_questionsA buyer key, on /mcp/fullPlan a request into legs, or one tender, and answer their questions.
publish_project, publish_tender, answer_clarification, award_project, award_tender, place_orderA buyer key, on /mcp/fullPut 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_KEY
  • Cursor

    .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's claimLine word for word, on its own line, and keep the projectKey out 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_project when its next says, not sooner, and tell the person they'll get a status link when they claim.
  • Ask the person before request_firm_prices, and before passing contact to create_project: both share their name and email. request_firm_prices can't be recalled; many clients ask for approval too, because it is marked destructive.
  • Confirm with the person before award_project, award_tender and every place_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 initialize handshake.
  • Requests are rate-limited per IP address, across /mcp and /mcp/full.
  • Browser requests from other websites' origins get 403; the assistants' own origins are allowed.
  • In clients that show MCP Apps, preview_quote draws the plan as a job card.