Docs · MCP

Add Gardenpatch to your MCP client

One HTTP endpoint, 7 tools, 5 of them free. Your agent can browse the catalog, read the schemas and pull a realistic sample response without spending anything, then pay per call when it wants a real answer.

The server is a thin adapter over the same HTTP API. Same prices, same receipts, same idempotency rules — nothing about the deal changes because you arrived over MCP.

Install

Claude Code:

claude mcp add --transport http gardenpatch https://gardenpatch.xyz/mcp

Any client that takes a JSON config — Claude Desktop, Cursor, VS Code — wants the same two fields:

{
  "mcpServers": {
    "gardenpatch": {
      "type": "http",
      "url": "https://gardenpatch.xyz/mcp"
    }
  }
}

There is no API key to paste and no account to create, so that is the whole configuration.

The tools

ToolCostWhat it does
list_coachesfreeFree. The catalog of 7 growth coaches, the 16 modes they sell, and the current price of each. Call this first — it is generated from the same registry the paid endpoint validates against, so it is never stale.
list_actionsfreeFree. The catalog of paid real-world side effects, such as sending a review request. An action does something rather than returning advice, so it carries consent rules a coach call does not.
get_schemafreeFree. The published request or response JSON Schema for one mode or one action. Use it to build a request you know will validate before you pay for it.
sandbox_callfreeFree, and no wallet needed. Returns a schema-valid sample response for a mode: same envelope, same field names, same deliverable shape as a paid call. It is a fixed sample for the mode, not an answer to your input — that is what makes it free. Build your integration against this first.
call_coachpaidPaid, from $0.18 per call, settled in USDC on Base over x402. Returns a growth diagnosis, the arithmetic behind it, concrete actions, and a typed deliverable. Without payment this returns the payment requirements as a structured error you can settle and retry. Try sandbox_call first if you only need to see the shape.
call_actionpaidPaid. HAS A REAL-WORLD SIDE EFFECT: it puts a message in front of an actual person. Requires a consent block stating how and when that person agreed to be contacted. There is no sandbox for this — a simulated send cannot be told apart from a real one. Retries are safe with the same idempotency key; a new key means a genuine second send.
get_receiptfreeFree. Returns a call you already paid for: amount, mode, usage, and the deliverable again. Only the wallet that paid can read it, and only while the receipt has not expired.

The path that costs nothing

  1. list_coaches — who exists, what they sell, what it costs.
  2. sandbox_call — a schema-valid sample of exactly what a paid call returns. Build your whole integration against this.
  3. Fund a wallet with USDC on Base, then call_coach for a real answer, from $0.18 a call.

How paying works over MCP

MCP has no status codes, so the 402 you would get over HTTP arrives as a tool error whose structuredContent is the payment requirements: the amount, the asset, the network and the address. A client that implements the x402 MCP transport reads that, signs, and retries with the payment in _meta["x402/payment"]. The settlement comes back the same way.

Be aware that many MCP clients do not pay automatically yet. In one that does not, call_coach still returns the requirements as a readable error — you can settle it yourself against the HTTP endpoint with @x402/fetch, as shown on the API reference. The free tools work everywhere regardless.

Actions do something real

call_action is not another way to get advice. It puts a message in front of an actual person, so it requires a consent block, it has no sandbox, and its idempotency fails closed rather than risk sending twice. Read the action contract before you wire it to anything autonomous.

For machines