Three MCPs we host for live US financial data: SEC 8-Ks, prediction-market spreads, Congress trades
sec-events, arb-alerts, and politician-trades — proprietary Pipeworx packs that ingest, enrich, and serve data nobody else exposes through MCP. Free anonymous tier, no signup.
Most MCP packs are thin wrappers around a public API — they relay calls upstream and return the JSON. That’s fine when the upstream already has everything you need. It’s not fine when:
- The upstream returns raw filings and the agent burns context triaging them
- The signal you want is a cross-venue one that doesn’t exist in any single API
- The data is locked in PDFs that 99% of MCPs don’t bother parsing
For three problems in that shape, we built ingest pipelines that store the data in our own database and serve it through MCP. They’re free on the anonymous tier (100 calls/day), no signup needed, and the source is on GitHub.
This post is a tour of the three.
sec-events — pre-classified, severity-ranked SEC 8-Ks
Every US public company files an 8-K within four business days when something material happens. Between 100 and 500 land at EDGAR every business day. The codes are already structured — Item 4.02 is a restatement, Item 1.05 is a cyber incident, Item 5.01 is change of control. Every other MCP we evaluated hands the agent a flat list and lets it figure out which Item codes matter; we pre-classify into high/medium/low/noise so an agent asking “any breaking news for $NVDA?” gets exactly the rows worth caring about.
// sec_8k_recent { ticker: "NVDA", days: 7 }
{
"filing_date": "2026-05-27",
"ticker": "NVDA",
"company": "NVIDIA Corp",
"items": ["2.02"],
"severity": "medium",
"summary": "Q1 earnings — revenue $44.1B (+87% YoY), data-center segment $35.5B...",
"accession": "0001045810-26-000139"
}
Cron refreshes every 30 min during US market hours; off-hours catches the late filings. There’s also a weekly LLM-enrichment pass that adds a human-readable summary field by reading the actual filing text — the upstream EDGAR API doesn’t surface anything past the metadata.
Tools: sec_8k_recent (ticker + window), sec_8k_today (severity-ranked daily feed), sec_8k_by_item (cross-market scans like “every restatement this month”), sec_8k_detail (single accession lookup).
arb-alerts — cross-venue prediction market spreads
Polymarket and Kalshi are the two big prediction-market venues. They often list contracts on the same event (next UK PM, S&P 500 year-end, FOMC rate decisions) at different prices because order flow concentrates differently on each venue. The spread isn’t always free money — there’s execution risk and the two venues settle differently — but when it’s wider than a few percentage points, somebody’s pricing something wrong.
No upstream API surfaces this. You’d have to fetch both venues’ markets, run topic-matching to identify the “same” event across them, run candidate-matching within each event (the legs), and compute the spread. We do all of that on a 4h cron and persist whatever crosses threshold.
// arb_recent_alerts { hours: 24 }
{
"alerts": [
{
"topic": "next_israel_pm",
"kalshi_market": "KXNEXTISRAELPM-45JAN01-NBEN",
"polymarket_market": "will-naftali-bennett-be-the-next-prime-minister-of-israel",
"kalshi_yes_price": 0.53,
"polymarket_yes_price": 0.385,
"spread_bps": 1450,
"cheap_venue": "polymarket",
"fired_at": "2026-05-27T17:37:46Z"
}
// ...
]
}
That row says: Naftali Bennett was priced at 53¢ on Kalshi and 38.5¢ on Polymarket within the same 60-second window — a 14.5pp spread. We don’t take a position; we just surface the row so an agent watching this stuff can act (or not).
Tools: arb_recent_alerts (most recent firings), arb_topic_history (time series for one topic), arb_watchlist (the topics we monitor + their per-topic thresholds).
politician-trades — STOCK Act disclosures, indexed and searchable
The 2012 STOCK Act requires every member of Congress to disclose stock trades within 45 days. The official source is a mess of PDFs across two clerks’ offices (House and Senate). Aggregators like QuiverQuant publish normalized data, but their free tier is capped at the 500 most recent disclosures (~2 months) — Pelosi and other less-active members fall off the end and queries silently return empty.
We pipe in from kadoa-org’s open dataset, which ingests both clerks directly and goes back to 2012. 54,000+ trades, 423 filers tracked, daily refresh.
// politician_member_activity { member: "Pelosi", days: 365 }
{
"member": "Nancy Pelosi",
"chamber": "house",
"party": "D",
"state": "CA",
"total_trades_lifetime": 184,
"trade_count": 19,
"purchases": 10,
"sales": 9,
"estimated_disclosed_volume_usd": { "low": 18415019, "high": 85050000 },
"avg_excess_return_pct_vs_spy": 1.03,
"trades": [
{ "transaction_date": "2026-01-16", "ticker": "GOOGL", "transaction": "Purchase",
"amount_range_label": "$500,001 - $1,000,000", "excess_return_vs_spy_pct": 9.3 },
// ...
]
}
Tools: politician_recent_trades (filterable list), politician_top_movers (which tickers Congress is most active in this week), politician_member_activity (single-member detail with avg excess return vs SPY).
How to install
One-time config in your MCP client:
https://gateway.pipeworx.io/mcp
That gives you these three plus the other 2,800-odd tools in the catalog. Anonymous tier is 100 calls/day; if you need more, sign up free for 2,000/day on an OAuth account.
Plugins for Claude Code, Cursor, Gemini CLI, Perplexity, and Windsurf install everything in one command.
Source
The packs themselves are at github.com/pipeworx-io in each plugin repo, and the gateway code is in pipeworx-io/pipeworx-core. If you’ve got something proprietary you’d like indexed the same way, pipeworx_feedback is the channel — we read it daily.