Skip to main content
Glama

KeyVex

get_lobbyist_contributions

Read-only

Returns LD-203 semiannual contribution reports — what registered lobbyists and lobbying firms themselves contribute: FECA campaign contributions, honorary expenses, event/meeting costs, and presidential-library / inaugural-committee donations, each item naming the HONOREE (the covered official who benefited). This is the reverse angle of get_lobbying_filings: filings show who pays lobbyists; LD-203 shows where the lobbyists' own money goes. Coverage: 2008→present (~40K filings/year; roughly half are 'no contributions' certifications, excluded by default — set include_empty=true to see them). Record shape: one record per filing — filer (lobbyist name or registrant firm), filing_year + period (mid_year | year_end), nested contribution_items[] (contribution_type, contributor_name, payee_name, honoree_name, amount, date), flattened honoree_names[] / payee_names[] / contribution_types[], and contributions_total_usd (simple sum of item amounts). Filters: honoree_name is the political join — substring against any item's honoree (e.g., 'schumer'). registrant_name matches the firm; lobbyist_name the individual filer; payee_name the receiving committee. contribution_type exact values: 'feca' (campaign money), 'honorary', 'meeting', 'presidential_library', 'inaugural_committee'. Cross-source: pair with get_fec_contributions (the FEC's view of the same FECA money, itemized ≥$200), get_lobbying_filings (the same registrant's client work), get_member_profile (resolve the honoree to party/state/committees). Pure-publisher posture: filings as posted to the Senate LDA system; contributions_total_usd is arithmetic, not a score.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum filings to return. Default 50, max 500.
sinceNodt_posted lower bound (YYYY-MM-DD inclusive).
untilNodt_posted upper bound (YYYY-MM-DD inclusive).
filer_typeNoWho filed: the individual lobbyist or the registrant firm.
payee_nameNoCase-insensitive substring against any item's payee (the committee/entity paid).
sort_orderNoDefault: desc (most recently posted first).
filing_uuidNoDirect lookup by LDA filing UUID. Fastest path.
filing_yearNoFiling year (2008→present).
honoree_nameNoCase-insensitive substring against any item's honoree — the covered official who benefited (e.g., 'schumer').
include_emptyNoInclude 'no contributions' certifications (~half of all filings). Default false.
lobbyist_nameNoCase-insensitive substring against the individual lobbyist's name.
registrant_nameNoCase-insensitive substring against the lobbying firm / organization name.
contribution_typeNoExact type: 'feca', 'honorary', 'meeting', 'presidential_library', 'inaugural_committee'.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, destructiveHint=false, so the safety profile is covered. The description adds substantial extra context beyond annotations — coverage window (2008→present), volume (~40K filings/year), the fact that ~half are 'no contributions' certifications excluded by default, the record shape, and a 'pure-publisher posture' caveat that contributions_total_usd is arithmetic not a score. That is meaningful added behavior, but much of it duplicates schema-level filter semantics rather than revealing operational traits like rate limits or auth, so it lands above baseline without being exceptional.

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 core definition and the reverse-angle framing before dense detail. It is long and repeats some schema content (contribution_type values, the honoree example appears twice), but nearly every clause carries distinct information. Efficient enough given a 13-parameter tool with no output schema, with minor redundancy.

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?

No output schema exists, so the description must carry return semantics — and it does: one record per filing, filer fields, filing_year/period, nested contribution_items[], flattened arrays, and contributions_total_usd. Combined with coverage window and the empty-certification caveat, an agent has everything needed to call and interpret results.

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 description coverage is 100%, so the baseline is 3. The description adds genuine conceptual meaning beyond the schema: honoree_name is framed as 'the political join' with an example, contribution_type values are glossed with semantic intent ('feca' = campaign money), and include_empty is explained in terms of the ~half of filings that are certifications. This lifts it above baseline, though the contribution_type enum list is largely a restatement of the schema.

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 (LD-203 semiannual contribution reports) and immediately scopes what it contains: contributions by lobbyists/firms themselves, with the honoree concept called out. It explicitly distinguishes itself from the closest sibling ('the reverse angle of get_lobbying_filings: filings show who pays lobbyists; LD-203 shows where the lobbyists' own money goes').

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?

Provides explicit routing: use get_lobbying_filings for client work, get_fec_contributions for the FEC view of the same FECA money, get_member_profile to resolve the honoree. It also states a default behavior (empty certifications excluded) and how to override it, which is directly actionable usage 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.

Resources