Watch the watchers: congressional stock trades, federal contracts, campaign finance, lobbying, and new regulations as nine MCP tools. All official US government data, paid per call with x402 USDC on Base — no account or API key.
Server defines 10 tools with complete input schemas and descriptions. All tools are READ_ONLY with proper annotations. However, descriptions are verbose (200-300+ chars) and include pricing/payment details that clutter LLM reasoning. Parameter descriptions are present but inconsistent in detail. Output schemas are not documented, LLMs cannot predict response structure. Tool naming is clear (verb_noun pattern) but several tools lack actionable error guidance. No confirmation patterns for destructive operations (though all are read-only). Composition is sound: tools chain well via IDs and support pagination.
PAID ($0.02) — Congressional stock trades parsed from official STOCK Act disclosures: US House member trades with ticker, asset, buy/sell, transaction date, and disclosed amount range. Filter by member name, ticker, trade type (purchase/sale/sale_partial/exchange), state, or date window. Disclosures lag trades by up to 45 days by law. Requires WALLET_PRIVATE_KEY.
PAID ($0.01) — Resolve a company name to its official federal recipient records: legal name, UEI, parent/child level, recent federal award totals, profile link. Use before search_federal_contracts to disambiguate entities. Requires WALLET_PRIVATE_KEY.
FREE — Fetch the OpenAPI spec for any gov-transparency route: input schema, output schema, price, and worked examples. Pass no path to list all routes and prices. No WALLET_PRIVATE_KEY required.
PAID ($0.01) — FEC candidate fundraising summary: total raised, spent, cash on hand, and top 10 donors (name, occupation, state, amount). Filter by candidate name, state, or office (president, senate, house). Requires WALLET_PRIVATE_KEY.
PAID ($0.01) — Senate lobbying registry: who lobbied whom on what, when, and for how much. Filter by registrant (lobbying firm), client (who hired them), issue, or date window. Includes quarterly spending and issue codes. Requires WALLET_PRIVATE_KEY.
Output schemas not documented. LLMs cannot predict response structure, forcing them to guess field names for downstream tool calls or data extraction. Baseline: 100% of A+ tools document return types.
Descriptions bloated with pricing and payment details (200-300+ chars). Baseline: 194 chars average, p90=392. Pricing should be in a separate metadata field, not in the description. LLMs waste tokens parsing irrelevant payment info instead of focusing on when/why to call the tool.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | 2026-07-28+ | v2 |
PAID ($0.01) — US House financial-disclosure filing index: who filed periodic transaction reports, annual reports, amendments, and more — filer, district, type, date, and official PDF link. Poll filing_type 'P' to catch fresh trade disclosures early. Requires WALLET_PRIVATE_KEY.
PAID ($0.01) — Congress.gov bill lookup: bill number, title, sponsor, status, summary, and link. Filter by bill number, sponsor name, or keyword. Requires WALLET_PRIVATE_KEY.
PAID ($0.005) — FEC candidate lookup: official name, ID, state, office, party, and election year. Use to resolve candidate names before get_fec_candidate_money. Requires WALLET_PRIVATE_KEY.
PAID ($0.01) — Federal contract awards won by any company: award id, dollar amount, awarding agency, dates, description, and record link, sorted largest first. Optional agency and date-window filters. Requires WALLET_PRIVATE_KEY.
PAID ($0.01) — Federal Register document index: proposed rules, final rules, notices, and more. Filter by agency, document type, or date window. Includes summary, effective date, and official link. Requires WALLET_PRIVATE_KEY.
Parameter descriptions lack actionable constraints. E.g., 'Member name substring' does not specify case sensitivity, minimum length, or matching behavior. Baseline: descriptions should state format, range, and allowed values explicitly.
No error recovery guidance in tool descriptions. If a lookup fails (e.g., candidate not found), the description does not suggest alternatives or next steps. Baseline: error responses should tell the LLM what to do next.
WALLET_PRIVATE_KEY exposed as environment variable with no server-side secret injection pattern. Error message instructs users to set a private key in the environment, which is logged and traceable. Credentials must never appear in tool parameters or error messages.