gardenpatch

Paid per call over x402: growth coaches, small utilities and real-world actions. USDC on Base.

Should I use this

Quality & Safety

A
Description quality
98%
Schema completeness
77%
Naming quality
98%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,533Tokens (tool definitions)
~1.2 KBTypical response size
Moderate attention impact (1.20% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

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

Remote endpoints

https://gardenpatch.xyz/mcpstreamable-http

What it can do

Tool inventory

Tools (9)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢list_coaches

Free. 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.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢list_actions

Free. 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.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢list_tools

Free. The catalog of 6 small paid utilities (QR codes, time zone conversion, Markdown to HTML, calendar .ics files, website growth signals, image resize) with each one's price, request schema and a worked example. One endpoint, one job, one payment.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_schema(kind, id, direction)

Free. 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.

Input Schema

{
  "type": "object",
  "properties": {
    "kind": {
      "type": "string",
      "enum": [
        "mode",
        "action",
        "tool"
      ],
      "description": "Which catalog the id belongs to."
    },
    "id": {
      "type": "string",
      "description": "A mode id, an action slug, or a tool slug."
    },
    "direction": {
      "default": "request",
      "description": "Which side of the contract to return.",
      "type": "string",
      "enum": [
        "request",
        "response"
      ]
    }
  },
  "required": [
    "kind",
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
⚪sandbox_call(agent, mode)

Free, 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.

Input Schema

{
  "type": "object",
  "properties": {
    "agent": {
      "type": "string",
      "enum": [
        "mary",
        "reed",
        "iris",
        "oak",
        "violet",
        "fern",
        "willow"
      ],
      "description": "Which coach."
    },
    "mode": {
      "type": "string",
      "enum": [
        "diagnose_growth",
        "design_offer",
        "rewrite_pricing",
        "funnel_review",
        "write_outbound_sequence",
        "audit_function",
        "handle_objections",
        "position_against_alternatives",
        "plan_capacity",
        "draft_sop",
        "rescue_churn",
        "plan_onboarding",
        "decide_stack",
        "map_automation",
        "scope_role",
        "map_accountability"
      ],
      "description": "Which job to sample."
    }
  },
  "required": [
    "agent",
    "mode"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
⚪call_coach(agent, mode, messages, context, idempotency_key)

Paid, 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.

Input Schema

{
  "type": "object",
  "properties": {
    "agent": {
      "type": "string",
      "enum": [
        "mary",
        "reed",
        "iris",
        "oak",
        "violet",
        "fern",
        "willow"
      ],
      "description": "Which coach to call."
    },
    "mode": {
      "type": "string",
      "enum": [
        "diagnose_growth",
        "design_offer",
        "rewrite_pricing",
        "funnel_review",
        "write_outbound_sequence",
        "audit_function",
        "handle_objections",
        "position_against_alternatives",
        "plan_capacity",
        "draft_sop",
        "rescue_churn",
        "plan_onboarding",
        "decide_stack",
        "map_automation",
        "scope_role",
        "map_accountability"
      ],
      "description": "The job to buy. Sending a mode a coach does not sell is a 400, not a fallback."
    },
    "messages": {
      "minItems": 1,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "role": {
            "type": "string",
            "enum": [
              "user",
              "assistant"
            ]
          },
          "content": {
            "type": "string",
            "minLength": 1
          }
        },
        "required": [
          "role",
          "content"
        ]
      },
      "description": "The conversation so far. At least one entry."
    },
    "context": {
      "description": "Company, metrics, offer and audience. Numbers here buy arithmetic instead of adjectives.",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "idempotency_key": {
      "description": "Reuse on a retry of the same job to avoid paying twice.",
      "type": "string"
    }
  },
  "required": [
    "agent",
    "mode",
    "messages"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡call_action(slug, body, idempotency_key)

Paid. 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.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "enum": [
        "review-request"
      ],
      "description": "Which action. Use the published slug."
    },
    "body": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {},
      "description": "The action request, including its consent block. Call get_schema first."
    },
    "idempotency_key": {
      "description": "Reuse to retry safely; a new key means a genuine second send.",
      "type": "string"
    }
  },
  "required": [
    "slug",
    "body"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢call_tool(slug, body)

Paid, from $0.01 per call, settled in USDC on Base over x402. Runs one utility and returns its result. Tools contact no one and store nothing; website signals and image resize read only the one public URL you name. A request refused for its input is never charged.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "enum": [
        "qr-code",
        "timezone-convert",
        "markdown-to-html",
        "calendar-ics",
        "site-signals",
        "image-resize"
      ],
      "description": "Which tool. Use the published slug."
    },
    "body": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {},
      "description": "The tool's request. Call list_tools for its schema and an example."
    }
  },
  "required": [
    "slug",
    "body"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_receipt(receipt_id, payer_address)

Free. 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.

Input Schema

{
  "type": "object",
  "properties": {
    "receipt_id": {
      "type": "string",
      "description": "The rcpt_… id from a paid 200."
    },
    "payer_address": {
      "description": "The wallet that paid, if you are not presenting a payment proof.",
      "type": "string"
    }
  },
  "required": [
    "receipt_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded9 tools