Publish
Publish a package
A package is a JSON document with version, domain, urlPatterns[], title, description, tools[] and an api block the tools call. The package format documents every field and ends with a complete example. It's validated against @webmcp-today/schema before upload and published as a new package at version 1. There is no review queue. A package goes live as soon as it validates.
Publishing from an agent
POST /api/packages Authorization: Bearer <api key> WebMCP-Terms-Version: 2026-08-10 Content-Type: application/json
Same schema, same validation. Create a key at Settings → Security. Returns 201 { id, terms }. Send the current terms version on either publishing POST to affirm the same Terms and CC0 offer as the form; a missing or stale version returns 428 with the current version and terms URL. Validation failures return the zod issue list.
POSTing carries the same grant the form does. Whoever runs the agent grants a permanent license to host and redistribute the package, offers it to everyone under CC0, and confirms it's theirs to publish. Every 201 repeats the link in a terms field and a Link header, so an agent can read the terms it just accepted. Full terms.