Server definition
- Hash
- sha256:c17af95adf2ca59acd95bd8fcff3e6babb4ead7b772b6231d56e23466b1e2211
- What it is
- What a remote MCP server returned when asked what it offers: 62 tools
The blob, as servednamed by its sha256
{
"instructions": "MCP.AI platform v0.9.358 | Adapters: webdiet v1.6.3. When the user asks about the version (e.g. \"qual a versão\", \"which version\"), call the show_version tool. NEW MCPs/tools/integrations (capabilities not already in this toolkit) come from the official mcp.ai catalog: the `marketplace` tool (action=search) finds and runs them. You are not authenticated yet. Call the authenticate tool first — it will give the user a browser link to log in and copy a token. No other tools will work until authenticated.",
"tools": [
{
"description": "MCP.AI for IDE agents (Cursor, etc.): log in in the browser, copy the access token. Best: add it to this server's config as a header `Authorization: Bearer <token>` for a permanent, non-expiring connection. Or paste it here for a session-only login: call with { token: \"<jwt>\" } after the user pastes, or with no args to get the link.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"token": {
"type": "string"
}
},
"type": "object"
},
"name": "authenticate",
"outputSchema": null
},
{
"description": "Returns connection status and URLs. When all providers are connected, returns authenticated:true and empty pending[]. When credentials are missing, returns connect_url for the toolkit and per-install URLs.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"type": "object"
},
"name": "connect",
"outputSchema": null
},
{
"description": "The official mcp.ai marketplace — the in-platform catalog of every MCP/tool, AND the way to run them. Covers capability requests like \"find an MCP that does X\", \"consulta um CPF\", \"is there a tool for Y\". Core flow: action=search discovers MCPs by intent → describe returns one MCP's full profile (every tool with its id + params, pricing, auth) so you pick the right tool_id → invoke RUNS that tool. KEY: invoke works even when the MCP is NOT installed — it runs the tool pontualmente (one-off), without adding the MCP to the toolkit and without bloating the tool list. If the MCP needs a credential/login, invoke returns a connect link; if it is paid and the wallet is empty, invoke returns a checkout/top-up link (the user opens it, then you retry). Use install only to make an MCP PERMANENT in the active toolkit (its tools then show up natively in future sessions); prefer invoke for a single/occasional use. list_tools lists what is callable right now. subscribe/cancel handle per-MCP billing; report_bug sends feedback; request_mcp asks us to build a NEW MCP when nothing fits. Search/describe flag installed_in_toolkit vs installed_in_workspace. Writes (install/uninstall/subscribe/cancel and the one-off install behind invoke) require workspace owner/admin. It also carries the mcp.ai PROMPT LIBRARY, which is about ready-made prompt TEXT rather than MCPs: search_prompts finds one, get_prompt returns its full text with {{variables}} filled, and publish_prompt saves a prompt and returns a shareable mcp.ai/p/<slug> link that opens without login.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"action": {
"default": "search",
"enum": [
"search",
"describe",
"install",
"uninstall",
"subscribe",
"cancel",
"resume",
"report_bug",
"request_mcp",
"list_tools",
"invoke",
"search_prompts",
"get_prompt",
"publish_prompt"
],
"type": "string"
},
"arguments": {
"default": "{}",
"type": "string"
},
"cancel_comment": {
"default": "",
"type": "string"
},
"cancel_reason": {
"enum": [
"too_expensive",
"missing_features",
"switched_service",
"unused",
"customer_service",
"too_complex",
"low_quality",
"other"
],
"type": "string"
},
"conversation": {
"default": "[]",
"type": "string"
},
"immediate": {
"default": false,
"type": "boolean"
},
"limit": {
"default": 10,
"type": "number"
},
"mcp_id": {
"default": "",
"type": "string"
},
"message": {
"default": "",
"type": "string"
},
"prompt_body": {
"default": "",
"type": "string"
},
"prompt_category": {
"default": "",
"type": "string"
},
"prompt_description": {
"default": "",
"type": "string"
},
"prompt_slug": {
"default": "",
"type": "string"
},
"prompt_targets": {
"default": [],
"items": {
"enum": [
"claude",
"chatgpt",
"cursor",
"lovable"
],
"type": "string"
},
"type": "array"
},
"prompt_title": {
"default": "",
"type": "string"
},
"prompt_tool": {
"default": "",
"type": "string"
},
"prompt_vars": {
"default": "{}",
"type": "string"
},
"query": {
"default": "",
"type": "string"
},
"report_context": {
"default": "",
"type": "string"
},
"request_details": {
"default": "",
"type": "string"
},
"request_name": {
"default": "",
"type": "string"
},
"tier_slug": {
"default": "",
"type": "string"
},
"tool_id": {
"default": "",
"type": "string"
}
},
"type": "object"
},
"name": "marketplace",
"outputSchema": null
},
{
"description": "Report a bug, missing feature, or send feedback. Include the conversation array with recent messages for reproduction.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"context": {
"default": "",
"type": "string"
},
"conversation": {
"default": "[]",
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"message"
],
"type": "object"
},
"name": "report_bug",
"outputSchema": null
},
{
"description": "Show the current MCP platform and adapter versions.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"type": "object"
},
"name": "show_version",
"outputSchema": null
},
{
"description": "Returns the current toolkit state: installed MCPs, their connection status, the accounts connected to each one, and how many catalog tools each exposes.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"type": "object"
},
"name": "toolkit_info",
"outputSchema": null
},
{
"description": "List all anamnesis records for a WebDiet patient WITH the full Q/A content.\nEach item carries:\n - id, titulo, data\n - texto → plain-text Q/A (readable, line-broken — best for AI consumption / RAG)\n - texto_html → original HTML (<b>...</b><br>...) preserved for rich rendering\n - interpretacao / interpretacao_html → nutritionist's notes when present\nWebDiet stores the answers as URL-encoded HTML (<b>question</b><br>answer<br><br>); this tool decodes both representations so the agent can read e.g. food frequency, complaints, goals, allergies for the patient.\nFor pre-consultation questionnaire responses NOT yet linked to a patient, use webdiet_preconsulta action=list_responses.\n\nBulk support: accepts patient_ids for batched execution.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"patient_id": {
"type": "string"
},
"patient_ids": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"patient_id"
],
"type": "object"
},
"name": "webdiet_anamnese",
"outputSchema": null
},
{
"description": "Permanently delete an anamnesis record in WebDiet. Irreversible.\n\nBulk support: accepts patient_ids, anamnese_ids for batched execution.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"anamnese_id": {
"type": "string"
},
"anamnese_ids": {
"items": {
"type": "string"
},
"type": "array"
},
"patient_id": {
"type": "string"
},
"patient_ids": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"patient_id",
"anamnese_id"
],
"type": "object"
},
"name": "webdiet_anamnese_delete",
"outputSchema": null
},
{
"description": "Create / update anamnesis records in WebDiet.\nActions: save (create or update — anamnese_id empty = new), save_interpretation (save AI/nutritionist interpretation), duplicate (copy existing record).\nFor destructive removal use webdiet_anamnese_delete.\n\n[Flattened action: duplicate]\n\nBulk support: accepts patient_ids, anamnese_ids for batched execution.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"anamnese_id": {
"default": "",
"type": "string"
},
"anamnese_ids": {
"items": {
"default": "",
"type": "string"
},
"type": "array"
},
"interpretacao": {
"default": "",
"type": "string"
},
"patient_id": {
"type": "string"
},
"patient_ids": {
"items": {
"type": "string"
},
"type": "array"
},
"texto": {
"default": "",
"type": "string"
},
"titulo": {
"default": "",
"type": "string"
}
},
"required": [
"patient_id"
],
"type": "object"
},
"name": "webdiet_anamnese_write_duplicate",
"outputSchema": null
},
{
"description": "Create / update anamnesis records in WebDiet.\nActions: save (create or update — anamnese_id empty = new), save_interpretation (save AI/nutritionist interpretation), duplicate (copy existing record).\nFor destructive removal use webdiet_anamnese_delete.\n\n[Flattened action: save]\n\nBulk support: accepts patient_ids, anamnese_ids for batched execution.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"anamnese_id": {
"default": "",
"type": "string"
},
"anamnese_ids": {
"items": {
"default": "",
"type": "string"
},
"type": "array"
},
"interpretacao": {
"default": "",
"type": "string"
},
"patient_id": {
"type": "string"
},
"patient_ids": {
"items": {
"type": "string"
},
"type": "array"
},
"texto": {
"default": "",
"type": "string"
},
"titulo": {
"default": "",
"type": "string"
}
},
"required": [
"patient_id"
],
"type": "object"
},
"name": "webdiet_anamnese_write_save",
"outputSchema": null
},
{
"description": "Create / update anamnesis records in WebDiet.\nActions: save (create or update — anamnese_id empty = new), save_interpretation (save AI/nutritionist interpretation), duplicate (copy existing record).\nFor destructive removal use webdiet_anamnese_delete.\n\n[Flattened action: save_interpretation]\n\nBulk support: accepts patient_ids, anamnese_ids for batched execution.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"anamnese_id": {
"default": "",
"type": "string"
},
"anamnese_ids": {
"items": {
"default": "",
"type": "string"
},
"type": "array"
},
"interpretacao": {
"default": "",
"type": "string"
},
"patient_id": {
"type": "string"
},
"patient_ids": {
"items": {
"type": "string"
},
"type": "array"
},
"texto": {
"default": "",
"type": "string"
},
"titulo": {
"default": "",
"type": "string"
}
},
"required": [
"patient_id"
],
"type": "object"
},
"name": "webdiet_anamnese_write_save_interpretation",
"outputSchema": null
},
{
"description": "Read anthropometry (body measurement) records for a WebDiet patient.\nActions: list (all records with id, date, type, direct URL), get (full measurements from a specific record including weight, height, skinfolds, circumferences, bioimpedance, BMI, body fat %, classifications + direct URL).\nEach record includes a \"url\" field with the direct link to the record in WebDiet (e.g. https://pt.webdiet.com.br/painel/v4/antropometria.php?id=...).\nUse this to analyze patient body composition evolution over time. For creating/saving records, use webdiet_create_antropometria + webdiet_save_antropometria.\n\n[Flattened action: get]\n\nBulk support: accepts patient_ids, antropometria_ids for batched execution.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"antropometria_id": {
"type": "string"
},
"antropometria_ids": {
"items": {
"type": "string"
},
"type": "array"
},
"patient_id": {
"type": "string"
},
"patient_ids": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"name": "webdiet_antropometria_get",
"outputSchema": null
},
{
"description": "Read anthropometry (body measurement) records for a WebDiet patient.\nActions: list (all records with id, date, type, direct URL), get (full measurements from a specific record including weight, height, skinfolds, circumferences, bioimpedance, BMI, body fat %, classifications + direct URL).\nEach record includes a \"url\" field with the direct link to the record in WebDiet (e.g. https://pt.webdiet.com.br/painel/v4/antropometria.php?id=...).\nUse this to analyze patient body composition evolution over time. For creating/saving records, use webdiet_create_antropometria + webdiet_save_antropometria.\n\n[Flattened action: list]\n\nBulk support: accepts patient_ids, antropometria_ids for batched execution.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"antropometria_id": {
"type": "string"
},
"antropometria_ids": {
"items": {
"type": "string"
},
"type": "array"
},
"patient_id": {
"type": "string"
},
"patient_ids": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"name": "webdiet_antropometria_list",
"outputSchema": null
},
{
"description": "Permanently delete an energy expenditure calculation. Irreversible.\n\nBulk support: accepts calculo_ids for batched execution.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"calculo_id": {
"type": "string"
},
"calculo_ids": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"calculo_id"
],
"type": "object"
},
"name": "webdiet_calculo_energetico_delete",
"outputSchema": null
},
{
"description": "Read energy expenditure calculations (Cálculo Energético) in WebDiet.\nActions: list (all calculations for a patient), get (load saved data).\nResults: TMB (basal metabolic rate), GET (total energy expenditure) in Kcal/dia and Kcal/kg.\n\n[Flattened action: get]\n\nBulk support: accepts patient_ids, calculo_ids for batched execution.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"calculo_id": {
"default": "",
"type": "string"
},
"calculo_ids": {
"items": {
"default": "",
"type": "string"
},
"type": "array"
},
"patient_id": {
"type": "string"
},
"patient_ids": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"name": "webdiet_calculo_energetico_get",
"outputSchema": null
},
{
"description": "Read energy expenditure calculations (Cálculo Energético) in WebDiet.\nActions: list (all calculations for a patient), get (load saved data).\nResults: TMB (basal metabolic rate), GET (total energy expenditure) in Kcal/dia and Kcal/kg.\n\n[Flattened action: list]\n\nBulk support: accepts patient_ids, calculo_ids for batched execution.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"calculo_id": {
"default": "",
"type": "string"
},
"calculo_ids": {
"items": {
"default": "",
"type": "string"
},
"type": "array"
},
"patient_id": {
"type": "string"
},
"patient_ids": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"name": "webdiet_calculo_energetico_list",
"outputSchema": null
},
{
"description": "Create / update energy expenditure calculations in WebDiet.\nActions: create (new calculation), save (update existing calculation).\nSupports 24+ formulas: Harris-Benedict 1919/1984, FAO/WHO 2004, EER/IOM 2005, EER 2023, Katch-McArdle 1996, Cunningham 1980, Mifflin-St Jeor 1990, and more.\nActivity factors: 1.0 (none), 1.2 (sedentary), 1.375 (light), 1.55 (moderate), 1.725 (intense), 1.9 (very intense).\nInjury factors: 1.0 (none) up to 2.0 (burns 70-90%).\n\n[Flattened action: create]\n\nBulk support: accepts patient_ids, calculo_ids for batched execution.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"altura": {
"default": "",
"type": "string"
},
"calculo_id": {
"default": "",
"type": "string"
},
"calculo_ids": {
"items": {
"default": "",
"type": "string"
},
"type": "array"
},
"fator_atividade": {
"default": "1.200",
"type": "string"
},
"fator_injuria": {
"default": "1.000",
"type": "string"
},
"formula": {
"default": "",
"type": "string"
},
"mlg": {
"default": "",
"type": "string"
},
"nome": {
"default": "Cálculo Energético",
"type": "string"
},
"patient_id": {
"type": "string"
},
"patient_ids": {
"items": {
"type": "string"
},
"type": "array"
},
"peso": {
"default": "",
"type": "string"
}
},
"required": [
"patient_id"
],
"type": "object"
},
"name": "webdiet_calculo_energetico_write_create",
"outputSchema": null
},
{
"description": "Create / update energy expenditure calculations in WebDiet.\nActions: create (new calculation), save (update existing calculation).\nSupports 24+ formulas: Harris-Benedict 1919/1984, FAO/WHO 2004, EER/IOM 2005, EER 2023, Katch-McArdle 1996, Cunningham 1980, Mifflin-St Jeor 1990, and more.\nActivity factors: 1.0 (none), 1.2 (sedentary), 1.375 (light), 1.55 (moderate), 1.725 (intense), 1.9 (very intense).\nInjury factors: 1.0 (none) up to 2.0 (burns 70-90%).\n\n[Flattened action: save]\n\nBulk support: accepts patient_ids, calculo_ids for batched execution.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"altura": {
"default": "",
"type": "string"
},
"calculo_id": {
"default": "",
"type": "string"
},
"calculo_ids": {
"items": {
"default": "",
"type": "string"
},
"type": "array"
},
"fator_atividade": {
"default": "1.200",
"type": "string"
},
"fator_injuria": {
"default": "1.000",
"type": "string"
},
"formula": {
"default": "",
"type": "string"
},
"mlg": {
"default": "",
"type": "string"
},
"nome": {
"default": "Cálculo Energético",
"type": "string"
},
"patient_id": {
"type": "string"
},
"patient_ids": {
"items": {
"type": "string"
},
"type": "array"
},
"peso": {
"default": "",
"type": "string"
}
},
"required": [
"patient_id"
],
"type": "object"
},
"name": "webdiet_calculo_energetico_write_save",
"outputSchema": null
},
{
"description": "Create a new body measurement record for a patient. Returns the record ID needed for webdiet_save_antropometria. Types: adulto (adult), infantil (child), gestacional (pregnancy).\n\nBulk support: accepts patient_ids for batched execution.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"data": {
"default": "",
"type": "string"
},
"patient_id": {
"type": "string"
},
"patient_ids": {
"items": {
"type": "string"
},
"type": "array"
},
"tipo": {
"default": "adulto",
"enum": [
"adulto",
"infantil",
"gestacional"
],
"type": "string"
}
},
"required": [
"patient_id"
],
"type": "object"
},
"name": "webdiet_create_antropometria",
"outputSchema": null
},
{
"description": "Read financial records (payments, receipts) in WebDiet.\nActions: list (all records in date range — defaults to last 30 days), categories (get available categories for income/expense).\nEach record includes: id, nome, tipo (entrada=income, saida=expense), categoria, valor, data, observacao, recibo status, and recibo_url when receipt was generated.\nUse inicio/fim in YYYYMMDDHHmm format to filter by date range (e.g. \"202604010000\" to \"202604302359\" for April 2026).\n\n[Flattened action: categories]",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"fim": {
"default": "",
"type": "string"
},
"inicio": {
"default": "",
"type": "string"
},
"tipo": {
"default": "entrada",
"enum": [
"entrada",
"saida"
],
"type": "string"
}
},
"type": "object"
},
"name": "webdiet_financeiro_categories",
"outputSchema": null
},
{
"description": "Permanently delete a financial record. Irreversible.\n\nBulk support: accepts financeiro_ids for batched execution.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"financeiro_id": {
"type": "string"
},
"financeiro_ids": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"financeiro_id"
],
"type": "object"
},
"name": "webdiet_financeiro_delete",
"outputSchema": null
},
{
"description": "Read financial records (payments, receipts) in WebDiet.\nActions: list (all records in date range — defaults to last 30 days), categories (get available categories for income/expense).\nEach record includes: id, nome, tipo (entrada=income, saida=expense), categoria, valor, data, observacao, recibo status, and recibo_url when receipt was generated.\nUse inicio/fim in YYYYMMDDHHmm format to filter by date range (e.g. \"202604010000\" to \"202604302359\" for April 2026).\n\n[Flattened action: list]",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"fim": {
"default": "",
"type": "string"
},
"inicio": {
"default": "",
"type": "string"
},
"tipo": {
"default": "entrada",
"enum": [
"entrada",
"saida"
],
"type": "string"
}
},
"type": "object"
},
"name": "webdiet_financeiro_list",
"outputSchema": null
},
{
"description": "Create financial records in WebDiet.\ntipo: \"entrada\" for income (e.g. consultation payment received), \"saida\" for expense.\nDefault income categories: Consulta, Retorno. Default expense categories: Internet, Aluguel. Use nova_cat to create a custom category.\nvalor format: use comma for decimals (e.g. \"300,00\" or \"150,50\"). forma: payment method (e.g. Pix, Dinheiro, Cartão de crédito, Transferência).\nparcelas: number of installments (default 1). For installments, dataCobranca is the first billing date.\nFor destructive delete use webdiet_financeiro_delete.\n\nBulk support: accepts patient_ids for batched execution.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"categoria": {
"default": "Consulta",
"type": "string"
},
"cpf": {
"default": "",
"type": "string"
},
"data": {
"default": "",
"type": "string"
},
"dataCobranca": {
"default": "",
"type": "string"
},
"forma": {
"default": "",
"type": "string"
},
"horario": {
"default": "",
"type": "string"
},
"nome": {
"type": "string"
},
"nova_cat": {
"default": "",
"type": "string"
},
"observacao": {
"default": "",
"type": "string"
},
"parcelas": {
"default": "1",
"type": "string"
},
"patient_id": {
"type": "string"
},
"patient_ids": {
"items": {
"type": "string"
},
"type": "array"
},
"tipo": {
"default": "entrada",
"enum": [
"entrada",
"saida"
],
"type": "string"
},
"valor": {
"type": "string"
}
},
"required": [
"patient_id",
"valor"
],
"type": "object"
},
"name": "webdiet_financeiro_write",
"outputSchema": null
},
{
"description": "Search WebDiet food database for numeric food ids (needed for full macros in Convencional / metodoPlanning prescriptions).\nUses the same data source as the panel (carregarAlimentosAvulsos.php): the full catalog is cached per MCP session and filtered client-side (min 3 characters in keyword, same as the planning UI).\nReturns id, nome, grupo, origem, macros (kcal, proteinas, lipidios, carboidratos, fibras), and medidas_caseiras with gram weights.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"keyword": {
"type": "string"
},
"limite": {
"default": 25,
"type": "number"
}
},
"required": [
"keyword"
],
"type": "object"
},
"name": "webdiet_food_search",
"outputSchema": null
},
{
"description": "Load food diary entries, meal reactions, attachments, or orientations for a patient. Use tipo to select: diario (food diary), reacoes (meal reactions), anexos (attachments), orientacoes (guidelines/orientations sent to patient).\n\nBulk support: accepts patient_ids for batched execution.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"limite": {
"default": 50,
"type": "number"
},
"patient_id": {
"type": "string"
},
"patient_ids": {
"items": {
"type": "string"
},
"type": "array"
},
"tipo": {
"default": "diario",
"enum": [
"diario",
"reacoes",
"anexos",
"orientacoes"
],
"type": "string"
}
},
"required": [
"patient_id"
],
"type": "object"
},
"name": "webdiet_get_consultations",
"outputSchema": null
},
{
"description": "Load the nutritionist's calendar/agenda for a date: appointments, overdue tasks, birthdays, events. Defaults to today.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"date": {
"default": "",
"type": "string"
}
},
"type": "object"
},
"name": "webdiet_get_planner",
"outputSchema": null
},
{
"description": "Returns a ready-to-run curl command that uploads a file directly to the server without reading it into context.\nRECOMMENDED for large files (images, PDFs, lab results). The flow:\n1. Call this tool with the file_path the user provided\n2. Execute the returned curl command in your code execution sandbox (or tell the user to run it)\n3. The command returns a JSON with a \"code\" (e.g. \"file-a1b2c3d4\")\n4. Call webdiet_upload_anexo with upload_code=that_code to attach it to the patient\nThis avoids loading large file contents into the conversation context.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"file_name": {
"default": "",
"type": "string"
},
"file_path": {
"type": "string"
}
},
"required": [
"file_path"
],
"type": "object"
},
"name": "webdiet_get_upload_command",
"outputSchema": null
},
{
"description": "List all WebDiet accounts linked to this install.\nReturns each account's id, email, label, and an \"is_default\" flag (true when only one is linked — no need to pass `account` in other tools). When the user wants to add another WebDiet account, return `add_account_url` (no payload) como link clicável — abre o form de login no dashboard.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
}
},
"type": "object"
},
"name": "webdiet_list_accounts",
"outputSchema": null
},
{
"description": "Load educational slides or cloud file attachments. Use laminasAnexos for educational slides/laminas (~238 items with PDFs about nutrition topics), cloudAnexos for uploaded cloud files. For guidelines/orientations specifically, use webdiet_orientacoes action=list_banco.\n\nBulk support: accepts patient_ids for batched execution.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"patient_id": {
"default": "",
"type": "string"
},
"patient_ids": {
"items": {
"default": "",
"type": "string"
},
"type": "array"
},
"tipo": {
"default": "laminasAnexos",
"enum": [
"laminasAnexos",
"cloudAnexos"
],
"type": "string"
}
},
"type": "object"
},
"name": "webdiet_list_anexos",
"outputSchema": null
},
{
"description": "Load patient welcome message templates. Returns the active layout and all available template layouts.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"tipo": {
"default": "adicionar",
"type": "string"
}
},
"type": "object"
},
"name": "webdiet_list_message_templates",
"outputSchema": null
},
{
"description": "Permanently delete a manipulado for a patient. Irreversible.\n\nBulk support: accepts patient_ids, manipulado_ids for batched execution.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"manipulado_id": {
"type": "string"
},
"manipulado_ids": {
"items": {
"type": "string"
},
"type": "array"
},
"patient_id": {
"type": "string"
},
"patient_ids": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"patient_id",
"manipulado_id"
],
"type": "object"
},
"name": "webdiet_manipulados_delete",
"outputSchema": null
},
{
"description": "Read \"Prescrição de manipulados\" (compounded/magistral pharmacy formulas) in WebDiet.\nActions:\n- list_banco → search the WebDiet formula bank (~249 pre-built templates: ~120 disponíveis + ~129 de extensões pagas). Filtros: keyword (busca livre na indicação clínica = nome da fórmula), categoria (suplementos | cosmeceuticos | dermatologicos | extensoes), incluir_bloqueados (default false — esconde fórmulas de extensões pagas). Cada item retornado contém: nome (= a indicação clínica), categoria, texto_html (fórmula completa com componentes, doses e modo de usar), bloqueado.\n- list → list manipulados already prescribed to a patient (id, nome, data, liberado, pdf_url + pdf_global_url).\n- get → fetch full HTML content (componentes + doses) of a specific manipulado already prescribed to a patient.\n\nFor write operations (save / send / publish / duplicate) use webdiet_manipulados_write.\nFor destructive delete use webdiet_manipulados_delete.\n\n[Flattened action: get]\n\nBulk support: accepts patient_ids, manipulado_ids for batched execution.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"categoria": {
"default": "",
"enum": [
"",
"suplementos",
"cosmeceuticos",
"dermatologicos",
"extensoes",
"all"
],
"type": "string"
},
"incluir_bloqueados": {
"default": false,
"type": "boolean"
},
"keyword": {
"default": "",
"type": "string"
},
"limite": {
"default": 50,
"type": "number"
},
"manipulado_id": {
"default": "",
"type": "string"
},
"manipulado_ids": {
"items": {
"default": "",
"type": "string"
},
"type": "array"
},
"patient_id": {
"type": "string"
},
"patient_ids": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"name": "webdiet_manipulados_get",
"outputSchema": null
},
{
"description": "Read \"Prescrição de manipulados\" (compounded/magistral pharmacy formulas) in WebDiet.\nActions:\n- list_banco → search the WebDiet formula bank (~249 pre-built templates: ~120 disponíveis + ~129 de extensões pagas). Filtros: keyword (busca livre na indicação clínica = nome da fórmula), categoria (suplementos | cosmeceuticos | dermatologicos | extensoes), incluir_bloqueados (default false — esconde fórmulas de extensões pagas). Cada item retornado contém: nome (= a indicação clínica), categoria, texto_html (fórmula completa com componentes, doses e modo de usar), bloqueado.\n- list → list manipulados already prescribed to a patient (id, nome, data, liberado, pdf_url + pdf_global_url).\n- get → fetch full HTML content (componentes + doses) of a specific manipulado already prescribed to a patient.\n\nFor write operations (save / send / publish / duplicate) use webdiet_manipulados_write.\nFor destructive delete use webdiet_manipulados_delete.\n\n[Flattened action: list]\n\nBulk support: accepts patient_ids, manipulado_ids for batched execution.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"categoria": {
"default": "",
"enum": [
"",
"suplementos",
"cosmeceuticos",
"dermatologicos",
"extensoes",
"all"
],
"type": "string"
},
"incluir_bloqueados": {
"default": false,
"type": "boolean"
},
"keyword": {
"default": "",
"type": "string"
},
"limite": {
"default": 50,
"type": "number"
},
"manipulado_id": {
"default": "",
"type": "string"
},
"manipulado_ids": {
"items": {
"default": "",
"type": "string"
},
"type": "array"
},
"patient_id": {
"type": "string"
},
"patient_ids": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"name": "webdiet_manipulados_list",
"outputSchema": null
},
{
"description": "Read \"Prescrição de manipulados\" (compounded/magistral pharmacy formulas) in WebDiet.\nActions:\n- list_banco → search the WebDiet formula bank (~249 pre-built templates: ~120 disponíveis + ~129 de extensões pagas). Filtros: keyword (busca livre na indicação clínica = nome da fórmula), categoria (suplementos | cosmeceuticos | dermatologicos | extensoes), incluir_bloqueados (default false — esconde fórmulas de extensões pagas). Cada item retornado contém: nome (= a indicação clínica), categoria, texto_html (fórmula completa com componentes, doses e modo de usar), bloqueado.\n- list → list manipulados already prescribed to a patient (id, nome, data, liberado, pdf_url + pdf_global_url).\n- get → fetch full HTML content (componentes + doses) of a specific manipulado already prescribed to a patient.\n\nFor write operations (save / send / publish / duplicate) use webdiet_manipulados_write.\nFor destructive delete use webdiet_manipulados_delete.\n\n[Flattened action: list_banco]\n\nBulk support: accepts patient_ids, manipulado_ids for batched execution.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"categoria": {
"default": "",
"enum": [
"",
"suplementos",
"cosmeceuticos",
"dermatologicos",
"extensoes",
"all"
],
"type": "string"
},
"incluir_bloqueados": {
"default": false,
"type": "boolean"
},
"keyword": {
"default": "",
"type": "string"
},
"limite": {
"default": 50,
"type": "number"
},
"manipulado_id": {
"default": "",
"type": "string"
},
"manipulado_ids": {
"items": {
"default": "",
"type": "string"
},
"type": "array"
},
"patient_id": {
"type": "string"
},
"patient_ids": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"name": "webdiet_manipulados_list_banco",
"outputSchema": null
},
{
"description": "Create / send / publish / duplicate manipulados in WebDiet.\nActions:\n- save → create or update a manipulado for a patient. texto = raw HTML (tinyMCE content), nome = formula name. Omit manipulado_id to create; pass it to update an existing one. Returns id and pdf_url.\n- send → SHORTCUT prescribir + publicar: copia uma ou mais fórmulas do banco (por nome exato vindo de webdiet_manipulados list_banco) para o paciente como manipulados novos. Já fica liberado=true (visível no app/portal do paciente) imediatamente. Skips fórmulas bloqueadas com mensagem de erro.\n- publish → toggle liberar/disponibilizar status (makes the formula visible/invisible on the patient portal/app). Server toggles and returns the NEW state.\n- duplicate → duplicate an existing manipulado (creates a copy \"(cópia)\").\n\nFor destructive delete use webdiet_manipulados_delete.\n\n[Flattened action: duplicate]\n\nBulk support: accepts patient_ids, manipulado_ids for batched execution.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"manipulado_id": {
"default": "",
"type": "string"
},
"manipulado_ids": {
"items": {
"default": "",
"type": "string"
},
"type": "array"
},
"nome": {
"default": "",
"type": "string"
},
"nomes": {
"default": "",
"type": "string"
},
"patient_id": {
"type": "string"
},
"patient_ids": {
"items": {
"type": "string"
},
"type": "array"
},
"texto": {
"default": "",
"type": "string"
}
},
"required": [
"patient_id"
],
"type": "object"
},
"name": "webdiet_manipulados_write_duplicate",
"outputSchema": null
},
{
"description": "Create / send / publish / duplicate manipulados in WebDiet.\nActions:\n- save → create or update a manipulado for a patient. texto = raw HTML (tinyMCE content), nome = formula name. Omit manipulado_id to create; pass it to update an existing one. Returns id and pdf_url.\n- send → SHORTCUT prescribir + publicar: copia uma ou mais fórmulas do banco (por nome exato vindo de webdiet_manipulados list_banco) para o paciente como manipulados novos. Já fica liberado=true (visível no app/portal do paciente) imediatamente. Skips fórmulas bloqueadas com mensagem de erro.\n- publish → toggle liberar/disponibilizar status (makes the formula visible/invisible on the patient portal/app). Server toggles and returns the NEW state.\n- duplicate → duplicate an existing manipulado (creates a copy \"(cópia)\").\n\nFor destructive delete use webdiet_manipulados_delete.\n\n[Flattened action: publish]\n\nBulk support: accepts patient_ids, manipulado_ids for batched execution.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"manipulado_id": {
"default": "",
"type": "string"
},
"manipulado_ids": {
"items": {
"default": "",
"type": "string"
},
"type": "array"
},
"nome": {
"default": "",
"type": "string"
},
"nomes": {
"default": "",
"type": "string"
},
"patient_id": {
"type": "string"
},
"patient_ids": {
"items": {
"type": "string"
},
"type": "array"
},
"texto": {
"default": "",
"type": "string"
}
},
"required": [
"patient_id"
],
"type": "object"
},
"name": "webdiet_manipulados_write_publish",
"outputSchema": null
},
{
"description": "Create / send / publish / duplicate manipulados in WebDiet.\nActions:\n- save → create or update a manipulado for a patient. texto = raw HTML (tinyMCE content), nome = formula name. Omit manipulado_id to create; pass it to update an existing one. Returns id and pdf_url.\n- send → SHORTCUT prescribir + publicar: copia uma ou mais fórmulas do banco (por nome exato vindo de webdiet_manipulados list_banco) para o paciente como manipulados novos. Já fica liberado=true (visível no app/portal do paciente) imediatamente. Skips fórmulas bloqueadas com mensagem de erro.\n- publish → toggle liberar/disponibilizar status (makes the formula visible/invisible on the patient portal/app). Server toggles and returns the NEW state.\n- duplicate → duplicate an existing manipulado (creates a copy \"(cópia)\").\n\nFor destructive delete use webdiet_manipulados_delete.\n\n[Flattened action: save]\n\nBulk support: accepts patient_ids, manipulado_ids for batched execution.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"manipulado_id": {
"default": "",
"type": "string"
},
"manipulado_ids": {
"items": {
"default": "",
"type": "string"
},
"type": "array"
},
"nome": {
"default": "",
"type": "string"
},
"nomes": {
"default": "",
"type": "string"
},
"patient_id": {
"type": "string"
},
"patient_ids": {
"items": {
"type": "string"
},
"type": "array"
},
"texto": {
"default": "",
"type": "string"
}
},
"required": [
"patient_id"
],
"type": "object"
},
"name": "webdiet_manipulados_write_save",
"outputSchema": null
},
{
"description": "Create / send / publish / duplicate manipulados in WebDiet.\nActions:\n- save → create or update a manipulado for a patient. texto = raw HTML (tinyMCE content), nome = formula name. Omit manipulado_id to create; pass it to update an existing one. Returns id and pdf_url.\n- send → SHORTCUT prescribir + publicar: copia uma ou mais fórmulas do banco (por nome exato vindo de webdiet_manipulados list_banco) para o paciente como manipulados novos. Já fica liberado=true (visível no app/portal do paciente) imediatamente. Skips fórmulas bloqueadas com mensagem de erro.\n- publish → toggle liberar/disponibilizar status (makes the formula visible/invisible on the patient portal/app). Server toggles and returns the NEW state.\n- duplicate → duplicate an existing manipulado (creates a copy \"(cópia)\").\n\nFor destructive delete use webdiet_manipulados_delete.\n\n[Flattened action: send]\n\nBulk support: accepts patient_ids, manipulado_ids for batched execution.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"manipulado_id": {
"default": "",
"type": "string"
},
"manipulado_ids": {
"items": {
"default": "",
"type": "string"
},
"type": "array"
},
"nome": {
"default": "",
"type": "string"
},
"nomes": {
"default": "",
"type": "string"
},
"patient_id": {
"type": "string"
},
"patient_ids": {
"items": {
"type": "string"
},
"type": "array"
},
"texto": {
"default": "",
"type": "string"
}
},
"required": [
"patient_id"
],
"type": "object"
},
"name": "webdiet_manipulados_write_send",
"outputSchema": null
},
{
"description": "Read \"Listas e Orientações\" (guidelines/orientation lists) in WebDiet.\nActions: list (orientation records for a patient), list_banco (orientation bank / favorites — saved templates available to send to any patient).\nThe orientation bank contains nutritionist's saved/favorite orientations (e.g. \"Chás diuréticos\", \"Refeições livres\") that can be sent to any patient. Use list_banco to see available names, then pass those exact names to webdiet_orientacoes_write action=send.\n\n[Flattened action: list]\n\nBulk support: accepts patient_ids for batched execution.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"limite": {
"default": 50,
"type": "number"
},
"patient_id": {
"type": "string"
},
"patient_ids": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"name": "webdiet_orientacoes_list",
"outputSchema": null
},
{
"description": "Read \"Listas e Orientações\" (guidelines/orientation lists) in WebDiet.\nActions: list (orientation records for a patient), list_banco (orientation bank / favorites — saved templates available to send to any patient).\nThe orientation bank contains nutritionist's saved/favorite orientations (e.g. \"Chás diuréticos\", \"Refeições livres\") that can be sent to any patient. Use list_banco to see available names, then pass those exact names to webdiet_orientacoes_write action=send.\n\n[Flattened action: list_banco]\n\nBulk support: accepts patient_ids for batched execution.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"limite": {
"default": 50,
"type": "number"
},
"patient_id": {
"type": "string"
},
"patient_ids": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"name": "webdiet_orientacoes_list_banco",
"outputSchema": null
},
{
"description": "Create / update / send \"Listas e Orientações\" in WebDiet.\nActions: save (create/update an orientation for a patient), send (send orientation(s) from the bank to a patient by exact name).\nsave: non-ASCII emojis in \"texto\" are encoded as HTML numeric entities so they render on the patient portal (avoids \"?\" placeholders). If \"titulo\" is set, an <h1> with the title is prepended to \"texto\" for the patient view (portal does not show titulo alone).\n\n[Flattened action: save]\n\nBulk support: accepts patient_ids, orientacao_ids for batched execution.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"nomes": {
"default": "",
"type": "string"
},
"orientacao_id": {
"default": "",
"type": "string"
},
"orientacao_ids": {
"items": {
"default": "",
"type": "string"
},
"type": "array"
},
"patient_id": {
"type": "string"
},
"patient_ids": {
"items": {
"type": "string"
},
"type": "array"
},
"texto": {
"default": "",
"type": "string"
},
"titulo": {
"default": "",
"type": "string"
}
},
"required": [
"patient_id"
],
"type": "object"
},
"name": "webdiet_orientacoes_write_save",
"outputSchema": null
},
{
"description": "Create / update / send \"Listas e Orientações\" in WebDiet.\nActions: save (create/update an orientation for a patient), send (send orientation(s) from the bank to a patient by exact name).\nsave: non-ASCII emojis in \"texto\" are encoded as HTML numeric entities so they render on the patient portal (avoids \"?\" placeholders). If \"titulo\" is set, an <h1> with the title is prepended to \"texto\" for the patient view (portal does not show titulo alone).\n\n[Flattened action: send]\n\nBulk support: accepts patient_ids, orientacao_ids for batched execution.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"nomes": {
"default": "",
"type": "string"
},
"orientacao_id": {
"default": "",
"type": "string"
},
"orientacao_ids": {
"items": {
"default": "",
"type": "string"
},
"type": "array"
},
"patient_id": {
"type": "string"
},
"patient_ids": {
"items": {
"type": "string"
},
"type": "array"
},
"texto": {
"default": "",
"type": "string"
},
"titulo": {
"default": "",
"type": "string"
}
},
"required": [
"patient_id"
],
"type": "object"
},
"name": "webdiet_orientacoes_write_send",
"outputSchema": null
},
{
"description": "Permanently delete a WebDiet patient (uses removerPaciente — resolves id/link from a fresh list first). Irreversible.\n\nBulk support: accepts patient_ids for batched execution.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"patient_id": {
"type": "string"
},
"patient_ids": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"patient_id"
],
"type": "object"
},
"name": "webdiet_patient_delete",
"outputSchema": null
},
{
"description": "Read patients in WebDiet.\nActions: list (the WHOLE patient base, paginated — returns id, nome, link, updated_at, created_at), get (full profile with address, phone, links to panel sections).\nlist returns \"total\" (patients matching the filter), \"total_na_conta\" (patients in the account) and \"has_more\"; walk pages with page/page_size until has_more is false.\nFilters (all optional, combinable): keyword (matches name, nickname, email, phone or CPF, accent-insensitive), updated_since / updated_until (YYYY-MM-DD), order.\n\"updated_at\" is when the patient RECORD was last changed in WebDiet — it is the only per-patient timestamp the panel exposes, and it does NOT track a patient chart merely being opened/viewed. Use updated_since to answer \"who moved in the last N days\".\nThe \"id\" is stable across calls. Use it as patient_id for get, update and prescriptions. The \"link\" is a different identifier for the paciente.me portal; only patient_delete also resolves a portal link or a unique phone/name keyword.\n\n[Flattened action: get]\n\nBulk support: accepts patient_ids for batched execution.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"keyword": {
"default": "",
"type": "string"
},
"order": {
"default": "nome",
"enum": [
"nome",
"atualizado_desc",
"atualizado_asc"
],
"type": "string"
},
"page": {
"default": 1,
"type": "number"
},
"page_size": {
"default": 50,
"type": "number"
},
"patient_id": {
"type": "string"
},
"patient_ids": {
"items": {
"type": "string"
},
"type": "array"
},
"updated_since": {
"type": "string"
},
"updated_until": {
"type": "string"
}
},
"type": "object"
},
"name": "webdiet_patient_get",
"outputSchema": null
},
{
"description": "Read patients in WebDiet.\nActions: list (the WHOLE patient base, paginated — returns id, nome, link, updated_at, created_at), get (full profile with address, phone, links to panel sections).\nlist returns \"total\" (patients matching the filter), \"total_na_conta\" (patients in the account) and \"has_more\"; walk pages with page/page_size until has_more is false.\nFilters (all optional, combinable): keyword (matches name, nickname, email, phone or CPF, accent-insensitive), updated_since / updated_until (YYYY-MM-DD), order.\n\"updated_at\" is when the patient RECORD was last changed in WebDiet — it is the only per-patient timestamp the panel exposes, and it does NOT track a patient chart merely being opened/viewed. Use updated_since to answer \"who moved in the last N days\".\nThe \"id\" is stable across calls. Use it as patient_id for get, update and prescriptions. The \"link\" is a different identifier for the paciente.me portal; only patient_delete also resolves a portal link or a unique phone/name keyword.\n\n[Flattened action: list]\n\nBulk support: accepts patient_ids for batched execution.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"keyword": {
"default": "",
"type": "string"
},
"order": {
"default": "nome",
"enum": [
"nome",
"atualizado_desc",
"atualizado_asc"
],
"type": "string"
},
"page": {
"default": 1,
"type": "number"
},
"page_size": {
"default": 50,
"type": "number"
},
"patient_id": {
"type": "string"
},
"patient_ids": {
"items": {
"type": "string"
},
"type": "array"
},
"updated_since": {
"type": "string"
},
"updated_until": {
"type": "string"
}
},
"type": "object"
},
"name": "webdiet_patient_list",
"outputSchema": null
},
{
"description": "Create or update patients in WebDiet.\nActions: create (nome + nascimento required — returns patient_id), update (partial fields).\nIMPORTANT: nascimento (birth date DD/MM/YYYY) is REQUIRED for create — WebDiet uses it to calculate age in prescriptions. Without it, metodoPlanning.php crashes with a Fatal Error.\nFor destructive removal use webdiet_patient_delete.\n\n[Flattened action: create]\n\nBulk support: accepts patient_ids for batched execution.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"apelido": {
"type": "string"
},
"bairro": {
"type": "string"
},
"boasvindas": {
"default": true,
"type": "boolean"
},
"cep": {
"type": "string"
},
"cidade": {
"type": "string"
},
"complemento": {
"type": "string"
},
"cpf": {
"type": "string"
},
"email": {
"type": "string"
},
"endereco": {
"type": "string"
},
"estado": {
"type": "string"
},
"genero": {
"enum": [
"M",
"F"
],
"type": "string"
},
"instagram": {
"type": "string"
},
"nascimento": {
"type": "string"
},
"nome": {
"type": "string"
},
"numero": {
"type": "string"
},
"patient_id": {
"type": "string"
},
"patient_ids": {
"items": {
"type": "string"
},
"type": "array"
},
"telefone": {
"type": "string"
}
},
"type": "object"
},
"name": "webdiet_patient_write_create",
"outputSchema": null
},
{
"description": "Create or update patients in WebDiet.\nActions: create (nome + nascimento required — returns patient_id), update (partial fields).\nIMPORTANT: nascimento (birth date DD/MM/YYYY) is REQUIRED for create — WebDiet uses it to calculate age in prescriptions. Without it, metodoPlanning.php crashes with a Fatal Error.\nFor destructive removal use webdiet_patient_delete.\n\n[Flattened action: update]\n\nBulk support: accepts patient_ids for batched execution.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"apelido": {
"type": "string"
},
"bairro": {
"type": "string"
},
"boasvindas": {
"default": true,
"type": "boolean"
},
"cep": {
"type": "string"
},
"cidade": {
"type": "string"
},
"complemento": {
"type": "string"
},
"cpf": {
"type": "string"
},
"email": {
"type": "string"
},
"endereco": {
"type": "string"
},
"estado": {
"type": "string"
},
"genero": {
"enum": [
"M",
"F"
],
"type": "string"
},
"instagram": {
"type": "string"
},
"nascimento": {
"type": "string"
},
"nome": {
"type": "string"
},
"numero": {
"type": "string"
},
"patient_id": {
"type": "string"
},
"patient_ids": {
"items": {
"type": "string"
},
"type": "array"
},
"telefone": {
"type": "string"
}
},
"type": "object"
},
"name": "webdiet_patient_write_update",
"outputSchema": null
},
{
"description": "Permanently delete a pre-consultation response in WebDiet. Templates are NOT affected. Irreversible.\n\nBulk support: accepts response_ids for batched execution.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"response_id": {
"type": "string"
},
"response_ids": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"response_id"
],
"type": "object"
},
"name": "webdiet_preconsulta_delete",
"outputSchema": null
},
{
"description": "Read pre-consultation questionnaires (Pré-consulta) in WebDiet.\nActions:\n- list_templates → list all questionnaire templates the nutritionist publishes. Each item returns nome, descricao, perguntas[] (decoded), modelo, codigo, \"link\" (the public short URL https://nutr.se/<short> to share with patients) and \"preview_url\" (panel preview). USE THIS when the user asks for \"o link do questionário de pré-consulta\" / \"link do formulário\".\n- list_responses → list patient submissions to ANY template. Each response has id, id_code, template_nome, origem (anamnese | questionario), respondedor {nome, telefone, nascimento}, data, texto (decoded plain Q/A), texto_html (original HTML), pdf_url. Use filtros tipo (template name) and nome (responder name) to narrow.\n- get_response → fetch one response by id (or id_code/codigo).\nFor LINKING a response to an existing patient (vincular), use webdiet_preconsulta_write action=link_to_patient.\n\n[Flattened action: get_response]\n\nBulk support: accepts response_ids for batched execution.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"limit": {
"default": 50,
"type": "number"
},
"nome": {
"default": "",
"type": "string"
},
"offset": {
"default": 0,
"type": "number"
},
"response_id": {
"default": "",
"type": "string"
},
"response_ids": {
"items": {
"default": "",
"type": "string"
},
"type": "array"
},
"tipo": {
"default": "",
"type": "string"
}
},
"type": "object"
},
"name": "webdiet_preconsulta_get_response",
"outputSchema": null
},
{
"description": "Read pre-consultation questionnaires (Pré-consulta) in WebDiet.\nActions:\n- list_templates → list all questionnaire templates the nutritionist publishes. Each item returns nome, descricao, perguntas[] (decoded), modelo, codigo, \"link\" (the public short URL https://nutr.se/<short> to share with patients) and \"preview_url\" (panel preview). USE THIS when the user asks for \"o link do questionário de pré-consulta\" / \"link do formulário\".\n- list_responses → list patient submissions to ANY template. Each response has id, id_code, template_nome, origem (anamnese | questionario), respondedor {nome, telefone, nascimento}, data, texto (decoded plain Q/A), texto_html (original HTML), pdf_url. Use filtros tipo (template name) and nome (responder name) to narrow.\n- get_response → fetch one response by id (or id_code/codigo).\nFor LINKING a response to an existing patient (vincular), use webdiet_preconsulta_write action=link_to_patient.\n\n[Flattened action: list_responses]\n\nBulk support: accepts response_ids for batched execution.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"limit": {
"default": 50,
"type": "number"
},
"nome": {
"default": "",
"type": "string"
},
"offset": {
"default": 0,
"type": "number"
},
"response_id": {
"default": "",
"type": "string"
},
"response_ids": {
"items": {
"default": "",
"type": "string"
},
"type": "array"
},
"tipo": {
"default": "",
"type": "string"
}
},
"type": "object"
},
"name": "webdiet_preconsulta_list_responses",
"outputSchema": null
},
{
"description": "Read pre-consultation questionnaires (Pré-consulta) in WebDiet.\nActions:\n- list_templates → list all questionnaire templates the nutritionist publishes. Each item returns nome, descricao, perguntas[] (decoded), modelo, codigo, \"link\" (the public short URL https://nutr.se/<short> to share with patients) and \"preview_url\" (panel preview). USE THIS when the user asks for \"o link do questionário de pré-consulta\" / \"link do formulário\".\n- list_responses → list patient submissions to ANY template. Each response has id, id_code, template_nome, origem (anamnese | questionario), respondedor {nome, telefone, nascimento}, data, texto (decoded plain Q/A), texto_html (original HTML), pdf_url. Use filtros tipo (template name) and nome (responder name) to narrow.\n- get_response → fetch one response by id (or id_code/codigo).\nFor LINKING a response to an existing patient (vincular), use webdiet_preconsulta_write action=link_to_patient.\n\n[Flattened action: list_templates]\n\nBulk support: accepts response_ids for batched execution.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"limit": {
"default": 50,
"type": "number"
},
"nome": {
"default": "",
"type": "string"
},
"offset": {
"default": 0,
"type": "number"
},
"response_id": {
"default": "",
"type": "string"
},
"response_ids": {
"items": {
"default": "",
"type": "string"
},
"type": "array"
},
"tipo": {
"default": "",
"type": "string"
}
},
"type": "object"
},
"name": "webdiet_preconsulta_list_templates",
"outputSchema": null
},
{
"description": "Vincular (link) a pre-consultation response to an existing patient in WebDiet.\nAction: link_to_patient — imports the response content into the patient's chart. WebDiet routes automatically based on the response's \"origem\":\n • origem=anamnese → response becomes a new anamnese (importarPreanamnese.php)\n • origem=questionario → response becomes a new diagnostico (criarDiagnosticoPre.php)\nThis is the API-equivalent of the panel's \"Vincular ao paciente\" button on the Respostas dos questionários page. After linking, the response remains in the responses list — use webdiet_preconsulta_delete to remove it if desired.\nTip: when the response's respondedor.nome differs from the patient's nome (e.g. \"DALILA JULIAO MARTINS\" vs \"Dalila CG\"), match by telefone or nascimento via webdiet_patient list before linking.\n\n[Flattened action: link_to_patient]\n\nBulk support: accepts patient_ids, response_ids for batched execution.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"patient_id": {
"type": "string"
},
"patient_ids": {
"items": {
"type": "string"
},
"type": "array"
},
"response_id": {
"type": "string"
},
"response_ids": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"patient_id",
"response_id"
],
"type": "object"
},
"name": "webdiet_preconsulta_write_link_to_patient",
"outputSchema": null
},
{
"description": "Read meal plan prescriptions in WebDiet.\nActions: list (all recent prescriptions — each includes \"url\" with the full direct link), get_detail (full meals/foods from a prescription URL).\nAlways show the \"url\" field to the user when they ask for a prescription link.\n\n[Flattened action: get_detail]",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"link": {
"default": "",
"type": "string"
}
},
"type": "object"
},
"name": "webdiet_prescription_get_detail",
"outputSchema": null
},
{
"description": "Read meal plan prescriptions in WebDiet.\nActions: list (all recent prescriptions — each includes \"url\" with the full direct link), get_detail (full meals/foods from a prescription URL).\nAlways show the \"url\" field to the user when they ask for a prescription link.\n\n[Flattened action: list]",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"link": {
"default": "",
"type": "string"
}
},
"type": "object"
},
"name": "webdiet_prescription_list",
"outputSchema": null
},
{
"description": "Create, save or publish meal plan prescriptions in WebDiet.\nActions: create (new prescription for patient), save (meals/foods JSON to existing prescription), publish (release prescription to patient — makes it visible on the patient portal/app).\nIMPORTANT: After creating and saving foods, you MUST call publish to make the prescription visible to the patient.\n\n═══ MÉTODO DE PRESCRIÇÃO — escolha no create ═══\nWebDiet tem 3 métodos:\n\n• \"Convencional\" (UI: \"Por alimentos\", URL: metodoPlanning.php) — DEFAULT e RECOMENDADO. Alimento-por-alimento. Para cálculo de macros automático (proteínas/lipídios/carboidratos/calorias) na tabela \"Alimentos prescritos\" detalhada, cada alimento DEVE incluir o campo \"id\" com o WebDiet food-DB ID numérico. Sem id, o alimento AINDA é salvo no método Convencional e aparece no card expandido da refeição com nome + medida caseira, mas sem macros. NÃO vai para a seção qualitativa — o save retorna um warning explicando.\n\n• \"Equivalentes\" (UI: \"Por equivalentes\", URL: metodoWebdiet.php) — avançado. Prescrição por grupos de equivalentes. Requer IDs do banco.\n\n• \"Qualitativo\" (UI: \"Qualitativa\", URL: metodoQualitativo.php) — texto livre por refeição. A página do Qualitativo usa estrutura de dados diferente (refs com objetos cardapio) que este adapter ainda não gera corretamente via save. Para prescrições qualitativas, recomendado: criar via UI ou usar metodo=\"Convencional\" sem food IDs (os alimentos aparecem como texto na refeição sem macros, efeito semelhante).\n\n═══ prescricao_json (para o save) ═══\nJSON array de refeições. Cada refeição: {nome, horario, alimentos:[...]}.\nCada alimento: {nome, quantidade, medida_caseira, peso_gramas, id?}.\n\nAUTO-RESOLVE: se \"id\" não for enviado, o adapter procura automaticamente o melhor match no banco WebDiet (mesmo catálogo do webdiet_food_search) pelo campo \"nome\" e preenche o id antes de salvar — com isso os macros são calculados mesmo sem pré-chamar webdiet_food_search. O save retorna auto_resolved_foods {resolved, not_found, unresolved[]} indicando quais nomes não tiveram correspondência. Para controle fino (variante específica do banco, gramagem da medida caseira etc.), ainda é recomendado chamar webdiet_food_search e enviar o \"id\" explicitamente.\n\nPara evitar duplicação na UI (\"2 2 fatias (50g)\"), use quantidade numérica em \"quantidade\" e medida_caseira SEM repetir esse número e SEM sufixo \"(Xg)\" — ex.: quantidade=\"2\", medida_caseira=\"fatias\", peso_gramas=\"50\". O MCP também normaliza automaticamente se você enviar texto completo.\n\nExemplo sem ids (o adapter resolve automaticamente; nomes pouco específicos podem não encontrar match):\n[{\"nome\":\"Café da Manhã\",\"horario\":\"07:00\",\"alimentos\":[{\"nome\":\"Pão integral\",\"quantidade\":\"2\",\"medida_caseira\":\"fatias\",\"peso_gramas\":\"60\"}]}]\n\nExemplo com ids (pula o auto-resolve — ideal quando você já escolheu a variante exata):\n[{\"nome\":\"Almoço\",\"horario\":\"12:00\",\"alimentos\":[{\"id\":\"9153\",\"nome\":\"Arroz branco cozido\",\"quantidade\":\"4\",\"medida_caseira\":\"4 colheres de sopa (100g)\",\"peso_gramas\":\"100\"},{\"id\":\"9168\",\"nome\":\"Feijão carioca cozido\",\"quantidade\":\"2\",\"medida_caseira\":\"2 colheres (50g)\",\"peso_gramas\":\"50\"}]}]\n\nO save retorna {ok, metodo, warnings[], raw, auto_resolved_foods}. warnings avisa sobre alimentos sem id e alimentos não encontrados no banco.\n\n[Flattened action: create]\n\nBulk support: accepts patient_ids, prescription_ids for batched execution.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"metodo": {
"default": "Convencional",
"enum": [
"Convencional",
"Equivalentes",
"Qualitativo"
],
"type": "string"
},
"nome": {
"default": "Prescrição Alimentar",
"type": "string"
},
"patient_id": {
"type": "string"
},
"patient_ids": {
"items": {
"type": "string"
},
"type": "array"
},
"prescricao_json": {
"default": "",
"type": "string"
},
"prescription_id": {
"default": "",
"type": "string"
},
"prescription_ids": {
"items": {
"default": "",
"type": "string"
},
"type": "array"
}
},
"required": [
"patient_id"
],
"type": "object"
},
"name": "webdiet_prescription_write_create",
"outputSchema": null
},
{
"description": "Create, save or publish meal plan prescriptions in WebDiet.\nActions: create (new prescription for patient), save (meals/foods JSON to existing prescription), publish (release prescription to patient — makes it visible on the patient portal/app).\nIMPORTANT: After creating and saving foods, you MUST call publish to make the prescription visible to the patient.\n\n═══ MÉTODO DE PRESCRIÇÃO — escolha no create ═══\nWebDiet tem 3 métodos:\n\n• \"Convencional\" (UI: \"Por alimentos\", URL: metodoPlanning.php) — DEFAULT e RECOMENDADO. Alimento-por-alimento. Para cálculo de macros automático (proteínas/lipídios/carboidratos/calorias) na tabela \"Alimentos prescritos\" detalhada, cada alimento DEVE incluir o campo \"id\" com o WebDiet food-DB ID numérico. Sem id, o alimento AINDA é salvo no método Convencional e aparece no card expandido da refeição com nome + medida caseira, mas sem macros. NÃO vai para a seção qualitativa — o save retorna um warning explicando.\n\n• \"Equivalentes\" (UI: \"Por equivalentes\", URL: metodoWebdiet.php) — avançado. Prescrição por grupos de equivalentes. Requer IDs do banco.\n\n• \"Qualitativo\" (UI: \"Qualitativa\", URL: metodoQualitativo.php) — texto livre por refeição. A página do Qualitativo usa estrutura de dados diferente (refs com objetos cardapio) que este adapter ainda não gera corretamente via save. Para prescrições qualitativas, recomendado: criar via UI ou usar metodo=\"Convencional\" sem food IDs (os alimentos aparecem como texto na refeição sem macros, efeito semelhante).\n\n═══ prescricao_json (para o save) ═══\nJSON array de refeições. Cada refeição: {nome, horario, alimentos:[...]}.\nCada alimento: {nome, quantidade, medida_caseira, peso_gramas, id?}.\n\nAUTO-RESOLVE: se \"id\" não for enviado, o adapter procura automaticamente o melhor match no banco WebDiet (mesmo catálogo do webdiet_food_search) pelo campo \"nome\" e preenche o id antes de salvar — com isso os macros são calculados mesmo sem pré-chamar webdiet_food_search. O save retorna auto_resolved_foods {resolved, not_found, unresolved[]} indicando quais nomes não tiveram correspondência. Para controle fino (variante específica do banco, gramagem da medida caseira etc.), ainda é recomendado chamar webdiet_food_search e enviar o \"id\" explicitamente.\n\nPara evitar duplicação na UI (\"2 2 fatias (50g)\"), use quantidade numérica em \"quantidade\" e medida_caseira SEM repetir esse número e SEM sufixo \"(Xg)\" — ex.: quantidade=\"2\", medida_caseira=\"fatias\", peso_gramas=\"50\". O MCP também normaliza automaticamente se você enviar texto completo.\n\nExemplo sem ids (o adapter resolve automaticamente; nomes pouco específicos podem não encontrar match):\n[{\"nome\":\"Café da Manhã\",\"horario\":\"07:00\",\"alimentos\":[{\"nome\":\"Pão integral\",\"quantidade\":\"2\",\"medida_caseira\":\"fatias\",\"peso_gramas\":\"60\"}]}]\n\nExemplo com ids (pula o auto-resolve — ideal quando você já escolheu a variante exata):\n[{\"nome\":\"Almoço\",\"horario\":\"12:00\",\"alimentos\":[{\"id\":\"9153\",\"nome\":\"Arroz branco cozido\",\"quantidade\":\"4\",\"medida_caseira\":\"4 colheres de sopa (100g)\",\"peso_gramas\":\"100\"},{\"id\":\"9168\",\"nome\":\"Feijão carioca cozido\",\"quantidade\":\"2\",\"medida_caseira\":\"2 colheres (50g)\",\"peso_gramas\":\"50\"}]}]\n\nO save retorna {ok, metodo, warnings[], raw, auto_resolved_foods}. warnings avisa sobre alimentos sem id e alimentos não encontrados no banco.\n\n[Flattened action: publish]\n\nBulk support: accepts patient_ids, prescription_ids for batched execution.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"metodo": {
"default": "Convencional",
"enum": [
"Convencional",
"Equivalentes",
"Qualitativo"
],
"type": "string"
},
"nome": {
"default": "Prescrição Alimentar",
"type": "string"
},
"patient_id": {
"type": "string"
},
"patient_ids": {
"items": {
"type": "string"
},
"type": "array"
},
"prescricao_json": {
"default": "",
"type": "string"
},
"prescription_id": {
"default": "",
"type": "string"
},
"prescription_ids": {
"items": {
"default": "",
"type": "string"
},
"type": "array"
}
},
"required": [
"patient_id"
],
"type": "object"
},
"name": "webdiet_prescription_write_publish",
"outputSchema": null
},
{
"description": "Create, save or publish meal plan prescriptions in WebDiet.\nActions: create (new prescription for patient), save (meals/foods JSON to existing prescription), publish (release prescription to patient — makes it visible on the patient portal/app).\nIMPORTANT: After creating and saving foods, you MUST call publish to make the prescription visible to the patient.\n\n═══ MÉTODO DE PRESCRIÇÃO — escolha no create ═══\nWebDiet tem 3 métodos:\n\n• \"Convencional\" (UI: \"Por alimentos\", URL: metodoPlanning.php) — DEFAULT e RECOMENDADO. Alimento-por-alimento. Para cálculo de macros automático (proteínas/lipídios/carboidratos/calorias) na tabela \"Alimentos prescritos\" detalhada, cada alimento DEVE incluir o campo \"id\" com o WebDiet food-DB ID numérico. Sem id, o alimento AINDA é salvo no método Convencional e aparece no card expandido da refeição com nome + medida caseira, mas sem macros. NÃO vai para a seção qualitativa — o save retorna um warning explicando.\n\n• \"Equivalentes\" (UI: \"Por equivalentes\", URL: metodoWebdiet.php) — avançado. Prescrição por grupos de equivalentes. Requer IDs do banco.\n\n• \"Qualitativo\" (UI: \"Qualitativa\", URL: metodoQualitativo.php) — texto livre por refeição. A página do Qualitativo usa estrutura de dados diferente (refs com objetos cardapio) que este adapter ainda não gera corretamente via save. Para prescrições qualitativas, recomendado: criar via UI ou usar metodo=\"Convencional\" sem food IDs (os alimentos aparecem como texto na refeição sem macros, efeito semelhante).\n\n═══ prescricao_json (para o save) ═══\nJSON array de refeições. Cada refeição: {nome, horario, alimentos:[...]}.\nCada alimento: {nome, quantidade, medida_caseira, peso_gramas, id?}.\n\nAUTO-RESOLVE: se \"id\" não for enviado, o adapter procura automaticamente o melhor match no banco WebDiet (mesmo catálogo do webdiet_food_search) pelo campo \"nome\" e preenche o id antes de salvar — com isso os macros são calculados mesmo sem pré-chamar webdiet_food_search. O save retorna auto_resolved_foods {resolved, not_found, unresolved[]} indicando quais nomes não tiveram correspondência. Para controle fino (variante específica do banco, gramagem da medida caseira etc.), ainda é recomendado chamar webdiet_food_search e enviar o \"id\" explicitamente.\n\nPara evitar duplicação na UI (\"2 2 fatias (50g)\"), use quantidade numérica em \"quantidade\" e medida_caseira SEM repetir esse número e SEM sufixo \"(Xg)\" — ex.: quantidade=\"2\", medida_caseira=\"fatias\", peso_gramas=\"50\". O MCP também normaliza automaticamente se você enviar texto completo.\n\nExemplo sem ids (o adapter resolve automaticamente; nomes pouco específicos podem não encontrar match):\n[{\"nome\":\"Café da Manhã\",\"horario\":\"07:00\",\"alimentos\":[{\"nome\":\"Pão integral\",\"quantidade\":\"2\",\"medida_caseira\":\"fatias\",\"peso_gramas\":\"60\"}]}]\n\nExemplo com ids (pula o auto-resolve — ideal quando você já escolheu a variante exata):\n[{\"nome\":\"Almoço\",\"horario\":\"12:00\",\"alimentos\":[{\"id\":\"9153\",\"nome\":\"Arroz branco cozido\",\"quantidade\":\"4\",\"medida_caseira\":\"4 colheres de sopa (100g)\",\"peso_gramas\":\"100\"},{\"id\":\"9168\",\"nome\":\"Feijão carioca cozido\",\"quantidade\":\"2\",\"medida_caseira\":\"2 colheres (50g)\",\"peso_gramas\":\"50\"}]}]\n\nO save retorna {ok, metodo, warnings[], raw, auto_resolved_foods}. warnings avisa sobre alimentos sem id e alimentos não encontrados no banco.\n\n[Flattened action: save]\n\nBulk support: accepts patient_ids, prescription_ids for batched execution.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"metodo": {
"default": "Convencional",
"enum": [
"Convencional",
"Equivalentes",
"Qualitativo"
],
"type": "string"
},
"nome": {
"default": "Prescrição Alimentar",
"type": "string"
},
"patient_id": {
"type": "string"
},
"patient_ids": {
"items": {
"type": "string"
},
"type": "array"
},
"prescricao_json": {
"default": "",
"type": "string"
},
"prescription_id": {
"default": "",
"type": "string"
},
"prescription_ids": {
"items": {
"default": "",
"type": "string"
},
"type": "array"
}
},
"required": [
"patient_id"
],
"type": "object"
},
"name": "webdiet_prescription_write_save",
"outputSchema": null
},
{
"description": "Get the clinical record (prontuario) for a WebDiet patient. Returns decoded text with sections: Identificacao, Triagem, Anamnese alimentar, etc.\n\nBulk support: accepts patient_ids for batched execution.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"patient_id": {
"type": "string"
},
"patient_ids": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"patient_id"
],
"type": "object"
},
"name": "webdiet_prontuario",
"outputSchema": null
},
{
"description": "Save the clinical record (prontuario) for a WebDiet patient. Pass texto as a JSON array of HTML strings, one per section.\n\nBulk support: accepts patient_ids for batched execution.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"patient_id": {
"type": "string"
},
"patient_ids": {
"items": {
"type": "string"
},
"type": "array"
},
"texto": {
"type": "string"
}
},
"required": [
"patient_id",
"texto"
],
"type": "object"
},
"name": "webdiet_prontuario_write",
"outputSchema": null
},
{
"description": "Generate or update a receipt (recibo) for a financial record in WebDiet.\nPass the financeiro_id from webdiet_financeiro list. dados_recibo is a JSON array with 6 fields: [patient_name, cpf, address, city, nutritionist_name, crn_number].\nAfter generating, the recibo_url in the financial record will point to the PDF receipt.\nReturns the receipt PDF URL that can be shared with the patient.\n\nBulk support: accepts financeiro_ids for batched execution.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"dados_recibo": {
"default": "[]",
"type": "string"
},
"financeiro_id": {
"type": "string"
},
"financeiro_ids": {
"items": {
"type": "string"
},
"type": "array"
},
"nome": {
"type": "string"
}
},
"required": [
"financeiro_id",
"nome"
],
"type": "object"
},
"name": "webdiet_recibo",
"outputSchema": null
},
{
"description": "Save body measurements (anthropometry) for a patient. Call webdiet_create_antropometria first to get the antropometria_id.\nAll numeric values are strings. Provide raw measurements — calculated fields (IMC, GC%, density, fat mass, lean mass, classifications) are computed automatically server-side using the chosen formula.\nSections: basic (peso/altura), skinfolds (10 dobras in mm), circumferences (20 fields in cm, bilateral pairs for limbs), bone diameters (3 fields in cm), bioimpedance (9 fields from scale).\nFormulas for body fat %: pollock3 (default), pollock7, guedes, petroski, durnin, faulkner, nenhuma.\nDensity conversion: brozek (default) or siri. Side for CMB: esquerdo (default) or direito.\n\nBulk support: accepts patient_ids, antropometria_ids for batched execution.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"altura_joelho": {
"type": "string"
},
"antropometria_id": {
"type": "string"
},
"antropometria_ids": {
"items": {
"type": "string"
},
"type": "array"
},
"bioimpedancia_agua": {
"type": "string"
},
"bioimpedancia_gordura": {
"type": "string"
},
"bioimpedancia_idade": {
"type": "string"
},
"bioimpedancia_massa": {
"type": "string"
},
"bioimpedancia_massaGordura": {
"type": "string"
},
"bioimpedancia_massalivre": {
"type": "string"
},
"bioimpedancia_osseo": {
"type": "string"
},
"bioimpedancia_percentualMagra": {
"type": "string"
},
"bioimpedancia_visceral": {
"type": "string"
},
"c_abdomen": {
"type": "string"
},
"c_antebraco": {
"type": "string"
},
"c_antebraco_dir": {
"type": "string"
},
"c_bracocontraido": {
"type": "string"
},
"c_bracocontraido_dir": {
"type": "string"
},
"c_bracorelaxado": {
"type": "string"
},
"c_bracorelaxado_dir": {
"type": "string"
},
"c_cintura": {
"type": "string"
},
"c_coxadistal": {
"type": "string"
},
"c_coxadistal_dir": {
"type": "string"
},
"c_coxamedial": {
"type": "string"
},
"c_coxamedial_dir": {
"type": "string"
},
"c_coxaproximal": {
"type": "string"
},
"c_coxaproximal_dir": {
"type": "string"
},
"c_ombro": {
"type": "string"
},
"c_panturrilha": {
"type": "string"
},
"c_panturrilha_dir": {
"type": "string"
},
"c_pescoco": {
"type": "string"
},
"c_quadril": {
"type": "string"
},
"c_torax": {
"type": "string"
},
"diametro_femur": {
"type": "string"
},
"diametro_punho": {
"type": "string"
},
"diametro_umero": {
"type": "string"
},
"dobra_abdominal": {
"type": "string"
},
"dobra_axilar": {
"type": "string"
},
"dobra_biciptal": {
"type": "string"
},
"dobra_coxa": {
"type": "string"
},
"dobra_panturrilha": {
"type": "string"
},
"dobra_subescapular": {
"type": "string"
},
"dobra_supraespinhal": {
"type": "string"
},
"dobra_suprailiaca": {
"type": "string"
},
"dobra_toraxica": {
"type": "string"
},
"dobra_triceptal": {
"type": "string"
},
"estatura": {
"type": "string"
},
"estatura_sentado": {
"type": "string"
},
"formula_escolhida": {
"default": "pollock3",
"enum": [
"pollock3",
"pollock7",
"guedes",
"petroski",
"durnin",
"faulkner",
"nenhuma"
],
"type": "string"
},
"lado": {
"default": "esquerdo",
"enum": [
"esquerdo",
"direito"
],
"type": "string"
},
"massa": {
"type": "string"
},
"origem": {
"default": "manual",
"enum": [
"manual",
"automatica"
],
"type": "string"
},
"patient_id": {
"type": "string"
},
"patient_ids": {
"items": {
"type": "string"
},
"type": "array"
},
"refAntropometria": {
"default": "brozek",
"enum": [
"brozek",
"siri"
],
"type": "string"
}
},
"required": [
"patient_id",
"antropometria_id"
],
"type": "object"
},
"name": "webdiet_save_antropometria",
"outputSchema": null
},
{
"description": "Upload a file (PDF, image, etc.) to a patient's attachments in WebDiet.\nThree ways to provide the file (use ONE):\n 1. upload_code — from webdiet_get_upload_command curl (RECOMMENDED for large files)\n 2. file_url — direct URL to download the file (e.g. https://example.com/report.pdf)\n 3. file_base64 — base64-encoded file content (small files only)\nSupported tipos: anexo (patient attachment — default), cloud (WebDiet Cloud storage), prontuario (clinical record), antropometria (body measurement report), exame (lab exam), perfil (patient photo), evolucao (photo evolution).\n\nBulk support: accepts patient_ids for batched execution.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"file_base64": {
"default": "",
"type": "string"
},
"file_name": {
"default": "",
"type": "string"
},
"file_url": {
"default": "",
"type": "string"
},
"nome_anexo": {
"default": "",
"type": "string"
},
"patient_id": {
"type": "string"
},
"patient_ids": {
"items": {
"type": "string"
},
"type": "array"
},
"salvar_cloud": {
"default": false,
"type": "boolean"
},
"tipo": {
"default": "anexo",
"enum": [
"anexo",
"cloud",
"prontuario",
"antropometria",
"exame",
"perfil",
"evolucao"
],
"type": "string"
},
"upload_code": {
"default": "",
"type": "string"
}
},
"required": [
"patient_id"
],
"type": "object"
},
"name": "webdiet_upload_anexo",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:c17af95adf2ca59acd95bd8fcff3e6babb4ead7b772b6231d56e23466b1e2211 | sha256sum