Skip to main content
Glama

Render report text

render_report_text
Read-onlyIdempotent

Build a weekly client report from the same inputs as create_weekly_report and return it as plain text (header, accomplishments, hours, blockers, next week) ready to paste into an email or chat. Use when the user wants a readable report to send. Do NOT use when structured fields are needed; use create_weekly_report.

Input Schema

NameRequiredDescriptionDefault
blockersNoOpen issues blocking progress, one per entry, e.g. ["Waiting on API review"]. Default none.
next_weekNoPlanned tasks for next week, one per entry. Default none.
week_startYesFirst day of the reported week, YYYY-MM-DD (normally the Monday; use week_bounds to find it), e.g. 2026-09-28. The week ends 6 days later.
client_nameYesClient the report is for, e.g. "Globex"
hours_loggedNoTotal hours worked this week, >= 0, e.g. 32. Omit if not tracked.
accomplishmentsYesWhat was done this week, one short item per entry (at least one), e.g. ["Shipped login", "Fixed 3 bugs"]

Output Schema

NameRequiredDescriptionDefault
textYesThe weekly report rendered as multi-line plain text.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed11 schema fields changed
    • changedInput schema / properties / accomplishments / description
      Previous value: -"A list of accomplishments achieved during the week"New value: +"What was done this week, one short item per entry (at least one), e.g. [\"Shipped login\", \"Fixed 3 bugs\"]"
    • addedInput schema / properties / accomplishments / minItems
      Added value: +1
    • changedInput schema / properties / blockers / description
      Previous value: -"A list of issues or obstacles encountered during the week"New value: +"Open issues blocking progress, one per entry, e.g. [\"Waiting on API review\"]. Default none."
    • changedInput schema / properties / client_name / description
      Previous value: -"The name of the client for whom the report is being generated"New value: +"Client the report is for, e.g. \"Globex\""
    • addedInput schema / properties / client_name / minLength
      Added value: +1
    • changedInput schema / properties / hours_logged / description
      Previous value: -"The total number of hours worked during the week"New value: +"Total hours worked this week, >= 0, e.g. 32. Omit if not tracked."
    • addedInput schema / properties / hours_logged / minimum
      Added value: +0
    • changedInput schema / properties / next_week / description
      Previous value: -"A list of tasks planned for the next week"New value: +"Planned tasks for next week, one per entry. Default none."
    • changedInput schema / properties / week_start / description
      Previous value: -"The start date of the week in YYYY-MM-DD format"New value: +"First day of the reported week, YYYY-MM-DD (normally the Monday; use week_bounds to find it), e.g. 2026-09-28. The week ends 6 days later."
    • addedInput schema / properties / week_start / pattern
      Added value: +"^\\d{4}-\\d{2}-\\d{2}$"
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "text": {
      +      "description": "The weekly report rendered as multi-line plain text.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "text"
      +  ],
      +  "type": "object"
      +}
  2. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -{
      -  "properties": {
      -    "accomplishments": {
      -      "description": "The list of accomplishments for the week.",
      -      "items": {
      -        "type": "string"
      -      },
      -      "type": "array"
      -    },
      -    "blockers": {
      -      "description": "The list of blockers encountered during the week.",
      -      "items": {
      -        "type": "string"
      -      },
      -      "type": "array"
      -    },
      -    "client_name": {
      -      "description": "The name of the client for whom the report is generated.",
      -      "type": "string"
      -    },
      -    "hours_logged": {
      -      "description": "The total hours logged for the week.",
      -      "type": "number"
      -    },
      -    "next_week": {
      -      "description": "The list of tasks planned for the next week.",
      -      "items": {
      -        "type": "string"
      -      },
      -      "type": "array"
      -    },
      -    "report_text": {
      -      "description": "The generated plain text report.",
      -      "type": "string"
      -    },
      -    "week_start": {
      -      "description": "The start date of the week covered by the report.",
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "report_text",
      -    "client_name",
      -    "week_start",
      -    "accomplishments"
      -  ],
      -  "type": "object"
      -}New value: +null
  3. Changed7 schema fields changed
    • addedInput schema / properties / accomplishments / description
      Added value: +"A list of accomplishments achieved during the week"
    • addedInput schema / properties / blockers / description
      Added value: +"A list of issues or obstacles encountered during the week"
    • addedInput schema / properties / client_name / description
      Added value: +"The name of the client for whom the report is being generated"
    • addedInput schema / properties / hours_logged / description
      Added value: +"The total number of hours worked during the week"
    • addedInput schema / properties / next_week / description
      Added value: +"A list of tasks planned for the next week"
    • addedInput schema / properties / week_start / description
      Added value: +"The start date of the week in YYYY-MM-DD format"
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "accomplishments": {
      +      "description": "The list of accomplishments for the week.",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "blockers": {
      +      "description": "The list of blockers encountered during the week.",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "client_name": {
      +      "description": "The name of the client for whom the report is generated.",
      +      "type": "string"
      +    },
      +    "hours_logged": {
      +      "description": "The total hours logged for the week.",
      +      "type": "number"
      +    },
      +    "next_week": {
      +      "description": "The list of tasks planned for the next week.",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "report_text": {
      +      "description": "The generated plain text report.",
      +      "type": "string"
      +    },
      +    "week_start": {
      +      "description": "The start date of the week covered by the report.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "report_text",
      +    "client_name",
      +    "week_start",
      +    "accomplishments"
      +  ],
      +  "type": "object"
      +}
  4. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered. The description adds real behavioral value by disclosing that inputs are shared with create_weekly_report and that output is formatted text with fixed sections, though it omits any note on rendering/formatting failure modes or length limits.

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 what is produced before the usage routing. Every clause earns its place: format, use case, exclusion, alternative.

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?

An output schema exists, so return-value structure is handled, and the description still sketches the text sections. Annotations cover the safety/idempotency profile, params are fully documented, and the sibling routing is explicit — an agent has everything needed to call it correctly.

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 100% with 6 documented parameters, so the schema carries the semantics (formats, defaults, required items). The description only notes inputs mirror create_weekly_report, adding no per-parameter meaning; baseline 3 applies.

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 (build/render) and resource (weekly client report) plus the exact output artifact (plain text with header, accomplishments, hours, blockers, next week). It explicitly distinguishes itself from create_weekly_report, so an agent can route between them without opening either schema.

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?

Gives the positive condition (user wants a readable report to send/paste into email or chat) and the negative condition (Do NOT use when structured fields are needed), naming the alternative create_weekly_report. Nothing is left to inference.

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.