{"name":"runs-on.dev","version":"1.0.0","protocol":"mcp","protocolVersion":"2025-03-26","transport":"streamable-http (POST JSON-RPC 2.0)","capabilities":{"tools":{}},"tools":[{"name":"check_name","description":"Check whether a runs-on.dev subdomain name is available to claim. Returns { available: true } or why it is not (taken, reserved, or an invalid_* grammar code). Free, no auth."},{"name":"get_record","description":"Fetch a claimed name's public registry record (owner, claimedAt, DNS records, subdomains, profile overrides) as JSON. Returns an isError result for names that are not claimed. Free, no auth."},{"name":"whoami","description":"Which GitHub login the bearer token belongs to, its scope (sites or manage), and the runs-on.dev names it owns. Call this first to orient. Needs a token."},{"name":"update_records","description":"Change the DNS and profile card of a name you own. Send only the fields to replace. records (the apex): { CNAME: \"host\" } alone, or { URL: \"https://...\" } alone (a redirect), or any of { A: [\"ip\"], TXT: [\"string\"], MX: [{ priority, value: \"host\" }] }; {} puts the name back on its profile card. subdomains: { \"<label>\": { CNAME | A | TXT | MX } }, null removes them all. profile: { name?, bio?, links?: [{ label, url }] }, null removes it. Same validation as the /manage editor and pull-request CI; DNS syncs within minutes. Read the current record with get_record first. Needs a manage-scoped token."},{"name":"deploy_site","description":"Publish a static site to https://<name>.runs-on.dev/ from a list of files. index.html is required at the root. Paths are plain relative (no leading /, no ..). Text files go as utf8, binaries as base64. At most 500 files; keep the request under ~4 MB (use the zip upload at POST /api/sites/deploy for bigger sites). The last 5 deployments are kept for rollback. Needs a token."},{"name":"list_deployments","description":"List the hosted site's deployments (newest last) and which one is live. Needs a token."},{"name":"rollback_site","description":"Instantly re-point the live site at an earlier deployment still in history (ids from list_deployments). No re-upload. Needs a token."}],"spec":"https://runs-on.dev/openapi.json"}