Koskamo

mcp-dir WebDiet MCP

WebDiet MCP provides 56 tools for dietitians to manage patients, meal plans, prescriptions, charts, and anthropometry data. It supports reading and writing operations, integrates with any MCP client via HTTP, and uses magic-link login for authentication.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

mcp-dir WebDiet MCP logo, by mcp-dirCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-07Published by mcp-dir
MCP endpoint (Streamable HTTP)
https://api.mcp.ai/p_webdiet
Vendor documentation

What its tools do

62 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

62 of 62 have a description · 62 of 62 declare behavior hints · 0 of 59 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • List patients and next appointments
  • Create 1800 kcal food prescriptions
  • Search high-protein foods in TACO database

Source and maintenance

Community listingRegistry 0.1.0
Maintenance checked

Protocol and capabilities

Server
mcp-ai 0.9.410
MCP protocol negotiated in check
2025-11-25
Tools
62 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

MCP.AI platform v0.9.410 | 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

62 advertised

webdiet_list_accounts
Advertised by the server during the last successful anonymous check.
Advertised read-only

List all WebDiet accounts linked to this install. Returns 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.

webdiet_list_accounts input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "account": {
      "type": "string"
    }
  }
}
webdiet_list_accounts annotations
{
  "title": "webdiet_list_accounts",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
webdiet_patient_list
Advertised by the server during the last successful anonymous check.
Advertised read-only

Read patients in WebDiet. Actions: list (the WHOLE patient base, paginated — returns id, nome, link, updated_at, created_at), get (full profile with address, phone, links to panel sections). list 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. Filters (all optional, combinable): keyword (matches name, nickname, email, phone or CPF, accent-insensitive), updated_since / updated_until (YYYY-MM-DD), order. "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". The "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. [Flattened action: list] Bulk support: accepts patient_ids for batched execution.

webdiet_patient_list input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "page": {
      "type": "number",
      "default": 1
    },
    "order": {
      "enum": [
        "nome",
        "atualizado_desc",
        "atualizado_asc"
      ],
      "type": "string",
      "default": "nome"
    },
    "account": {
      "type": "string"
    },
    "keyword": {
      "type": "string",
      "default": ""
    },
    "page_size": {
      "type": "number",
      "default": 50
    },
    "patient_id": {
      "type": "string"
    },
    "patient_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "updated_since": {
      "type": "string"
    },
    "updated_until": {
      "type": "string"
    }
  }
}
webdiet_patient_list annotations
{
  "title": "webdiet_patient_list",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
webdiet_patient_get
Advertised by the server during the last successful anonymous check.
Advertised read-only

Read patients in WebDiet. Actions: list (the WHOLE patient base, paginated — returns id, nome, link, updated_at, created_at), get (full profile with address, phone, links to panel sections). list 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. Filters (all optional, combinable): keyword (matches name, nickname, email, phone or CPF, accent-insensitive), updated_since / updated_until (YYYY-MM-DD), order. "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". The "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. [Flattened action: get] Bulk support: accepts patient_ids for batched execution.

webdiet_patient_get input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "page": {
      "type": "number",
      "default": 1
    },
    "order": {
      "enum": [
        "nome",
        "atualizado_desc",
        "atualizado_asc"
      ],
      "type": "string",
      "default": "nome"
    },
    "account": {
      "type": "string"
    },
    "keyword": {
      "type": "string",
      "default": ""
    },
    "page_size": {
      "type": "number",
      "default": 50
    },
    "patient_id": {
      "type": "string"
    },
    "patient_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "updated_since": {
      "type": "string"
    },
    "updated_until": {
      "type": "string"
    }
  }
}
webdiet_patient_get annotations
{
  "title": "webdiet_patient_get",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
webdiet_patient_write_create
Advertised by the server during the last successful anonymous check.

Create or update patients in WebDiet. Actions: create (nome + nascimento required — returns patient_id), update (partial fields). IMPORTANT: 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. For destructive removal use webdiet_patient_delete. [Flattened action: create] Bulk support: accepts patient_ids for batched execution.

webdiet_patient_write_create input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "cep": {
      "type": "string"
    },
    "cpf": {
      "type": "string"
    },
    "nome": {
      "type": "string"
    },
    "email": {
      "type": "string"
    },
    "bairro": {
      "type": "string"
    },
    "cidade": {
      "type": "string"
    },
    "estado": {
      "type": "string"
    },
    "genero": {
      "enum": [
        "M",
        "F"
      ],
      "type": "string"
    },
    "numero": {
      "type": "string"
    },
    "account": {
      "type": "string"
    },
    "apelido": {
      "type": "string"
    },
    "endereco": {
      "type": "string"
    },
    "telefone": {
      "type": "string"
    },
    "instagram": {
      "type": "string"
    },
    "boasvindas": {
      "type": "boolean",
      "default": true
    },
    "nascimento": {
      "type": "string"
    },
    "patient_id": {
      "type": "string"
    },
    "complemento": {
      "type": "string"
    },
    "patient_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
webdiet_patient_write_create annotations
{
  "title": "webdiet_patient_write_create",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
webdiet_patient_write_update
Advertised by the server during the last successful anonymous check.

Create or update patients in WebDiet. Actions: create (nome + nascimento required — returns patient_id), update (partial fields). IMPORTANT: 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. For destructive removal use webdiet_patient_delete. [Flattened action: update] Bulk support: accepts patient_ids for batched execution.

webdiet_patient_write_update input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "cep": {
      "type": "string"
    },
    "cpf": {
      "type": "string"
    },
    "nome": {
      "type": "string"
    },
    "email": {
      "type": "string"
    },
    "bairro": {
      "type": "string"
    },
    "cidade": {
      "type": "string"
    },
    "estado": {
      "type": "string"
    },
    "genero": {
      "enum": [
        "M",
        "F"
      ],
      "type": "string"
    },
    "numero": {
      "type": "string"
    },
    "account": {
      "type": "string"
    },
    "apelido": {
      "type": "string"
    },
    "endereco": {
      "type": "string"
    },
    "telefone": {
      "type": "string"
    },
    "instagram": {
      "type": "string"
    },
    "boasvindas": {
      "type": "boolean",
      "default": true
    },
    "nascimento": {
      "type": "string"
    },
    "patient_id": {
      "type": "string"
    },
    "complemento": {
      "type": "string"
    },
    "patient_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
webdiet_patient_write_update annotations
{
  "title": "webdiet_patient_write_update",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
webdiet_patient_delete
Advertised by the server during the last successful anonymous check.
Advertised destructive

Permanently delete a WebDiet patient (uses removerPaciente — resolves id/link from a fresh list first). Irreversible. Bulk support: accepts patient_ids for batched execution.

webdiet_patient_delete input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "patient_id"
  ],
  "properties": {
    "account": {
      "type": "string"
    },
    "patient_id": {
      "type": "string"
    },
    "patient_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
webdiet_patient_delete annotations
{
  "title": "webdiet_patient_delete",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
webdiet_get_consultations
Advertised by the server during the last successful anonymous check.
Advertised read-only

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). Bulk support: accepts patient_ids for batched execution.

webdiet_get_consultations input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "patient_id"
  ],
  "properties": {
    "tipo": {
      "enum": [
        "diario",
        "reacoes",
        "anexos",
        "orientacoes"
      ],
      "type": "string",
      "default": "diario"
    },
    "limite": {
      "type": "number",
      "default": 50
    },
    "account": {
      "type": "string"
    },
    "patient_id": {
      "type": "string"
    },
    "patient_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
webdiet_get_consultations annotations
{
  "title": "webdiet_get_consultations",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
webdiet_prontuario
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get the clinical record (prontuario) for a WebDiet patient. Returns decoded text with sections: Identificacao, Triagem, Anamnese alimentar, etc. Bulk support: accepts patient_ids for batched execution.

webdiet_prontuario input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "patient_id"
  ],
  "properties": {
    "account": {
      "type": "string"
    },
    "patient_id": {
      "type": "string"
    },
    "patient_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
webdiet_prontuario annotations
{
  "title": "webdiet_prontuario",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
webdiet_prontuario_write
Advertised by the server during the last successful anonymous check.

Save the clinical record (prontuario) for a WebDiet patient. Pass texto as a JSON array of HTML strings, one per section. Bulk support: accepts patient_ids for batched execution.

webdiet_prontuario_write input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "patient_id",
    "texto"
  ],
  "properties": {
    "texto": {
      "type": "string"
    },
    "account": {
      "type": "string"
    },
    "patient_id": {
      "type": "string"
    },
    "patient_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
webdiet_prontuario_write annotations
{
  "title": "webdiet_prontuario_write",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
webdiet_anamnese
Advertised by the server during the last successful anonymous check.
Advertised read-only

List all anamnesis records for a WebDiet patient WITH the full Q/A content. Each item carries: - id, titulo, data - texto → plain-text Q/A (readable, line-broken — best for AI consumption / RAG) - texto_html → original HTML (<b>...</b><br>...) preserved for rich rendering - interpretacao / interpretacao_html → nutritionist's notes when present WebDiet 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. For pre-consultation questionnaire responses NOT yet linked to a patient, use webdiet_preconsulta action=list_responses. Bulk support: accepts patient_ids for batched execution.

webdiet_anamnese input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "patient_id"
  ],
  "properties": {
    "account": {
      "type": "string"
    },
    "patient_id": {
      "type": "string"
    },
    "patient_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
webdiet_anamnese annotations
{
  "title": "webdiet_anamnese",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
webdiet_anamnese_write_save
Advertised by the server during the last successful anonymous check.

Create / update anamnesis records in WebDiet. Actions: save (create or update — anamnese_id empty = new), save_interpretation (save AI/nutritionist interpretation), duplicate (copy existing record). For destructive removal use webdiet_anamnese_delete. [Flattened action: save] Bulk support: accepts patient_ids, anamnese_ids for batched execution.

webdiet_anamnese_write_save input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "patient_id"
  ],
  "properties": {
    "texto": {
      "type": "string",
      "default": ""
    },
    "titulo": {
      "type": "string",
      "default": ""
    },
    "account": {
      "type": "string"
    },
    "patient_id": {
      "type": "string"
    },
    "anamnese_id": {
      "type": "string",
      "default": ""
    },
    "patient_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "anamnese_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "default": ""
      }
    },
    "interpretacao": {
      "type": "string",
      "default": ""
    }
  }
}
webdiet_anamnese_write_save annotations
{
  "title": "webdiet_anamnese_write_save",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
webdiet_anamnese_write_save_interpretation
Advertised by the server during the last successful anonymous check.

Create / update anamnesis records in WebDiet. Actions: save (create or update — anamnese_id empty = new), save_interpretation (save AI/nutritionist interpretation), duplicate (copy existing record). For destructive removal use webdiet_anamnese_delete. [Flattened action: save_interpretation] Bulk support: accepts patient_ids, anamnese_ids for batched execution.

webdiet_anamnese_write_save_interpretation input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "patient_id"
  ],
  "properties": {
    "texto": {
      "type": "string",
      "default": ""
    },
    "titulo": {
      "type": "string",
      "default": ""
    },
    "account": {
      "type": "string"
    },
    "patient_id": {
      "type": "string"
    },
    "anamnese_id": {
      "type": "string",
      "default": ""
    },
    "patient_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "anamnese_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "default": ""
      }
    },
    "interpretacao": {
      "type": "string",
      "default": ""
    }
  }
}
webdiet_anamnese_write_save_interpretation annotations
{
  "title": "webdiet_anamnese_write_save_interpretation",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
webdiet_anamnese_write_duplicate
Advertised by the server during the last successful anonymous check.

Create / update anamnesis records in WebDiet. Actions: save (create or update — anamnese_id empty = new), save_interpretation (save AI/nutritionist interpretation), duplicate (copy existing record). For destructive removal use webdiet_anamnese_delete. [Flattened action: duplicate] Bulk support: accepts patient_ids, anamnese_ids for batched execution.

webdiet_anamnese_write_duplicate input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "patient_id"
  ],
  "properties": {
    "texto": {
      "type": "string",
      "default": ""
    },
    "titulo": {
      "type": "string",
      "default": ""
    },
    "account": {
      "type": "string"
    },
    "patient_id": {
      "type": "string"
    },
    "anamnese_id": {
      "type": "string",
      "default": ""
    },
    "patient_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "anamnese_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "default": ""
      }
    },
    "interpretacao": {
      "type": "string",
      "default": ""
    }
  }
}
webdiet_anamnese_write_duplicate annotations
{
  "title": "webdiet_anamnese_write_duplicate",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
webdiet_anamnese_delete
Advertised by the server during the last successful anonymous check.
Advertised destructive

Permanently delete an anamnesis record in WebDiet. Irreversible. Bulk support: accepts patient_ids, anamnese_ids for batched execution.

webdiet_anamnese_delete input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "patient_id",
    "anamnese_id"
  ],
  "properties": {
    "account": {
      "type": "string"
    },
    "patient_id": {
      "type": "string"
    },
    "anamnese_id": {
      "type": "string"
    },
    "patient_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "anamnese_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
webdiet_anamnese_delete annotations
{
  "title": "webdiet_anamnese_delete",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
webdiet_preconsulta_list_templates
Advertised by the server during the last successful anonymous check.
Advertised read-only

Read pre-consultation questionnaires (Pré-consulta) in WebDiet. Actions: - 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". - 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. - get_response → fetch one response by id (or id_code/codigo). For LINKING a response to an existing patient (vincular), use webdiet_preconsulta_write action=link_to_patient. [Flattened action: list_templates] Bulk support: accepts response_ids for batched execution.

webdiet_preconsulta_list_templates input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "nome": {
      "type": "string",
      "default": ""
    },
    "tipo": {
      "type": "string",
      "default": ""
    },
    "limit": {
      "type": "number",
      "default": 50
    },
    "offset": {
      "type": "number",
      "default": 0
    },
    "account": {
      "type": "string"
    },
    "response_id": {
      "type": "string",
      "default": ""
    },
    "response_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "default": ""
      }
    }
  }
}
webdiet_preconsulta_list_templates annotations
{
  "title": "webdiet_preconsulta_list_templates",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
webdiet_preconsulta_list_responses
Advertised by the server during the last successful anonymous check.
Advertised read-only

Read pre-consultation questionnaires (Pré-consulta) in WebDiet. Actions: - 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". - 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. - get_response → fetch one response by id (or id_code/codigo). For LINKING a response to an existing patient (vincular), use webdiet_preconsulta_write action=link_to_patient. [Flattened action: list_responses] Bulk support: accepts response_ids for batched execution.

webdiet_preconsulta_list_responses input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "nome": {
      "type": "string",
      "default": ""
    },
    "tipo": {
      "type": "string",
      "default": ""
    },
    "limit": {
      "type": "number",
      "default": 50
    },
    "offset": {
      "type": "number",
      "default": 0
    },
    "account": {
      "type": "string"
    },
    "response_id": {
      "type": "string",
      "default": ""
    },
    "response_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "default": ""
      }
    }
  }
}
webdiet_preconsulta_list_responses annotations
{
  "title": "webdiet_preconsulta_list_responses",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
webdiet_preconsulta_get_response
Advertised by the server during the last successful anonymous check.
Advertised read-only

Read pre-consultation questionnaires (Pré-consulta) in WebDiet. Actions: - 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". - 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. - get_response → fetch one response by id (or id_code/codigo). For LINKING a response to an existing patient (vincular), use webdiet_preconsulta_write action=link_to_patient. [Flattened action: get_response] Bulk support: accepts response_ids for batched execution.

webdiet_preconsulta_get_response input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "nome": {
      "type": "string",
      "default": ""
    },
    "tipo": {
      "type": "string",
      "default": ""
    },
    "limit": {
      "type": "number",
      "default": 50
    },
    "offset": {
      "type": "number",
      "default": 0
    },
    "account": {
      "type": "string"
    },
    "response_id": {
      "type": "string",
      "default": ""
    },
    "response_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "default": ""
      }
    }
  }
}
webdiet_preconsulta_get_response annotations
{
  "title": "webdiet_preconsulta_get_response",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
webdiet_preconsulta_write_link_to_patient
Advertised by the server during the last successful anonymous check.

Vincular (link) a pre-consultation response to an existing patient in WebDiet. Action: link_to_patient — imports the response content into the patient's chart. WebDiet routes automatically based on the response's "origem": • origem=anamnese → response becomes a new anamnese (importarPreanamnese.php) • origem=questionario → response becomes a new diagnostico (criarDiagnosticoPre.php) This 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. Tip: 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. [Flattened action: link_to_patient] Bulk support: accepts patient_ids, response_ids for batched execution.

webdiet_preconsulta_write_link_to_patient input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "patient_id",
    "response_id"
  ],
  "properties": {
    "account": {
      "type": "string"
    },
    "patient_id": {
      "type": "string"
    },
    "patient_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "response_id": {
      "type": "string"
    },
    "response_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
webdiet_preconsulta_write_link_to_patient annotations
{
  "title": "webdiet_preconsulta_write_link_to_patient",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
webdiet_preconsulta_delete
Advertised by the server during the last successful anonymous check.
Advertised destructive

Permanently delete a pre-consultation response in WebDiet. Templates are NOT affected. Irreversible. Bulk support: accepts response_ids for batched execution.

webdiet_preconsulta_delete input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "response_id"
  ],
  "properties": {
    "account": {
      "type": "string"
    },
    "response_id": {
      "type": "string"
    },
    "response_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
webdiet_preconsulta_delete annotations
{
  "title": "webdiet_preconsulta_delete",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
webdiet_antropometria_list
Advertised by the server during the last successful anonymous check.
Advertised read-only

Read anthropometry (body measurement) records for a WebDiet patient. Actions: 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). Each 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=...). Use this to analyze patient body composition evolution over time. For creating/saving records, use webdiet_create_antropometria + webdiet_save_antropometria. [Flattened action: list] Bulk support: accepts patient_ids, antropometria_ids for batched execution.

webdiet_antropometria_list input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "account": {
      "type": "string"
    },
    "patient_id": {
      "type": "string"
    },
    "patient_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "antropometria_id": {
      "type": "string"
    },
    "antropometria_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
webdiet_antropometria_list annotations
{
  "title": "webdiet_antropometria_list",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
webdiet_antropometria_get
Advertised by the server during the last successful anonymous check.
Advertised read-only

Read anthropometry (body measurement) records for a WebDiet patient. Actions: 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). Each 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=...). Use this to analyze patient body composition evolution over time. For creating/saving records, use webdiet_create_antropometria + webdiet_save_antropometria. [Flattened action: get] Bulk support: accepts patient_ids, antropometria_ids for batched execution.

webdiet_antropometria_get input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "account": {
      "type": "string"
    },
    "patient_id": {
      "type": "string"
    },
    "patient_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "antropometria_id": {
      "type": "string"
    },
    "antropometria_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
webdiet_antropometria_get annotations
{
  "title": "webdiet_antropometria_get",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
webdiet_create_antropometria
Advertised by the server during the last successful anonymous check.

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). Bulk support: accepts patient_ids for batched execution.

webdiet_create_antropometria input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "patient_id"
  ],
  "properties": {
    "data": {
      "type": "string",
      "default": ""
    },
    "tipo": {
      "enum": [
        "adulto",
        "infantil",
        "gestacional"
      ],
      "type": "string",
      "default": "adulto"
    },
    "account": {
      "type": "string"
    },
    "patient_id": {
      "type": "string"
    },
    "patient_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
webdiet_create_antropometria annotations
{
  "title": "webdiet_create_antropometria",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
webdiet_save_antropometria
Advertised by the server during the last successful anonymous check.

Save body measurements (anthropometry) for a patient. Call webdiet_create_antropometria first to get the antropometria_id. All 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. Sections: 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). Formulas for body fat %: pollock3 (default), pollock7, guedes, petroski, durnin, faulkner, nenhuma. Density conversion: brozek (default) or siri. Side for CMB: esquerdo (default) or direito. Bulk support: accepts patient_ids, antropometria_ids for batched execution.

webdiet_save_antropometria input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "patient_id",
    "antropometria_id"
  ],
  "properties": {
    "lado": {
      "enum": [
        "esquerdo",
        "direito"
      ],
      "type": "string",
      "default": "esquerdo"
    },
    "massa": {
      "type": "string"
    },
    "origem": {
      "enum": [
        "manual",
        "automatica"
      ],
      "type": "string",
      "default": "manual"
    },
    "account": {
      "type": "string"
    },
    "c_ombro": {
      "type": "string"
    },
    "c_torax": {
      "type": "string"
    },
    "estatura": {
      "type": "string"
    },
    "c_abdomen": {
      "type": "string"
    },
    "c_cintura": {
      "type": "string"
    },
    "c_pescoco": {
      "type": "string"
    },
    "c_quadril": {
      "type": "string"
    },
    "dobra_coxa": {
      "type": "string"
    },
    "patient_id": {
      "type": "string"
    },
    "c_antebraco": {
      "type": "string"
    },
    "patient_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "c_coxadistal": {
      "type": "string"
    },
    "c_coxamedial": {
      "type": "string"
    },
    "dobra_axilar": {
      "type": "string"
    },
    "altura_joelho": {
      "type": "string"
    },
    "c_panturrilha": {
      "type": "string"
    },
    "c_coxaproximal": {
      "type": "string"
    },
    "diametro_femur": {
      "type": "string"
    },
    "diametro_punho": {
      "type": "string"
    },
    "diametro_umero": {
      "type": "string"
    },
    "dobra_biciptal": {
      "type": "string"
    },
    "dobra_toraxica": {
      "type": "string"
    },
    "c_antebraco_dir": {
      "type": "string"
    },
    "c_bracorelaxado": {
      "type": "string"
    },
    "dobra_abdominal": {
      "type": "string"
    },
    "dobra_triceptal": {
      "type": "string"
    },
    "antropometria_id": {
      "type": "string"
    },
    "c_bracocontraido": {
      "type": "string"
    },
    "c_coxadistal_dir": {
      "type": "string"
    },
    "c_coxamedial_dir": {
      "type": "string"
    },
    "estatura_sentado": {
      "type": "string"
    },
    "refAntropometria": {
      "enum": [
        "brozek",
        "siri"
      ],
      "type": "string",
      "default": "brozek"
    },
    "antropometria_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "c_panturrilha_dir": {
      "type": "string"
    },
    "dobra_panturrilha": {
      "type": "string"
    },
    "dobra_suprailiaca": {
      "type": "string"
    },
    "formula_escolhida": {
      "enum": [
        "pollock3",
        "pollock7",
        "guedes",
        "petroski",
        "durnin",
        "faulkner",
        "nenhuma"
      ],
      "type": "string",
      "default": "pollock3"
    },
    "bioimpedancia_agua": {
      "type": "string"
    },
    "c_coxaproximal_dir": {
      "type": "string"
    },
    "dobra_subescapular": {
      "type": "string"
    },
    "bioimpedancia_idade": {
      "type": "string"
    },
    "bioimpedancia_massa": {
      "type": "string"
    },
    "bioimpedancia_osseo": {
      "type": "string"
    },
    "c_bracorelaxado_dir": {
      "type": "string"
    },
    "dobra_supraespinhal": {
      "type": "string"
    },
    "c_bracocontraido_dir": {
      "type": "string"
    },
    "bioimpedancia_gordura": {
      "type": "string"
    },
    "bioimpedancia_visceral": {
      "type": "string"
    },
    "bioimpedancia_massalivre": {
      "type": "string"
    },
    "bioimpedancia_massaGordura": {
      "type": "string"
    },
    "bioimpedancia_percentualMagra": {
      "type": "string"
    }
  }
}
webdiet_save_antropometria annotations
{
  "title": "webdiet_save_antropometria",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
webdiet_get_planner
Advertised by the server during the last successful anonymous check.
Advertised read-only

Load the nutritionist's calendar/agenda for a date: appointments, overdue tasks, birthdays, events. Defaults to today.

webdiet_get_planner input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "date": {
      "type": "string",
      "default": ""
    },
    "account": {
      "type": "string"
    }
  }
}
webdiet_get_planner annotations
{
  "title": "webdiet_get_planner",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
webdiet_prescription_list
Advertised by the server during the last successful anonymous check.
Advertised read-only

Read meal plan prescriptions in WebDiet. Actions: list (all recent prescriptions — each includes "url" with the full direct link), get_detail (full meals/foods from a prescription URL). Always show the "url" field to the user when they ask for a prescription link. [Flattened action: list]

webdiet_prescription_list input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "link": {
      "type": "string",
      "default": ""
    },
    "account": {
      "type": "string"
    }
  }
}
webdiet_prescription_list annotations
{
  "title": "webdiet_prescription_list",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
webdiet_prescription_get_detail
Advertised by the server during the last successful anonymous check.
Advertised read-only

Read meal plan prescriptions in WebDiet. Actions: list (all recent prescriptions — each includes "url" with the full direct link), get_detail (full meals/foods from a prescription URL). Always show the "url" field to the user when they ask for a prescription link. [Flattened action: get_detail]

webdiet_prescription_get_detail input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "link": {
      "type": "string",
      "default": ""
    },
    "account": {
      "type": "string"
    }
  }
}
webdiet_prescription_get_detail annotations
{
  "title": "webdiet_prescription_get_detail",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
webdiet_prescription_write_create
Advertised by the server during the last successful anonymous check.

Create, save or publish meal plan prescriptions in WebDiet. Actions: 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). IMPORTANT: After creating and saving foods, you MUST call publish to make the prescription visible to the patient. ═══ MÉTODO DE PRESCRIÇÃO — escolha no create ═══ WebDiet tem 3 métodos: • "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. • "Equivalentes" (UI: "Por equivalentes", URL: metodoWebdiet.php) — avançado. Prescrição por grupos de equivalentes. Requer IDs do banco. • "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). ═══ prescricao_json (para o save) ═══ JSON array de refeições. Cada refeição: {nome, horario, alimentos:[...]}. Cada alimento: {nome, quantidade, medida_caseira, peso_gramas, id?}. AUTO-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. Para 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. Exemplo sem ids (o adapter resolve automaticamente; nomes pouco específicos podem não encontrar match): [{"nome":"Café da Manhã","horario":"07:00","alimentos":[{"nome":"Pão integral","quantidade":"2","medida_caseira":"fatias","peso_gramas":"60"}]}] Exemplo com ids (pula o auto-resolve — ideal quando você já escolheu a variante exata): [{"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"}]}] O save retorna {ok, metodo, warnings[], raw, auto_resolved_foods}. warnings avisa sobre alimentos sem id e alimentos não encontrados no banco. [Flattened action: create] Bulk support: accepts patient_ids, prescription_ids for batched execution.

webdiet_prescription_write_create input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "patient_id"
  ],
  "properties": {
    "nome": {
      "type": "string",
      "default": "Prescrição Alimentar"
    },
    "metodo": {
      "enum": [
        "Convencional",
        "Equivalentes",
        "Qualitativo"
      ],
      "type": "string",
      "default": "Convencional"
    },
    "account": {
      "type": "string"
    },
    "patient_id": {
      "type": "string"
    },
    "patient_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "prescricao_json": {
      "type": "string",
      "default": ""
    },
    "prescription_id": {
      "type": "string",
      "default": ""
    },
    "prescription_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "default": ""
      }
    }
  }
}
webdiet_prescription_write_create annotations
{
  "title": "webdiet_prescription_write_create",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
webdiet_prescription_write_save
Advertised by the server during the last successful anonymous check.

Create, save or publish meal plan prescriptions in WebDiet. Actions: 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). IMPORTANT: After creating and saving foods, you MUST call publish to make the prescription visible to the patient. ═══ MÉTODO DE PRESCRIÇÃO — escolha no create ═══ WebDiet tem 3 métodos: • "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. • "Equivalentes" (UI: "Por equivalentes", URL: metodoWebdiet.php) — avançado. Prescrição por grupos de equivalentes. Requer IDs do banco. • "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). ═══ prescricao_json (para o save) ═══ JSON array de refeições. Cada refeição: {nome, horario, alimentos:[...]}. Cada alimento: {nome, quantidade, medida_caseira, peso_gramas, id?}. AUTO-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. Para 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. Exemplo sem ids (o adapter resolve automaticamente; nomes pouco específicos podem não encontrar match): [{"nome":"Café da Manhã","horario":"07:00","alimentos":[{"nome":"Pão integral","quantidade":"2","medida_caseira":"fatias","peso_gramas":"60"}]}] Exemplo com ids (pula o auto-resolve — ideal quando você já escolheu a variante exata): [{"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"}]}] O save retorna {ok, metodo, warnings[], raw, auto_resolved_foods}. warnings avisa sobre alimentos sem id e alimentos não encontrados no banco. [Flattened action: save] Bulk support: accepts patient_ids, prescription_ids for batched execution.

webdiet_prescription_write_save input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "patient_id"
  ],
  "properties": {
    "nome": {
      "type": "string",
      "default": "Prescrição Alimentar"
    },
    "metodo": {
      "enum": [
        "Convencional",
        "Equivalentes",
        "Qualitativo"
      ],
      "type": "string",
      "default": "Convencional"
    },
    "account": {
      "type": "string"
    },
    "patient_id": {
      "type": "string"
    },
    "patient_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "prescricao_json": {
      "type": "string",
      "default": ""
    },
    "prescription_id": {
      "type": "string",
      "default": ""
    },
    "prescription_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "default": ""
      }
    }
  }
}
webdiet_prescription_write_save annotations
{
  "title": "webdiet_prescription_write_save",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
webdiet_prescription_write_publish
Advertised by the server during the last successful anonymous check.

Create, save or publish meal plan prescriptions in WebDiet. Actions: 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). IMPORTANT: After creating and saving foods, you MUST call publish to make the prescription visible to the patient. ═══ MÉTODO DE PRESCRIÇÃO — escolha no create ═══ WebDiet tem 3 métodos: • "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. • "Equivalentes" (UI: "Por equivalentes", URL: metodoWebdiet.php) — avançado. Prescrição por grupos de equivalentes. Requer IDs do banco. • "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). ═══ prescricao_json (para o save) ═══ JSON array de refeições. Cada refeição: {nome, horario, alimentos:[...]}. Cada alimento: {nome, quantidade, medida_caseira, peso_gramas, id?}. AUTO-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. Para 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. Exemplo sem ids (o adapter resolve automaticamente; nomes pouco específicos podem não encontrar match): [{"nome":"Café da Manhã","horario":"07:00","alimentos":[{"nome":"Pão integral","quantidade":"2","medida_caseira":"fatias","peso_gramas":"60"}]}] Exemplo com ids (pula o auto-resolve — ideal quando você já escolheu a variante exata): [{"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"}]}] O save retorna {ok, metodo, warnings[], raw, auto_resolved_foods}. warnings avisa sobre alimentos sem id e alimentos não encontrados no banco. [Flattened action: publish] Bulk support: accepts patient_ids, prescription_ids for batched execution.

webdiet_prescription_write_publish input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "patient_id"
  ],
  "properties": {
    "nome": {
      "type": "string",
      "default": "Prescrição Alimentar"
    },
    "metodo": {
      "enum": [
        "Convencional",
        "Equivalentes",
        "Qualitativo"
      ],
      "type": "string",
      "default": "Convencional"
    },
    "account": {
      "type": "string"
    },
    "patient_id": {
      "type": "string"
    },
    "patient_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "prescricao_json": {
      "type": "string",
      "default": ""
    },
    "prescription_id": {
      "type": "string",
      "default": ""
    },
    "prescription_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "default": ""
      }
    }
  }
}
webdiet_prescription_write_publish annotations
{
  "title": "webdiet_prescription_write_publish",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
webdiet_food_search
Advertised by the server during the last successful anonymous check.
Advertised read-only

Search WebDiet food database for numeric food ids (needed for full macros in Convencional / metodoPlanning prescriptions). Uses 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). Returns id, nome, grupo, origem, macros (kcal, proteinas, lipidios, carboidratos, fibras), and medidas_caseiras with gram weights.

webdiet_food_search input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "keyword"
  ],
  "properties": {
    "limite": {
      "type": "number",
      "default": 25
    },
    "account": {
      "type": "string"
    },
    "keyword": {
      "type": "string"
    }
  }
}
webdiet_food_search annotations
{
  "title": "webdiet_food_search",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
webdiet_orientacoes_list
Advertised by the server during the last successful anonymous check.
Advertised read-only

Read "Listas e Orientações" (guidelines/orientation lists) in WebDiet. Actions: list (orientation records for a patient), list_banco (orientation bank / favorites — saved templates available to send to any patient). The 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. [Flattened action: list] Bulk support: accepts patient_ids for batched execution.

webdiet_orientacoes_list input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "limite": {
      "type": "number",
      "default": 50
    },
    "account": {
      "type": "string"
    },
    "patient_id": {
      "type": "string"
    },
    "patient_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
webdiet_orientacoes_list annotations
{
  "title": "webdiet_orientacoes_list",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
webdiet_orientacoes_list_banco
Advertised by the server during the last successful anonymous check.
Advertised read-only

Read "Listas e Orientações" (guidelines/orientation lists) in WebDiet. Actions: list (orientation records for a patient), list_banco (orientation bank / favorites — saved templates available to send to any patient). The 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. [Flattened action: list_banco] Bulk support: accepts patient_ids for batched execution.

webdiet_orientacoes_list_banco input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "limite": {
      "type": "number",
      "default": 50
    },
    "account": {
      "type": "string"
    },
    "patient_id": {
      "type": "string"
    },
    "patient_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
webdiet_orientacoes_list_banco annotations
{
  "title": "webdiet_orientacoes_list_banco",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
webdiet_orientacoes_write_save
Advertised by the server during the last successful anonymous check.

Create / update / send "Listas e Orientações" in WebDiet. Actions: save (create/update an orientation for a patient), send (send orientation(s) from the bank to a patient by exact name). save: 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). [Flattened action: save] Bulk support: accepts patient_ids, orientacao_ids for batched execution.

webdiet_orientacoes_write_save input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "patient_id"
  ],
  "properties": {
    "nomes": {
      "type": "string",
      "default": ""
    },
    "texto": {
      "type": "string",
      "default": ""
    },
    "titulo": {
      "type": "string",
      "default": ""
    },
    "account": {
      "type": "string"
    },
    "patient_id": {
      "type": "string"
    },
    "patient_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "orientacao_id": {
      "type": "string",
      "default": ""
    },
    "orientacao_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "default": ""
      }
    }
  }
}
webdiet_orientacoes_write_save annotations
{
  "title": "webdiet_orientacoes_write_save",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
webdiet_orientacoes_write_send
Advertised by the server during the last successful anonymous check.

Create / update / send "Listas e Orientações" in WebDiet. Actions: save (create/update an orientation for a patient), send (send orientation(s) from the bank to a patient by exact name). save: 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). [Flattened action: send] Bulk support: accepts patient_ids, orientacao_ids for batched execution.

webdiet_orientacoes_write_send input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "patient_id"
  ],
  "properties": {
    "nomes": {
      "type": "string",
      "default": ""
    },
    "texto": {
      "type": "string",
      "default": ""
    },
    "titulo": {
      "type": "string",
      "default": ""
    },
    "account": {
      "type": "string"
    },
    "patient_id": {
      "type": "string"
    },
    "patient_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "orientacao_id": {
      "type": "string",
      "default": ""
    },
    "orientacao_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "default": ""
      }
    }
  }
}
webdiet_orientacoes_write_send annotations
{
  "title": "webdiet_orientacoes_write_send",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
webdiet_manipulados_list
Advertised by the server during the last successful anonymous check.
Advertised read-only

Read "Prescrição de manipulados" (compounded/magistral pharmacy formulas) in WebDiet. Actions: - 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. - list → list manipulados already prescribed to a patient (id, nome, data, liberado, pdf_url + pdf_global_url). - get → fetch full HTML content (componentes + doses) of a specific manipulado already prescribed to a patient. For write operations (save / send / publish / duplicate) use webdiet_manipulados_write. For destructive delete use webdiet_manipulados_delete. [Flattened action: list] Bulk support: accepts patient_ids, manipulado_ids for batched execution.

webdiet_manipulados_list input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "limite": {
      "type": "number",
      "default": 50
    },
    "account": {
      "type": "string"
    },
    "keyword": {
      "type": "string",
      "default": ""
    },
    "categoria": {
      "enum": [
        "",
        "suplementos",
        "cosmeceuticos",
        "dermatologicos",
        "extensoes",
        "all"
      ],
      "type": "string",
      "default": ""
    },
    "patient_id": {
      "type": "string"
    },
    "patient_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "manipulado_id": {
      "type": "string",
      "default": ""
    },
    "manipulado_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "default": ""
      }
    },
    "incluir_bloqueados": {
      "type": "boolean",
      "default": false
    }
  }
}
webdiet_manipulados_list annotations
{
  "title": "webdiet_manipulados_list",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
webdiet_manipulados_list_banco
Advertised by the server during the last successful anonymous check.
Advertised read-only

Read "Prescrição de manipulados" (compounded/magistral pharmacy formulas) in WebDiet. Actions: - 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. - list → list manipulados already prescribed to a patient (id, nome, data, liberado, pdf_url + pdf_global_url). - get → fetch full HTML content (componentes + doses) of a specific manipulado already prescribed to a patient. For write operations (save / send / publish / duplicate) use webdiet_manipulados_write. For destructive delete use webdiet_manipulados_delete. [Flattened action: list_banco] Bulk support: accepts patient_ids, manipulado_ids for batched execution.

webdiet_manipulados_list_banco input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "limite": {
      "type": "number",
      "default": 50
    },
    "account": {
      "type": "string"
    },
    "keyword": {
      "type": "string",
      "default": ""
    },
    "categoria": {
      "enum": [
        "",
        "suplementos",
        "cosmeceuticos",
        "dermatologicos",
        "extensoes",
        "all"
      ],
      "type": "string",
      "default": ""
    },
    "patient_id": {
      "type": "string"
    },
    "patient_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "manipulado_id": {
      "type": "string",
      "default": ""
    },
    "manipulado_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "default": ""
      }
    },
    "incluir_bloqueados": {
      "type": "boolean",
      "default": false
    }
  }
}
webdiet_manipulados_list_banco annotations
{
  "title": "webdiet_manipulados_list_banco",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
webdiet_manipulados_get
Advertised by the server during the last successful anonymous check.
Advertised read-only

Read "Prescrição de manipulados" (compounded/magistral pharmacy formulas) in WebDiet. Actions: - 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. - list → list manipulados already prescribed to a patient (id, nome, data, liberado, pdf_url + pdf_global_url). - get → fetch full HTML content (componentes + doses) of a specific manipulado already prescribed to a patient. For write operations (save / send / publish / duplicate) use webdiet_manipulados_write. For destructive delete use webdiet_manipulados_delete. [Flattened action: get] Bulk support: accepts patient_ids, manipulado_ids for batched execution.

webdiet_manipulados_get input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "limite": {
      "type": "number",
      "default": 50
    },
    "account": {
      "type": "string"
    },
    "keyword": {
      "type": "string",
      "default": ""
    },
    "categoria": {
      "enum": [
        "",
        "suplementos",
        "cosmeceuticos",
        "dermatologicos",
        "extensoes",
        "all"
      ],
      "type": "string",
      "default": ""
    },
    "patient_id": {
      "type": "string"
    },
    "patient_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "manipulado_id": {
      "type": "string",
      "default": ""
    },
    "manipulado_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "default": ""
      }
    },
    "incluir_bloqueados": {
      "type": "boolean",
      "default": false
    }
  }
}
webdiet_manipulados_get annotations
{
  "title": "webdiet_manipulados_get",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
webdiet_manipulados_write_save
Advertised by the server during the last successful anonymous check.

Create / send / publish / duplicate manipulados in WebDiet. Actions: - 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. - 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. - publish → toggle liberar/disponibilizar status (makes the formula visible/invisible on the patient portal/app). Server toggles and returns the NEW state. - duplicate → duplicate an existing manipulado (creates a copy "(cópia)"). For destructive delete use webdiet_manipulados_delete. [Flattened action: save] Bulk support: accepts patient_ids, manipulado_ids for batched execution.

webdiet_manipulados_write_save input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "patient_id"
  ],
  "properties": {
    "nome": {
      "type": "string",
      "default": ""
    },
    "nomes": {
      "type": "string",
      "default": ""
    },
    "texto": {
      "type": "string",
      "default": ""
    },
    "account": {
      "type": "string"
    },
    "patient_id": {
      "type": "string"
    },
    "patient_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "manipulado_id": {
      "type": "string",
      "default": ""
    },
    "manipulado_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "default": ""
      }
    }
  }
}
webdiet_manipulados_write_save annotations
{
  "title": "webdiet_manipulados_write_save",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
webdiet_manipulados_write_send
Advertised by the server during the last successful anonymous check.

Create / send / publish / duplicate manipulados in WebDiet. Actions: - 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. - 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. - publish → toggle liberar/disponibilizar status (makes the formula visible/invisible on the patient portal/app). Server toggles and returns the NEW state. - duplicate → duplicate an existing manipulado (creates a copy "(cópia)"). For destructive delete use webdiet_manipulados_delete. [Flattened action: send] Bulk support: accepts patient_ids, manipulado_ids for batched execution.

webdiet_manipulados_write_send input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "patient_id"
  ],
  "properties": {
    "nome": {
      "type": "string",
      "default": ""
    },
    "nomes": {
      "type": "string",
      "default": ""
    },
    "texto": {
      "type": "string",
      "default": ""
    },
    "account": {
      "type": "string"
    },
    "patient_id": {
      "type": "string"
    },
    "patient_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "manipulado_id": {
      "type": "string",
      "default": ""
    },
    "manipulado_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "default": ""
      }
    }
  }
}
webdiet_manipulados_write_send annotations
{
  "title": "webdiet_manipulados_write_send",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
webdiet_manipulados_write_publish
Advertised by the server during the last successful anonymous check.

Create / send / publish / duplicate manipulados in WebDiet. Actions: - 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. - 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. - publish → toggle liberar/disponibilizar status (makes the formula visible/invisible on the patient portal/app). Server toggles and returns the NEW state. - duplicate → duplicate an existing manipulado (creates a copy "(cópia)"). For destructive delete use webdiet_manipulados_delete. [Flattened action: publish] Bulk support: accepts patient_ids, manipulado_ids for batched execution.

webdiet_manipulados_write_publish input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "patient_id"
  ],
  "properties": {
    "nome": {
      "type": "string",
      "default": ""
    },
    "nomes": {
      "type": "string",
      "default": ""
    },
    "texto": {
      "type": "string",
      "default": ""
    },
    "account": {
      "type": "string"
    },
    "patient_id": {
      "type": "string"
    },
    "patient_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "manipulado_id": {
      "type": "string",
      "default": ""
    },
    "manipulado_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "default": ""
      }
    }
  }
}
webdiet_manipulados_write_publish annotations
{
  "title": "webdiet_manipulados_write_publish",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
webdiet_manipulados_write_duplicate
Advertised by the server during the last successful anonymous check.

Create / send / publish / duplicate manipulados in WebDiet. Actions: - 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. - 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. - publish → toggle liberar/disponibilizar status (makes the formula visible/invisible on the patient portal/app). Server toggles and returns the NEW state. - duplicate → duplicate an existing manipulado (creates a copy "(cópia)"). For destructive delete use webdiet_manipulados_delete. [Flattened action: duplicate] Bulk support: accepts patient_ids, manipulado_ids for batched execution.

webdiet_manipulados_write_duplicate input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "patient_id"
  ],
  "properties": {
    "nome": {
      "type": "string",
      "default": ""
    },
    "nomes": {
      "type": "string",
      "default": ""
    },
    "texto": {
      "type": "string",
      "default": ""
    },
    "account": {
      "type": "string"
    },
    "patient_id": {
      "type": "string"
    },
    "patient_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "manipulado_id": {
      "type": "string",
      "default": ""
    },
    "manipulado_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "default": ""
      }
    }
  }
}
webdiet_manipulados_write_duplicate annotations
{
  "title": "webdiet_manipulados_write_duplicate",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
webdiet_manipulados_delete
Advertised by the server during the last successful anonymous check.
Advertised destructive

Permanently delete a manipulado for a patient. Irreversible. Bulk support: accepts patient_ids, manipulado_ids for batched execution.

webdiet_manipulados_delete input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "patient_id",
    "manipulado_id"
  ],
  "properties": {
    "account": {
      "type": "string"
    },
    "patient_id": {
      "type": "string"
    },
    "patient_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "manipulado_id": {
      "type": "string"
    },
    "manipulado_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
webdiet_manipulados_delete annotations
{
  "title": "webdiet_manipulados_delete",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
webdiet_calculo_energetico_list
Advertised by the server during the last successful anonymous check.
Advertised read-only

Read energy expenditure calculations (Cálculo Energético) in WebDiet. Actions: list (all calculations for a patient), get (load saved data). Results: TMB (basal metabolic rate), GET (total energy expenditure) in Kcal/dia and Kcal/kg. [Flattened action: list] Bulk support: accepts patient_ids, calculo_ids for batched execution.

webdiet_calculo_energetico_list input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "account": {
      "type": "string"
    },
    "calculo_id": {
      "type": "string",
      "default": ""
    },
    "patient_id": {
      "type": "string"
    },
    "calculo_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "default": ""
      }
    },
    "patient_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
webdiet_calculo_energetico_list annotations
{
  "title": "webdiet_calculo_energetico_list",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
webdiet_calculo_energetico_get
Advertised by the server during the last successful anonymous check.
Advertised read-only

Read energy expenditure calculations (Cálculo Energético) in WebDiet. Actions: list (all calculations for a patient), get (load saved data). Results: TMB (basal metabolic rate), GET (total energy expenditure) in Kcal/dia and Kcal/kg. [Flattened action: get] Bulk support: accepts patient_ids, calculo_ids for batched execution.

webdiet_calculo_energetico_get input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "account": {
      "type": "string"
    },
    "calculo_id": {
      "type": "string",
      "default": ""
    },
    "patient_id": {
      "type": "string"
    },
    "calculo_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "default": ""
      }
    },
    "patient_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
webdiet_calculo_energetico_get annotations
{
  "title": "webdiet_calculo_energetico_get",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
webdiet_calculo_energetico_write_create
Advertised by the server during the last successful anonymous check.

Create / update energy expenditure calculations in WebDiet. Actions: create (new calculation), save (update existing calculation). Supports 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. Activity factors: 1.0 (none), 1.2 (sedentary), 1.375 (light), 1.55 (moderate), 1.725 (intense), 1.9 (very intense). Injury factors: 1.0 (none) up to 2.0 (burns 70-90%). [Flattened action: create] Bulk support: accepts patient_ids, calculo_ids for batched execution.

webdiet_calculo_energetico_write_create input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "patient_id"
  ],
  "properties": {
    "mlg": {
      "type": "string",
      "default": ""
    },
    "nome": {
      "type": "string",
      "default": "Cálculo Energético"
    },
    "peso": {
      "type": "string",
      "default": ""
    },
    "altura": {
      "type": "string",
      "default": ""
    },
    "account": {
      "type": "string"
    },
    "formula": {
      "type": "string",
      "default": ""
    },
    "calculo_id": {
      "type": "string",
      "default": ""
    },
    "patient_id": {
      "type": "string"
    },
    "calculo_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "default": ""
      }
    },
    "patient_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "fator_injuria": {
      "type": "string",
      "default": "1.000"
    },
    "fator_atividade": {
      "type": "string",
      "default": "1.200"
    }
  }
}
webdiet_calculo_energetico_write_create annotations
{
  "title": "webdiet_calculo_energetico_write_create",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
webdiet_calculo_energetico_write_save
Advertised by the server during the last successful anonymous check.

Create / update energy expenditure calculations in WebDiet. Actions: create (new calculation), save (update existing calculation). Supports 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. Activity factors: 1.0 (none), 1.2 (sedentary), 1.375 (light), 1.55 (moderate), 1.725 (intense), 1.9 (very intense). Injury factors: 1.0 (none) up to 2.0 (burns 70-90%). [Flattened action: save] Bulk support: accepts patient_ids, calculo_ids for batched execution.

webdiet_calculo_energetico_write_save input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "patient_id"
  ],
  "properties": {
    "mlg": {
      "type": "string",
      "default": ""
    },
    "nome": {
      "type": "string",
      "default": "Cálculo Energético"
    },
    "peso": {
      "type": "string",
      "default": ""
    },
    "altura": {
      "type": "string",
      "default": ""
    },
    "account": {
      "type": "string"
    },
    "formula": {
      "type": "string",
      "default": ""
    },
    "calculo_id": {
      "type": "string",
      "default": ""
    },
    "patient_id": {
      "type": "string"
    },
    "calculo_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "default": ""
      }
    },
    "patient_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "fator_injuria": {
      "type": "string",
      "default": "1.000"
    },
    "fator_atividade": {
      "type": "string",
      "default": "1.200"
    }
  }
}
webdiet_calculo_energetico_write_save annotations
{
  "title": "webdiet_calculo_energetico_write_save",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
webdiet_calculo_energetico_delete
Advertised by the server during the last successful anonymous check.
Advertised destructive

Permanently delete an energy expenditure calculation. Irreversible. Bulk support: accepts calculo_ids for batched execution.

webdiet_calculo_energetico_delete input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "calculo_id"
  ],
  "properties": {
    "account": {
      "type": "string"
    },
    "calculo_id": {
      "type": "string"
    },
    "calculo_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
webdiet_calculo_energetico_delete annotations
{
  "title": "webdiet_calculo_energetico_delete",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
webdiet_list_anexos
Advertised by the server during the last successful anonymous check.
Advertised read-only

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. Bulk support: accepts patient_ids for batched execution.

webdiet_list_anexos input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "tipo": {
      "enum": [
        "laminasAnexos",
        "cloudAnexos"
      ],
      "type": "string",
      "default": "laminasAnexos"
    },
    "account": {
      "type": "string"
    },
    "patient_id": {
      "type": "string",
      "default": ""
    },
    "patient_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "default": ""
      }
    }
  }
}
webdiet_list_anexos annotations
{
  "title": "webdiet_list_anexos",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
webdiet_get_upload_command
Advertised by the server during the last successful anonymous check.
Advertised read-only

Returns a ready-to-run curl command that uploads a file directly to the server without reading it into context. RECOMMENDED for large files (images, PDFs, lab results). The flow: 1. Call this tool with the file_path the user provided 2. Execute the returned curl command in your code execution sandbox (or tell the user to run it) 3. The command returns a JSON with a "code" (e.g. "file-a1b2c3d4") 4. Call webdiet_upload_anexo with upload_code=that_code to attach it to the patient This avoids loading large file contents into the conversation context.

webdiet_get_upload_command input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "file_path"
  ],
  "properties": {
    "account": {
      "type": "string"
    },
    "file_name": {
      "type": "string",
      "default": ""
    },
    "file_path": {
      "type": "string"
    }
  }
}
webdiet_get_upload_command annotations
{
  "title": "webdiet_get_upload_command",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
webdiet_upload_anexo
Advertised by the server during the last successful anonymous check.

Upload a file (PDF, image, etc.) to a patient's attachments in WebDiet. Three ways to provide the file (use ONE): 1. upload_code — from webdiet_get_upload_command curl (RECOMMENDED for large files) 2. file_url — direct URL to download the file (e.g. https://example.com/report.pdf) 3. file_base64 — base64-encoded file content (small files only) Supported 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). Bulk support: accepts patient_ids for batched execution.

webdiet_upload_anexo input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "patient_id"
  ],
  "properties": {
    "tipo": {
      "enum": [
        "anexo",
        "cloud",
        "prontuario",
        "antropometria",
        "exame",
        "perfil",
        "evolucao"
      ],
      "type": "string",
      "default": "anexo"
    },
    "account": {
      "type": "string"
    },
    "file_url": {
      "type": "string",
      "default": ""
    },
    "file_name": {
      "type": "string",
      "default": ""
    },
    "nome_anexo": {
      "type": "string",
      "default": ""
    },
    "patient_id": {
      "type": "string"
    },
    "file_base64": {
      "type": "string",
      "default": ""
    },
    "patient_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "upload_code": {
      "type": "string",
      "default": ""
    },
    "salvar_cloud": {
      "type": "boolean",
      "default": false
    }
  }
}
webdiet_upload_anexo annotations
{
  "title": "webdiet_upload_anexo",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
webdiet_list_message_templates
Advertised by the server during the last successful anonymous check.
Advertised read-only

Load patient welcome message templates. Returns the active layout and all available template layouts.

webdiet_list_message_templates input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "tipo": {
      "type": "string",
      "default": "adicionar"
    },
    "account": {
      "type": "string"
    }
  }
}
webdiet_list_message_templates annotations
{
  "title": "webdiet_list_message_templates",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
webdiet_financeiro_list
Advertised by the server during the last successful anonymous check.
Advertised read-only

Read financial records (payments, receipts) in WebDiet. Actions: list (all records in date range — defaults to last 30 days), categories (get available categories for income/expense). Each record includes: id, nome, tipo (entrada=income, saida=expense), categoria, valor, data, observacao, recibo status, and recibo_url when receipt was generated. Use inicio/fim in YYYYMMDDHHmm format to filter by date range (e.g. "202604010000" to "202604302359" for April 2026). [Flattened action: list]

webdiet_financeiro_list input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "fim": {
      "type": "string",
      "default": ""
    },
    "tipo": {
      "enum": [
        "entrada",
        "saida"
      ],
      "type": "string",
      "default": "entrada"
    },
    "inicio": {
      "type": "string",
      "default": ""
    },
    "account": {
      "type": "string"
    }
  }
}
webdiet_financeiro_list annotations
{
  "title": "webdiet_financeiro_list",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
webdiet_financeiro_categories
Advertised by the server during the last successful anonymous check.
Advertised read-only

Read financial records (payments, receipts) in WebDiet. Actions: list (all records in date range — defaults to last 30 days), categories (get available categories for income/expense). Each record includes: id, nome, tipo (entrada=income, saida=expense), categoria, valor, data, observacao, recibo status, and recibo_url when receipt was generated. Use inicio/fim in YYYYMMDDHHmm format to filter by date range (e.g. "202604010000" to "202604302359" for April 2026). [Flattened action: categories]

webdiet_financeiro_categories input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "fim": {
      "type": "string",
      "default": ""
    },
    "tipo": {
      "enum": [
        "entrada",
        "saida"
      ],
      "type": "string",
      "default": "entrada"
    },
    "inicio": {
      "type": "string",
      "default": ""
    },
    "account": {
      "type": "string"
    }
  }
}
webdiet_financeiro_categories annotations
{
  "title": "webdiet_financeiro_categories",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
webdiet_financeiro_write
Advertised by the server during the last successful anonymous check.

Create financial records in WebDiet. tipo: "entrada" for income (e.g. consultation payment received), "saida" for expense. Default income categories: Consulta, Retorno. Default expense categories: Internet, Aluguel. Use nova_cat to create a custom category. valor 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). parcelas: number of installments (default 1). For installments, dataCobranca is the first billing date. For destructive delete use webdiet_financeiro_delete. Bulk support: accepts patient_ids for batched execution.

webdiet_financeiro_write input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "patient_id",
    "valor"
  ],
  "properties": {
    "cpf": {
      "type": "string",
      "default": ""
    },
    "data": {
      "type": "string",
      "default": ""
    },
    "nome": {
      "type": "string"
    },
    "tipo": {
      "enum": [
        "entrada",
        "saida"
      ],
      "type": "string",
      "default": "entrada"
    },
    "forma": {
      "type": "string",
      "default": ""
    },
    "valor": {
      "type": "string"
    },
    "account": {
      "type": "string"
    },
    "horario": {
      "type": "string",
      "default": ""
    },
    "nova_cat": {
      "type": "string",
      "default": ""
    },
    "parcelas": {
      "type": "string",
      "default": "1"
    },
    "categoria": {
      "type": "string",
      "default": "Consulta"
    },
    "observacao": {
      "type": "string",
      "default": ""
    },
    "patient_id": {
      "type": "string"
    },
    "patient_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "dataCobranca": {
      "type": "string",
      "default": ""
    }
  }
}
webdiet_financeiro_write annotations
{
  "title": "webdiet_financeiro_write",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
webdiet_financeiro_delete
Advertised by the server during the last successful anonymous check.
Advertised destructive

Permanently delete a financial record. Irreversible. Bulk support: accepts financeiro_ids for batched execution.

webdiet_financeiro_delete input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "financeiro_id"
  ],
  "properties": {
    "account": {
      "type": "string"
    },
    "financeiro_id": {
      "type": "string"
    },
    "financeiro_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
webdiet_financeiro_delete annotations
{
  "title": "webdiet_financeiro_delete",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
webdiet_recibo
Advertised by the server during the last successful anonymous check.

Generate or update a receipt (recibo) for a financial record in WebDiet. Pass 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]. After generating, the recibo_url in the financial record will point to the PDF receipt. Returns the receipt PDF URL that can be shared with the patient. Bulk support: accepts financeiro_ids for batched execution.

webdiet_recibo input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "financeiro_id",
    "nome"
  ],
  "properties": {
    "nome": {
      "type": "string"
    },
    "account": {
      "type": "string"
    },
    "dados_recibo": {
      "type": "string",
      "default": "[]"
    },
    "financeiro_id": {
      "type": "string"
    },
    "financeiro_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
webdiet_recibo annotations
{
  "title": "webdiet_recibo",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
show_version
Advertised by the server during the last successful anonymous check.
Advertised read-only

Show the current MCP platform and adapter versions.

show_version input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
show_version annotations
{
  "title": "Show Version",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
report_bug
Advertised by the server during the last successful anonymous check.

Report a bug, missing feature, or send feedback. Include the conversation array with recent messages for reproduction.

report_bug input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "message"
  ],
  "properties": {
    "context": {
      "type": "string",
      "default": ""
    },
    "message": {
      "type": "string"
    },
    "conversation": {
      "type": "string",
      "default": "[]"
    }
  }
}
report_bug annotations
{
  "title": "Report Bug",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
connect
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

connect input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
connect annotations
{
  "title": "Connection Status",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
toolkit_info
Advertised by the server during the last successful anonymous check.
Advertised read-only

Returns the current toolkit state: installed MCPs, their connection status, the accounts connected to each one, and how many catalog tools each exposes.

toolkit_info input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
toolkit_info annotations
{
  "title": "Toolkit Info",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
marketplace
Advertised by the server during the last successful anonymous check.
Open-world

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.

marketplace input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "limit": {
      "type": "number",
      "default": 10
    },
    "query": {
      "type": "string",
      "default": ""
    },
    "action": {
      "enum": [
        "search",
        "describe",
        "install",
        "uninstall",
        "subscribe",
        "cancel",
        "resume",
        "report_bug",
        "request_mcp",
        "list_tools",
        "invoke",
        "search_prompts",
        "get_prompt",
        "publish_prompt"
      ],
      "type": "string",
      "default": "search"
    },
    "mcp_id": {
      "type": "string",
      "default": ""
    },
    "message": {
      "type": "string",
      "default": ""
    },
    "tool_id": {
      "type": "string",
      "default": ""
    },
    "arguments": {
      "type": "string",
      "default": "{}"
    },
    "immediate": {
      "type": "boolean",
      "default": false
    },
    "tier_slug": {
      "type": "string",
      "default": ""
    },
    "prompt_body": {
      "type": "string",
      "default": ""
    },
    "prompt_slug": {
      "type": "string",
      "default": ""
    },
    "prompt_tool": {
      "type": "string",
      "default": ""
    },
    "prompt_vars": {
      "type": "string",
      "default": "{}"
    },
    "conversation": {
      "type": "string",
      "default": "[]"
    },
    "prompt_title": {
      "type": "string",
      "default": ""
    },
    "request_name": {
      "type": "string",
      "default": ""
    },
    "cancel_reason": {
      "enum": [
        "too_expensive",
        "missing_features",
        "switched_service",
        "unused",
        "customer_service",
        "too_complex",
        "low_quality",
        "other"
      ],
      "type": "string"
    },
    "cancel_comment": {
      "type": "string",
      "default": ""
    },
    "prompt_targets": {
      "type": "array",
      "items": {
        "enum": [
          "claude",
          "chatgpt",
          "cursor",
          "lovable"
        ],
        "type": "string"
      },
      "default": []
    },
    "report_context": {
      "type": "string",
      "default": ""
    },
    "prompt_category": {
      "type": "string",
      "default": ""
    },
    "request_details": {
      "type": "string",
      "default": ""
    },
    "prompt_description": {
      "type": "string",
      "default": ""
    }
  }
}
marketplace annotations
{
  "title": "Marketplace",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
authenticate
Advertised by the server during the last successful anonymous check.

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.

authenticate input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "token": {
      "type": "string"
    }
  }
}
authenticate annotations
{
  "title": "Authenticate",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
534 ms
95th percentile latency
534 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 534 ms · metadata changed · 62 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http webdiet-mcp https://api.mcp.ai/p_webdiet

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add webdiet-mcp --url https://api.mcp.ai/p_webdiet

Cursor

Merge this server into .cursor/mcp.json in your project, then enable webdiet-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "webdiet-mcp": {
      "url": "https://api.mcp.ai/p_webdiet"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "webdiet-mcp": {
      "type": "streamableHttp",
      "url": "https://api.mcp.ai/p_webdiet",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start webdiet-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "webdiet-mcp": {
      "type": "http",
      "url": "https://api.mcp.ai/p_webdiet"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http webdiet-mcp https://api.mcp.ai/p_webdiet

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://api.mcp.ai/p_webdiet

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "webdiet-mcp": {
      "serverUrl": "https://api.mcp.ai/p_webdiet"
    }
  }
}

Let your agent find its tools

Find servers like mcp-dir WebDiet MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.