Skip to main content
Glama
theodor90

form4api-mcp

list_congress_politicians

Read-only

Ranked rollup of politicians by congressional trade activity (Pro plan+). Returns a paginated list of politicians who have at least one non-superseded congressional trade, each with total/buy/sell counts (sells include both Sale and…

Instructions

Ranked rollup of politicians by congressional trade activity (Pro plan+). Returns a paginated list of politicians who have at least one non-superseded congressional trade, each with total/buy/sell counts (sells include both Sale and PartialSale; Exchange trades count only toward total) and their most recent trade's disclosure date. Ordered by total trade count descending, ties broken by most recently disclosed. Use this to discover active traders; for one politician's full profile (including their most-traded tickers and recent trades) use GET /v1/congress/politicians/{idOrSlug}. Requires Pro plan or higher (402 PLAN_REQUIRED on Free/Starter). limit is accepted as an alias for per_page. Query runs live — no caching.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pageNo1-based page number. Defaults to 1.
limitNoAlias for per_page.
per_pageNoPoliticians per page. Defaults to 100, maximum 500. `limit` is accepted as an alias; if both are given, per_page wins.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv1.9.7
    • addedInput schema / properties / limit
      Added value: +{
      +  "description": "Alias for per_page.",
      +  "type": "integer"
      +}
    • changedInput schema / properties / per_page / description
      Previous value: -"Politicians per page. Defaults to 100, maximum 500."New value: +"Politicians per page. Defaults to 100, maximum 500. `limit` is accepted as an alias; if both are given, per_page wins."
  2. Addedv1.9.6

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the readOnlyHint/openWorldHint annotations: sells include both Sale and PartialSale, Exchange trades count only toward total, ordering is total-count desc with recency tie-break, and it discloses the Pro-plan requirement plus the resulting 402 PLAN_REQUIRED for Free/Starter. The 'Query runs live — no caching' note is exactly the kind of runtime trait 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-loaded with the resource and the routing guidance, and most sentences carry distinct facts (counts semantics, ordering, plan gate). It is somewhat dense and the alias note slightly restates the schema, but nothing is gratuitous enough to call wasted.

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?

With no output schema, the description compensates by enumerating the returned fields (total/buy/sell counts, most recent disclosure date), the ordering guarantee, and the filtering precondition. An agent has everything needed to call it correctly and interpret the result.

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% and the description's only parameter claim ('limit is accepted as an alias for per_page') is already stated verbatim in the schema. It adds no syntax, format, or default information beyond what the structured schema provides, so the baseline of 3 is appropriate.

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+resource ('Ranked rollup of politicians by congressional trade activity') and immediately scopes it as a paginated list of politicians with at least one non-superseded trade. It distinguishes itself from list_congress_trades and get_congress_politician by describing the rollup nature and naming the profile endpoint as the alternative.

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?

'Use this to discover active traders; for one politician's full profile (including their most-traded tickers and recent trades) use GET /v1/congress/politicians/{idOrSlug}' gives an explicit when-to-use and a named alternative with its selection condition. Plan gating is also flagged, so the agent knows the eligibility prerequisite.

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