protogrid

Search / io.github.pipeworx-io/regulatory-catalysts

Regulatory Catalysts

R0· no sign-in

Regulatory Catalysts MCP — high-value biotech regulatory calendar events (keyless).

v0.1.6 · active · repository · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality–not scored
Trust97of 100
Uptime, 30 days99%
Latency p5027 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "regulatory-catalysts": {
      "type": "http",
      "url": "https://gateway.pipeworx.io/regulatory-catalysts/mcp"
    }
  }
}
claude mcp add --transport http regulatory-catalysts https://gateway.pipeworx.io/regulatory-catalysts/mcp
[mcp_servers.regulatory-catalysts]
url = "https://gateway.pipeworx.io/regulatory-catalysts/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "regulatory-catalysts": {
      "type": "remote",
      "url": "https://gateway.pipeworx.io/regulatory-catalysts/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "regulatory-catalysts": {
      "type": "http",
      "url": "https://gateway.pipeworx.io/regulatory-catalysts/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=regulatory-catalysts&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vZ2F0ZXdheS5waXBld29yeC5pby9yZWd1bGF0b3J5LWNhdGFseXN0cy9tY3AifQ%3D%3D"
}
{
  "servers": {
    "regulatory-catalysts": {
      "type": "http",
      "url": "https://gateway.pipeworx.io/regulatory-catalysts/mcp"
    }
  }
}
{
  "mcpServers": {
    "regulatory-catalysts": {
      "httpUrl": "https://gateway.pipeworx.io/regulatory-catalysts/mcp"
    }
  }
}
extensions:
  "regulatory-catalysts":
    enabled: true
    name: "regulatory-catalysts"
    type: streamable_http
    uri: "https://gateway.pipeworx.io/regulatory-catalysts/mcp"
    timeout: 300

Quality – / 100not scored

Not scored: fewer than three checks apply, usually because no remote answered a credential-free probe or the server is a local package.

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-03-26; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygienen/a · weight 30
  • n/a
    tools.descriptions, tools.description_length, tools.schemas, tools.annotations, tools.directory_hints, tools.token_cost, tools.api_dumptool list unknown (behind auth, not probed, or empty)
stabilityn/a · weight 15
  • n/a
    stability.changes, stability.rug_pulltool list unknown
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

Tool list unknown · tools last changed 2026-10-18 · checked 2026-10-19 13:05 UTC

Tool changes

  • fda_adcom_materialsremoved

    What evidence is an FDA advisory committee reviewing? For one FDA advisory committee (AdCom) meeting — picked by committee (ODAC, VRBPAC, CTGTAC, or any name fragment), by date, and/or by drug, sponsor or topic — returns the meeting page's posted materials: FDA and sponsor briefing documents, the agenda, questions to the committee, rosters, presentation slides, minutes and transcripts, each with a document type, party (FDA / sponsor / combined), file type and size, and URL. Also extracts the agenda text, the applications under review (NDA/BLA number, product, sponsor, proposed indication), the public docket number, the webcast link, and — when a Questions document is posted — the VOTING QUESTIONS text itself. Reads FDA's own advisory-committee calendar (fda.gov, keyless), which lists meetings from 2016 to the next scheduled one; when a meeting has nothing posted yet it says so with the meeting date and FDA's posting timeline instead of returning an empty list. Use for AdCom briefing document, FDA briefing book, advisory committee materials, ODAC questions, what is the panel voting on, sponsor briefing package, panel agenda, FDA presentation slides, AdCom transcript or minutes. Pair with fda_adcom_calendar (which meetings are coming) and pdufa_catalysts (the decision date that follows the panel).

  • polymarket_edge_trackerremoved

    Edge persistence and decay telemetry built from daily polymarket_edges snapshots. Answers "how long has this edge existed and is it shrinking?" — a fresh wide edge and a 3-week-old wide edge are different trades (the latter is wide for a reason nobody is willing to take). Args: days (lookback, default 14, max 30), window (snapshot family, default "1wk"). RESPONSE: tracked[] = every opportunity in the LATEST snapshot with its full edge_pp_net time-series across prior snapshots, first_seen, trend (new | widening | stable | decaying) and decay_pp_per_day (both computed on |edge_pp_net| — the value itself is signed by trade direction, negative = SELL YES); expired[] = opportunities that appeared in earlier snapshots but are GONE from the latest (closed, resolved, or arbed away) with their lifespan_days — the median lifespan is your competition clock; snapshot_dates[] = which days actually have data (snapshots are written when polymarket_edges runs on a cache-miss, so gaps mean nobody scanned that day). LIMITS: history depth is bounded by the 60-day snapshot TTL and starts from when snapshotting was enabled; decay numbers come from daily closes of edge_pp_net (net of default slippage AND Polymarket's own taker fee — see polymarket_edges), not intraday.

  • polymarket_fill_riskremoved

    Realizable-vs-theoretical edge check against live CLOB order-book depth. REQUIRES one of `market` (single-market mode) or `event` (basket/partition mode). SINGLE-MARKET: pass a market slug/URL + side (buy_yes|sell_yes|buy_no|sell_no, default buy_yes) + size_usd (default 1000 — max spend on buys, target proceeds on sells); walks the ladder and returns top_of_book, vwap_fill_price, slippage_pp, shares_filled, max_fillable_usd, and a verdict (clean|degraded|cannot_fill). BASKET: pass an event slug/URL + side (sell_yes = capture overround by selling every leg, buy_yes = capture underround; default auto from partition sum) + size_usd interpreted as settlement notional S (shares per leg; each share pays $1); returns theoretical_sum vs realizable_sum (top-of-book vs VWAP across all legs), capture_ratio, profit_usd at executed size, per-leg fill detail, thin_legs[], max_clean_notional_usd, and forced_directional_risk naming the legs most likely to strand you unhedged. USE THIS before acting on any polymarket_arbitrage SELL/BUY-EVERY-LEG signal or any polymarket_edges trade above ~$500 — theoretical overround on thin books is not capturable, and partial basket fills convert an arb into an unhedged directional position (the dominant loss mode in real arb-bot P&L). FEES ARE NOT MODELLED HERE: vwap_fill_price/profit_usd are GROSS of Polymarket's own taker fee (rate 0.04-0.07 by category — see polymarket_edges/fees.ts), on top of which this tool prices depth-crossing cost; a thin-margin fill that looks clean here can still be net-negative after the fee.

  • entity_profileremoved

    "Tell me about X" / "research Acme" / "brief me on Tesla" / "what does Apple do" / "company profile for Microsoft" / "give me the rundown on NVDA" / "everything you know about $TICKER" — full cross-source profile of a US public company in ONE parallel call. ALWAYS PREFER over chaining single-pack SEC/XBRL/news lookups when the user asks for a holistic view. Fans out across SEC EDGAR, XBRL, USPTO patents, federal contracts (USAspending), FDA-licensed biologics (Purple Book), H-1B hiring (DOL LCA), news and GLEIF, and returns: cik + company_name (+ resolved_from/resolved_to when `value` was a name); recent_filings (up to 5 with pipeworx://edgar/company/{cik}/filings/{accession} URIs); fundamentals (the latest ANNUAL Revenues, NetIncomeLoss, Cash, diluted EPS, capex and operating cash flow, each with its period_end, SEC form and the accession of the filing it came from — plus EntityCommonStockSharesOutstanding, which is the newest COVER-PAGE share count the filer has published rather than an annual one, so its period_end is a cover date after the quarter closed and it is the right per-share denominator; a filer tagging a fallback concept appears under the name of that tag instead, e.g. PaymentsToAcquireProductiveAssets instead of PaymentsToAcquirePropertyPlantAndEquipment); patents (USPTO PatentsView API sunset May 2025 — soft-fails until reactivated); federal_contracts (USAspending awards where the company is the recipient); fda_products (FDA-licensed biologics — vaccines, cell/gene therapies — from the Purple Book; a company with only small-molecule/generic drugs will show none here, that is expected, not a failure); hiring (H-1B sponsorship volume + salary range from DOL LCA filings); recent news mentions via GDELT→GNews fallback; LEI via GLEIF. `sources_used` / `sources_failed` say which of these actually returned data for THIS company — an empty section is a real "no data", not a bug. `sources_skipped` is the third state: a leg we deliberately did NOT run, each entry carrying a `reason` token and a plain-English `detail` (the Purple Book is skipped for a filer SEC classifies outside the life-science SIC bands, since it lists only 351(a)/(k) biologics licence holders). Pass a ticker ("AAPL"), zero-padded CIK ("0000320193"), OR a company name ("Moderna") — names now resolve via SEC EDGAR's company-name match; a private company (no CIK/ticker) returns resolved:false with an explicit `notes` line, not a bare failure. `type` accepts "company" or "ticker" interchangeably — both take the same `value` shapes above.

  • list_subscriptionsremoved

    List the caller's active subscriptions. Returns id, type, params, created_at, last_fired_at, fire_count for each. Use this to review what you're monitoring before adding more or to find an id to cancel.

  • subscriberemoved

    Create a proactive monitoring subscription to a live-data event stream. Returns the new subscription id. Requires a Pipeworx OAuth account (anonymous + BYO cannot persist subscriptions). Supported types: "sec_8k" (8-K filings matching ticker + item codes — e.g. items:["5.02"] = officer change), "polymarket_edge" (Polymarket↔Kalshi cross-venue mispricings — params:{topic:"fed"}), "fred_series" (new FRED observations — params:{series_id:"UNRATE"}), "patent_grant" (new USPTO grants for an applicant), "clinical_trial" (new/updated ClinicalTrials.gov studies), "form_d" (new SEC Form D fundraise notices — params:{state?, industry?, min_amount?, exemption?}, all optional), "news_keyword" (GDELT keyword news alerts, metadata+link only — params:{query, lang?, domains?}), "job_post" (new public job-board postings — params:{ats?, board_token?} or {domain?}, plus optional title_query/location_query), "tool_diff" (re-runs any read-only tool on a schedule and fires on change — params:{tool, args?, fields[], schedule}), "new_entity" (new business registrations from a state business-entity registry — params:{state:"CO", name_query?, entity_type?}), "tech_change" (a watched domain's website technology stack adds or drops a technology — params:{domains:["acme.com"], technologies?}). Delivery channels: feed (always on — pull via recent_alerts or GET registry.pipeworx.io/alerts.json), and optionally email (set delivery:{email:"[email protected]"}) or sms (delivery:{sms:"+15551234567"} — phone must be verified at /account first; 10/day cap).

  • search_withinremoved

    Semantic search INSIDE a fetched record. Pass the text you already pulled (e.g. a SEC 10-K body, an article, a long tool result) plus a natural-language query; get back the top-N passages with character offsets and similarity scores. Use when the record is too big to cram into the prompt — search_within saves context, returns only the passages that matter, and every passage carries an offset so the agent can verify a verbatim quote. Pairs with ask_pipeworx_grounded: fetch with the gateway, ground over the relevant passages instead of the whole document. BGE-base-en embeddings + cosine over 500-char overlapping windows; cap is 200K chars (longer inputs are truncated and flagged).

  • ask_pipeworx_groundedremoved

    Hallucination-resistant answer mode for high-stakes reads. Same routing as ask_pipeworx — picks the right tool from 6,919 across 1820 sources, fills arguments, fetches the data — then EXTRACTS the answer using ONLY what the tool result contains. Returns {answer, evidence (verbatim quote), confidence, source, fetched_at, refusal_reason:null} on success, OR an explicit refusal {answer:null, refusal_reason:"not_in_source"|"no_tool_match"|"tool_error"|"data_truncated"|"llm_error"} when the data doesn't directly answer. Use whenever an answer will be quoted, cited, or acted on, and the agent must not invent facts (financial verdicts, legal claims, medical lookups, public statements). Costs one extra LLM call vs ask_pipeworx — prefer ask_pipeworx for casual lookups.

  • resolution_auditremoved

    Extract the settlement clause of a single Polymarket or Kalshi market: who publishes the settling number (source), the clock time + timezone it is taken at, the precision of the computation (e.g. "1-minute candle close" vs "60-second trailing average" vs "election outcome"), the evidence standard (official_source | consensus_reporting | any_credible_report | unspecified), and void_handling (cancellation/postponement settlement — reused verbatim from bet_research's cancellation_rule detector, not re-derived). Parses Polymarket's `description` field (fetched via polymarket_market) or Kalshi's `rules_primary` + `rules_secondary` fields (fetched via kalshi_market) with regex + a small vocabulary — no LLM pass, so an unusual clause reports confidence:"low" rather than a guess. Pass `market` as a Polymarket slug/URL or a Kalshi market ticker (e.g. "KXBTCD-26SEP1317-T66999.99"); a Kalshi EVENT ticker (e.g. "KXBTCD-26SEP1317") also works — it picks one representative market under that event, since the settlement mechanism is normally shared across all strikes/legs in one event. Use this before treating a polymarket_kalshi_spread row as a real arbitrage: two ladders that look alike can settle on different sources, at different times, with different precision — this tool is how you check. Pair with resolution_diff to compare two markets directly. KNOWN GAP: idiosyncratic phrasing that doesn't match the vocabulary returns confidence:"low" and evidence_standard:"unspecified" rather than an LLM-guessed answer.

  • pdufa_catalystsremoved

    Companies with disclosed PDUFA dates — the highest-signal binary biotech catalyst. Searches recent SEC EDGAR 8-K filings (keyless) for PDUFA target / goal / action dates and extracts the date and surrounding context. A PDUFA date is the FDA decision date for an NDA or BLA; it is a scheduled binary event that moves biotech stocks. Returns each disclosure with company, ticker, CIK, filing date, form, PDUFA date (ISO when the filing gives a specific day), pdufa_period when the filing discloses only a coarser grain such as "Q1 2027" or "March 2027", a short context snippet, the SEC filing URL, and accession number. A row may carry a period without a date — that is the filing being vague, not a lookup failure. Use for PDUFA date, PDUFA goal date, FDA decision date, upcoming FDA decisions, drug approval catalyst, NDA/BLA decision date, biotech binary event, catalyst by ticker. ALSO the REGULATORY-STATUS reading of the same data, which is what most callers actually ask: which drugs are currently UNDER FDA REVIEW, which medicines ENTERED FDA REVIEW or were ACCEPTED FOR REVIEW recently, new NDA/BLA SUBMISSIONS and FILINGS ACCEPTED by the FDA, drugs AWAITING FDA APPROVAL, what is in the FDA review queue. A company announces acceptance in an 8-K at the moment review begins, so filing_date is when the drug ENTERED review and pdufa_date is when the decision is due — bounding filing_date with since/until answers "what entered FDA review last week". Note this is REGULATORY review of a marketing application, not clinical trials: for drugs entering or moving through TRIALS use the clinicaltrials tools instead.

Showing the latest 10. Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 97 / 100

provenance90
liveness100
freshness100
hygiene100

+repository +namespace-matches-repo +website +reachable +uptime-99% +updated-3d-ago

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://gateway.pipeworx.io/regulatory-catalysts/mcp streamable-httpnoneyes99%27 ms2025-03-262026-10-19

Tools (0)

No tools observed. Tools appear once a credential-free probe can list them.

Schemas: list_tools.

Similar MCP servers

More from io.github.pipeworx-io

And 1,847 more from this publisher.

Official server.json
{
  "name": "io.github.pipeworx-io/regulatory-catalysts",
  "title": "Regulatory Catalysts",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://gateway.pipeworx.io/regulatory-catalysts/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "0.1.6",
  "repository": {
    "url": "https://github.com/pipeworx-io/mcp-regulatory-catalysts",
    "source": "github"
  },
  "websiteUrl": "https://pipeworx.io/packs/regulatory-catalysts",
  "description": "Regulatory Catalysts MCP — high-value biotech regulatory calendar events (keyless)."
}