{
 "description":"Tool definitions for an AI function-calling adapter. Your server must authenticate, call the FormStudio JavaScript client, and return results. Credentials must not be passed to the model. These are not a hosted MCP endpoint.",
 "tools":[
  {"type":"function","function":{"name":"formstudio_read_report","description":"Read report metadata and its current editable template using FormStudioClient.current(id).","parameters":{"type":"object","properties":{"id":{"type":"string","format":"uuid"}},"required":["id"],"additionalProperties":false}}},
  {"type":"function","function":{"name":"formstudio_validate_template","description":"Validate generated template structure before creating a report. Does not validate SQL execution or formula semantics.","parameters":{"type":"object","properties":{"template":{"type":"object"}},"required":["template"],"additionalProperties":false}}},
  {"type":"function","function":{"name":"formstudio_create_report","description":"Create an editable report. Call FormStudioClient.create; preserve mutation on retries.","parameters":{"type":"object","properties":{"appId":{"type":"string"},"template":{"type":"object"},"mutation":{"type":"string","format":"uuid"}},"required":["appId","template","mutation"],"additionalProperties":false}}},
  {"type":"function","function":{"name":"formstudio_edit_report","description":"Add, update, or remove controls; rename report or update settings. Call FormStudioClient.patch. Read the report first for baseVersion. Preserve mutation on retries.","parameters":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"baseVersion":{"type":"integer","minimum":1},"mutation":{"type":"string","format":"uuid"},"edits":{"type":"array","minItems":1,"maxItems":100,"items":{"type":"object"}}},"required":["id","baseVersion","mutation","edits"],"additionalProperties":false}}}
 ]
}
