{"serverId":"mcp-registry/ai.ryla/ryla","tools":[{"name":"ryla_account_gallery_list","fixed":{"name":"ryla_account_gallery_list","description":"List the authenticated user's most recent generated images/jobs.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"limit":{"type":"integer","maximum":50,"minimum":1,"description":"Max number of items to return (default 20, max 50)"},"detail":{"enum":["slim","full"],"type":"string","default":"slim","description":"slim (default): status, output URLs and the inputs you set. full: raw job rows incl. internal dispatch fields (very large)."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":159,"tokensAfter":159},{"name":"ryla_generation_status","fixed":{"name":"ryla_generation_status","description":"Check the status of a generation job by its jobId.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["jobId"],"properties":{"jobId":{"type":"string","description":"The jobId returned by a ryla_generate_* tool call"},"detail":{"enum":["slim","full"],"type":"string","default":"slim","description":"slim (default): status, output URLs and the inputs you set. full: the raw job row incl. internal dispatch fields (large; for debugging)."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":156,"tokensAfter":156},{"name":"ryla_list_characters","fixed":{"name":"ryla_list_characters","description":"List the authenticated user's existing characters (AI influencers) so you can pick a characterId for the other generation tools. `loraReady` tells you whether `useLora: true` has a trained LoRA to use. There is no tool to CREATE a character -- that happens in the RYLA app at app.ryla.ai.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":130,"tokensAfter":130},{"name":"ryla_list_templates","fixed":{"name":"ryla_list_templates","description":"Find RYLA templates (ready-made looks: scene, outfit, pose) by name or tag. Returns template ids. Pass an id as `templateId` to ryla_generate_image to generate your character in that template. Unrestricted (NSFW) templates are only listed when `unrestricted` is true.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"page":{"type":"integer","default":1,"minimum":1,"description":"Page, starting at 1"},"limit":{"type":"integer","default":10,"maximum":30,"minimum":1,"description":"Number of templates to return (default 10, max 30)"},"search":{"type":"string","description":"Search text, e.g. \"cafe\", \"boots\", \"selfie bed\""},"unrestricted":{"type":"boolean","default":false,"description":"Include unrestricted fan content templates"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":241,"tokensAfter":241},{"name":"ryla_server_info","fixed":{"name":"ryla_server_info","description":"Get RYLA external MCP server configuration and connection info","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":66,"tokensAfter":66}],"toolsChanged":5,"tokensSaved":0,"todo":[],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}