Skip to main content
Glama

aggregates

Read-onlyIdempotent

Summary stats over the filtered set: totals, branch split, most-active officials, top tickers bought/sold (per individual stock), top sectors bought/sold, potential conflict count, date range. Accepts the same branch/role/since/until/type/ticker filters as search — pass branch=congress + role=Senate + since=YYYY-MM-DD to scope. Use this BEFORE paginating search_trades when you only need ranked counts.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
roleNoChamber (Senate/House) or title substring
typeNoDirection: "buy", "sell", or "exchange" (case-insensitive)
sinceNo
untilNo
branchNoEither "congress" or "executive" (case-insensitive)
tickerNo

TDQS

A4.6/5.0
Behavior4/5

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

Annotations mark it as readOnlyHint and idempotentHint, which the description aligns with. The description adds that it returns aggregated statistics, not raw data. No further behavioral details (e.g., performance) are needed given 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?

Two succinct sentences. First sentence lists what is returned; second provides usage context and example. No extraneous words.

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?

With no output schema, the description sufficiently covers return contents. It also ties into the sibling context by referring to search_trades. Minor gap: does not clarify if the stats are counts or monetary values.

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 50%, but the description adds meaning by naming all six parameters (branch, role, since, until, type, ticker) and relating them to a known search filter set. The example clarifies how to use role, branch, and since together.

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 provides 'Summary stats over the filtered set' and enumerates specific aggregations (totals, branch split, top tickers, etc.). This distinguishes it from sibling tools like search_trades which return individual records.

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 instructs to use this before paginating search_trades when only ranked counts are needed. Provides an example filter combination (branch=congress + role=Senate + since=YYYY-MM-DD).

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

A3.9/5.0
Disambiguation5/5

Each tool targets a distinct operation: aggregates provides summary stats, search_trades for general search, list_recent_trades for recent entries, get_person_trades by individual, get_ticker_activity by ticker, and list_conflicts for flagged conflicts. No overlapping functionality.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using snake_case: list_ for listing, get_ for retrieval, search_ for searching, and aggregates as a descriptive noun. No mixing of conventions or inconsistent verbs.

Tool Count5/5

With 6 tools, the server is well-scoped for a trades disclosure API. Each tool covers a core operation (search, list recent, by person, by ticker, conflicts, aggregates) without being excessive or sparse.

Completeness4/5

The tool set covers primary read operations and provides filtering via shared parameters. Minor gaps include no explicit 'get single trade by ID' or a tool to list available branches/roles, but the core workflow is well-supported for typical queries.

Resources