Skip to main content
Glama

Get reports & analytics

reports_get
Read-onlyIdempotent

Server-side aggregated reports across time, revenue, pipeline and utilization. Totals are computed over the FULL filtered data set in the database, not over the returned page, so grand_total is always safe to quote even when the group list is paginated.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
kindYesWhich report to fetch.
limitNo
offsetNo
to_dateNoInclusive end date, YYYY-MM-DD.
statusesNoTime entry statuses to include. Defaults to DRAFT+SUBMITTED+APPROVED for time_summary, APPROVED for utilization.
from_dateNoInclusive start date, YYYY-MM-DD.
project_idNo
billable_onlyNoemployee_utilization: count only billable hours as actual. Default true.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint=false, and idempotentHint, covering the safety profile. The description adds a genuinely non-obvious behavior: totals are computed over the FULL filtered dataset, not the returned page, so grand_total is safe to quote even when groups are paginated — critical for correct reporting. This goes beyond the annotations and contradicts none of them.

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 zero waste: the first states purpose, the second delivers the key behavioral guarantee. The critical pagination caveat is front-loaded and densely 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?

For an 8-param, 4-mode tool with no output schema, the description covers the main footgun (pagination semantics) and names the four report domains, so an agent can select the right kind. However, per-kind return shapes beyond grand_total are not described, leaving the response structure to inference. It is adequate for selection and invocation, though richer per-kind output detail would close the 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?

With 63% schema description coverage, most params (kind, statuses, dates, billable_only) are already documented in the schema. The description adds meaning to limit/offset by clarifying that pagination affects only the group list, not the totals, and it maps the four report domains to the kind enum values. project_id remains undocumented in both schema and description.

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 a clear verb+resource: it fetches 'server-side aggregated reports across time, revenue, pipeline and utilization', naming the four report domains that map directly to the kind enum. The 'server-side aggregated' qualifier distinguishes it from raw-data sibling endpoints like timelog_get_entries or projects_get_finance, though no sibling is named explicitly.

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 it — any time an agent needs aggregated totals rather than raw records — but never states this explicitly and names no alternatives or exclusions. The grand_total guarantee hints at a reporting use case, yet an agent must infer that this is the aggregation tool versus projects_get_finance or timelog_get_entries. No explicit when/when-not routing guidance is provided.

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

B3.4/5.0
Disambiguation4/5

Most tools follow a clear resource+action pattern and the descriptions are unusually precise about boundaries. A few near-overlaps remain: projects_get_finance vs projects_get_financials, and notes_create vs crm_log_activity on a deal are both plausible for recording a note on a deal.

Naming Consistency4/5

The domain_prefix_action convention is consistent across nearly all tools, e.g. crm_create_lead, projects_update_risk, timelog_approve_time. Deviations include standalone list_trash, meta tools like whoami/tool_search/tool_invoke, and the confusing projects_get_finance/projects_get_financials pair.

Tool Count1/5

With 105 tools, this far exceeds the 50+ threshold defined as an extreme mismatch. Even for a full ERP/CRM suite, the fine-grained split—39 project tools alone—creates a massive tool-selection surface that is hard for an agent to navigate reliably.

Completeness4/5

The surface covers CRM, projects, tasks, time/expenses, HR, notes, notifications, contracts, and reporting with create/read/update/delete for most primary entities. Minor gaps exist: crm_log_activity has no read-back path, contracts lack delete/restore, and proposals are intentionally read-only, but agents can work around these.