Skip to main content
Glama

Compose and export a project report PDF

produceProjectReport
Idempotent

Compose a grounded report plan, optionally preview without spending export meter (preview=true), or confirm export (confirm=true) to save the plan and return a short-lived signed download URL plus a receipt — never PDF bytes in the tool result. Confirm spends records.exports and is irreversible.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
detailYesdetailed
confirmYesWhen true, compose (if needed), save, export PDF, and return a download URL. Required when preview is false. Spends records.exports and cannot be undone.
contextYesExplain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): "Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization."
previewYesWhen true, compose only — no export meter spend and no download URL.
requestNo
audienceYesowner
planNameNo
projectIdYes

TDQS

A3.8/5.0
Behavior1/5

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

The description adds valuable behavior (meter spend, irreversibility, signed URL, receipt), but it contradicts the `idempotentHint: true` annotation: a confirm call that spends records.exports and is irreversible is not idempotent on repeat. Because of this contradiction, the annotation-contradiction rule applies.

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 dense sentence front-loads the main purpose and then layers the conditional modes and consequences without waste. Every clause carries operational meaning.

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, it usefully specifies the return shape (signed URL + receipt, not PDF bytes) and the irreversible spend. The main gap is the idempotency contradiction and some unelaborated parameters, but those are mostly inferable from names/enums.

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 only 38%, so the description must compensate. It clarifies the two most important parameters (`preview` and `confirm`) and their side effects, but does not add meaning for `projectId`, `audience`, `detail`, `request`, or `planName` beyond their names/enums.

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 names a specific action (compose/export), a specific resource (project report PDF), and the operation mode (preview vs confirm). It also explicitly states the result is a download URL, never PDF bytes, which distinguishes it from a generic file-returning tool.

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?

It gives a clear decision rule: use `preview=true` to avoid meter spend, use `confirm=true` to save/export. It also warns confirm is irreversible, so an agent can choose appropriately. This is explicit conditional guidance.

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.

TDQS

A4.3/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: explanation, guide, snapshot, context, report, analysis run, save, feedback, status check, and update. The only overlap is between getProjectContext and uiGetAnalysisStatus, but the description explicitly clarifies that getProjectContext is preferred, making the distinction unambiguous.

Naming Consistency5/5

All tool names follow a consistent lowerCamelCase verb_Noun pattern (e.g., getFeasibilitySnapshot, runFeasibilityAnalysis, produceProjectReport). Minor variations like saveToProject and uiGetAnalysisStatus still adhere to the same structural style, so naming is predictable and uniform.

Tool Count5/5

With 10 tools, the server covers the full project lifecycle—lookup, creation, analysis, reporting, status, updates, and feedback—without redundancy or bloat. The count is well-scoped for the stated domain of property feasibility analysis.

Completeness4/5

Core workflows are covered: create project, attach lots/references, run analysis, retrieve context, update metadata, and generate reports. Major gaps include no list-projects operation and no delete/archive capability, though the documentation explicitly notes these are unsupported on this surface, making them expected limitations rather than operational dead ends.

Resources