Public API and MCP
The catalogue, the .tron schema, the writing guide and a validator, free and without an account: for anyone building a tron from outside Vibetron, from a script or from a chatbot.
The flow
Search the catalogue and take the ids it returns, write the .tron against the schema and the guide, validate it, and hand it to the owner, who imports it and fills in the keys. Nothing here needs a login, and nothing here writes: validation calls no model and creates nothing. Base address: https://api.vibetron.ai. For an agent, the same in one file: https://vibetron.ai/for-agents.md.
The catalogue
/public/v1/modelsModels a tron agent can use. id is the exact model ref for the .tron (provider/model). Filters: provider, kind, capability (reasoning, tool_call, image_input...)./public/v1/pluginsPublic plugins. ref is the tool name for agents[].plugins; version and sha256 pin a published version. Filters: category, provider, kind./public/v1/skillsPublic skills. ref is the name for agents[].skills. Filters: category, provider./public/v1/mcp-serversMCP servers Vibetron can connect, curated and from the official registry. ref is the name the server gets once installed. Filters: category, provider, kind (curated, registry)./public/v1/<collection>/<id>The full card: parameters, required keys, capabilities, published versions, price where public, and a tron_usage snippet to paste.Search and pages
q searches name, description and tags: every word must match, as a prefix, ignoring case. limit is 20 by default and 50 at most. A list answers { items, next_cursor, total }: pass next_cursor as cursor, with the same q and filters, for the next page. An unknown parameter is a 400, never ignored.
curl "https://api.vibetron.ai/public/v1/models?q=claude&capability=tool_call&limit=5"
curl "https://api.vibetron.ai/public/v1/plugins?q=search"Writing the file
/public/v1/tron-schemaThe JSON Schema of vibetron.tron/2. A field the schema does not declare is an error at import, too./public/v1/image-redactor-schemaThe contract vibetron.image-redactor/1 for an image proxy of the privacy proxy: JSON Schema of /redact and /probe, and its text (see Privacy proxy)./public/v1/guideThe guide to writing a good tron, in Markdown: fields, secrets, souls, design choices, a checklist./public/v1/examplesValid example documents; /public/v1/examples/<name> returns one./public/v1/providersThe model providers the platform reaches, with jurisdiction./public/v1/plansThe public plans.Validating
/public/v1/validateBody: the .tron (at most 256 KB). Answers { ok, issues, report }: what resolved, what did not and why, the secret slots the owner must fill (needs), and what only the owner’s account can check (not_checked).curl -X POST https://api.vibetron.ai/public/v1/validate \
-H "Content-Type: application/json" \
--data @my-tron.tron.jsonThe public MCP server
The same catalogue as tools, over streamable HTTP, stateless and without authentication: search_models, get_model, search_plugins, get_plugin, search_skills, get_skill, search_mcp_servers, get_mcp_server, get_tron_schema, get_guide, list_examples, get_example, validate_tron. Add it to Claude (Settings → Connectors → Add custom connector), ChatGPT (a custom connector in developer mode) or Cursor with this address. Inside Vibetron it is the curated server “Vibetron catalog” of the MCP registry: attach it to an agent from the Garage like any other.
{
"mcpServers": {
"vibetron-catalog": { "url": "https://api.vibetron.ai/public/mcp" }
}
}Limits and caching
Each address has 60 requests a minute across all of /public; a validation counts 5, and every MCP message counts 1. Past the limit the answer is 429 with Retry-After. GET answers carry an ETag and a public Cache-Control: send If-None-Match and a 304 costs nothing. CORS is open, without credentials, so a page or a chatbot can call it directly. The catalogue is a snapshot refreshed every few minutes and shortly after it changes.