Built for the model, not just the human.
A coding agent can't open six vendor accounts. Stack0 is one credential covering all of them: a JSON Schema per tool, an MCP server, an OpenAPI 3.1 document, and Markdown from every URL.
Works with the agent you already use
$ npx @stack0/mcp
connecting to api.stack0.dev/mcp
✓ 41 tools available
One key · Build, Cloud, Pylon, Agents, Analytics, APIs
What one credential covers
The same key reaches every product, so an agent can take a brief all the way to a running, operated app.
Build and deploy an app
From a one-sentence brief to a Pylon project on a live URL, in one session.
A Claude Code session: you ask for a climbing-gym booking app, it creates a Pylon project, declares the entities and policies in app.ts, writes the functions and the routes, checks it with zero errors, and deploys it to a live URL.
Operate what it shipped
Read the logs, catch the bad deploy, roll it back.
14:02:11POST /waivers 200 · 41ms
14:02:14POST /waivers 500 · duplicate key
14:02:15alert raised · 3 errors in 60s
14:03:02rollback → #13 7d03be
14:03:06✓ #13 live · errors 0
- BackupsNightly at 02:00 UTC · 7 kept16 GB
- Last restore testPassedAug 28
Send, store, and extract
The APIs as tools, with typed arguments and results.
$ mail.send({ to, subject: "Your July invoice", html })
✓ msg_1lcja · queued · 178 ms
$ cdn.upload({ file: receipt.pdf, folder: "expenses/july" })
✓ https://cdn.stack0.dev/climbday/expenses/july/receipt.pdf
$ extraction.run({ url: competitor.com/pricing, schema: Plans })
✓ { plans: [{ name: "Pro", price: 29 }, { name: "Team", price: 79 }] }
Hand off the routine work
Give a Stack0 Agent a job, a schedule, and its limits. It runs from there.
Chase overdue invoices
- Schedule
- Weekdays at 7:00
- Trigger
- Invoice 14 days overdue
- Tools
- QuickBooksAttioGmail
- Rules
- Send follow-ups. Escalate write-offs.Match my tone from sent mail.Skip accounts on a payment plan.
Next run · Tomorrow 7:00
Read what happened
Query Analytics for the numbers behind a change.
An analytics dashboard: visitors, revenue, and conversion for the last 30 days, with the sources that produced revenue.
Every entry point
The platform is described the way a model reads, at the URL it would guess.
- llms.txt
The whole platform in one plain-text file.
- MCP server
41 tools over Streamable HTTP at api.stack0.dev/mcp.
- OpenAPI 3.1
Every REST endpoint with typed schemas.
- JSON Schema per tool
Arguments and results, so calls are typed.
- CLI
Build, deploy, and query from a shell.
- Markdown at every URL
Send Accept: text/markdown to any page, or append .md.
Built for trust
Approval before anything ships
Deploys, sends, and posts wait for a human when you say so.
Scoped keys
A key carries only the products and environments it needs.
Audit log
Every call recorded with who, what, when, and the result.
Rate limits
Per key and per product, so a loop cannot run away.
Questions
- Does my agent need a special framework?
- No. Anything that can call a tool works: Claude Code, Codex, Cursor, and OpenCode through the MCP server; any model through the OpenAPI document; any language through the SDKs.
- What can it do with one key?
- Create a Pylon project with Build, deploy and operate it on Cloud, send mail, store files, extract data, run workflows, query Analytics, and hand routine work to an Agent. The key's scope decides which of those it can reach.
- How is this kept safe?
- Keys are scoped to products and environments, every call is logged, rate limits apply per key, and deploys, sends, and posts can require a human approval before they go out.
Give your agent the whole stack.
One key, every product, and a description it can read at every URL.