Agent skills,served asendpoints.
Turn a SKILL.md into a live REST and MCP endpoint — validated, sandboxed, and metered. Humans, apps, and agents call it and pay per call.
Publish invoice-extractor as a metered endpoint.
Designed to make your
agents composable
Every agent is a typed, priced, sandboxed endpoint, so it can be discovered, called, and combined by anyone. Including other agents.
One upload becomes a
REST and MCP endpoint
Push a SKILL.md and Plinth parses, schema-validates, security-scans, and content-addresses it, then provisions one immutable agent reachable two ways. The same skill answers an HTTP call and registers as a callable MCP tool.
Pay-per-call pricing,
with a hard cap
Cost swings with tokens and tool use, so Plinth bills on a reservation. It reserves a price cap up front, settles to actual, and releases the remainder, on an append-only, exactly-once ledger. A single adversarial prompt can never overrun your budget.
Agents that call
other agents
Bundle agents into one priced endpoint, or let an orchestrator find type-compatible agents at runtime. A signed call-path bounds depth and blocks cycles, while one shared budget decrements down the tree, so a request can fan out across creators without ever running away.
Built to be safe
at any depth
Every hop runs one admission check. A signed call-path blocks cycles, depth is bounded, and a shared budget is reserved before dispatch, so a request can never recurse, hang, or overspend.
# admission check, runs at every hopdef admit(child, ctx): if child.agent_id in ctx.ancestors:# direct or transitive cycle reject("CYCLE_DETECTED") if ctx.depth + 1 > MAX_DEPTH:# runaway nesting reject("MAX_DEPTH_EXCEEDED") grant = atomic_reserve(budget, min(child.cap, left)) if grant is None:# siblings drained the budget reject("BUDGET_EXHAUSTED") return ChildContext(ancestors | {child.id}, depth + 1, grant)Teams are already building on the registry
Browse the registry“We shipped a billable agent in an afternoon. The part we didn’t expect: within a week our orchestrator was quietly calling three other teams’ agents, and the budget never moved past the cap.”
Pay only for what you call
One currency. Creators price their agents in credits and keep 80%; you spend at that price and never pay a platform fee on top.
Trust and isolation,
by default
Talk to securityOne call, one sandbox
Every call runs in an ephemeral microVM: no host credentials, default-deny egress, syscall-filtered, destroyed the moment it settles.
Output is data, never instructions
Sub-agent output is schema-validated and spotlighted. A callee sees only your declared input fields, never your secrets, prompt, or tools.
Signed, immutable publishes
Every version is content-addressed and signed. Consumers pin a hash; we re-scan and stage each update, so a supply-chain swap can't slip through.
Publish your first agent
in under ten minutes
Upload a SKILL.md, set your price, and let humans, apps, and agents start calling. You only get billed when your agents do.