Skip to main content
Glama

Server Details

Patient, meal plan, prescription, chart and anthropometry management for dietitians.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
mcp-dir/webdiet-mcp
GitHub Stars
0
Server Listing
WebDiet

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsB

Average 3.8/5 across 62 of 62 tools scored. Lowest: 2.2/5.

Server CoherenceC
Disambiguation3/5

Tools are split by action (e.g., separate list, get, write tools for each resource), which makes boundaries somewhat clear, but the sheer number of similar tools (62 total) and repeated descriptions create confusion. An agent must carefully read each tool to pick the correct one, especially when multiple write tools exist for the same resource.

Naming Consistency2/5

Naming conventions are inconsistent. Some tools use `webdiet_<resource>_write_<action>`, others use `webdiet_<resource>_<action>` (e.g., `webdiet_calculo_energetico_write_create` vs. `webdiet_create_antropometria`). There are also tools like `webdiet_food_search` that break the pattern. This makes it hard to predict tool names.

Tool Count2/5

62 tools is excessive for a nutritionist platform. Many action variants (list, get, create, save, publish, delete, etc.) are split into separate tools rather than parameterized within a single tool. This bloats the tool list and could be consolidated to ~20-30 tools without losing functionality.

Completeness4/5

The server covers a very wide range of features: patient management, anamnesis, anthropometry, energy calculations, prescriptions (with multiple methods), financials, pre-consultation questionnaires, orientations, food search, file upload, and more. Minor gaps exist (e.g., no explicit tool for meal reactions), but overall the surface is comprehensive for its domain.

Available Tools

62 tools
authenticateA
Idempotent
Inspect

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: "" } after the user pastes, or with no args to get the link.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenNo
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare idempotentHint=true and non-destructive, so description adds little behavioral context beyond token handling. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is informative and front-loaded, though slightly verbose; every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description explains the two authentication methods adequately, though it could mention what the tool returns (e.g., success confirmation).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage for the token parameter, but the description explains it is a JWT for session login and also covers the no-arg case, compensating well.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool is for authentication, specifying two methods (permanent config header vs session token) and distinguishing itself from sibling tools like 'connect'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use the tool and how to use it (with or without token parameter), but does not explicitly mention when not to use it or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

connectA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description adds value by detailing response states (authenticated vs missing credentials) and the presence of connect_url. This provides behavioral context beyond safe read.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences with key information front-loaded. Every part is meaningful and there is no extraneous content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, the description fully explains the return values (authenticated, pending, connect_url) for different states. This is sufficient for a simple status check tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, so the description correctly adds no parameter information. With 100% schema coverage and no parameters, it meets the baseline expectation for a parameterless tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Returns connection status and URLs,' which is a specific verb and resource. It distinguishes itself from siblings like 'authenticate' by focusing on status rather than performing authentication.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for checking connection status but does not explicitly mention when to use this tool versus alternatives like 'authenticate' or when not to use it. There is no guidance on prerequisites or context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

marketplaceAInspect

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/ link that opens without login.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryNo
actionNosearch
mcp_idNo
messageNo
tool_idNo
argumentsNo{}
immediateNo
tier_slugNo
prompt_bodyNo
prompt_slugNo
prompt_toolNo
prompt_varsNo{}
conversationNo[]
prompt_titleNo
request_nameNo
cancel_reasonNo
cancel_commentNo
prompt_targetsNo
report_contextNo
prompt_categoryNo
request_detailsNo
prompt_descriptionNo
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the sparse annotations, the description discloses key behavioral traits: invoke works without installing and does not bloat the toolkit, install makes an MCP permanent, writes require workspace owner/admin, and invoke returns connect/checkout links when needed. These details go well beyond readOnlyHint and destructiveHint, and there is no contradiction with the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but justified by the tool's 14 actions. It is front-loaded with purpose and core flow, then organized into main use cases and the prompt library. There is little filler, though the density of semicolon-joined clauses makes it slightly harder to parse than ideal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a broad orchestrator with no output schema and many optional parameters, the description covers the key contexts: catalog search, one-off invocation, installation, billing, auth, and prompt library. It does not specify return formats or per-action output details, but given the tool's openWorldHint and multi-purpose nature, the provided context is strong.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 23 parameters and 0% schema description coverage, the description must compensate. It does explain the central action enum and maps the search/describe/invoke flow to concepts like mcp_id and tool_id, but many other parameters (limit, immediate, tier_slug, cancel_reason, prompt_targets, report_context, etc.) remain undefined. The description is helpful but not sufficient for full parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is highly specific and immediately establishes the tool as the mcp.ai marketplace: 'the in-platform catalog of every MCP/tool, AND the way to run them.' It gives concrete example queries and distinguishes the tool from the sibling webdiet tools, making its purpose unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit workflow guidance: search → describe → invoke, and clearly contrasts invoke vs install ('prefer invoke for a single/occasional use') and explain when to use request_mcp ('when nothing fits'). It also covers auth requirements and retry flows for credentials/payment, which is exemplary when-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

report_bugA
Idempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
contextNo
messageYes
conversationNo[]
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate idempotentHint=true and destructiveHint=false, and the description adds value by specifying the need to include conversation for reproduction, beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with one sentence and an instruction, but lacks explicit structuring for parameters. It is front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 3 parameters and no output schema, the description covers purpose and a key usage hint but misses explaining the 'context' parameter and what happens after reporting, making it adequate but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description should compensate. It only mentions the 'conversation' parameter partially and omits details on 'context' and 'message', leaving significant gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reports bugs, missing features, or feedback, which is a specific verb-resource pair. It distinguishes itself from siblings; no other sibling tool covers reporting issues.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description instructs to include the conversation array, providing clear context for usage. Since there are no alternative reporting tools, explicit exclusions are unnecessary.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

show_versionA
Read-onlyIdempotent
Inspect

Show the current MCP platform and adapter versions.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=true, destructiveHint=false, and idempotentHint=true, which fully describe the tool's safe, read-only behavior. The description adds no additional behavioral context, but does not contradict annotations either.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence with no extraneous words. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, parameterless read-only tool with no output schema, the description is fully complete. It states exactly what the tool returns (platform and adapter versions).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters and schema coverage is 100%, so the description does not need to add parameter information. It could explicitly state 'takes no arguments', but the schema already makes this clear.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Show the current MCP platform and adapter versions', specifying the verb (show) and the resource (versions). It is distinct from all sibling tools, which perform various CRUD operations on different entities.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use (when version info is needed) and there are no similar sibling tools to cause confusion. No explicit alternatives are given, but none are necessary given the tool's simplicity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

toolkit_infoA
Read-onlyIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, and the description confirms it is a read operation. However, the description does not disclose any additional behavioral traits such as authentication requirements, response size, or potential delays. It adds only surface-level context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence of 15 words with no redundancy. Every word adds value, making it both concise and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters and no output schema, the description is adequately complete for its purpose. It specifies exactly what the tool returns (MCPs, connection status, catalog tools count) and is sufficient for an agent to understand the tool's function.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and the schema coverage is 100% (trivially). Per guidelines, baseline for 0 params is 4. The description adds no parameter information, but none is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns the current toolkit state, including installed MCPs, connection status, and number of catalog tools each exposes. It uses a specific verb ('Returns') and defines the resource, distinguishing it from sibling tools like show_version or authenticate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage (to check toolkit state) but provides no explicit guidance on when to use this tool versus alternatives, nor any when-not-to-use conditions. Given the large number of sibling tools, more explicit guidance would help.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_anamneseA
Read-onlyIdempotent
Inspect

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 (......) preserved for rich rendering

  • interpretacao / interpretacao_html → nutritionist's notes when present WebDiet stores the answers as URL-encoded HTML (questionanswer); 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountNo
patient_idYes
patient_idsNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. Description adds that it decodes URL-encoded HTML and provides both plain-text and HTML representations. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is relatively concise with a few sentences and bullet points. Front-loaded with main action. Includes some internal data representation details that could be trimmed, but overall efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema provided, but description explains return fields adequately. Covers main use case, bulk support, and decoding behavior. Sufficient for a read-only tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 3 params with 0% description coverage. Description adds meaning by explaining patient_id is required and patient_ids for batched execution, but does not detail the account parameter. Compensates somewhat but not fully.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it lists anamnesis records with full Q/A content, specifies returned fields, and distinguishes from sibling tool webdiet_preconsulta.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to use vs. webdiet_preconsulta for not-yet-linked responses, and mentions bulk support via patient_ids. Does not explicitly state when not to use, but context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_anamnese_deleteA
Destructive
Inspect

Permanently delete an anamnesis record in WebDiet. Irreversible.

Bulk support: accepts patient_ids, anamnese_ids for batched execution.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountNo
patient_idYes
anamnese_idYes
patient_idsNo
anamnese_idsNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide destructiveHint=true. The description adds 'Irreversible' and 'bulk support', which reinforces the permanent nature. No additional behavioral traits (e.g., side effects, auth needs) are disclosed, but the annotations carry the safety burden. Acceptable for a simple delete operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise: two sentences, front-loaded with the core action. Every word adds value, no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 5 parameters (0% schema description), no output schema, and is destructive, the description is too sparse. It does not explain the return value, prerequisites (e.g., account authentication), or how to use the singular required parameters. Sibling tools are clearly related, but the description lacks differentiation details beyond name.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 0%, so the description must explain parameters. It mentions 'patient_ids, anamnese_ids for batched execution' but does not clarify the singular required parameters (patient_id, anamnese_id) or the account parameter. This leaves ambiguity about how to perform single vs. bulk deletions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('permanently delete') and the resource ('anamnesis record'), and explicitly mentions irreversibility. It distinguishes from sibling tools like webdiet_anamnese (list/get) and webdiet_anamnese_write_save (create/update) by focusing on deletion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description indicates when to use the tool (for deletion, including bulk operations via patient_ids and anamnese_ids). It lacks explicit when-not-to-use or alternative tools, but the context and name make usage clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_anamnese_write_duplicateAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
textoNo
tituloNo
accountNo
patient_idYes
anamnese_idNo
patient_idsNo
anamnese_idsNo
interpretacaoNo
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description states it's a write (non-destructive) and duplicate action, but does not detail side effects, auth requirements, or behavior with bulk inputs. Annotations provide basic hints, no contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose stated first, then actions and bulk. Some redundancy (flattened action note), but no excessive wording. Could be more streamlined.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Lacks explanation of most parameters, return behavior, and details on duplicate process. With low schema coverage and no output schema, agent is left with ambiguity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Low schema coverage and description only hints at bulk usage of patient_ids/anamnese_ids, leaving most parameters (texto, titulo, account, interpretacao) unexplained. Agent cannot infer how to fill parameters without guessing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it duplicates anamnesis records, lists actions but flattens to duplicate, and distinguishes from sibling tools like webdiet_anamnese_delete and other write variants.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States duplication purpose, references destructive deletion tool, implies save variants exist as siblings. Lacks explicit when-not advice but enough context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_anamnese_write_saveAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
textoNo
tituloNo
accountNo
patient_idYes
anamnese_idNo
patient_idsNo
anamnese_idsNo
interpretacaoNo
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is a write operation (readOnlyHint=false, destructiveHint=false). The description adds value by specifying that the tool handles creation and update, and explicitly references the delete sibling for destructive actions. It also mentions bulk execution. However, it lacks details on side effects (e.g., whether it replaces or merges data), return values, or authorization requirements, leaving some behavioral aspects undisclosed beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the primary purpose and key actions. It is reasonably concise but includes some extraneous details (e.g., listing all actions when the tool is for 'save' only). The structure is logical, with the main purpose first, followed by clarification of the flattened action and bulk support. A slight reduction in redundancy could improve conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (8 parameters, 1 required, no output schema), the description covers the core operation and bulk support but lacks explanations for multiple parameters (`texto`, `titulo`, `account`). It also does not describe return values or post-conditions. While adequate for basic use, gaps in parameter semantics and behavioral details reduce completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must compensate. It explains the role of `anamnese_id` (empty = new), and bulk support for `patient_ids` and `anamnese_ids`. However, it omits explanations for `texto`, `titulo`, `account`, and `interpretacao` (though `interpretacao` may relate to a sibling tool). This leaves several parameters semantically unclear, limiting the agent's ability to use them correctly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Create / update anamnesis records in WebDiet.' It specifies the action (save, create/update) and the resource (anamnesis records). It distinguishes from the sibling `webdiet_anamnese_delete` for destructive removal, and the mention of 'Flattened action: save' clarifies that this tool focuses on the save operation, differentiating it from other write actions like duplicate and save_interpretation which are separate sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool (to create or update anamnesis records) and explicitly directs users to `webdiet_anamnese_delete` for destructive removal. It also notes bulk support via patient_ids and anamnese_ids. However, it does not detail prerequisites (e.g., patient existence) or limitations, nor does it explicitly contrast with sibling write tools beyond the delete hint.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_anamnese_write_save_interpretationAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
textoNo
tituloNo
accountNo
patient_idYes
anamnese_idNo
patient_idsNo
anamnese_idsNo
interpretacaoNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations do not contradict (readOnlyHint=false, destructiveHint=false). The description adds that the action can create or update based on anamnese_id, and supports batch execution via patient_ids/anamnese_ids. This provides useful behavioral context beyond annotations, though idempotency or error handling is not mentioned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the main purpose, then lists actions, destructive alternative, and bulk support. It is relatively concise (5 sentences) with no redundant information. A bit more structure could improve readability, but it's effective.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 8 parameters, no output schema, and 0% schema coverage, the description covers the action logic and bulk capability but lacks details on return values, error conditions, and the effect of missing optional fields. The required parameter (patient_id) is not highlighted. Thus, completeness is moderate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% (no parameter descriptions in JSON schema). The description adds meaning for 'interpretacao' (interpretation field) and explains that anamnese_id empty means new record, and mentions batch parameters. However, parameters like texto, titulo, account remain unexplained, which is a gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates/updates anamnesis records with a flattened action of save_interpretation. It distinguishes from destructive deletion and other write tools (save, duplicate) by naming them explicitly, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear alternative for destructive removal (webdiet_anamnese_delete) and implies when to use this tool (for saving interpretations). However, it does not explicitly compare with sibling write tools like webdiet_anamnese_write_save or webdiet_anamnese_write_duplicate, which are separate tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_antropometria_getA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountNo
patient_idNo
patient_idsNo
antropometria_idNo
antropometria_idsNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds value beyond annotations: explains that the tool can list or get records, describes specific measurements returned (weight, height, skinfolds, etc.), includes direct URL field, and mentions batch execution. However, it does not clarify how the tool determines which action to perform based on input parameters, leaving some behavioral ambiguity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Relatively concise at around 100 words with clear sections: purpose, actions, included fields, alternatives, bulk support. The 'Flattened action: get' line is slightly out of place and could be removed. Otherwise well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers many details: returned fields for both list and get, bulk capabilities, linking to external system. However, it lacks output schema and does not explain how to differentiate list vs get via parameters, nor does it describe units or interpretation of measurements. Additional context about response format and edge cases would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must compensate. It explains that patient_ids and antropometria_ids are for batched execution, and implies that patient id parameters trigger list while antropometria_id triggers get. However, it does not explicitly map each parameter to its role or explain the behavior when multiple parameter types are provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Read anthropometry records' with specific verb and resource. It lists two actions (list and get) and distinguishes from create/save siblings by explicitly naming webdiet_create_antropometria and webdiet_save_antropometria. However, it does not differentiate from the sibling webdiet_antropometria_list, leaving ambiguity about overlap.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit direction for when to use this tool vs create/save tools. Also mentions bulk support with patient_ids and antropometria_ids. However, it lacks guidance on when to use this tool versus the existing webdiet_antropometria_list sibling, and does not explain under what circumstances to use list vs get actions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_antropometria_listA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountNo
patient_idNo
patient_idsNo
antropometria_idNo
antropometria_idsNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool as readOnly, idempotent, and non-destructive. The description adds behavioral detail about return fields (url, measurements) and bulk support, which is valuable context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured: summary, action breakdown, URL note, usage guidance, bulk support. It is informative but could be slightly tighter. However, it is not verbose and each sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description explains return fields for both list and get, including the URL. It covers bulk support and mentions necessary IDs. Lacks explicit mention of account parameter, but overall adequate for a read tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so description must explain parameters. It mentions patient_ids and antropometria_ids for bulk, but does not describe account, patient_id, or antropometria_id. The purpose implies patient_id, but explicit schema details are missing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it reads anthropometry records and distinguishes between list and get actions. It explicitly says 'Use this to analyze patient body composition evolution over time,' and contrasts with create/save tools, making purpose unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use: 'analyze patient body composition evolution over time.' Also gives specific alternatives for writing: 'For creating/saving records, use webdiet_create_antropometria + webdiet_save_antropometria.' This fully clarifies when not to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_calculo_energetico_deleteA
Destructive
Inspect

Permanently delete an energy expenditure calculation. Irreversible.

Bulk support: accepts calculo_ids for batched execution.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountNo
calculo_idYes
calculo_idsNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide destructiveHint: true, and the description reinforces this with 'Permanently delete' and 'Irreversible.' It adds the bulk execution detail beyond annotations, but lacks disclosure of other behavioral aspects like permissions or error states.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no wasted words. The first sentence front-loads the primary purpose and irreversibility, and the second adds bulk support information efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a delete tool with no output schema and three parameters, the description covers the main action and bulk variant but omits explanation of the 'account' parameter and does not describe the expected response on success, leaving some contextual gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains the array parameter 'calculo_ids' for bulk use but does not clarify the single 'calculo_id' or the 'account' parameter, leaving gaps in understanding for all three parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Permanently delete an energy expenditure calculation. Irreversible.' The verb 'delete' and resource 'energy expenditure calculation' are explicit, and the qualifiers distinguish it from sibling tools like webdiet_calculo_energetico_get or webdiet_calculo_energetico_list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions 'Bulk support: accepts calculo_ids for batched execution,' which provides guidance for using the bulk variant. However, it does not explicitly state when not to use the tool or compare it to other delete tools, leaving some context implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_calculo_energetico_getB
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountNo
calculo_idNo
patient_idNo
calculo_idsNo
patient_idsNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only and idempotent. The description adds valuable behavioral details: it returns TMB and GET in specific units, and supports batch execution via patient_ids and calculo_ids. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is relatively short but contains redundant notes (e.g., '[Flattened action: get]') and an unnecessary action list that misaligns with the tool name. Could be more succinct and focused on the get action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output fields are described, but missing details like required parameter combinations, error cases, or response format. With no output schema, the description should provide more context. Adequate for a simple tool but leaves gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must explain parameters. It only mentions patient_ids and calculo_ids for batch, but does not clarify account, calculo_id, or patient_id individually, nor their combinations. Incomplete parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool reads energy expenditure calculations (Cálculo Energético) and specifies it returns TMB and GET. However, it mentions both 'list' and 'get' actions, which is confusing because a separate sibling tool exists for listing. The flattening note adds ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus the sibling 'webdiet_calculo_energetico_list' or other alternatives. The description implies it can both list and get, but the sibling list tool suggests this should only be for getting by ID. Lack of clear usage boundaries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_calculo_energetico_listA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountNo
calculo_idNo
patient_idNo
calculo_idsNo
patient_idsNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=true and destructiveHint=false, and the description aligns with 'Read' behavior. It adds useful context about returned data (TMB, GET) beyond annotations. No contradictions; the description enhances transparency with specific result details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is relatively short but includes some redundancy (e.g., Portuguese translation, 'Flattened action: list'). It could be more streamlined without losing clarity. Every sentence serves a purpose, but structural improvement could reduce noise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 5 parameters, 0% schema coverage, and no output schema, the description should provide more context on parameter usage and output format. It mentions result fields but not how they are returned, and fails to explain the interplay between patient_id/patient_ids and calculo_id/calculo_ids.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It mentions patient_ids and calculo_ids for batch, but does not explain account, calculo_id, or patient_id individually. The relationship between singular and plural parameters is unclear, leaving significant gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as reading energy expenditure calculations, with actions list and get, and mentions specific result fields (TMB, GET in Kcal/dia and Kcal/kg). It distinguishes from siblings like webdiet_calculo_energetico_get and webdiet_calculo_energetico_delete via explicit action naming.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions bulk support and implies list vs get, but does not provide explicit guidance on when to use this tool over alternatives or when not to use it. It lacks contextual cues for scenarios beyond the basic action distinction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_calculo_energetico_write_createCInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
mlgNo
nomeNoCálculo Energético
pesoNo
alturaNo
accountNo
formulaNo
calculo_idNo
patient_idYes
calculo_idsNo
patient_idsNo
fator_injuriaNo1.000
fator_atividadeNo1.200
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false, destructiveHint=false, so the agent knows it's a write operation. The description adds value by listing available formulas and factors, but does not disclose side effects, authentication needs, or any constraints beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is relatively concise, with a clear list of supported formulas and factors. However, it includes an internal note '[Flattened action: create]' which is irrelevant for the agent and adds clutter. The structure is adequate but not optimal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (12 parameters, multiple formulas/factors) and absence of output schema, the description should explain return values or response behavior. It only mentions bulk support but does not detail the output. Annotations are minimal, so the description fails to complete the picture.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%. The description mentions concepts like formulas and activity factors but does not map them to specific parameters (e.g., 'mlg', 'peso'). The agent cannot infer meaning or constraints from the description alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Create / update energy expenditure calculations in WebDiet' with specific verbs and resource. It lists supported formulas and factors. However, it does not differentiate from the sibling 'webdiet_calculo_energetico_write_save', which could cause confusion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the actions (create, save) and mentions bulk support, but it does not provide when to use this tool versus alternatives (e.g., the sibling write_save tool). It also lacks guidance on prerequisites or conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_calculo_energetico_write_saveAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
mlgNo
nomeNoCálculo Energético
pesoNo
alturaNo
accountNo
formulaNo
calculo_idNo
patient_idYes
calculo_idsNo
patient_idsNo
fator_injuriaNo1.000
fator_atividadeNo1.200
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false, consistent with create/update. The description adds behavioral context: actions, bulk support, and details on formula/factor selection, enhancing transparency beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured: starts with purpose and actions, then lists supported formulas and factors, and ends with bulk support. It is informative without being overly verbose, though it could tighten some repetitive lists.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of output schema and 12 parameters, the description covers core behavior and bulk features but omits parameter-level details and return values. It is sufficient for basic usage but not fully comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema coverage, the description partially compensates by explaining formula, activity factor, and injury factor values. However, it does not explain other parameters like mlg, nome, peso, altura, leaving some ambiguity. Adequate but incomplete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Create / update energy expenditure calculations in WebDiet.' It specifies actions (create, save) and lists supported formulas and factors, making its function unambiguous and distinct from siblings like write_create.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage based on actions: create for new, save for existing. It does not explicitly contrast with the sibling write_create tool, but the action differentiation is clear enough for an AI agent to infer when to use this combined tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_create_antropometriaAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataNo
tipoNoadulto
accountNo
patient_idYes
patient_idsNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate it is not read-only, not destructive, and not idempotent, which aligns with a create operation. The description adds behavioral context: it returns a record ID and supports bulk execution. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences that efficiently convey the tool's action, output, type options, and bulk support. Every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 5 parameters, no output schema, and minimal annotations, the description should explain the meaning of all parameters. It only addresses tipo and patient_ids, leaving 'data' and 'account' unexplained, which is a significant gap for correct usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%. The description explains 'tipo' (enumerated types) and mentions 'patient_ids' for bulk execution, but fails to describe the 'data' parameter (a string) and 'account' parameter. 'data' is especially critical as it likely contains the measurement values.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Create a new body measurement record for a patient', providing a specific verb and resource. It distinguishes from sibling tools like webdiet_antropometria_get (get) and webdiet_save_antropometria (save), as it creates and returns an ID needed for saving.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies a workflow: create then save with the returned ID. It mentions bulk support via patient_ids. However, it does not explicitly state when to use this tool versus alternatives (e.g., for updating existing measurements), nor does it provide exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_financeiro_categoriesB
Read-onlyIdempotent
Inspect

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]

ParametersJSON Schema
NameRequiredDescriptionDefault
fimNo
tipoNoentrada
inicioNo
accountNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnly, idempotent, and not destructive. The description adds behavioral details: returns all records in date range (default last 30 days), includes record fields, and date format. No contradictions, and it enriches the agent's understanding of the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is moderately concise but includes extraneous text like '[Flattened action: categories]' which is unclear. It front-loads the purpose but could be streamlined. Each sentence contributes value, but the structure could be tighter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple input schema and absence of output schema, the description provides adequate context: it explains the tool's purpose, actions, record fields, and date format. It covers the essentials for agent usage, though it misses the 'account' parameter and does not mention pagination or limits.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With schema description coverage at 0%, the description compensates somewhat by explaining 'inicio/fim' format and default behavior, and partially describing 'tipo' (entrada/saida with translations). However, 'account' is not explained, and 'inicio'/'fim' defaults are not explicitly documented in the schema. The description adds meaning but leaves gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it reads financial records and lists two actions (list, categories). It specifies the verb 'Read' and the resource 'financial records'. However, the tool name includes 'categories', while the description broadens the purpose to general reading, which could cause confusion. It does not explicitly differentiate from sibling tool 'webdiet_financeiro_list'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the two actions (list and categories) and the default date range, but it provides no guidance on when to use this tool versus alternatives like webdiet_financeiro_list. It lacks explicit when-to-use and when-not-to-use scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_financeiro_deleteA
Destructive
Inspect

Permanently delete a financial record. Irreversible.

Bulk support: accepts financeiro_ids for batched execution.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountNo
financeiro_idYes
financeiro_idsNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description reinforces the destructiveHint annotation with 'Permanently delete' and 'Irreversible', and adds the behavioral detail of bulk support via financeiro_ids. It does not mention related data impact or permissions, but the annotations already signal destructiveness.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: first states purpose, second adds bulk support. No unnecessary words, front-loaded key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers basic purpose and bulk capability but lacks parameter explanations, response details, and clarification on required vs optional fields. For a delete tool with 3 parameters, more context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must explain parameters. It covers financeiro_ids for bulk but does not explain the 'account' parameter or the relationship between financeiro_id (required) and financeiro_ids (optional), creating confusion.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Permanently delete a financial record' and 'Irreversible', specifying the action (delete) and the resource (financial record). This distinguishes it from siblings like webdiet_financeiro_list or webdiet_financeiro_write.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions bulk support via financeiro_ids, guiding users on batch execution. However, it does not explicitly state when to use this tool versus other deletion tools (e.g., webdiet_manipulados_delete) or any prerequisites, such as required permissions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_financeiro_listB
Read-onlyIdempotent
Inspect

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]

ParametersJSON Schema
NameRequiredDescriptionDefault
fimNo
tipoNoentrada
inicioNo
accountNo
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so the safety profile is clear. The description adds behavioral context: default last-30-day range, date format, and record fields. However, it does not discuss pagination, error handling, or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is structured but a bit wordy, including actions, record fields, and date format. The 'Flattened action: list' note is redundant. It could be more concise without losing clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Since no output schema exists, the description appropriately details returned fields. It explains the date format and defaults. While pagination and ordering are absent, the coverage is good for a read list tool. The missing 'account' param detail is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains 'inicio' and 'fim' format and defaults, and 'tipo' enum values. 'account' parameter is not mentioned. Thus, it provides moderate meaning beyond the schema for 3 of 4 parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Read financial records' and specifies it lists records in a date range. It distinguishes from sibling tools like webdiet_financeiro_categories, webdiet_financeiro_delete, and webdiet_financeiro_write, but the mention of 'categories' as an action within the same tool creates minor ambiguity. Overall, the core purpose is clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide explicit guidance on when to use this tool versus alternatives. It does not mention when not to use it or suggest better-suited sibling tools like webdiet_financeiro_categories for category retrieval.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_financeiro_writeAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
cpfNo
dataNo
nomeNo
tipoNoentrada
formaNo
valorYes
accountNo
horarioNo
nova_catNo
parcelasNo1
categoriaNoConsulta
observacaoNo
patient_idYes
patient_idsNo
dataCobrancaNo
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are basic (readOnlyHint: false, destructiveHint: false). The description adds moderate behavioral context: data format (comma for decimals), installment support, and custom categories via nova_cat. However, it does not disclose side effects, authorization needs, or output behavior beyond creation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with five sentences covering all key aspects: purpose, tipos, categories, format, installments, delete alternative, and bulk support. No redundant information; each sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 15 parameters and no output schema, the description covers essential usage nuances (decimal comma, defaults, bulk) but lacks return value information. It is sufficient for creating records, though error handling or confirmation details are absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It explains tipo, valor format, forma, parcelas, dataCobranca, nova_cat, and patient_ids, but many parameters (cpf, data, nome, account, horario, categoria, observacao, patient_id) remain unexplained. The description adds meaningful context but not fully.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Create financial records in WebDiet' and specifies the two tipos (entrada/saida) with examples, distinguishing it from the sibling webdiet_financeiro_delete for destructive operations. It also mentions bulk support, providing a clear scope of the tool's purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use the tool (creating financial records) and explicitly points to webdiet_financeiro_delete for deletion. It gives examples for tipos and categories but does not cover when not to use it for updates or other scenarios, though the context is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_get_consultationsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tipoNodiario
limiteNo
accountNo
patient_idYes
patient_idsNo
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true and destructiveHint=false. The description adds that it loads data and supports bulk execution, but does not elaborate on rate limits, pagination, or other behavioral traits beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with purpose, no wasted words. Highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers main purpose and key parameter (tipo) but misses explaining 'limite' and 'account', which are important for proper usage. No output schema, so description should compensate more for missing parameter details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema coverage, the description adds semantic meaning by detailing the 'tipo' enum values (diario, reacoes, anexos, orientacoes) and bulk support via 'patient_ids', but does not explain 'limite' (likely pagination) or 'account'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it loads food diary entries, meal reactions, attachments, or orientations for a patient. It distinguishes from siblings by being a unified getter, but does not explicitly differentiate from specific list tools like webdiet_list_anexos or webdiet_orientacoes_list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by stating 'Use tipo to select' and mentions bulk support, but provides no guidance on when to prefer this tool over specific list tools or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_get_plannerA
Read-onlyIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNo
accountNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnly and idempotent. The description adds context about what the agenda includes (appointments, overdue tasks, birthdays, events), which is useful beyond the annotations. However, it does not mention authentication needs or return format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with no wasted words. It front-loads the action and lists item types, followed by the default behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has two optional parameters and no output schema, the description tells what it loads but not the return structure or exact parameter semantics. It is adequate for a simple tool but could be more complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%. Description explains 'date' implicitly (defaults to today) but does not specify format or behavior when empty. The 'account' parameter is completely unexplained. With no schema descriptions, the description should provide more detail about parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool loads the nutritionist's calendar/agenda for a date, listing appointments, overdue tasks, birthdays, and events. It distinguishes from siblings like 'webdiet_get_consultations' which likely focuses on consultations only.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for daily overview but does not explicitly mention when to use it vs alternatives like webdiet_get_consultations. No exclusions or prerequisites are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_get_upload_commandA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountNo
file_nameNo
file_pathYes
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true and idempotentHint=true, which are consistent. The description adds behavioral context: the command returns a JSON with a 'code', and the workflow avoids loading large files into context. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is concise yet informative, with a clear flow: states purpose, recommends usage, lists steps, and explains benefit. Every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers the main workflow and return value (curl command with code), but lacks details on error handling, input validation, authentication needs, or the exact format of the curl command. Given the absence of an output schema, more completeness would be helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% (no parameter descriptions in schema). The description only references 'file_path' implicitly, ignoring 'account' and 'file_name'. It does not clarify their purpose or format, failing to compensate for the lack of schema documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool returns a curl command for uploading files, specifies the resource (upload command) and action (returns). It distinguishes from siblings like webdiet_upload_anexo by outlining the two-step process.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly recommends for large files and provides a step-by-step flow. However, it lacks explicit guidance on when not to use this tool (e.g., for small files one could possibly upload directly).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_list_accountsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint and idempotentHint, so the description adds value by detailing the return fields and their meanings (e.g., 'is_default' flag). No contradictions. The description gives useful behavioral context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with two sentences and a note. No fluff, but could be better structured. The information is front-loaded. It earns its sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers return values (id, email, label, is_default, add_account_url) but omits details like pagination or ordering. The 'account' parameter is undocumented. Given no output schema, the description is reasonably complete but has a notable gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage, and the description does not explain the optional 'account' parameter at all. It only mentions 'account' in the context of other tools, leaving the parameter's purpose unclear. The description fails to compensate for schema gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List' and the resource 'all WebDiet accounts linked to this install', and it includes what fields are returned. This distinguishes it from sibling tools like webdiet_patient_list or webdiet_food_search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use this tool (to list accounts) and provides context about the 'is_default' flag for other tools. It also mentions using the returned 'add_account_url' for adding accounts. However, it doesn't explicitly state when not to use this tool or compare to alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_list_anexosA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tipoNolaminasAnexos
accountNo
patient_idNo
patient_idsNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds batch processing capability (accepts patient_ids) and clarifies the attachment types, which goes beyond annotations. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four concise sentences with no fluff. Each sentence adds value: purpose, subtype usage, sibling pointer, and bulk support. Front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 4 parameters, no output schema, and moderate complexity, the description explains the main types and batch capability but ignores 'account' and doesn't clarify singular vs plural patient IDs. Could be more complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so description must compensate. It explains the 'tipo' enum values and the 'patient_ids' array for batch. However, 'account' and the singular 'patient_id' are not described, leaving ambiguity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool loads educational slides or cloud file attachments, specifying the two subtypes and even pointing to a sibling tool for guidelines/orientations. The verb 'list' is implicit but the purpose is unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly describes when to use each tipo (laminasAnexos for educational slides, cloudAnexos for cloud files) and directs users to an alternative for guidelines/orientations. Also mentions bulk support for patient_ids, providing clear decision criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_list_message_templatesA
Read-onlyIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
tipoNoadicionar
accountNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is clear. The description adds value by detailing what is returned (active layout + all templates), which is beyond the annotations. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences: purpose first, return value second. No wasted words, front-loaded, and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description explains the return format reasonably. However, it omits any explanation of parameters or the read-only nature (though annotations cover safety). For a list tool with two parameters, more detail on their function would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, yet the description does not explain the two parameters (tipo and account) or their expected values. The default for 'tipo' is 'adicionar', but no context is given for what this means. The description fails to compensate for the lack of schema documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool loads 'patient welcome message templates' and specifies it returns both the active layout and all available template layouts. This verb+resource combination is specific and distinguishes it from sibling tools like webdiet_preconsulta_list_templates.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use (to load welcome message templates) but provides no explicit guidance on when not to use or how it compares to other list tools among the many webdiet_ siblings. No alternatives are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_manipulados_deleteA
Destructive
Inspect

Permanently delete a manipulado for a patient. Irreversible.

Bulk support: accepts patient_ids, manipulado_ids for batched execution.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountNo
patient_idYes
patient_idsNo
manipulado_idYes
manipulado_idsNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, and the description reinforces with 'Permanently delete' and 'Irreversible', adding behavioral context beyond the boolean hint. It also discloses bulk execution capability, but does not detail authorization needs or side effects beyond deletion itself.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise—two short sentences that immediately convey the core action, irreversibility, and bulk support. No extraneous words; every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive tool with 5 parameters and no output schema, the description covers its destructive nature and bulk capability but lacks parameter-level guidance and does not describe return values or error behavior. It is adequate but leaves gaps that an agent must infer.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must compensate, but it only mentions that 'patient_ids' and 'manipulado_ids' are accepted for batched execution. It does not explain the required single parameters ('patient_id', 'manipulado_id') or the optional 'account' parameter, leaving the agent to infer relationships and usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('permanently delete'), the resource ('a manipulado for a patient'), and its distinct role among siblings (only delete operation for manipulado). This specificity helps an agent differentiate it from list, get, write, and other manipulado tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: it's irreversible ('Permanently delete... Irreversible.') and mentions bulk support via array parameters. However, it does not explicitly state when not to use it (e.g., if soft-delete is preferred) or compare to other tools, but given no sibling delete tool, the guidance is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_manipulados_getC
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limiteNo
accountNo
keywordNo
categoriaNo
patient_idNo
patient_idsNo
manipulado_idNo
manipulado_idsNo
incluir_bloqueadosNo
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint, idempotentHint, destructiveHint. The description adds bulk support but also introduces contradictory behavior by describing list and list_banco actions, which belong to separate sibling tools. This inconsistency undermines transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is overly long, detailing three actions when the tool likely only handles 'get'. The verbosity and duplication with sibling tools reduces conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so description must detail return values. For the 'get' action, it only says 'fetch full HTML content (componentes + doses)', which is vague. Bulk support is mentioned but not fully explained. Given the tool's complexity and multiple implied operations, the description is incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so description must explain parameters. It covers many (keyword, categoria, incluir_bloqueados, patient_id, manipulado_id, patient_ids, manipulado_ids) but omits 'limite' and 'account'. Partial coverage, but adds meaningful context for the listed parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description lists three actions (list_banco, list, get) but the tool name and '[Flattened action: get]' indicate it should only perform 'get'. This confuses the tool's primary purpose, making it unclear whether it handles multiple operations or just one.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions write and delete alternatives but fails to distinguish this tool from the sibling list tools (webdiet_manipulados_list, webdiet_manipulados_list_banco), which it implicitly duplicates. No explicit when-to-use guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_manipulados_listB
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limiteNo
accountNo
keywordNo
categoriaNo
patient_idNo
patient_idsNo
manipulado_idNo
manipulado_idsNo
incluir_bloqueadosNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint, idempotentHint, and destructiveHint. The description adds useful behavioral details like bulk support (patient_ids, manipulado_ids) and the structure of returned items for list_banco, exceeding what annotations offer.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose and disorganized, mixing actions with usage notes and an unclear '[Flattened action: list]' statement. It could be more concise and structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite multiple actions and 9 parameters, the description does not fully explain parameter interactions or return types for all actions (e.g., list and get lack output details). Output schema is absent, so description should cover this but is incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so description must compensate. It explains keyword, categoria, incluir_bloqueados, patient_id, patient_ids, manipulado_id, manipulado_ids but omits limite and account, providing partial but incomplete parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool reads 'Prescrição de manipulados' but lists three actions (list_banco, list, get) while the tool name and '[Flattened action: list]' suggest only list. Sibling tools exist for list_banco and get, causing confusion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description tells when to use write/delete siblings, but fails to mention the existence of webdiet_manipulados_list_banco and webdiet_manipulados_get, leaving ambiguity about which tool to use for the listed actions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_manipulados_list_bancoA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limiteNo
accountNo
keywordNo
categoriaNo
patient_idNo
patient_idsNo
manipulado_idNo
manipulado_idsNo
incluir_bloqueadosNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds valuable context: that it reads from a bank of ~249 pre-built templates, explains the effect of incluir_bloqueados, and describes the returned fields (nome, categoria, texto_html, bloqueado). This goes beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is excessively long and includes details about sibling tools (list, get) and write/delete operations, which are not relevant for this tool's invocation. This bloats the text and reduces focus. While informative, it lacks conciseness and could be streamlined to describe only the list_banco functionality.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of 9 parameters and no output schema, the description is insufficient. It fails to document several parameters (e.g., limite, account) and does not clearly explain why patient-related parameters are present in a bank search tool. The bulk support mention is unclear. More detail is needed for complete understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must compensate. It provides explanations for keyword, categoria, and incluir_bloqueados, but fails to cover limite, account, patient_id, patient_ids, manipulado_id, and manipulado_ids. The bulk support mention gives partial context for patient_ids and manipulado_ids, but it is vague and not connected to the search functionality. Overall, partial but incomplete compensation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reads and searches the WebDiet formula bank ('list_banco → search the WebDiet formula bank'). It distinguishes from sibling tools by explicitly describing what 'list' and 'get' do (list prescribed manipulados, get specific prescribed manipulado), making the purpose distinct and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool (for searching the formula bank) and directs write operations to webdiet_manipulados_write and delete to webdiet_manipulados_delete. However, the mention of 'Bulk support: accepts patient_ids, manipulado_ids for batched execution' is ambiguous and might mislead about the typical use of this tool, slightly lowering the score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_manipulados_write_duplicateCInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nomeNo
nomesNo
textoNo
accountNo
patient_idYes
patient_idsNo
manipulado_idNo
manipulado_idsNo
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate the tool is not read-only and not destructive. The description adds some behavioral context: for duplicate, it creates a copy with '(cópia)'; for publish, it toggles visibility; for send, it skips blocked formulas. However, it does not disclose side effects, permissions, or rate limits, and the flattening note is contradictory.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is structured with bullet points and a flattened action note, but it is verbose and includes redundant information (e.g., listing all actions twice). The last line 'For destructive delete use... [Flattened action: duplicate]' is confusing and could be clearer.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema is provided, and the description only mentions return values for the save action (id and pdf_url). For duplicate and other actions, return types are omitted. Additionally, error handling, prerequisites, and the effect of bulk operations are not described, leaving significant gaps for agent execution.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema coverage, the description must explain parameters. It partially does: for save, it explains 'texto' is raw HTML and 'nome' is formula name; for bulk support, it says patient_ids and manipulado_ids are accepted. However, it does not map parameters to the duplicate action specifically, leaving ambiguity about required fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description lists multiple actions (save, send, publish, duplicate) despite the tool name 'write_duplicate' and the note '[Flattened action: duplicate]'. This creates confusion about the tool's primary purpose and fails to distinguish it from sibling tools like webdiet_manipulados_write_save, webdiet_manipulados_write_send, and webdiet_manipulados_write_publish.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions to use webdiet_manipulados_delete for destructive deletes but does not provide explicit guidance on when to use this tool versus the separate write_save, write_send, or write_publish tools. The inclusion of all actions in the description misleads the agent about which tool to select for a given operation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_manipulados_write_publishAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nomeNo
nomesNo
textoNo
accountNo
patient_idYes
patient_idsNo
manipulado_idNo
manipulado_idsNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses effects beyond annotations: send immediately sets liberado=true, publish toggles and returns new state, save returns id and pdf_url, skip of blocked formulas. The internal note '[Flattened action: publish]' slightly muddies clarity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Long but structured with action breakdown. Mixed Portuguese/English and internal note increase cognitive load. Could be more concise without losing useful detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers return values for save and publish, mentions bulk support, cross-refers siblings. Lacks return details for duplicate and bulk execution, and account parameter is unexplained. Adequate but not fully complete for a complex multi-action tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Despite 0% schema coverage, description explains most parameters: nome, texto, patient_id, manipulado_id, bulk arrays. Missing account parameter. Partial compensation, not full.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates/sends/publishes/duplicates manipulados in WebDiet, listing each action with specifics. It distinguishes from sibling webdiet_manipulados_delete for destructive operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly when to use each action: save for create/update, send as shortcut for prescribir+publicar, publish to toggle visibility, duplicate for copying. Also directs to webdiet_manipulados_delete for deletion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_manipulados_write_saveAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nomeNo
nomesNo
textoNo
accountNo
patient_idYes
patient_idsNo
manipulado_idNo
manipulado_idsNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses mutating behaviors (create, update, toggle, copy) beyond annotations (readOnlyHint=false, destructiveHint=false). It adds context such as send making formulas visible immediately and publish toggling status. No contradictions with annotations. Minor omission: does not detail auth or rate limits, but acceptable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with bullet points for actions and examples. However, the note '[Flattened action: save]' introduces confusion and the text is slightly verbose. Overall, clear and informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (multiple actions, batch support), the description is fairly complete. It mentions return values (id, pdf_url) for save, and bulk support. Lacks details on other actions' returns but sufficient for most use cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema coverage, the description compensates by explaining nome, texto, and manipulado_id. However, parameters account, patient_ids, manipulado_ids are not described, leaving gaps. Partial compensation, but not comprehensive.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates, sends, publishes, or duplicates manipulados, using specific verbs and resources. It distinguishes from the destructive sibling tool webdiet_manipulados_delete, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

For each action (save, send, publish, duplicate), the description explains when to use it (e.g., 'Omit manipulado_id to create; pass it to update') and explicitly advises using the sibling tool for destructive deletion. This provides excellent guidance on alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_manipulados_write_sendAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nomeNo
nomesNo
textoNo
accountNo
patient_idYes
patient_idsNo
manipulado_idNo
manipulado_idsNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false and destructiveHint=false, and the description confirms non-destructive behavior. It reveals specific behaviors: save returns id and pdf_url, send makes formulas immediately visible, publish toggles and returns new state, duplicate creates a copy with '(cópia)'. It also mentions skipping blocked formulas with error messages. This adds value beyond annotations, though more detail on error handling for save/publish could improve.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is organized with a clear list of actions and their details. It front-loads the overall purpose and then uses bullet points for clarity. The 'Flattened action: send' note helps understanding. Some redundancy exists (e.g., explaining publish in both the list and comment), but overall it's well-structured and reasonably concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (multiple actions, bulk support, no output schema), the description covers essential behaviors and return values for each action. It mentions bulk execution and excludes deletion. It lacks explicit details on error handling or limits, but these are not critical for basic usage. The description is sufficient for an agent to understand and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so description carries full burden. It explains key parameters: 'texto' as raw HTML, 'nome' as formula name, 'manipulado_id' for update vs create, and mentions 'patient_ids' and 'manipulado_ids' for bulk. However, parameters like 'account', 'nomes', and default values are not explained. The description adds significant meaning to the most critical params, but somewhat incomplete coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool handles multiple actions (save, send, publish, duplicate) for manipulados, and lists each action's purpose. It distinguishes from the delete sibling tool. However, the name 'write_send' emphasizes 'send' while covering other actions, and sibling tools like webdiet_manipulados_write_publish and webdiet_manipulados_write_duplicate overlap, causing slight ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use each action: save for create/update, send for copying from banco, publish for toggling visibility, duplicate for copying. It explicitly directs destructive deletes to another tool. However, it does not compare this tool's combined actions against the individual sibling action tools (e.g., when to use this send vs. separate publish/duplicate tools).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_orientacoes_listC
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limiteNo
accountNo
patient_idNo
patient_idsNo
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint. The description adds that it supports bulk execution via patient_ids and distinguishes between two actions (list vs list_banco). However, the action distinction may be misleading given the existence of a dedicated list_banco tool, so the added value is moderate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is about 6 sentences, which is moderately concise. However, it includes redundant references to 'list_banco' that are not clearly demarcated as belonging to this tool, and the structure could be improved by separating action definitions more clearly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, but the description does not describe the return format or fields. The bulk support mention is helpful, but details on how to select between actions (list vs list_banco) are missing. The tool's interaction with sibling tools is partially hinted but not fully explained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 0% description coverage; the description only explains the 'patient_ids' parameter for bulk support. 'account', 'limite', and 'patient_id' are undocumented. The description does not compensate for the missing schema explanations, leaving most parameters opaque.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool reads 'Listas e Orientações' and mentions two actions ('list' and 'list_banco'), but this conflates with a sibling tool 'webdiet_orientacoes_list_banco'. The purpose is somewhat clear but muddled by including an action that likely belongs to another tool, reducing clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description suggests using 'list_banco' to view templates before sending via a write tool, but does not explicitly guide when to use this tool versus the separate 'webdiet_orientacoes_list_banco' sibling. No explicit when-not-to-use or alternative selection criteria are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_orientacoes_list_bancoA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limiteNo
accountNo
patient_idNo
patient_idsNo
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint, so the description adds context about the bank's purpose and workflow (saved templates). It does not introduce new behavioral traits beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with about four sentences covering purpose, sibling distinction, workflow, and batch support. It is well-structured with front-loaded purpose, though the 'Actions:' line could be slightly streamlined.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 4 parameters, no output schema, and only partial parameter explanation, the description fails to fully cover what the tool needs and returns. It mentions 'see available names' but not the response structure, leaving incompleteness for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description adds meaning for patient_ids (bulk support) and hints at sending names. However, it does not explain limite, account, or patient_id individually, leaving gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reads 'Listas e Orientações' specifically the orientation bank (favorites). It distinguishes between list_banco (bank) and the sibling list (patient-specific), using specific verbs and resources.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly instructs to use list_banco to see available names before using the write tool to send, and mentions bulk support with patient_ids. It provides clear context but does not explicitly state when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_orientacoes_write_saveCInspect

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 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nomesNo
textoNo
tituloNo
accountNo
patient_idYes
patient_idsNo
orientacao_idNo
orientacao_idsNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds useful behavioral details beyond annotations, such as HTML entity encoding for emojis and title prepending. Annotations already indicate a non-read-only, non-destructive nature, and the description aligns with that without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is relatively concise but includes an unclear 'Flattened action: save' line and redundant information. It could be more structured and remove ambiguity without adding length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema is provided, so the description should explain return values or results, which it does not. It also fails to clarify the scope of the 'send' action within this tool, leaving gaps for an agent in understanding the full tool behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema parameter descriptions, the description partially compensates by explaining 'texto' and 'titulo' behavior, but it does not cover all 8 parameters (e.g., 'nomes', 'account', 'orientacao_id'). The explanation adds value but is incomplete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool can create/update/send 'Listas e Orientações', but the name suggests only 'save', and there is a sibling tool for 'send'. The mention of 'send' action within this tool creates ambiguity about its exact purpose relative to the sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance is given on when to use this tool versus the sibling 'webdiet_orientacoes_write_send'. The description includes 'send' as an action here, which conflicts with the sibling's existence, potentially misleading an agent about tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_orientacoes_write_sendAInspect

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 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nomesNo
textoNo
tituloNo
accountNo
patient_idYes
patient_idsNo
orientacao_idNo
orientacao_idsNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral context beyond annotations: it explains emoji encoding in 'texto', the prepending of <h1> for 'titulo', and bulk support. Annotations already indicate read/write intent (readOnlyHint=false) but the description provides meaningful side-effect details. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description uses a mix of sentences and bullet points, but the structure is somewhat disjointed. The 'Flattened action: send' line interrupts the flow. It is not excessively long but could be more concise and logically organized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (2 actions, 8 parameters, no output schema), the description covers key behaviors but fails to fully explain how to switch between save and send actions or the role of all parameters. Annotations are minimal, and while the description adds some completeness, it is not comprehensive enough for reliable invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the explanation of 'texto' encoding, 'titulo' rendering, and bulk support for patient_ids/orientacao_ids adds value. However, key parameters like 'nomes', 'account', and 'orientacao_id' (singular) remain unexplained. Only about half of the 8 parameters are addressed, leaving gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool can 'Create / update / send Listas e Orientações' which provides a clear verb+resource. However, the mention of two actions (save and send) and the flattened action 'send' creates some ambiguity about the primary function. It does not explicitly distinguish from sibling tool webdiet_orientacoes_write_save, but the context implies this tool specializes in sending.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for sending orientations from the bank to a patient by exact name, and mentions bulk support. However, it does not provide explicit guidance on when to use this tool versus webdiet_orientacoes_write_save or other siblings. No when-not-to-use or alternative suggestions are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_patient_deleteA
Destructive
Inspect

Permanently delete a WebDiet patient (uses removerPaciente — resolves id/link from a fresh list first). Irreversible.

Bulk support: accepts patient_ids for batched execution.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountNo
patient_idYes
patient_idsNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses internal mechanism (uses removerPaciente and resolves id/link from fresh list) and reiterates irreversibility. Annotations already signal destructiveness, so description adds useful behavioral context without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no redundancy. First sentence states core purpose and mechanism, second adds bulk support. Information is front-loaded and every word adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a delete tool, covers permanence, irreversibility, mechanism, and bulk mode. Lacks mention of cascading effects on related data (e.g., consultations), but overall adequate for typical use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Adds meaning for patient_id (primary identifier) and patient_ids (bulk support), but does not explain the 'account' parameter. Schema has 0% description coverage, so the description partially compensates but leaves one parameter unspecified.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it permanently deletes a WebDiet patient, using specific verb 'delete' and resource 'patient', and distinguishes from sibling tools like create or list by emphasizing irreversibility and bulk support.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly warns that the action is irreversible, implying caution, and mentions bulk support for batched execution. However, it lacks explicit guidance on when to use this tool versus alternatives like update or get.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_patient_getA
Read-onlyIdempotent
Inspect

Read patients in WebDiet. Actions: list (search by keyword — returns id, nome, link, with pagination), get (full profile with address, phone, links to panel sections). Both actions return a permanent "link" identifier and direct URLs when available (antropometria, prescriptions, etc.). IMPORTANT: Patient list search may be paginated — for writes, pass the numeric id from webdiet_patient get/list, the portal "link" number, or a unique phone/name keyword; the adapter falls back to dadosPaciente.php when the id is not on the first list page.

[Flattened action: get]

Bulk support: accepts patient_ids for batched execution.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
accountNo
keywordNo
page_sizeNo
patient_idNo
patient_idsNo
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Aligned with annotations (readOnlyHint, idempotentHint, destructiveHint). Discloses key behaviors like pagination, fallback mechanism, and return of permanent link/URLs. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description front-loads the main purpose but includes verbose details and a confusing 'Flattened action: get' line. Could be more streamlined without losing essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers multiple actions, pagination, bulk support, and return values. Lacks error conditions but is adequate given no output schema. Overall complete for a read tool with moderate complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema coverage, the description explains the primary parameters: keyword for list, patient_id for get, and patient_ids for bulk. It also mentions the numeric ID fallback. However, page and page_size are not explicitly explained, though typical.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Read patients in WebDiet' and distinguishes between 'list' (search by keyword) and 'get' (full profile) actions. This differentiates it from siblings like webdiet_patient_list and webdiet_patient_write_create.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides guidance on when to use list vs get within the tool, and mentions pagination and fallback for IDs. However, it does not clarify when to use this combined tool vs the separate webdiet_patient_list sibling, creating potential confusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_patient_listA
Read-onlyIdempotent
Inspect

Read patients in WebDiet. Actions: list (search by keyword — returns id, nome, link, with pagination), get (full profile with address, phone, links to panel sections). Both actions return a permanent "link" identifier and direct URLs when available (antropometria, prescriptions, etc.). IMPORTANT: Patient list search may be paginated — for writes, pass the numeric id from webdiet_patient get/list, the portal "link" number, or a unique phone/name keyword; the adapter falls back to dadosPaciente.php when the id is not on the first list page.

[Flattened action: list]

Bulk support: accepts patient_ids for batched execution.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
accountNo
keywordNo
page_sizeNo
patient_idNo
patient_idsNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnly, idempotent, non-destructive. Description adds details on pagination, fallback mechanism, and return of permanent 'link' identifiers and URLs. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Structured with purpose, actions, important note, and bulk support. Some redundancy (flattened action) but overall well-organized. Could be slightly more concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers main actions and pagination, but lacks full output schema description. For 6 params and no output schema, more details on return values and parameter interactions would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema coverage, description partially explains parameters (keyword, page, patient_id, patient_ids) but lacks explicit descriptions for each. Adds moderate value beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Read patients in WebDiet' and distinguishes two actions (list and get) with specific return fields. It is distinct from siblings like webdiet_patient_get (single patient) and other read tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Describes when to use list vs get, and provides important guidance on pagination and how to pass identifiers for writes. Does not explicitly state when not to use, but context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_patient_write_createAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
cepNo
cpfNo
nomeNo
emailNo
bairroNo
cidadeNo
estadoNo
generoNo
numeroNo
accountNo
apelidoNo
enderecoNo
telefoneNo
instagramNo
boasvindasNo
nascimentoNo
patient_idNo
complementoNo
patient_idsNo
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes beyond annotations by warning that without nascimento, 'metodoPlanning.php crashes with a Fatal Error.' This is critical behavioral context not captured in annotations. Also mentions flattened action and bulk execution behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is mostly concise and front-loaded with the main purpose. The warning about the crash is important. Minor redundancy: the '[Flattened action: create]' line could be integrated. Still efficient overall.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 19 parameters, no output schema, and critical crash risk, the description covers the essential information: required fields, format, action distinction, bulk support, and safety warning. It is sufficiently complete for an agent to use correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description compensates by explaining the critical parameters (nome, nascimento) with format and reason. However, it does not elaborate on the other 17 parameters, though many are named intuitively.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states 'Create or update patients in WebDiet.' and distinguishes between create and update actions with required fields for create. It also mentions the sibling delete tool, clarifying scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear when-to-use guidance: for create (nome + nascimento required), for update (partial fields), and explicitly directs destructive removal to webdiet_patient_delete. Also notes bulk support with patient_ids.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_patient_write_updateBInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
cepNo
cpfNo
nomeNo
emailNo
bairroNo
cidadeNo
estadoNo
generoNo
numeroNo
accountNo
apelidoNo
enderecoNo
telefoneNo
instagramNo
boasvindasNo
nascimentoNo
patient_idNo
complementoNo
patient_idsNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes beyond annotations by warning about the crash if nascimento is missing during create, and notes that update allows partial fields. It also clarifies this tool is not for destruction. However, it does not disclose idempotency or other error conditions. The warning adds significant value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is moderately concise but contains extraneous elements like '[Flattened action: update]' and the 'IMPORTANT' warning, which while valuable, could be better integrated. The structure is somewhat fragmented, mixing usage notes, warnings, and hints.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (19 parameters, no output schema, no annotation details), the description covers only core create/update semantics and a critical failure mode. It lacks details on return values, error handling, and many parameter meanings, making it incomplete for effective tool use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 19 parameters and 0% schema description coverage, the description only clarifies 'nome' and 'nascimento' for create, and mentions 'patient_ids' for bulk. The other 16 parameters (e.g., cep, cpf, email) have no explanation, leaving the agent uninformed about their purpose or constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states it creates or updates patients, which is clear. However, there is a sibling tool 'webdiet_patient_write_create' that likely focuses on creation, and the description does not distinguish when to use this tool versus that one. The '[Flattened action: update]' note adds ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides guidance for create vs update (required fields for create) and mentions when to use delete. But it fails to differentiate from the sibling 'webdiet_patient_write_create' or give criteria for bulk vs single use. The guidance is present but incomplete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_preconsulta_deleteA
Destructive
Inspect

Permanently delete a pre-consultation response in WebDiet. Templates are NOT affected. Irreversible.

Bulk support: accepts response_ids for batched execution.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountNo
response_idYes
response_idsNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark destructiveHint=true. The description adds value by stating 'Irreversible' and 'Templates are NOT affected', providing context beyond annotations. Bulk support is also noted.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences with no redundancy. Key information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers critical aspects: irreversibility, non-effect on templates, and bulk support. The 'account' parameter is not addressed, but given the tool's simplicity (delete with optional IDs), it is nearly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%. The description explains the 'response_ids' parameter for bulk execution, but the 'account' parameter is not explained, leaving ambiguity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('permanently delete a pre-consultation response') and the resource, and the tool name distinguishes it from siblings like get_response, list_responses, list_templates, and write_link_to_patient.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description notes that templates are not affected, which helps differentiate from template-related tools. However, it lacks explicit when-to-use or when-not-to-use guidance relative to other delete tools like webdiet_anamnese_delete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_preconsulta_get_responseC
Read-onlyIdempotent
Inspect

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/ 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nomeNo
tipoNo
limitNo
offsetNo
accountNo
response_idNo
response_idsNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds useful behavioral details: bulk support via response_ids, output fields like 'link' and 'preview_url', and retrieval of PDF URLs. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is structured with bullet points but is somewhat lengthy. It repeats the word 'Actions' and includes a redundant '[Flattened action: get_response]' line. Could be more concise while retaining clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description details outputs for each sub-action but does not specify invocation logic (which parameters trigger which action) or default behavior when no parameters are provided. Missing error handling and rate limit info.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so description must explain parameters. It only partially explains 'nome' and 'tipo' as filters for list_responses, but leaves 'limit', 'offset', 'account', 'response_ids' undocumented. The mapping of parameters to sub-actions is unclear.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Read pre-consultation questionnaires' and lists three sub-actions (list_templates, list_responses, get_response), but the tool name 'get_response' implies a single retrieval. It distinguishes from sibling link tool but not from separate list tools, causing ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description only mentions using webdiet_preconsulta_write for linking, but does not explain when to use this combined tool vs. the existing sibling tools (webdiet_preconsulta_list_templates, webdiet_preconsulta_list_responses). No guidance on selecting sub-actions or default behavior.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_preconsulta_list_responsesA
Read-onlyIdempotent
Inspect

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/ 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nomeNo
tipoNo
limitNo
offsetNo
accountNo
response_idNo
response_idsNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=true and destructiveHint=false, which description aligns with by stating 'Read pre-consultation questionnaires'. Additionally, description discloses bulk support via response_ids, which adds value beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is somewhat verbose, listing three actions but only list_responses applies. It includes Portuguese phrases and redundant detail. Could be more concise while preserving clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Explains the output structure for responses (id, id_code, etc.) but omits parameter descriptions for 5 out of 7 parameters. With no output schema, more detail on pagination and account is needed for complete context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only two parameters (nome, tipo) are semantically explained as filters for responder name and template name. With 0% schema coverage and 7 parameters, description fails to explain limit, offset, account, response_id, and response_ids purpose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it reads and lists patient submissions to pre-consultation questionnaires. It explicitly distinguishes from sibling tools like webdiet_preconsulta_list_templates and webdiet_preconsulta_get_response by describing each action and noting this tool is for list_responses.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides guidance on when to use this tool (list responses) vs. alternatives (list_templates for links, get_response for single response, link_to_patient for linking). Mentions filtering by tipo and nome. Lacks explicit 'do not use' scenarios but is still helpful.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_preconsulta_list_templatesB
Read-onlyIdempotent
Inspect

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/ 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nomeNo
tipoNo
limitNo
offsetNo
accountNo
response_idNo
response_idsNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate safe read-only operation. Description adds useful behavioral details: returns specific fields, mentions decoded content, preview URL, and bulk support. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is overly verbose, mixing documentation for multiple tools (list_responses, get_response) into a single tool description. This violates conciseness and structural clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For listing templates, it provides output field details and usage hints. However, it omits parameter explanations and includes irrelevant information, leaving gaps despite no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 7 parameters with 0% description coverage. Description does not explain any parameter except response_ids in bulk context. For 0% coverage, description must compensate but fails to do so.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reads pre-consultation questionnaires and specifically identifies the 'list_templates' action with explicit output fields. However, it includes actions for other tools (list_responses, get_response) which muddles focus.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use this tool (asking for questionnaire link), but does not clearly exclude other use cases or contrast with sibling tools like webdiet_preconsulta_list_responses. The inclusion of other actions may lead to misuse.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_prescription_get_detailA
Read-onlyIdempotent
Inspect

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]

ParametersJSON Schema
NameRequiredDescriptionDefault
linkNo
accountNo
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description confirms the read-only nature ('Read meal plan prescriptions') but adds no further behavioral context beyond what annotations provide. It does not mention any additional traits like rate limits or response structure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short but includes redundant instructions ('Always show the url field to the user') and a technical note ('[Flattened action: get_detail]') that may confuse. It starts with a clear verb-object pair, which is good, but includes extraneous content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description indicates the return value ('full meals/foods'). It also suggests a workflow with the sibling 'list' tool. However, it fails to explain the 'account' parameter and does not mention any limits or optional behavior, leaving gaps for complete understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must explain parameters. It partially explains the 'link' parameter (as a prescription URL from the list action) but does not explain the 'account' parameter at all. This leaves ambiguity for the agent.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool reads meal plan prescriptions and distinguishes between 'list' (giving URLs) and 'get_detail' (full meals/foods from a URL). It explicitly ties the tool's action to its name 'get_detail' and differentiates it from the sibling tool 'webdiet_prescription_list'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool: after obtaining a prescription URL from the 'list' action. It instructs to always show the 'url' field. However, it does not explicitly state when not to use it or provide alternative tools for similar tasks.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_prescription_listA
Read-onlyIdempotent
Inspect

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]

ParametersJSON Schema
NameRequiredDescriptionDefault
linkNo
accountNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds value by specifying the tool lists 'recent prescriptions' and can retrieve full detail from a URL, and instructs on showing the url field. This extends beyond the annotations without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with two sentences and a tag. It is front-loaded with the purpose. The tag '[Flattened action: list]' is slightly redundant but not detrimental. Overall, it is efficiently structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the two modes and the importance of the url field, but omits details about the 'account' parameter and output structure (e.g., fields in the list response). No output schema exists. For a tool with two parameters and no schema descriptions, more context is needed for full agent understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains that the 'link' parameter is used for getting detail (when provided) or for listing (when empty). However, 'account' parameter is not mentioned at all, leaving its purpose unclear. Only partial parameter explanation is provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it reads meal plan prescriptions, with specific verb 'Read' and resource 'meal plan prescriptions in WebDiet'. It distinguishes from siblings like webdiet_prescription_get_detail by encompassing both list and detail actions, though the dual action is embedded in the same tool. The purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a usage note 'Always show the url field to the user when they ask for a prescription link', which is helpful but does not explicitly state when to use this tool versus siblings. It implies listing vs. getting detail, but lacks exclusionary guidance or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_prescription_write_createAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nomeNoPrescrição Alimentar
metodoNoConvencional
accountNo
patient_idYes
patient_idsNo
prescricao_jsonNo
prescription_idNo
prescription_idsNo
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false and destructiveHint=false, so the tool writes but is not destructive. The description expands on this by describing the auto-resolve behavior, warning responses, and the exact output of save. No contradiction with annotations. It fully discloses side effects (e.g., foods without id appear without macros).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is quite long but well structured with clear sections (actions, methods, auto-resolve, examples). Every part earns its place given the complexity. However, some redundancy exists (e.g., repeating the três métodos), and the length could be trimmed slightly without losing clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, the description details return values for save (ok, metodo, warnings, raw, auto_resolved_foods) and explains the publish action's effect. It covers all 8 parameters, three methods, bulk support, and edge cases (foods without id, auto-resolve warnings). No gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% (no parameter descriptions), but the description compensates thoroughly. It explains prescricao_json format with examples, auto-resolve logic, how to avoid duplication in UI, and the meaning of each parameter (nome, metodo, patient_id, etc.). It also covers bulk parameters. The examples are concrete and add significant value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates, saves, or publishes meal plan prescriptions. It distinguishes three distinct actions (create, save, publish) and lists them upfront. Sibling tools like webdiet_prescription_write_save and webdiet_prescription_write_publish exist, but this tool bundles them with an explanation of when each action applies, making its purpose distinct.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit when-to-use guidance: it details the three methods (Convencional, Equivalentes, Qualitativo) with recommendations, explains the necessity of calling publish, and advises against using Qualitativo via this tool. It also covers bulk support with patient_ids and prescription_ids. Sibling differentiation is strong.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_prescription_write_publishAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nomeNoPrescrição Alimentar
metodoNoConvencional
accountNo
patient_idYes
patient_idsNo
prescricao_jsonNo
prescription_idNo
prescription_idsNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds significant behavioral context beyond annotations, such as the requirement to call publish for patient visibility, auto-resolve behavior, and warnings about missing IDs. It does not contradict annotations and provides useful details about side effects and return warnings.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is comprehensive but verbose, containing extensive technical details and examples. It is front-loaded with the core purpose but could be more concise. The structure is reasonable with sections, but some sentences are repetitive.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (8 params, 3 actions, no output schema), the description covers most aspects: actions, methods, JSON format, auto-resolve, and return structures for save. It lacks full parameter descriptions and overall return type, but is fairly complete for a complex healthcare tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must explain all parameters. It provides thorough details for prescricao_json (structure, examples) and metodo (enum options). However, it does not explain patient_id, account, prescription_id, patient_ids, prescription_ids, or nome beyond their names, leaving gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates, saves, or publishes meal plan prescriptions, specifying three distinct actions. However, it does not differentiate from sibling tools like webdiet_prescription_write_create and webdiet_prescription_write_save, which may cause confusion about when to use this combined tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes important usage notes (e.g., must call publish after save) and method selection guidelines. However, it lacks explicit guidance on when to use this tool versus its siblings, leaving the agent to infer the appropriate context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_prescription_write_saveAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nomeNoPrescrição Alimentar
metodoNoConvencional
accountNo
patient_idYes
patient_idsNo
prescricao_jsonNo
prescription_idNo
prescription_idsNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are minimal but not contradicted. The description explains the write behavior (create/save/publish), auto-resolve mechanics, warnings, and limitations (e.g., qualitative method not yet supported via save). It also notes the need to call publish separately. This provides good transparency beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is detailed but overly long, with repetitive explanations and a mix of English and Portuguese. While well-structured with sections, it could be more concise and avoid redundant information, such as repeating the methods details in different sections.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite lacking an output schema, the description covers return values (ok, metodo, warnings, raw, auto_resolved_foods) and the need to call publish. It addresses multiple methods, auto-resolve, and bulk support. However, it does not clarify interaction with sibling tools, leaving some contextual gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description carries the full burden. It thoroughly explains the 'prescricao_json' parameter with structure, examples, and auto-resolve. The 'metodo' parameter is explained with three enum values. However, the 'account' parameter and bulk parameters like 'patient_ids' and 'prescription_ids' are only briefly mentioned, leaving some gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates, saves, or publishes meal plan prescriptions. It distinguishes between three actions and three methods. However, the presence of sibling tools 'webdiet_prescription_write_create' and 'webdiet_prescription_write_publish' creates ambiguity about the exact scope, especially with a note 'Flattened action: save' that conflicts with the broader actions listed.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides extensive guidance on when to use each method, auto-resolve vs explicit IDs, and the necessity of calling publish. However, it does not explicitly differentiate this tool from sibling tools that also handle create and publish, potentially leading to confusion about which tool to use for each action.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_prontuarioA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountNo
patient_idYes
patient_idsNo
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is clear. The description adds that it returns decoded text with sections, which is useful but not extensive. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no wasted words, front-loaded with key information. Efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only tool with annotations, the description covers return content and bulk behavior. However, it omits details about the account parameter and does not clarify whether patient_ids can be used alone or with patient_id, leaving minor gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must compensate. It explains patient_id (implied required) and patient_ids for bulk execution, but does not mention the optional account parameter, leaving its purpose unclear.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool gets the clinical record (prontuario) for a WebDiet patient, specifies the sections returned, and mentions bulk support. This distinguishes it from sibling tools like webdiet_anamnese or webdiet_antropometria_get that retrieve only specific parts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use when the entire clinical record is needed and mentions bulk support, but it does not explicitly state when to use this tool versus alternatives (e.g., for specific sections) or provide any exclusion conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_prontuario_writeBInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
textoYes
accountNo
patient_idYes
patient_idsNo
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is a write operation (readOnlyHint=false) and not destructive (destructiveHint=false). The description adds the bulk support detail and the format of texto, but does not disclose whether it creates or updates records, or what happens to existing data. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with two sentences, no redundant information. It front-loads the purpose and efficiently adds the bulk support detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 4 parameters, no output schema, and 0% schema description coverage, the description covers the core functionality and main parameter format. However, it omits the purpose of the 'account' parameter, whether the operation is create or update, and the return value, making it somewhat incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description clarifies that 'texto' should be a JSON array of HTML strings per section, adding meaning beyond the schema (which has 0% coverage). It also explains 'patient_ids' for bulk execution. However, 'account' and 'patient_id' remain unexplained, leaving gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool saves the clinical record for a WebDiet patient, using a specific verb ('Save') and resource ('clinical record'). However, it does not explicitly differentiate from sibling tools like webdiet_prontuario (likely read) or other write tools, leaving some ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions bulk support via patient_ids but provides no guidance on when to use this tool versus alternatives (e.g., webdiet_anamnese_write_* or webdiet_prontuario). There is no indication of prerequisites or context-specific usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_reciboAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nomeYes
accountNo
dados_reciboNo[]
financeiro_idYes
financeiro_idsNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations indicating a non-read-only, non-destructive tool, the description discloses side effects: updating the recibo_url in the financial record after generation. It also mentions bulk behavior. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with each sentence adding essential information: purpose, data format, effect, return value, and bulk support. No redundant or irrelevant content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the main workflow and two key parameters, but lacks explanation for the required 'nome' and optional 'account' parameters. Given no output schema, the return value is adequately described.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains financeiro_id, dados_recibo (including the 6 fields), and financeiro_ids for bulk. However, it does not explain 'nome' and 'account' parameters, which remain ambiguous.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool generates or updates a receipt for a financial record, with a specific verb and resource. It distinguishes from sibling tools like webdiet_financeiro_list and webdiet_financeiro_write by focusing solely on receipt generation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: Pass the financeiro_id from webdiet_financeiro list. It also mentions bulk support via financeiro_ids. However, it does not explicitly state when not to use the tool or provide alternatives, though no direct alternatives exist.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_save_antropometriaAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
ladoNoesquerdo
massaNo
origemNomanual
accountNo
c_ombroNo
c_toraxNo
estaturaNo
c_abdomenNo
c_cinturaNo
c_pescocoNo
c_quadrilNo
dobra_coxaNo
patient_idYes
c_antebracoNo
patient_idsNo
c_coxadistalNo
c_coxamedialNo
dobra_axilarNo
altura_joelhoNo
c_panturrilhaNo
c_coxaproximalNo
diametro_femurNo
diametro_punhoNo
diametro_umeroNo
dobra_biciptalNo
dobra_toraxicaNo
c_antebraco_dirNo
c_bracorelaxadoNo
dobra_abdominalNo
dobra_triceptalNo
antropometria_idYes
c_bracocontraidoNo
c_coxadistal_dirNo
c_coxamedial_dirNo
estatura_sentadoNo
refAntropometriaNobrozek
antropometria_idsNo
c_panturrilha_dirNo
dobra_panturrilhaNo
dobra_suprailiacaNo
formula_escolhidaNopollock3
bioimpedancia_aguaNo
c_coxaproximal_dirNo
dobra_subescapularNo
bioimpedancia_idadeNo
bioimpedancia_massaNo
bioimpedancia_osseoNo
c_bracorelaxado_dirNo
dobra_supraespinhalNo
c_bracocontraido_dirNo
bioimpedancia_gorduraNo
bioimpedancia_visceralNo
bioimpedancia_massalivreNo
bioimpedancia_massaGorduraNo
bioimpedancia_percentualMagraNo
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false (write operation) and destructiveHint=false, which the description's 'Save' verb aligns with. The description adds that all numeric values are strings and that calculated fields are computed server-side, giving some behavioral context. However, it does not disclose response behavior, error conditions, or permissions, and the annotations already cover the basic safety profile. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and front-loaded with the main purpose and prerequisite. It covers key points without excessive length, but some sentences could be tighter. Overall, it earns its place, with minor verbosity around sections.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (55 parameters, no output schema, limited annotations), the description covers usage prerequisites, parameter categories, and formula options. However, it lacks any mention of the return value or response format, which is important for an agent to understand what the tool outputs. Error conditions are also omitted, so completeness is adequate but not exhaustive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 55 parameters and 0% schema description coverage, the description provides significant added value by grouping parameters into sections (basic, skinfolds, circumferences, bone diameters, bioimpedance), specifying units (mm, cm), and explaining the formula_escolhida and refAntropometria enums. It compensates for the lack of per-parameter descriptions, though many individual parameters are not explained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool saves body measurements for a patient, specifies that webdiet_create_antropometria should be called first to obtain an ID, and distinguishes it from creation tools. The verb 'Save' and resource 'anthropometry' are specific, and the description differentiates from sibling tools like webdiet_create_antropometria.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly instructs users to call webdiet_create_antropometria first to get the antropometria_id, providing a clear prerequisite. It also mentions bulk support with patient_ids and antropometria_ids, though it does not explicitly state when not to use this tool or list alternatives. The guidance is clear but lacks exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webdiet_upload_anexoAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tipoNoanexo
accountNo
file_urlNo
file_nameNo
nome_anexoNo
patient_idYes
file_base64No
patient_idsNo
upload_codeNo
salvar_cloudNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate this is a write operation (readOnlyHint: false, destructiveHint: false). The description adds context about bulk support and supported tipos, aligning with annotations. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, front-loaded with the main purpose, and uses clear numbering to present the three file provision methods. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 10 parameters and no output schema, the description covers key aspects (file provision, tipos, bulk) but lacks details on the output, error handling, and some parameters (account, salvar_cloud). It is adequate but has gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description compensates by explaining the three file provision methods (upload_code, file_url, file_base64) and the meaning of the 'tipo' parameter via a list. It also mentions bulk support with patient_ids. However, it does not describe all parameters (e.g., account, salvar_cloud) in detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it uploads a file to a patient's attachments, specifies supported file types (PDF, image, etc.), and lists three methods for providing the file. It distinguishes itself from other tools like webdiet_list_anexos by focusing on uploading.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use each file provision method (e.g., upload_code recommended for large files, file_base64 for small files only). However, it does not explicitly exclude alternative tools or state when not to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.