ephemeral-cloud-mcp
v0.2.0
Published
MCP server for Ephemeral Cloud: temporary webhooks, URL watches and delayed callbacks for AI agents, paid per use with x402 (USDC on Base). No accounts, no API keys.
Maintainers
Readme
ephemeral-cloud-mcp
MCP server for Ephemeral Cloud: disposable infrastructure for AI agents, paid per use with x402 (USDC on Base). No accounts, no API keys, no subscriptions.
It gives any MCP client (Claude Code, Claude Desktop, Cursor, …) three capabilities most agents lack:
| Tool | What it does | Price |
|---|---|---|
| create_watch | We poll a public URL until a mechanical condition holds (text appears / disappears, JSON path equals, content or status changes) and hold the result for you. Outsource the waiting instead of burning LLM wake-ups. | $0.25 up to 24h · $1.00 up to 7 days |
| create_webhook | A temporary inbound webhook URL you can hand to any third party. Incoming requests are stored until you collect them. | $0.01 (≤1h) · $0.05 (≤24h) · first one per IP free |
| create_callback | A delayed wake-up: after delay_seconds your payload lands in a mailbox (and is POSTed to a callback_url that proves ownership). | $0.01 |
Plus get_events (collect results), delete_resource (end early) and service_info
(the live machine-readable spec). Every resource auto-expires.
Install
Claude Code:
claude mcp add ephemeral-cloud -- npx -y ephemeral-cloud-mcpClaude Desktop / Cursor / any MCP client (mcpServers config):
{
"mcpServers": {
"ephemeral-cloud": {
"command": "npx",
"args": ["-y", "ephemeral-cloud-mcp"]
}
}
}Without a wallet, the server works on the free tier and returns the exact 402 price quote for anything paid, so the agent always knows what something costs.
Let the agent pay
Give the server a wallet that holds a little USDC on Base (mainnet). Its balance is the spending cap; use a dedicated wallet with a few dollars in it, never your main one.
claude mcp add ephemeral-cloud -e WALLET_KEY_FILE=$HOME/.config/ephemeral-cloud/agent-wallet.key -- npx -y ephemeral-cloud-mcp| Variable | Meaning |
|---|---|
| WALLET_KEY_FILE | Path to a file containing the wallet's private key (0x…). Preferred: keeps the key out of config files. |
| WALLET_PRIVATE_KEY | The key itself, if you'd rather pass it directly. |
| EPHEMERAL_CLOUD_URL | Point at a different deployment (defaults to the hosted service). |
Payments use the x402 v2 protocol: the service answers 402 Payment Required with an
exact USDC quote, the server signs a transfer authorization, and the Coinbase CDP
facilitator settles it on Base. Gas is sponsored; you only need USDC.
Example
Watch https://example.com/product until the text "In stock" appears, checking every 5 minutes for up to a day, then tell me.
The agent calls create_watch once ($0.25), and later get_events with the returned
read_token to collect the matched result. Compare with polling every 5 minutes from
the agent itself: 288 wake-ups.
Safety
Delivery is pull-first. Push (callback_url) only goes to URLs that echo a challenge
nonce, so the service can't be used to hit arbitrary endpoints. Watches respect
robots.txt, block private/metadata IP ranges, cap redirects and response sizes, and run
no code. Payloads are small and TTLs are short by design.
Machine-readable spec
GET https://kat3jr5vny647y4sobq6ot2mvq0ewqjt.lambda-url.us-east-1.on.aws/.well-known/x402
License
MIT
What's new in 0.2.0
create_watch gained three arguments:
email- a person's address to notify when the watch fires. Fixed-template email with a one-click block link; no confirmation step.condition_type: "json_any"withjson_where- fires when any item in the JSON list atjson_pathpasses every field test, e.g. a Shopifyvariantslist whereavailableistrue,titlecontains"256GB"andpriceis under105000.mode: "repeat"- keep watching after a match; fires again once the condition clears and holds again. Combined withexpires_in_secondsup to 30 days ($3.00) this is a restock alert an agent can set up in one call.
