Pay-per-call tools for autonomous agents, settled in USDC on Base via x402.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
x402-powered micro-SaaS utilities for autonomous AI agents. Pay-per-call with USDC micropayments on Base β no API keys, no accounts, no subscriptions.
Live at https://ai.oliverkiss.com
| Route | Method | Price | Description |
|---|---|---|---|
/once-key | POST | $0.001 | Claim an action exactly once, and replay its recorded result |
/once-key/complete | POST | Free | Record the outcome of a claimed action |
/once-key/release | POST | Free | Surrender a claim whose work failed |
/scrape | POST | $0.005 | Web scraping and text extraction |
/pdf-parse | POST | $0.01 | PDF text extraction from a URL |
/compress | POST | $0.005 | Token compression / context reduction for LLMs |
/meetings/import | POST | $0.004 | Import a meeting transcript, private or searchable |
/meetings/search | POST | $0.006 | Full-text search across your meetings |
/meetings/get | POST | $0.002 | Read one meeting in full |
/meetings/list | POST | $0.001 | List meetings (metadata only) |
/meetings/delete | POST | $0.001 | Delete a meeting and its index entry |
/vault/store | POST | $0.02 | Store a client-encrypted item |
/vault/retrieve | POST | $0.02 | Retrieve a client-encrypted item |
/vault/delete | POST | $0.005 | Delete an item |
/vault/exists | POST | $0.001 | Check whether an item exists |
/vault/list | POST | $0.001 | List the keys in a namespace (metadata only) |
/vault/rotate-token | POST | Free | Replace a namespace token that may have leaked |
/credits/buy | POST | $5.00 | Buy $6.00 of prepaid credit (20% bonus) |
/credits/buy-25 | POST | $25.00 | Buy $32.50 of prepaid credit (30% bonus) |
/credits/balance | POST | Free | Check a credit balance |
/revenue | GET | Free | On-chain USDC received, read from Base |
/mcp | POST | Free to list | Remote MCP server; each tool costs its route's price |
/ | GET | Free | Service discovery (JSON) or landing page (HTML) |
/health | GET | Free | Health check |
/status | GET | Free | Uptime, error rate and latency, derived from recorded behaviour |
/stats | GET | Free | Demand funnel: challenged, paid, free, by route |
/llms.txt | GET | Free | Prose description for a model given only a URL |
/openapi.json | GET | Free | OpenAPI 3.1 description |
GET / content-negotiates: send Accept: application/json for the machine-readable
endpoint catalogue, anything else gets the HTML landing page.
HTTP 402 Payment Required with the price, network and receiving addressX-PAYMENT headerTry it β this returns a real 402 challenge, not an error:
Every paid endpoint is also exposed as an MCP tool over Streamable HTTP at
https://ai.oliverkiss.com/mcp, implementing revision 2026-07-28 (stateless:
no initialize handshake, no session header) with a fallback for clients still
sending the 2025-06-18 handshake.
tools/list is free so clients can discover the catalogue. tools/call
re-enters the corresponding paid route in-process, so it passes the same x402
gate, body cap and validation as a direct HTTP call. Without a valid
X-PAYMENT header the tool returns isError: true and a machine-readable
payment demand (price, payTo, asset, network) rather than performing work.
Per-call x402 caps revenue at whatever a buyer will tolerate signing: $1,000 at $0.005 a call is 200,000 signatures. Prepaid credits sell the same work once, in an amount worth the transaction, and let callers whose wallets cannot sign per request use the service at all.
Both paths run side by side and neither is privileged:
Omitting X-Credit-Token produces exactly the 402 challenge it always did, so
the Bazaar listing and every existing integration are unaffected.
Credits are integer micro-dollars, never floats: $0.001 has no exact binary representation, and a ledger that drifts is worse than no ledger. Each account is its own Durable Object addressed by the hash of its token, so the balance check and its debit are atomic and one account cannot queue behind another. Calls are debited before the work and refunded if it 5xxs, because an outage must not bill a customer for nothing.
The token is shown once and is not recoverable β only its hash is stored.
An endpoint nobody can find earns nothing, so the service is registered wherever agents actually look. Every catalog below was chosen because it verifies ownership by domain or wallet rather than by a financial account β the Coinbase CDP Bazaar is skipped for exactly that reason.
| Catalog | Status | How |
|---|---|---|
| PayAI Bazaar | Not listed on mainnet β mechanism proven on testnet | Listing requires a payment that settles, once per route; reaching /verify does nothing. Confirmed on Base Sepolia: all 9 routes appeared in /discovery/resources within seconds of paying. X402_TEST_PRIVATE_KEY=0x... node scripts/trigger-indexing.mjs costs $0.068 for the whole catalogue |
| x402-list.com | Submitted, pending review | POST /api/v1/submit; free because the service is on a custom domain |
| Official MCP Registry | Published β com.oliverkiss/agentic-endpoints, status active | ./scripts/publish-registry.sh. Ownership proven by an apex TXT record and an ed25519-signed timestamp, so no financial account is involved |
| npm | Published β agentic-endpoints | cd sdk && npm publish. Counts as discovery, not just convenience: npm is crawled by every AI coding assistant, so the client is findable by the same models that would use the service |
| Smithery | Published β kiss-olie/agentic-endpoints, quality 98/100 | npx -y @smithery/cli@latest mcp publish "https://ai.oliverkiss.com/mcp" -n kiss-olie/agentic-endpoints β no auth needed, and it updates in place. The scan finds all 16 tools. Note the namespace is kiss-olie, not the GitHub handle. Their registry API and the markdown view served to non-browser clients are both badly stale (still report 12 tools and the old favicon); only the browser-rendered page is current, so verify there |
| Glama | Not listed; claim file pre-placed | glama.json at the repo root (maintainers: ["olie-kiss"], schema glama.ai/mcp/schemas/server.json) claims the listing automatically if their GitHub crawler indexes us. The separate /.well-known/glama.json is a different schema (connector.json, an opaque glama_claim_ token) for remote connectors and needs a listing to exist first |
Aggregators such as PulseMCP ingest from the official registry, so publishing there covers several directories at once. The repository is public, so directories that crawl source repos can now see it too.
Machine-readable descriptions are generated from the same pricing table that
gates payment, so they cannot drift from what is actually charged: /llms.txt
for a model handed a bare URL, /openapi.json for tooling, plus /robots.txt
and /sitemap.xml. Tests assert the prices agree across all of them.
The service could demand payment for months with no way to tell whether a
payment ever arrived β including the failure mode where payments verify but
never settle. A cron trigger sweeps Base every 5 minutes for USDC Transfer
logs into the receiving address and folds them into a running ledger in KV.
Revenue is read from the chain, not from our own logs or the facilitator's
word, so it cannot be inflated by a bug on either side. GET /revenue publishes
the ledger for free β it costs nothing and gives a prospective caller evidence
the service actually transacts.
Set ALERT_WEBHOOK_URL to a Discord webhook to be notified when money lands:
The first scan starts the watermark at the current chain head rather than genesis; scanning millions of blocks through a public RPC node would fail repeatedly and never establish a watermark at all. The watermark advances only on a successful scan, so a transient RPC failure is retried on the next tick with nothing missed.
Revenue monitoring only sees money that arrived. The service takes thousands of requests a day and, so far, no revenue β and reviewing the callers, almost all of it is liveness probes, trust scanners and directory crawlers, which are indistinguishable from a customer in an access log. The gap that leaves is a genuine buyer being refused for a fixable reason and leaving without ever appearing as a distinguishable line.
src/lib/tripwire.ts emits one structured line per notable request:
| Signal | Meaning | Confidence |
|---|---|---|
payment_attempt | Carried a payment authorization | high |
credit_use | An existing customer spending prepaid credit | high |
prospect_402 | An unrecognised caller hit a priced route | low |
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/agentic-endpoints)<a href="https://allmcps.com/mcp/agentic-endpoints"><img src="https://allmcps.com/api/badge/agentic-endpoints?style=directory" alt="Agentic Endpoints on AllMCPs" /></a>