Skip to main content
Glama

Validate Report

validate_report
Read-onlyIdempotent

Check a draft report against the statutory content list and its deadline. PREMIUM (license).

Typical input {"regime": "eu_gdpr", "obligation": "supervisory_authority_notification", "report": {"nature": "...", "contact": "...", "consequences": "...", "measures": "..."}} returns {"checklist": [{"item": "...", "found": true, "evidence": [...]}, ...], "missing": [...], "coverage": 0.75, "timing": {...}}. The content check is a keyword heuristic over the report text, reported as such; the timing check compares submitted_at with due_at and, for GDPR, flags a late notification that gives no reasons for the delay. Use before a report is sent. Not a legal review, and it cannot judge quality, only presence. Errors: on invalid, missing, or malformed input this tool never raises a protocol error; it returns {"error": ""} (for example {"error": "unknown obligation '' for /; one of "}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.

Input Schema

NameRequiredDescriptionDefault
due_atNothe computed due instant (from compute_deadlines), optional.
regimeYesregime id from list_regimes.
reportYesthe draft, as an object of section name -> text (any keys).
event_typeNoevent type within the regime; optional when the regime has one.
obligationYesobligation id (for example incident_notification).
submitted_atNowhen the report was or will be submitted, optional.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing that the content check is a keyword heuristic (not semantic), that GDPR timing flags late notifications lacking reasons, and that malformed input never raises a protocol error but returns a structured {error} object. The PREMIUM license constraint and the safe-retry statement add operational context annotations cannot express.

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?

Front-loads the purpose and the license constraint, then the examples, then the caveats and error contract. Dense but each block carries information; the inline JSON examples are worth their length, though the return-value narration is partly redundant with the output schema.

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 6-parameter tool with a nested free-form report object and an output schema, the description covers purpose, triggering moment, heuristic limits, error contract, and retry safety. An agent has everything needed to invoke it correctly and interpret failures.

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 100%, so the baseline is 3. The description does add value with a concrete input example showing regime/obligation/report shape and an error example enumerating valid obligation ids, but it leaves event_type and the optional submitted_at/due_at defaults to the schema alone.

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?

States a specific verb and resource: check a draft report against a statutory content list and its deadline. The word 'check' plus the 'presence not quality' boundary clearly separates it from compute_deadlines, deadline_status, and classify_event, which produce inputs or status rather than validating content.

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?

'Use before a report is sent' gives an explicit call point, and 'Not a legal review, and it cannot judge quality, only presence' rules out a misapplication. It does not explicitly route the agent to compute_deadlines for due_at or to list_regimes for regime ids, though the schema's parameter descriptions cover that handoff.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.