You
~60 seconds
-
1
Sign up
Email + password. No card.
-
2
Create project
Name it stripe-relay.
-
3
Mint a key
Paste it into Claude.
Then you close the tab.
Agent mode
A human signs up, names a project, and mints one key. Claude — or any MCP client — runs the rest: endpoints, fan-out targets, monitoring, incident triage. Two real walkthroughs.
Every action you would have clicked in a dashboard is a tool the agent already holds — 40 of them, over MCP and REST, identical surface either way. The four things only a human can do (sign up, name the project, mint the first key, approve the very first charge in hosted checkout) take under a minute. The rest is hands-off.
Day one — greenfield setup
Stripe webhooks landing in four places — Slack alerts, internal billing DB, an analytics warehouse, and a customer-email queue — without a single line of glue.
You
~60 seconds
Sign up
Email + password. No card.
Create project
Name it stripe-relay.
Mint a key
Paste it into Claude.
Then you close the tab.
Your agent
~3 minutes, hands-off
get_project
Confirms the token's project — name, plan, edit access.
list_lines
Empty project. Room to build.
create_line
Cuts a v1 line for the Stripe surface.
default_endpoint_template
Pulls the canonical starter JSON — schema, validators, target shape.
update_endpoint
Reshapes the body for Stripe's event payload — type, data.object.id, livemode.
update_endpoint
Adds the Slack target — channel webhook URL, condition type == "charge.failed".
update_endpoint
Adds the internal billing-DB target — Bearer auth from env, retry policy stays default.
update_endpoint
Adds the analytics warehouse — HMAC signature header, longer retry window for batch ingest.
update_endpoint
Adds the customer-email queue — filter to customer.subscription.deleted only.
dry_run_endpoint
Validates the whole document against a synthetic Stripe payload. No DB write, no billed call. Passes.
create_endpoint
Endpoint live at stripe-relay.echorelay.cloud/v1/stripe.
create_api_key
Mints the inbound key Stripe will present. Plaintext returned once; the agent stows it in the project's encrypted Stripe-webhook-secret field.
get_config
Confirms the live Framework config matches the doc just written. Single source of truth.
list_requests
After the first real Stripe event hits — 1 inbound, 4 fan-out attempts, 4 × 200. Clean.
get_metrics
Hour-window p50 latency: 87 ms inbound, < 120 ms per target. Posts summary back.
Then it pings you on Slack: "stripe-relay is live. First event landed at 11:47."
Day N — live ops
Per-target metrics + a full request log + a failed-deliveries (DLQ) retry surface — the agent doesn't need you to investigate. You just need to be reachable.
You
A single sentence
Ask
"Anything broken?"
Then you go back to sleep.
Your agent
~90 seconds, hands-off
get_metrics
Project-wide, last hour. Error rate climbed from 0.4% to 11.2% at 02:51.
list_requests
Filter status=502, since=02:51. 86 rows. Same path, four targets per row.
get_request
Pulls one for the trace — three targets 200, one 502 with connection refused. The agent has its suspect.
get_metrics
Re-runs with targetId on the suspect. 100% error since 02:51. Confirmed degraded.
list_requests
Filter targetOutcome=dlq. 23 entries piled up. Nothing's lost — retries already exhausted but the payloads are intact.
list_dlq
23 rows, all on the same target, all connection refused. The agent stages a retry plan.
get_metrics
Checks the suspect once more — error rate dropped back to 0.1% at 03:04. The downstream came back.
retry_dlq_entry
Re-enqueues 21 of the 23. Each lands a 200 within seconds.
discard_dlq_entry
2 entries are duplicates of events your on-call already handled out-of-band — discarded with a note in the audit log.
list_audit_events
Confirms its own work is on the record — actor, action, entity ids, timestamps.
post to Slack
Posts the timeline + a one-paragraph postmortem to the on-call channel. Done.
In the morning you read: "analytics.warehouse.internal was down 02:51–03:04. 21 events recovered, 2 deduped. No action needed."
Deliberate. Identity and consent stay human.
1
Email + password. Once. The agent has no identity to bootstrap from.
2
One field. Locks the slug your callers will use.
3
Paste it into your MCP client. Subsequent keys the agent can mint, rotate, or revoke itself.
4
Hosted checkout, one time per account. Subsequent buys the agent charges your saved card directly.
Try EchoRelay against real traffic. Promote to a paid plan when you outgrow it — your agent can handle that too.