Financial data MCP server providing tools for accessing market data including CBOE volatility, CFTC positioning, congressional trades, FDA catalysts, and FINRA short/off-exchange volume data
Strong tool definitions with comprehensive descriptions and well-formed schemas. All 11 tools have clear action verbs (Get*, Search*), detailed descriptions (150-400 chars), and proper JSON Schema input definitions with type constraints and descriptions for all parameters. Parameter naming is consistent and descriptive (e.g., ticker, startDate, endDate, maxResults). Error handling guidance is present in descriptions. Main weaknesses: (1) no explicit output schemas documented in code; (2) no enum constraints for categorical parameters (type, transactionType, category), these should reject invalid values at schema time rather than description time; (3) no tool annotations for idempotency hints; (4) some descriptions reference domain knowledge (e.g., 'P/C Ratio', 'days to cover') that may not be immediately clear to non-domain LLMs.
Get Commitments of Traders (COT) positioning data for a specific futures contract. Shows commercial and non-commercial positions over time. Values are contract counts from the legacy futures-only COT report (positions as of each Tuesday, published Friday). Use SearchCftcMarkets to find available market codes.
Get congressional securities transactions for a specific ticker (newest first, last year by default). Shows which members of Congress reported a purchase or sale, with transaction and filing dates; amounts are disclosed ranges, not exact values, and Asset identifies the filed instrument (such as stock, option, or bond). Use GetMemberTrades for one member's transactions across all tickers.
Get scheduled FDA advisory-committee (AdComm) meetings, sourced from the FDA.gov advisory-committee calendar, each with a link to its FDA meeting page. Defaults to meetings in the next 90 days; pass a date range to look further ahead. This is a forward-looking calendar of announced meetings, not a historical archive — coverage starts in late 2025 — and entries are the FDA's own listings, not linked to stock tickers.
Get the latest COT positioning snapshot across all tracked futures contracts, grouped by category (Agriculture, Energy, Metals, Equity Indices, Interest Rates, Currencies). Shows commercial and non-commercial net positions in contract counts from the legacy futures-only COT report (positions as of each Tuesday, published Friday). Each row carries the market code accepted by GetCftcPositioning.
No enum constraints on categorical parameters: 'type' in GetPutCallRatios accepts free-form string instead of enum(Total|Equity|Index|Vix|Etp); 'transactionType' in congressional tools accepts free-form instead of enum(Purchase|Sale); 'category' in GetLatestCftcPositioning accepts free-form instead of enum. LLMs will hallucinate invalid values; validation happens at runtime instead of schema time.
Output schemas not documented in code. Tool descriptions reference return values (e.g., 'shows which members reported', 'each row carries the market code') but no structured schema is visible for downstream tool chaining or LLM response parsing. Makes it harder for LLMs to extract specific fields for follow-up calls.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | B | 74 | <=2025-11-25 | v2 |
Get a congress member's disclosed securities transactions (newest first, last year by default). Shows tickers, transaction and filing dates, disclosed amount ranges, and the filed Asset identifying the instrument (such as stock, option, or bond). Use SearchCongressMembers to find member names, and GetCongressionalTrades for all members' transactions in one ticker.
Get weekly off-exchange (dark pool / OTC) trading volume for an exact stock or ETF listing from the FINRA OTC/ATS Transparency data. Each week shows ATS (alternative trading system / dark pool) volume and trade count, non-ATS OTC volume and trade count, and the total off-exchange volume (ATS + non-ATS OTC). The FINRA file does not include consolidated tape volume, so the off-exchange share of total market volume is not reported here; compute that share elsewhere against a consolidated-volume source. Historical data caveat: prior to the 2013-07-01 FINRA reporting transition, FINRA case-folded some sibling listings' volumes into a single row — a query spanning that transition may include a sibling's volume in the week containing 2013-06-30. FINRA publishes each week on a delay (2 weeks for Tier 1 NMS stocks, longer for other tiers), so the latest week lags today.
Get CBOE put/call ratio data showing market sentiment. Available types: Total (all exchange), Equity, Index, Vix, Etp. High ratios (>1.0) indicate bearish sentiment; low ratios (<0.7) indicate bullish sentiment. Volumes are contract counts. Data available from November 2006 to present (the Vix type from October 2019); pre-2013 history is sampled roughly weekly rather than daily.
Get bi-monthly short interest history for an exact stock or ETF listing from FINRA. Shows the reported short position, change from the previous settlement, average daily volume, and days to cover per settlement date. Share counts are restated onto today's split basis so the series stays continuous across stock splits; days to cover is as reported (FINRA caps it at 999.99). High days-to-cover (>5) suggests a potential short squeeze — for short interest as a % of shares outstanding and an actual squeeze-candidate ranking use GetShortSqueezeScores; for the market-wide latest settlement use GetShortInterestSnapshot. For primary operating-company stocks only, the answer may also carry a model estimate of the settlement FINRA has not published yet; it appears BELOW the table and must never be presented as a FINRA figure.
Get daily short sale volume history for an exact stock or ETF listing from FINRA's short sale volume files. Shows short volume, short-exempt volume, total volume, and short volume percentage per trading day. Volumes cover trades reported to FINRA facilities (off-exchange/TRF) only — NOT consolidated tape volume — and a 40-50% Short % is the normal baseline from market-maker liquidity provision, so it must not be quoted as a share of the stock's total traded volume. This daily flow metric is distinct from bi-monthly short interest positions: use GetShortInterest for positions, GetLargestShortVolume for a market-wide single-day ranking, and GetShortSqueezeScores for squeeze candidates.
Get CBOE Volatility Index (VIX) historical daily OHLC data. VIX measures expected 30-day S&P 500 volatility. Below 15 = low volatility/complacency, above 30 = high fear/uncertainty. Data available from 1990 to present.
Search the tracked CFTC futures contracts by name, market code, common contract name, or standard futures symbol, or omit the query to list every tracked contract. Coverage is a curated set of ~35 major contracts across Agriculture, Energy, Metals, Equity Indices, Interest Rates, and Currencies - markets outside this set have no COT data here. Returns matching contracts with their codes and categories; use this to discover market codes before calling GetCftcPositioning.
No tool annotations present (toolAnnotations=false). Tools like GetShortVolume, GetOffExchangeVolume, and GetShortInterest are read-only and idempotent, but this is not machine-declared via readOnlyHint or idempotentHint. Agents cannot optimize for safe retry without explicit hints.
No pagination consistency across large-result tools. GetOffExchangeVolume, GetShortVolume, and GetShortInterest accept maxResults and return 'the most recent N', but do not expose offset or cursor parameters for full enumeration. Users wanting historical data across years may be unable to fetch complete datasets without multiple overlapping date-range calls.
Domain-specific jargon in descriptions without LLM guidance. Phrases like 'P/C Ratio', 'contract counts', 'days to cover', 'alternative trading system', and 'legacy futures-only COT report' assume financial domain knowledge. Descriptions should briefly define these for LLMs unfamiliar with trading terminology (e.g., 'Put/Call Ratio (P/C): ratio of put to call contract volume').