Quiver Quantitative MCP — alternative-data on public companies (quiverquant.com)
Four tools with complete input schemas and descriptions, but significant gaps in parameter documentation and output schema clarity. Tool names lack action verbs (should be 'get_congress_trading' not 'quiver_congress_trading'). Descriptions are adequate (100-200 chars) but generic. Parameters like 'ticker' and '_apiKey' have descriptions, but no enum constraints, format specs, or validation guidance. Output schemas are inferred from code (congressTrading returns object with 'trades' array) but NOT formally documented in tool definitions. Error handling is present but minimal. No tool annotations (readOnlyHint, idempotentHint). API key exposure via parameter violates secret-injection pattern.
Recent US Congress stock trades — who in Congress bought/sold what, with amount ranges and disclosure dates. Pass a ticker to get the trade history for that company instead ("Congress trades for TSLA"). Example: quiver_congress_trading({ ticker: "NVDA", _apiKey: "your-key" })
Government contracts awarded (by ticker) — US federal contract awards to public companies, with award amount, agency, and date. Pass a ticker for that company's contract history ("government contracts for LMT"). Example: quiver_gov_contracts({ ticker: "LMT", _apiKey: "your-key" })
SEC insider (Form 4) transactions for <ticker> — corporate insider buys/sells at a public company, with insider name, share count, and date. Example: quiver_insiders({ ticker: "AAPL", _apiKey: "your-key" })
Corporate lobbying disclosures for <ticker> — federal lobbying spend filed by a public company, with client, amount, date, and issue. Example: quiver_lobbying({ ticker: "GOOGL", _apiKey: "your-key" })
API key exposed as tool parameter (_apiKey). Violates secret-injection pattern, credentials in parameters leak into logs and traces. Should use server-side environment variable injection.
Tool names lack action verbs. 'quiver_congress_trading' should be 'get_congress_trading' or 'list_congress_trades'. LLMs infer intent from verb-noun naming; current names are opaque.
Output schemas not documented in tool definitions. Code shows responses include 'trades', 'contracts', 'raw' fields, but LLMs cannot see this structure. Must add outputSchema to each tool definition.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | 2026-07-28+ | v2 |
No tool annotations (readOnlyHint, idempotentHint). All four tools are read-only and idempotent, should declare this via annotations so agents know they are safe to retry.
Parameter descriptions lack format/constraint guidance. 'ticker' should specify 'uppercase stock ticker (e.g. AAPL, 1-5 chars)'. '_apiKey' should note 'Quiver Quantitative Bearer token (Trader tier required for some endpoints)'.