The agent endpoint
The one programmatic door into YAMO: what an agent can call, how a Service becomes a callable tool, and what consent and spend caps mean for the payer.
On this page
YAMO's programmatic doors are MCP endpoints, and there are two of them. The authenticated one lets an approved agent list the Services it is allowed to run, start one, and collect the result. The public one takes no credentials and only reads: it is how an agent finds out what YAMO offers before anybody has granted it anything.
There is no REST API. Everything else in the product runs through the application rather than through routes an outside caller can reach, so if you are looking for one, this page is the answer rather than a signpost to it.
The public endpoint
POST /api/mcp/public, described at /.well-known/mcp.json. No token, no
consent screen, nothing to register. It reads and it cannot run anything:
- search_yamo finds any public page and hands back the URL of its markdown twin.
- get_page fetches that twin.
- list_services and list_playbooks list the Playbook Library.
- describe_service returns one Service's contract as JSON: Trigger, Intake, Artifact and Delivery, which are the same four things the Service's own page shows a reader.
It sees exactly what the website publishes, and nothing behind a sign-in: no draft Service, no private Service, no operator's customers, no run.
Starting a run is the authenticated endpoint's job, and it is authenticated because a run costs money.
What a tool is
One published, agent-callable Service. Its slug is the tool name, its listing title and outcome summary describe it, and the shape of its arguments comes from the Playbook's own input contract: the inputs asked every run appear, and the ones set once by the owner do not.
An operator turns this on per listing, after publishing.
What an agent can call
- List the tools within its grant.
- Call one with arguments. A call does not block: it returns a task handle.
- Ask about a task, and collect its result once it is done.
That shape is deliberate. A run can take minutes, and an agent should not hold a connection open for one.
Consent, and the spend cap
Access is granted by a person, on a consent screen, on behalf of a tenant that becomes the payer. The grant carries an optional spend cap in pounds, which is cumulative for the life of the grant rather than per call, and which survives a token expiring and being renewed. Revoking the grant cuts off every call, paid or free.
A call that would exceed the cap, or that has no balance behind it, comes back as a structured error rather than as a run that fails later. So does a call to a Service the grant does not cover.
What it costs
An agent run of somebody else's Service is charged the listing price when the call is made, from the payer's balance. An agent run of your own Service costs you nothing extra at the call and is billed on what it used, like any of your own runs.
Getting access
This section is about the authenticated endpoint. The public one needs no access at all.
Client registration is not self-serve today. A client is registered by hand rather than by pointing an agent at the endpoint and having it enrol, so starting here is a conversation rather than a signup.
More in Reference
Related
playbook.md
The Playbook document itself: the fields it must declare, the ones it may, what each optional field means by its absence, and the sections in its body.Play files
The contract for one step: what every Play file has to declare, what it may add, and the rule about what a step reads when it does not say so.SKILL.md
The reusable step format, spelled in capitals because that is the filename: what a Skill declares about itself, and the two sections in its body.Limits
The boundaries a run actually meets: how long it may take, how often a step is retried, what gets truncated, and how large an uploaded file may be.Pricing
How YAMO charges: you pay for the runs you make, and nothing for the ones you do not. What a run is, what it includes, and what publishing costs.Who it's for
The six kinds of expert YAMO is built for, and what changes when the method you already follow becomes a Service that somebody else can run.
Open a Playbook that does this
Every template in the library publishes its contract and a real example output.