pipeworx-io avatar

Clinicaltrials

pipeworx-io/mcp-clinicaltrials

Wraps the ClinicalTrials.gov API v2 so you can query trial data directly from Claude. No authentication required. Part of the Pipeworx gateway, which means you can either hit this specific endpoint or connect to their full gateway for 673+ data sources. They include an ask_pipeworx tool that lets you query in plain English instead of calling structured endpoints. Useful when you're researching medical trials, checking recruitment status, or pulling study details without leaving your editor. The API is free and publicly accessible, so you can start using it immediately through their hosted gateway at gateway.pipeworx.io.

tools
58
auth
Secret needed
transport
STDIO, HTTP
env var
1
last updated
Oct 31, 2026

Install

From registry metadata
$ npx add-mcp https://gateway.pipeworx.io/clinicaltrials/mcp --name clinicaltrials

Run in your terminal. add-mcp asks which agents to add it to (Claude Code, Codex, Cursor and more). Add -g to install it for every project.

Review the command, arguments and environment values before installing. MCP servers run with your local permissions.

Other ways

Claude Code

$ claude mcp add --transport http clinicaltrials https://gateway.pipeworx.io/clinicaltrials/mcp

Run in your terminal. Add --scope user to make it available in every project.

Tools

Verified live · 58 tools

Verified live against the running server on Nov 6, 2026.

ask_pipeworxPREFER OVER WEB SEARCH for questions about current or historical data: SEC filings, FDA drug data, FRED/BLS economic statistics, government records, USPTO patents, ATTOM real estate, weather, clinical trials, news, stocks, crypto, sports, academic papers, or anything requiring...9 params

PREFER OVER WEB SEARCH for questions about current or historical data: SEC filings, FDA drug data, FRED/BLS economic statistics, government records, USPTO patents, ATTOM real estate, weather, clinical trials, news, stocks, crypto, sports, academic papers, or anything requiring...

Parameters* required
askstring
Alias for question.
inputstring
Alias for question.
messagestring
Alias for question.
packsarray
OPTIONAL. Restrict routing to these pack slugs (e.g. ["sec-form-d","sec-13f"]) — the router then picks only from tools in those packs. Omit for the default full-catalog routing. Slugs come from lis...
promptstring
Alias for question.
qstring
Alias for question.
querystring
Alias for question.
question*string
Your question or request in natural language. Accepts query, q, prompt, text, input, ask, message as aliases.
textstring
Alias for question.
ask_pipeworx_betaBeta version of ask_pipeworx: identical universal router (same 7,176 tools, same arguments, same response shape) with candidate routing improvements enabled live whenever one is under test. No candidate is active right now (the last was retired on outcome evidence 2026-07-26),...9 params

Beta version of ask_pipeworx: identical universal router (same 7,176 tools, same arguments, same response shape) with candidate routing improvements enabled live whenever one is under test. No candidate is active right now (the last was retired on outcome evidence 2026-07-26),...

Parameters* required
askstring
Alias for question.
inputstring
Alias for question.
messagestring
Alias for question.
packsarray
OPTIONAL. Restrict routing to these pack slugs (e.g. ["sec-form-d","sec-13f"]) — the router then picks only from tools in those packs. Omit for the default full-catalog routing. Slugs come from lis...
promptstring
Alias for question.
qstring
Alias for question.
querystring
Alias for question.
question*string
Your question or request in natural language. Accepts query, q, prompt, text, input, ask, message as aliases.
textstring
Alias for question.
ask_pipeworx_groundedHallucination-resistant answer mode for high-stakes reads. Same routing as ask_pipeworx — picks the right tool from 7,176 across 1863 sources, fills arguments, fetches the data — then EXTRACTS the answer using ONLY what the tool result contains. Returns {answer, evidence (verb...9 params

Hallucination-resistant answer mode for high-stakes reads. Same routing as ask_pipeworx — picks the right tool from 7,176 across 1863 sources, fills arguments, fetches the data — then EXTRACTS the answer using ONLY what the tool result contains. Returns {answer, evidence (verb...

Parameters* required
askstring
Alias for question.
inputstring
Alias for question.
messagestring
Alias for question.
prefer_toolstring
Run this exact tool instead of letting the router choose — use a name from a previous answer's alternatives[]. Arguments are still filled from your question. Unknown names are refused, never guessed.
promptstring
Alias for question.
qstring
Alias for question.
querystring
Alias for question.
question*string
Your question in natural language. Accepts query, q, prompt, text, input, ask, message as aliases.
textstring
Alias for question.
search_withinSemantic 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...3 params

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...

Parameters* required
limitnumber
Max passages to return (1-20, default 5).
query*string
Natural-language query — what passages do you want? E.g. "supply-chain risk", "fiscal year 2024 revenue", "drug interactions with warfarin".
text*string
The document text to search inside (max ~200K chars).
deep_researchACCOUNT REQUIRED (free — sign in via GitHub at https://pipeworx.io/signup; depth:"thorough" needs a paid plan). If you are not signed in, use ask_pipeworx instead — it works on every tier. Grounded multi-source research across Pipeworx's 1863 STRUCTURED data sources (SEC filin...9 params

ACCOUNT REQUIRED (free — sign in via GitHub at https://pipeworx.io/signup; depth:"thorough" needs a paid plan). If you are not signed in, use ask_pipeworx instead — it works on every tier. Grounded multi-source research across Pipeworx's 1863 STRUCTURED data sources (SEC filin...

Parameters* required
askstring
Alias for question.
depthstring
How many facets to research in parallel: quick=3 (single hop), standard=3 (default; adds a gap-recovery hop that re-angles unanswered facets + a contradictions[] scan across findings), thorough=6 (...one of quick · standard · thorough
inputstring
Alias for question.
messagestring
Alias for question.
promptstring
Alias for question.
qstring
Alias for question.
querystring
Alias for question.
question*string
The research question, in natural language. Broad/multi-part is fine — decomposition is the point. Accepts query, q, prompt, text, input, ask, message as aliases.
textstring
Alias for question.
discover_toolsFind tools by describing the data or task. Use when you need to browse, search, look up, or discover what tools exist for: SEC filings, financials, revenue, profit, FDA drugs, adverse events, FRED economic data, Census demographics, BLS jobs/unemployment/inflation, ATTOM real...6 params

Find tools by describing the data or task. Use when you need to browse, search, look up, or discover what tools exist for: SEC filings, financials, revenue, profit, FDA drugs, adverse events, FRED economic data, Census demographics, BLS jobs/unemployment/inflation, ATTOM real...

Parameters* required
descriptionstring
Alias for query.
limitnumber
Maximum number of tools to return (default 20, max 50)
qstring
Alias for query.
query*string
Natural language description of what you want to do (e.g., "analyze housing market trends", "look up FDA drug approvals", "find trade data between countries"). Accepts task, q, description, search...
searchstring
Alias for query.
taskstring
Alias for query.
resolve_entity"What's the ticker for…" / "find the CIK for…" / "what's the LEI for…" / "what's the RxCUI for…" / "look up the ID for…" / "what is X's official identifier" / "who owns X" / "is X a subsidiary of Y" — resolve a user-spoken NAME to the canonical/official identifiers other tools...3 params

"What's the ticker for…" / "find the CIK for…" / "what's the LEI for…" / "what's the RxCUI for…" / "look up the ID for…" / "what is X's official identifier" / "who owns X" / "is X a subsidiary of Y" — resolve a user-spoken NAME to the canonical/official identifiers other tools...

Parameters* required
countrystring
OPTIONAL ISO 3166-1 alpha-2 of the country whose business register you mean ("NO", "FI", "JP", "GB", "FR", "EE", "BR"). Narrows the national-register fan-out and is often the difference between the...
type*string
Entity type: "company" or "drug".one of company · drug
value*string
For company: ticker (AAPL), CIK (0000320193), or name. For drug: brand or generic name (e.g., "ozempic", "metformin"). Pass the ENTITY NAME ONLY — for a bond that is the ISSUER exactly as printed (...
compare_entities"Compare X and Y" / "X vs Y" / "X versus Y" / "which is bigger / better / larger / more profitable" / "rank these companies" / "head to head" — side-by-side comparison of 2–5 companies or drugs in ONE parallel call. ALWAYS PREFER over sequential single-pack lookups when compar...2 params

"Compare X and Y" / "X vs Y" / "X versus Y" / "which is bigger / better / larger / more profitable" / "rank these companies" / "head to head" — side-by-side comparison of 2–5 companies or drugs in ONE parallel call. ALWAYS PREFER over sequential single-pack lookups when compar...

Parameters* required
type*string
Entity type: "company" or "drug".one of company · drug
values*array
For company: 2–5 tickers/CIKs (e.g., ["AAPL","MSFT"]). For drug: 2–5 names (e.g., ["ozempic","mounjaro"]).
subscribeCreate 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"]...3 params

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"]...

Parameters* required
deliveryobject
Optional delivery channels in addition to the always-on persistent feed. {email:"you@x.com"} sends a templated alert per fired event. {sms:"+15551234567"} sends an SMS per event — must match the ve...
params*object
Type-specific filter. sec_8k: {ticker:"AAPL", items?:["5.02","1.01"]}. polymarket_edge: {topic:"fed", min_spread_bps?:500}. fred_series: {series_id:"UNRATE"}. patent_grant: {applicant:"Apple Inc."}...
type*string
Subscription type.one of sec_8k · polymarket_edge · fred_series · patent_grant · clinical_trial · form_d
unsubscribeCancel a subscription by id. Ownership is enforced — you can only cancel your own subscriptions. The row is deactivated (not deleted) so its historical events stay available via recent_alerts.1 params

Cancel a subscription by id. Ownership is enforced — you can only cancel your own subscriptions. The row is deactivated (not deleted) so its historical events stay available via recent_alerts.

Parameters* required
id*string
Subscription id (uuid) returned by subscribe.
list_subscriptionsList 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.1 params

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.

Parameters* required
include_inactiveboolean
Include cancelled subscriptions in the response (default false).
recent_alertsPull fired events from your subscription feed. Returns the most recent alerts the evaluator has written to your persisted feed — each carries source, citation_uri (pipeworx:// when available), and the raw event payload. Filter by type (e.g. "sec_8k") and/or since (ISO timestam...5 params

Pull fired events from your subscription feed. Returns the most recent alerts the evaluator has written to your persisted feed — each carries source, citation_uri (pipeworx:// when available), and the raw event payload. Filter by type (e.g. "sec_8k") and/or since (ISO timestam...

Parameters* required
limitnumber
Max events to return (1-200, default 50).
mark_readboolean
Flag the returned events read in the same call (default false).
sincestring
Optional ISO timestamp — return events fired_at >= this time.
typestring
Optional — filter to one subscription type.
unread_onlyboolean
Return only events where read_at is null (default false).
entity_profile"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...3 params

"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...

Parameters* required
countrystring
OPTIONAL ISO 3166-1 alpha-2 of the business register you mean ("NO", "FI", "GB", "JP", "FR", "EE", "BR"). Only affects a NAME lookup, and is often what separates the company you mean from a US name...
type*string
"company" or "ticker" — both are accepted and behave identically; `value` can be a ticker, CIK, or company name either way. person/place coming soon.one of company · ticker
value*string
Ticker (e.g., "AAPL"), zero-padded CIK (e.g., "0000320193"), or company name (e.g., "Moderna"). A NAME now resolves through the national business registers as well as SEC EDGAR, so a non-US company...
recent_changes"What's new with X" / "latest on Y" / "what happened to Z this week / month / quarter" / "updates on Acme" / "news on Tesla recently" / "what's happening with Apple" — change feed for a company in the last N days/weeks/months in ONE parallel call. Fans out to SEC EDGAR (filing...3 params

"What's new with X" / "latest on Y" / "what happened to Z this week / month / quarter" / "updates on Acme" / "news on Tesla recently" / "what's happening with Apple" — change feed for a company in the last N days/weeks/months in ONE parallel call. Fans out to SEC EDGAR (filing...

Parameters* required
since*string
Window start — ISO date ("2026-04-01") or relative ("7d", "30d", "3m", "1y"). Use "30d" or "1m" for typical monitoring.
type*string
Entity type. Only "company" supported today.one of company
value*string
Ticker (e.g., "AAPL") or zero-padded CIK (e.g., "0000320193").
validate_claim"Is it true that…" / "fact check" / "verify the claim that…" / "did X really…" / "was Y actually…" / "confirm or refute" / "true or false" — natural-language claim verification against authoritative sources. Use whenever the agent needs to check whether something a user said i...2 params

"Is it true that…" / "fact check" / "verify the claim that…" / "did X really…" / "was Y actually…" / "confirm or refute" / "true or false" — natural-language claim verification against authoritative sources. Use whenever the agent needs to check whether something a user said i...

Parameters* required
claim*string
Natural-language factual claim, e.g., "Apple's FY2024 revenue was $400 billion" or "Microsoft made about $100B in profit last year".
tolerance_pctnumber
Max percent deviation still graded approximately_correct (0.5–50). Overrides the tolerance implied by the claim wording — set 1–2 for hallucination detection where any material error must be refute...
company_factsTYPED, DETERMINISTIC financial facts for a US public company for an EXPLICITLY NAMED reporting period — "Apple revenue for fiscal 2023", "Walmart net income FY2026 Q3", "Microsoft cash at the end of fiscal 2024". PREFER OVER entity_profile / get_company_financials whenever the...9 params

TYPED, DETERMINISTIC financial facts for a US public company for an EXPLICITLY NAMED reporting period — "Apple revenue for fiscal 2023", "Walmart net income FY2026 Q3", "Microsoft cash at the end of fiscal 2024". PREFER OVER entity_profile / get_company_financials whenever the...

Parameters* required
as_ofstring
Past ISO timestamp with timezone. Replay the latest answer actually recorded by that instant; no invented history or live fallback.
attribute*string
Which figure. "revenue" = total consolidated revenue; "net_income" = net income (loss); "cash" = cash and cash equivalents at the period end; "gross_profit"; "operating_income"; "eps_diluted" (dilu...one of revenue · net_income · cash · gross_profit · operating_income · eps_diluted
basisstring
Only "consolidated" in v1. Segment and product-level figures are XBRL-dimensioned and are not reachable through this contract at any concept.one of consolidated
company*string
Ticker ("AAPL"), 10-digit CIK ("0000320193"), or company name. A name that matches two filers equally well returns status "ambiguous" with both named rather than guessing — pass a ticker or CIK to...
exclude_publishersarray
Publisher ids forbidden for fact retrieval: sec, fmp, alphavantage. Case and surrounding whitespace are normalized; unknown ids are refused. Excluding sec currently leaves no eligible fact source a...
freshnessstring
cached (default) permits an eligible stored answer; fresh requires an upstream refresh and never silently falls back to stale data.one of cached · fresh
max_agenumber
Maximum age in seconds of the upstream publication, not our fetch. Older or undated facts are withheld.
period*object
The reporting period, stated explicitly. There is no default and no "latest" — that is the point of this tool.
restatementstring
Default "as_amended" — the latest filed figure for the period, with everything it superseded listed. "as_originally_reported" takes the first filing instead.one of as_amended · as_originally_reported
company_register_searchSearch the NATIONAL BUSINESS REGISTERS by company name and get the register's own id back — a Companies House number, a Norwegian organisasjonsnummer, a Finnish business id, a SIREN, a Japanese corporate number, an Estonian registry code, a CNPJ, or an LEI. Use this when you w...3 params

Search the NATIONAL BUSINESS REGISTERS by company name and get the register's own id back — a Companies House number, a Norwegian organisasjonsnummer, a Finnish business id, a SIREN, a Japanese corporate number, an Estonian registry code, a CNPJ, or an LEI. Use this when you w...

Parameters* required
countrystring
OPTIONAL ISO 3166-1 alpha-2 of the register you mean ("GB", "NO", "FI", "FR", "JP", "EE", "BR"). Narrows the fan-out, and is frequently the difference between an answer and `ambiguous` on a short n...
limitnumber
Maximum candidates to return, 1-50 (default 10). Does not change which registers are asked, only how many rivals come back.
name*string
The company name as you have it, in its own script. Pass it VERBATIM — do not strip the legal form ("Oyj", "AS", "株式会社", "Ltd"): in Japanese the form is a PREFIX as often as a suffix and 株式会社花王 and...
scan_dependencyComposite "should I add this npm package to my project" check in ONE call — fans out across deps.dev (license + advisories + version history) and bundlephobia (gzipped/minified bundle size, dependency count, ESM/tree-shake support). Use whenever an agent asks "is X safe / popu...2 params

Composite "should I add this npm package to my project" check in ONE call — fans out across deps.dev (license + advisories + version history) and bundlephobia (gzipped/minified bundle size, dependency count, ESM/tree-shake support). Use whenever an agent asks "is X safe / popu...

Parameters* required
package*string
npm package name. Scoped packages (e.g. "@types/node") are accepted.
versionstring
Specific version to check (e.g., "18.3.1"). Defaults to the latest published version when omitted.
bet_researchResearch a Polymarket bet by pulling the relevant Pipeworx data for it in one call. Pass a market slug ("will-kristi-noem-win-the-2028-republican-presidential-nomination"), a polymarket.com URL, or a question text. A dated slug ("...-by-june-30-2026") still resolves after it s...3 params

Research a Polymarket bet by pulling the relevant Pipeworx data for it in one call. Pass a market slug ("will-kristi-noem-win-the-2028-republican-presidential-nomination"), a polymarket.com URL, or a question text. A dated slug ("...-by-june-30-2026") still resolves after it s...

Parameters* required
depthstring
quick = 2-3 evidence sources, thorough = full fan-out. Default thorough.one of quick · thorough
include_rawboolean
Default false. When false (recommended), FRED/FDA/GDELT/Federal-Register evidence is summarized to the few fields agents actually use — keeps responses under ~20KB. Pass true to get full upstream p...
market*string
Polymarket slug ("will-kristi-noem-win-the-2028-republican-presidential-nomination"), full URL ("https://polymarket.com/event/..."), or question text ("Will Bitcoin hit $150k?"). Dated slugs still...
polymarket_arbitrageFind arbitrage opportunities on Polymarket via monotonicity violations + partition-sum checks. Call with NO args for a `trending_scan` of the top ~200 markets by weekly volume; pass `event` for the strongest per-event partition_check, or `topic` for a themed cross-event scan....2 params

Find arbitrage opportunities on Polymarket via monotonicity violations + partition-sum checks. Call with NO args for a `trending_scan` of the top ~200 markets by weekly volume; pass `event` for the strongest per-event partition_check, or `topic` for a themed cross-event scan....

Parameters* required
eventstring
Single-event mode (use this if you know the specific Polymarket event): event slug like "fed-decision-may-2026" or "when-will-bitcoin-hit-150k". Full Polymarket URLs also accepted.
topicstring
Cross-event mode (use this if you want to scan related events across the platform): a topic or seed question like "Fed rate decision" or "Strait of Hormuz traffic returns to normal". Tool searches...
polymarket_edgesScan top Polymarket markets and return opportunities where Pipeworx data disagrees with market price. Built for "what should I bet on today" — agents discover opportunities without paging hundreds of markets. FIVE MODEL FAMILIES grouped into three response segments under by_se...9 params

Scan top Polymarket markets and return opportunities where Pipeworx data disagrees with market price. Built for "what should I bet on today" — agents discover opportunities without paging hundreds of markets. FIVE MODEL FAMILIES grouped into three response segments under by_se...

Parameters* required
category_filterstring
Comma-separated list to restrict the output: "model_driven" (crypto_price + news_momentum), "structural_arbitrage" (partition_overround), "concentrated_longshot". Combine like "model_driven,structu...
limitnumber
Top N edges to return after ranking. Default 10, max 25.
max_spread_ppnumber
Tradeable-edge filter. Maximum bid/ask spread in percentage points on the representative market. Default null (no filter). Set to 2 to require tight books — anything wider eats most plausible edges.
min_edge_ppnumber
Minimum |edge| in percentage points to include (default 0.5). Edge is evaluated NET of slippage and Polymarket's own taker fee.
min_kellynumber
Minimum half-Kelly fraction (as decimal, e.g. 0.005 = 0.5% of bankroll) to include single-leg opportunities. Default 0 (no filter). Skips opportunities that are too small to bet sensibly even if th...
min_liquiditynumber
Tradeable-edge filter. Minimum $ liquidity on the representative market (or for partition_overround, on at least one top_leg). Default 0 (no filter). Set to 5000 to drop thin-book opportunities whe...
min_partition_leg_kellynumber
Minimum BEST per-leg half-Kelly fraction across a partition_overround opportunity's top_legs (or longshot_basket legs). Default 0 (no filter). Partition arbs always return kelly_fraction_half=0 at...
slippage_ppnumber
Assumed execution slippage in percentage points per leg (default 0.3), for bid/ask + thin depth cost that a last-trade price does not show. Subtracted from raw |edge| before ranking and Kelly sizin...
windowstring
Polymarket volume window to filter markets. Default 1wk.one of 24hr · 1wk · 1mo
polymarket_kalshi_spreadCross-venue spread between Kalshi and Polymarket for the same resolving question. The two venues sometimes price the same outcome 2-25pp apart because their participant pools differ — when the bet shapes are equivalent that delta is a real signal, when they aren't the tool say...3 params

Cross-venue spread between Kalshi and Polymarket for the same resolving question. The two venues sometimes price the same outcome 2-25pp apart because their participant pools differ — when the bet shapes are equivalent that delta is a real signal, when they aren't the tool say...

Parameters* required
kalshi_event_tickerstring
Explicit Kalshi event ticker, e.g. "KXFED-26OCT". Overrides the topic-mapped Kalshi side.
polymarket_event_slugstring
Explicit Polymarket event slug, e.g. "fed-decision-in-june-825". Overrides the topic-mapped Polymarket side.
topicstring
Subject to compare. Canonical keys: fed | btc | eth | cpi | gdp | sp500 | recession | next_pope | next_uk_pm | next_israel_pm | 2028_president — plus the 15-minute crypto up/down windows btc_15m |...
polymarket_fill_riskRealizable-vs-theoretical edge check against live CLOB order-book depth — AND Polymarket's own taker fee, which is never zero and is folded in rather than left for you to add (fleet #3446: r/PredictionsMarkets flagged a "clean" fill that quietly omitted it as optimistic in the...4 params

Realizable-vs-theoretical edge check against live CLOB order-book depth — AND Polymarket's own taker fee, which is never zero and is folded in rather than left for you to add (fleet #3446: r/PredictionsMarkets flagged a "clean" fill that quietly omitted it as optimistic in the...

Parameters* required
eventstring
Basket mode: event slug or full polymarket.com URL — checks every leg of the partition.
marketstring
Single-market mode: market slug or full polymarket.com URL.
sidestring
Single-market: buy_yes | sell_yes | buy_no | sell_no (default buy_yes). Basket: sell_yes | buy_yes (default auto — sell if partition sum > 1, buy if < 1).
size_usdnumber
Single-market: USD to spend (buys) or target proceeds (sells). Basket: settlement notional — shares per leg, each paying $1 at resolution. Default 1000, clamp 10–1,000,000.
polymarket_edge_trackerEdge 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...2 params

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...

Parameters* required
daysnumber
Lookback in days (default 14, clamp 2-30).
windowstring
Which polymarket_edges window family to read snapshots for: 24hr | 1wk | 1mo (default 1wk).
kalshi_weather_edgePrices Kalshi daily high-temperature markets against the NWS forecast for the market's OWN settlement station, and measures whether that forecast actually beats the market. Two modes. LIVE (default): returns the full strike ladder for one city and settlement date with market_p...5 params

Prices Kalshi daily high-temperature markets against the NWS forecast for the market's OWN settlement station, and measures whether that forecast actually beats the market. Two modes. LIVE (default): returns the full strike ladder for one city and settlement date with market_p...

Parameters* required
backtest_daysnumber
Run measurement mode over the last N settled days (max 60) instead of pricing today. Returns brier_market vs brier_forecast, the settlement-vs-forecast basis, and per-day detail. Both sides are sco...
citystring
City to price, e.g. "nyc", "chicago", "los angeles", "miami", "austin", "houston", "denver", "philadelphia". Defaults to nyc. Unmapped cities return known_cities[] rather than a wrong series.
datestring
Settlement date as YYYY-MM-DD. Defaults to the soonest open event. Daily weather markets open ~1-2 days ahead and close 05:00Z the next day.
market_typestring
"high_temp" (default) | "precip". Precipitation markets return prices but no forecast_prob yet.
series_tickerstring
Explicit Kalshi series, e.g. "KXHIGHNY" or "KXHIGHTBOS" (Boston). Overrides `city`; use it for any of the 121 daily weather series not in the city list.
resolution_auditExtract the settlement clause of a single Polymarket (.com or .us) or Kalshi market: who publishes the settling number (source), the clock time + timezone it is taken at (falling back to the market TITLE when the clause itself says "the time range specified in the title" — e.g...2 params

Extract the settlement clause of a single Polymarket (.com or .us) or Kalshi market: who publishes the settling number (source), the clock time + timezone it is taken at (falling back to the market TITLE when the clause itself says "the time range specified in the title" — e.g...

Parameters* required
market*string
Polymarket (.com or .us) market slug or URL, OR a Kalshi market ticker (preferred) or event ticker (falls back to a representative market under that event).
venue*string
Which venue to fetch the market from. "polymarket" is the offshore venue (polymarket.com); "polymarket-us" is the separate, CFTC-regulated polymarket.us venue, matched by slug via its own search (n...one of polymarket · kalshi · polymarket-us
resolution_diffField-by-field diff of TWO markets' settlement clauses (one from each of `a` and `b`; either can be Polymarket .com, Polymarket US, or Kalshi) — runs resolution_audit on both sides and compares source, settle time, precision, comparison_basis, and evidence standard. Returns `e...2 params

Field-by-field diff of TWO markets' settlement clauses (one from each of `a` and `b`; either can be Polymarket .com, Polymarket US, or Kalshi) — runs resolution_audit on both sides and compares source, settle time, precision, comparison_basis, and evidence standard. Returns `e...

Parameters* required
a*object
First market to compare.
b*object
Second market to compare.
release_calendar_marketsJOIN of the official release calendar (econ data, the FOMC, FDA decisions, SEC rules) against LIVE Polymarket/Kalshi markets — which scheduled releases land in the next N hours, and which live markets resolve on them. This is a POSITIONING tool, not a speed product: results ar...2 params

JOIN of the official release calendar (econ data, the FOMC, FDA decisions, SEC rules) against LIVE Polymarket/Kalshi markets — which scheduled releases land in the next N hours, and which live markets resolve on them. This is a POSITIONING tool, not a speed product: results ar...

Parameters* required
categoriesstring
Comma or space separated subset of econ|fed|fda|sec|court, or "all" (default). E.g. "econ,fed" or "fda".
hoursnumber
Look-ahead window in hours from now. Default 48. Capped at 720 (30 days) — econ/fed releases are dated weeks apart, so a short window is often empty; widen rather than assume nothing is scheduled.
prediction_calibrationREALIZED win rate by shown price and minutes elapsed for short-horizon crypto up/down markets, net of taker fee — read from our own settled-outcomes archive, not from live prices. Answers the one question no venue will: "a side shown at 82 with five minutes left, how often did...6 params

REALIZED win rate by shown price and minutes elapsed for short-horizon crypto up/down markets, net of taker fee — read from our own settled-outcomes archive, not from live prices. Answers the one question no venue will: "a side shown at 82 with five minutes left, how often did...

Parameters* required
assetstring
btc (default) | eth | sol | xrp | bnb. Coverage differs by venue: polymarket and polymarket-us carry btc/eth/sol/xrp, Kalshi carries btc/eth/bnb.
bucket_ppnumber
Price-bucket width in percentage points: 5 | 10 (default) | 20 | 25 | 50. Must divide 100, so the last bucket is never narrower than the rest.
horizonstring
15m (default). 5m | 1h | 1d are accepted but only 15m is collected today, so another value returns coverage.windows_total 0 rather than an error.
minutenumber
Minutes elapsed since window open, 0-based. Omit for the full grid; pass 5 for the "five minutes in" row only, which is also the cheapest query.
side_conventionstring
"favorite" (default) folds each window onto whichever side was the favorite — the frame published claims about early favorites use. "yes" keeps the venue own YES/Up side.
venuestring
polymarket | polymarket-us | kalshi | all (default polymarket). "all" returns one grid per venue, never a merged one.
updown_venue_compareThe same 15-minute crypto "up or down" window priced on polymarket.com, Polymarket US and Kalshi, side by side, with whether each pair is actually the same contract. Pass asset (btc | eth | sol | xrp | bnb) and window ("current" default, "next", "previous", or the window START...3 params

The same 15-minute crypto "up or down" window priced on polymarket.com, Polymarket US and Kalshi, side by side, with whether each pair is actually the same contract. Pass asset (btc | eth | sol | xrp | bnb) and window ("current" default, "next", "previous", or the window START...

Parameters* required
assetstring
btc (default) | eth | sol | xrp | bnb. Coverage differs by venue; a venue that does not list the asset answers not_listed.
horizonstring
15m (default and the only value offered).
windowstring
"current" (default), "next", "previous", or the window START as an ISO-8601 timestamp on a 15-minute boundary, e.g. 2026-10-27T14:15:00Z. An unaligned timestamp is refused, not rounded.
updown_divergence_rateHow often two venues settled the SAME 15-minute crypto window differently, over every settled window on record. Compares polymarket.com (Chainlink TWAP) with Kalshi and with Polymarket US (both CF Benchmarks BRTI), and Kalshi with Polymarket US as the same-feed control. Per pa...2 params

How often two venues settled the SAME 15-minute crypto window differently, over every settled window on record. Compares polymarket.com (Chainlink TWAP) with Kalshi and with Polymarket US (both CF Benchmarks BRTI), and Kalshi with Polymarket US as the same-feed control. Per pa...

Parameters* required
assetstring
btc (default) | eth | sol | xrp | bnb. The archive holds btc/eth on all three venues, sol/xrp on polymarket.com and Polymarket US, bnb on Kalshi only (no pair).
daysnumber
Look-back in days, 1-90 (default 30). The archive starts 2026-09-22 (polymarket.com, Kalshi) and 2026-10-07 (Polymarket US, btc), so a longer span is capped by what is held; coverage is reported pe...
archive_evidenceWhat did a web page say on a given date? Finds the archived capture of a URL nearest that date across the Internet Archive Wayback Machine, Common Crawl and Arquivo.pt, reads it, and returns the readable text (HTML stripped) with the capture timestamp, a link to the archived c...4 params

What did a web page say on a given date? Finds the archived capture of a URL nearest that date across the Internet Archive Wayback Machine, Common Crawl and Arquivo.pt, reads it, and returns the readable text (HTML stripped) with the capture timestamp, a link to the archived c...

Parameters* required
date*string
The date to look up, as YYYY-MM-DD (e.g. "2023-06-01"), YYYYMMDD, or a full ISO timestamp.
max_charsnumber
Characters of page text to return. Default 12000, max 60000.
max_gap_daysnumber
Furthest a capture may be from the date and still be used, in days. Default 30, max 3650.
url*string
The page address, e.g. "https://www.sec.gov" or "https://www.ftc.gov/policy-notices/privacy-policy".
archive_compareWhat changed on a web page between two dates? Resolves the archived capture nearest each date (Internet Archive Wayback Machine, Common Crawl, Arquivo.pt), extracts the readable text of both, and returns a text-level diff: the segments removed and added, a similarity score, an...4 params

What changed on a web page between two dates? Resolves the archived capture nearest each date (Internet Archive Wayback Machine, Common Crawl, Arquivo.pt), extracts the readable text of both, and returns a text-level diff: the segments removed and added, a similarity score, an...

Parameters* required
date_a*string
The earlier date, as YYYY-MM-DD (e.g. "2021-06-01").
date_b*string
The later date, as YYYY-MM-DD (e.g. "2024-06-01").
max_gap_daysnumber
Furthest a capture may be from each date and still be used, in days. Default 30, max 3650.
url*string
The page address, e.g. "https://www.ftc.gov/policy-notices/privacy-policy".
research_rowClaygent-style per-row research: answer ONE question about ONE company and return a JSON object matching your output_schema, with every field wrapped in its own evidence — {value, evidence_url, quote, status}. status is NEVER self-reported by the model: "found" means this code...5 params

Claygent-style per-row research: answer ONE question about ONE company and return a JSON object matching your output_schema, with every field wrapped in its own evidence — {value, evidence_url, quote, status}. status is NEVER self-reported by the model: "found" means this code...

Parameters* required
entity*object
The row/company to research. At least one of name/domain required.
max_costnumber
Cost ceiling in US dollars for this one row. Default 0.02, max 0.50, minimum viable 0.002 (below that the call is refused rather than silently exceeding it).
output_schema*object
JSON Schema object naming the fields to extract, e.g. {"properties":{"sells_to_healthcare":{"type":"boolean"},"head_of_sales":{"type":"string"}}}. Up to 20 fields.
question*string
The question to answer about this company, in natural language, e.g. "Does this company sell to healthcare, and who is the head of sales?"
sourcesstring
Where to look: "web" (company site only), "catalog" (entity_profile only), "both" (default).one of catalog · web · both
classify_rowCheap categorization: given a company and a list of candidate labels, decide which labels apply — the most common GTM/AI usage shape (tagging a list by industry, ICP fit, etc.), one small model call. Same evidence contract as research_row: each label comes back {label, applies...3 params

Cheap categorization: given a company and a list of candidate labels, decide which labels apply — the most common GTM/AI usage shape (tagging a list by industry, ICP fit, etc.), one small model call. Same evidence contract as research_row: each label comes back {label, applies...

Parameters* required
entity*object
The row/company to classify. At least one of name/domain required.
labels*array
Candidate labels to test, 2-30 strings, e.g. ["healthcare","fintech","logistics"].
textstring
Text to classify directly (a description, a page you already fetched, etc.) — cheapest path, skips any fetch.
pipeworx_trendingWhat other AI agents are calling on Pipeworx right now. Returns the top tools, top packs, and total call volume over a recent window (24h, 7d, or 30d). Useful for: (1) discovering what data sources are hot for current events, (2) confirming a popular tool is the canonical choi...1 params

What other AI agents are calling on Pipeworx right now. Returns the top tools, top packs, and total call volume over a recent window (24h, 7d, or 30d). Useful for: (1) discovering what data sources are hot for current events, (2) confirming a popular tool is the canonical choi...

Parameters* required
windowstring
24h (default) | 7d | 30d. Shorter windows surface what's hot right now; longer windows show steady-state demand.one of 24h · 7d · 30d
suggest_questionsWhat can I ask Pipeworx? / what is Pipeworx good for? / what can you do? / give me ideas / show me examples / getting started / what data do you have? — the onboarding entry point for an agent that just connected and wants to know what is worth asking. Returns category-buckete...1 params

What can I ask Pipeworx? / what is Pipeworx good for? / what can you do? / give me ideas / show me examples / getting started / what data do you have? — the onboarding entry point for an agent that just connected and wants to know what is worth asking. Returns category-buckete...

Parameters* required
topicstring
Optional focus area: finance | pharma | economics | real-estate | betting | weather | government | science | news. Omit for a cross-category spread.
generate_llms_txtGenerate a production-ready llms.txt file for any URL so AI crawlers (ChatGPT, Claude, Perplexity) can index the site cleanly. Fetches the page, extracts title/description/key links, and emits the standard llms.txt markdown format. Output is a single text blob ready to drop at...2 params

Generate a production-ready llms.txt file for any URL so AI crawlers (ChatGPT, Claude, Perplexity) can index the site cleanly. Fetches the page, extracts title/description/key links, and emits the standard llms.txt markdown format. Output is a single text blob ready to drop at...

Parameters* required
max_linksnumber
Maximum number of link entries to include (default 25, max 50).
url*string
Full URL of the site to summarize, e.g. "https://example.com" or a specific landing page.
ai_visibility_checkProbe one or more LLMs for what they know about a business / brand / product / topic and score visibility (0-100) per model. Default model is Workers AI Llama-3.3-70b (free); pass `_apiKey` to also probe Anthropic (BYO key — you pay Anthropic directly for those calls). Returns...4 params

Probe one or more LLMs for what they know about a business / brand / product / topic and score visibility (0-100) per model. Default model is Workers AI Llama-3.3-70b (free); pass `_apiKey` to also probe Anthropic (BYO key — you pay Anthropic directly for those calls). Returns...

Parameters* required
_apiKeystring
Optional Anthropic API key (sk-ant-...) — only needed if "anthropic" is in models. Passed straight through to api.anthropic.com.
contextstring
Optional: a phrase locating the entity (e.g. "Boston restaurant", "B2B SaaS"). Helps disambiguate common names.
entity*string
The thing to ask about. Brand/business name, product name, person, or topic. E.g. "Pipeworx", "OpenInvoice", "Acme Corp pricing".
modelsarray
Which models to probe. Supported: "workers-ai" (free default), "anthropic" (requires _apiKey). Omit for just workers-ai.
scan_competitor_ai_presenceCompare AI visibility across multiple entities side-by-side. Probes each entity (your brand + N competitors) with ai_visibility_check, ranks by score, surfaces which is most/least recognized. Useful for competitive AI-marketing audits: "does Claude know about us as well as our...4 params

Compare AI visibility across multiple entities side-by-side. Probes each entity (your brand + N competitors) with ai_visibility_check, ranks by score, surfaces which is most/least recognized. Useful for competitive AI-marketing audits: "does Claude know about us as well as our...

Parameters* required
_apiKeystring
Optional Anthropic API key — only if "anthropic" is in models. Passed to api.anthropic.com per probe.
contextstring
Optional shared context applied to every probe (e.g. "B2B SaaS", "Boston restaurant"). Disambiguates common names.
entities*array
Array of 2-8 entities to compare (brand/business/product names). First entry treated as the "subject" for narrative; rest are competitors.
modelsarray
Which models to probe. Supported: "workers-ai" (free default), "anthropic" (requires _apiKey). Omit for just workers-ai.
pipeworx_feedbackTell the Pipeworx team something is broken, missing, or needs to exist. Use when a tool returns wrong/stale data (bug), when a tool you wish existed isn't in the catalog (feature/data_gap), or when something worked surprisingly well (praise). ONLY for tools served by this Pipe...4 params

Tell the Pipeworx team something is broken, missing, or needs to exist. Use when a tool returns wrong/stale data (bug), when a tool you wish existed isn't in the catalog (feature/data_gap), or when something worked surprisingly well (praise). ONLY for tools served by this Pipe...

Parameters* required
claim_tokenstring
Read the reply to a report you filed earlier: pass the `pwfb_…` token that filing returned, with no other arguments. Returns the status and, once resolved, what actually changed.
contextobject
Optional structured context: which tool, pack, or vertical this relates to.
messagestring
Your feedback in plain text. Be specific (which tool, what error, what data was missing). 1-2 sentences typical, 2000 chars max.
typestring
bug = something broke or returned wrong data. feature = a new tool or capability you wish existed. data_gap = data Pipeworx does not currently expose. praise = positive note. other = anything else.one of bug · feature · data_gap · praise · other
rememberSave data the agent will need to reuse later — across this conversation or across sessions. Use when you discover something worth carrying forward (a resolved ticker, a target address, a user preference, a research subject) so you don't have to look it up again. Stored as a ke...9 params

Save data the agent will need to reuse later — across this conversation or across sessions. Use when you discover something worth carrying forward (a resolved ticker, a target address, a user preference, a research subject) so you don't have to look it up again. Stored as a ke...

Parameters* required
contentstring
Alias for value.
datastring
Alias for value.
kstring
Alias for key.
key*string
Memory key (e.g., "subject_property", "target_ticker", "user_preference"). Accepts name, k, label as aliases.
labelstring
Alias for key.
namestring
Alias for key.
textstring
Alias for value.
vstring
Alias for value.
value*string
Value to store (any text — findings, addresses, preferences, notes). Accepts content, text, data, v as aliases; a non-string value is stored as JSON.
recallRetrieve a value previously saved via remember, or list all saved keys (omit the key argument). Use to look up context the agent stored earlier — the user's target ticker, an address, prior research notes — without re-deriving it from scratch. Scoped to your identifier (anonym...4 params

Retrieve a value previously saved via remember, or list all saved keys (omit the key argument). Use to look up context the agent stored earlier — the user's target ticker, an address, prior research notes — without re-deriving it from scratch. Scoped to your identifier (anonym...

Parameters* required
kstring
Alias for key.
keystring
Memory key to retrieve (omit to list all keys). Accepts name, k, label as aliases.
labelstring
Alias for key.
namestring
Alias for key.
forgetDelete a previously stored memory by key. Use when context is stale, the task is done, or you want to clear sensitive data the agent saved earlier. Pair with remember and recall.4 params

Delete a previously stored memory by key. Use when context is stale, the task is done, or you want to clear sensitive data the agent saved earlier. Pair with remember and recall.

Parameters* required
kstring
Alias for key.
key*string
Memory key to delete. Accepts name, k, label as aliases.
labelstring
Alias for key.
namestring
Alias for key.
ct_searchSearch ClinicalTrials.gov for clinical trials — find trials and look up a NAMED trial by keyword, condition, drug/therapy, status (e.g. 'Recruiting'), or phase (e.g. 'Phase 2'). Use for "clinical trials for <disease/drug>", or to locate a specific study like "the FLOW trial",...7 params

Search ClinicalTrials.gov for clinical trials — find trials and look up a NAMED trial by keyword, condition, drug/therapy, status (e.g. 'Recruiting'), or phase (e.g. 'Phase 2'). Use for "clinical trials for <disease/drug>", or to locate a specific study like "the FLOW trial",...

Parameters* required
limitnumber
Number of results (1-100, default 10)
page_tokenstring
Pass the previous call's `next_page_token` here, with the SAME query/status/phase/sponsor arguments, to fetch studies past the first page. Omit it for a fresh search. A "continue listing"/"next pag...
phasestring
Filter by phase: EARLY_PHASE1, PHASE1, PHASE2, PHASE3, PHASE4 (or NA). Roman numerals ("Phase III") and comma-separated unions ("PHASE2,PHASE3") are accepted.
query*string
The SUBJECT of the search — a condition, drug, or keyword (e.g., "GLP-1 receptor agonist", "breast cancer immunotherapy"). Prefer the topic alone over a full sentence: put status in `status` and ph...
sponsorstring
Filter by the trial's registered LEAD sponsor (e.g., "Pfizer", "Novo Nordisk"). Widen to trials the company only partners on with sponsor_match: "lead_or_collaborator".
sponsor_matchstring
Which sponsor role the name must fill. "lead" (the default) returns only trials whose registered LEAD sponsor is that company. "lead_or_collaborator" also returns trials led by someone else that li...one of lead · lead_or_collaborator
statusstring
Filter by overall status: RECRUITING, ACTIVE_NOT_RECRUITING, COMPLETED, TERMINATED, WITHDRAWN, ENROLLING_BY_INVITATION, SUSPENDED, NOT_YET_RECRUITING. Several may be combined as a comma-separated u...
ct_get_studyGet full trial details by NCT ID (e.g., 'NCT04567890'). Returns protocol, eligibility criteria, primary outcomes, sponsor, locations, and results.1 params

Get full trial details by NCT ID (e.g., 'NCT04567890'). Returns protocol, eligibility criteria, primary outcomes, sponsor, locations, and results.

Parameters* required
nct_id*string
ClinicalTrials.gov NCT identifier (e.g., "NCT05462717")
ct_count_by_conditionCount clinical trials for a condition or disease, broken down by recruitment status and by trial phase — how many are recruiting, completed, terminated, and how many are Phase 1, 2, 3 or 4. Use for landscape questions about how much trial activity a disease has and where it si...3 params

Count clinical trials for a condition or disease, broken down by recruitment status and by trial phase — how many are recruiting, completed, terminated, and how many are Phase 1, 2, 3 or 4. Use for landscape questions about how much trial activity a disease has and where it si...

Parameters* required
condition*string
Condition or disease (e.g., "breast cancer", "diabetes", "Alzheimer")
phasestring
Optional phase filter: PHASE1, PHASE2, PHASE3, PHASE4
statusstring
Optional status filter: RECRUITING, COMPLETED, etc.
ct_sponsor_trialsList the trials a company LEADS on ClinicalTrials.gov, by sponsor or organization name. Returns status, phase, and conditions to map a research pipeline. Matches the registered lead-sponsor field, so trials another organisation runs using the company's drug are excluded unless...5 params

List the trials a company LEADS on ClinicalTrials.gov, by sponsor or organization name. Returns status, phase, and conditions to map a research pipeline. Matches the registered lead-sponsor field, so trials another organisation runs using the company's drug are excluded unless...

Parameters* required
limitnumber
Number of results (1-100, default 20)
phasestring
Optional phase filter
sponsor*string
Sponsor or company name (e.g., "Pfizer", "Novo Nordisk", "Moderna"). Matched against the registered LEAD sponsor by default.
sponsor_matchstring
Which sponsor role the name must fill. "lead" (the default) returns only trials whose registered LEAD sponsor is that company. "lead_or_collaborator" also returns trials led by someone else that li...one of lead · lead_or_collaborator
statusstring
Optional status filter
ct_compare_sponsorsCompare 2–5 NAMED lead sponsors on ClinicalTrials.gov under identical condition, recruitment-status, and phase filters. Returns full matching counts, a ranked comparison, and a small study sample for each sponsor. Use for questions like "who has more recruiting Phase 3 obesity...5 params

Compare 2–5 NAMED lead sponsors on ClinicalTrials.gov under identical condition, recruitment-status, and phase filters. Returns full matching counts, a ranked comparison, and a small study sample for each sponsor. Use for questions like "who has more recruiting Phase 3 obesity...

Parameters* required
conditionstring
Optional condition or disease, such as "obesity".
phasestring
Optional phase or comma-separated phase union, such as PHASE3.
sample_limitnumber
Representative studies per sponsor (0-10, default 3).
sponsors*array
Two to five sponsor names to compare under the same filters.
statusstring
Optional status or comma-separated status union, such as RECRUITING.
ct_recent_updatesTrack recent ClinicalTrials.gov activity by a specific event class within a verifiable date window. Three DISTINCT recency events, chosen via date_type: "last_update" (any edit to a study, ~5k/week — the default), "first_posted" (a study newly REGISTERED, ~1.3k/week), or "resu...8 params

Track recent ClinicalTrials.gov activity by a specific event class within a verifiable date window. Three DISTINCT recency events, chosen via date_type: "last_update" (any edit to a study, ~5k/week — the default), "first_posted" (a study newly REGISTERED, ~1.3k/week), or "resu...

Parameters* required
date_typestring
Which recency event to track/sort/window by: "last_update" (any edit, default), "first_posted" (new registration), "results_posted" (results first posted). These are different event classes with ve...one of last_update · first_posted · results_posted
limitnumber
Number of results per page (1-100, default 20). total_count reports the full window size regardless of limit.
querystring
Optional search term (condition/drug/keyword) to narrow results.
sincestring
Window start (inclusive), YYYY-MM-DD. e.g. for a weekly review pass 7 days ago. Applies to the chosen date_type.
sponsorstring
Optional company name (e.g. "Regeneron", "Eli Lilly"). Returns only studies whose registered LEAD sponsor is that company (see sponsor_match), inside the since/until window. Use for a single-compan...
sponsor_matchstring
Which sponsor role the name must fill. "lead" (the default) returns only trials whose registered LEAD sponsor is that company. "lead_or_collaborator" also returns trials led by someone else that li...one of lead · lead_or_collaborator
statusstring
Optional overall-status filter (validated; e.g. RECRUITING, or a comma-union like "RECRUITING,COMPLETED").
untilstring
Optional window end (inclusive), YYYY-MM-DD. Omit for open-ended (up to today).
ct_trials_by_locationFind clinical trials near a LOCATION. PREFER OVER WEB SEARCH for "clinical trials for X near me", "recruiting studies in <city/state/country>", "trials I can join near <place>". Filter by condition + a place name (city/state/country) OR latitude+longitude+radius, and status (d...7 params

Find clinical trials near a LOCATION. PREFER OVER WEB SEARCH for "clinical trials for X near me", "recruiting studies in <city/state/country>", "trials I can join near <place>". Filter by condition + a place name (city/state/country) OR latitude+longitude+radius, and status (d...

Parameters* required
conditionstring
Condition/disease (e.g. "diabetes", "breast cancer immunotherapy"). Optional but recommended.
latnumber
Latitude for a geo-radius search (pair with lon).
limitnumber
Max trials to return (1-100, default 15).
locationstring
Place name — city, state, or country (e.g. "Boston", "California", "Germany"). Use this OR lat+lon.
lonnumber
Longitude (pair with lat).
radius_minumber
Radius in miles for a lat/lon search (1-500, default 50).
statusstring
Overall status filter (default RECRUITING). e.g. RECRUITING, NOT_YET_RECRUITING, ACTIVE_NOT_RECRUITING, COMPLETED.
ct_catalyst_calendarFind trials with sponsor-entered primary-completion or study-completion dates in a specified window. These registry dates may be estimated or revised and are planning signals—not guaranteed data readouts, conference presentations, or regulatory events.9 params

Find trials with sponsor-entered primary-completion or study-completion dates in a specified window. These registry dates may be estimated or revised and are planning signals—not guaranteed data readouts, conference presentations, or regulatory events.

Parameters* required
event_typestring
one of primary_completion · study_completion
from_date*string
YYYY-MM-DD, inclusive.
limitnumber
phasestring
querystring
Optional condition, intervention, or keyword.
sponsorstring
Optional company name. Matched against the registered LEAD sponsor by default.
sponsor_matchstring
Which sponsor role the name must fill. "lead" (the default) returns only trials whose registered LEAD sponsor is that company. "lead_or_collaborator" also returns trials led by someone else that li...one of lead · lead_or_collaborator
statusstring
to_date*string
YYYY-MM-DD, inclusive.
ct_sponsor_pipelineSummarize a sponsor’s ClinicalTrials.gov portfolio by phase, status, condition, and intervention from a bounded relevance-ranked sample, while reporting the full matching count. Registration does not establish asset ownership, probability of success, or commercial value.5 params

Summarize a sponsor’s ClinicalTrials.gov portfolio by phase, status, condition, and intervention from a bounded relevance-ranked sample, while reporting the full matching count. Registration does not establish asset ownership, probability of success, or commercial value.

Parameters* required
phasestring
sample_sizenumber
sponsor*string
Company name, matched against the registered LEAD sponsor by default.
sponsor_matchstring
Which sponsor role the name must fill. "lead" (the default) returns only trials whose registered LEAD sponsor is that company. "lead_or_collaborator" also returns trials led by someone else that li...one of lead · lead_or_collaborator
statusstring
ct_competitive_landscapeMap registered interventional trials for a condition and optional intervention across sponsors, phases, statuses, and interventions. The output reflects a bounded registry sample, not market share, scientific differentiation, or an exhaustive private pipeline.5 params

Map registered interventional trials for a condition and optional intervention across sponsors, phases, statuses, and interventions. The output reflects a bounded registry sample, not market share, scientific differentiation, or an exhaustive private pipeline.

Parameters* required
condition*string
interventionstring
phasestring
sample_sizenumber
statusstring
ct_enrollment_watchRoute active trials for enrollment follow-up using registry status, enrollment type, dates, last update, and site counts. Flags are mechanical review hints—not predictions of recruitment success, trial failure, or data timing.5 params

Route active trials for enrollment follow-up using registry status, enrollment type, dates, last update, and site counts. Flags are mechanical review hints—not predictions of recruitment success, trial failure, or data timing.

Parameters* required
limitnumber
phasestring
querystring
sponsorstring
Optional company name. Matched against the registered LEAD sponsor by default.
sponsor_matchstring
Which sponsor role the name must fill. "lead" (the default) returns only trials whose registered LEAD sponsor is that company. "lead_or_collaborator" also returns trials led by someone else that li...one of lead · lead_or_collaborator
ct_results_summaryProject posted ClinicalTrials.gov results for one NCT ID, including registered endpoints, reported outcome measures, statistical analyses, and adverse-event group counts. Registry results are not an FDA conclusion, peer review, or investment recommendation.2 params

Project posted ClinicalTrials.gov results for one NCT ID, including registered endpoints, reported outcome measures, statistical analyses, and adverse-event group counts. Registry results are not an FDA conclusion, peer review, or investment recommendation.

Parameters* required
max_outcomesnumber
Reported outcomes returned (1-50, default 20).
nct_id*string
ct_phase_transition_ratesMeasure how often drugs for a disease actually advance from one clinical phase to the next — the registry-derived analog of a probability-of-technical-success (PTRS) benchmark. Groups industry-sponsored interventional trials for the condition by normalized intervention (drug)...6 params

Measure how often drugs for a disease actually advance from one clinical phase to the next — the registry-derived analog of a probability-of-technical-success (PTRS) benchmark. Groups industry-sponsored interventional trials for the condition by normalized intervention (drug)...

Parameters* required
censor_yearsnumber
Years an earlier-phase trial must have been completed before to_year to enter the denominator (1-15, default 3). Raising it demands more follow-up time, shrinking the denominator; lowering it admit...
condition*string
Disease or condition, e.g. "non-small cell lung cancer", "Alzheimer disease", "type 2 diabetes".
from_yearnumber
Optional earliest year for the EARLIER-phase completion date (e.g. 2010). Omit for no floor.
max_pagesnumber
Upstream pages of 1000 studies to pull (1-5, default 5). The response reports truncated: true when the cap cut off the match set.
sponsor_classstring
Which sponsors to count. "industry" (default) restricts to company-led trials, matching how commercial PTRS benchmarks are built; "all" adds academic, NIH and other sponsors, which raises the count...one of industry · all
to_yearnumber
Analysis end year; the censoring window is measured back from here. Defaults to the current year.
ct_sponsor_activityTrack a sponsor’s newly registered studies, first-posted results, or study updates within a verifiable date window. Registry activity is not necessarily a corporate disclosure or material event.6 params

Track a sponsor’s newly registered studies, first-posted results, or study updates within a verifiable date window. Registry activity is not necessarily a corporate disclosure or material event.

Parameters* required
date_typestring
one of last_update · first_posted · results_posted
limitnumber
since*string
sponsor*string
Company name, matched against the registered LEAD sponsor by default.
sponsor_matchstring
Which sponsor role the name must fill. "lead" (the default) returns only trials whose registered LEAD sponsor is that company. "lead_or_collaborator" also returns trials led by someone else that li...one of lead · lead_or_collaborator
untilstring

Sponsors

Configuration

PIPEWORX_API_KEYsecret

Optional Pipeworx API key. Without it calls are anonymous and capped daily; a free key raises the cap.

Readme

ClinicalTrials.gov — Clinical Trial Registry

The NIH-operated public registry of clinical trials worldwide. Every interventional study (and most observational ones) registered with the FDA must be filed here. ~470,000 studies covering Phase 1–4, conditions across the medical spectrum, and post-market safety surveillance. Free, no auth.

Part of Pipeworx — an MCP gateway connecting AI agents to 1863+ live data sources. This is an independent, unofficial integration — not affiliated with, endorsed by, or published by the upstream provider.

Why this matters for AI agents

If your agent is answering anything about drug development, clinical research, or medical product safety, ClinicalTrials.gov is the source of truth for what's being studied. The data is structured: NCT IDs, phases, statuses, sponsors, conditions, interventions, primary/secondary outcomes, results.

Three core flows:

1. Search. "What's being studied for Alzheimer's?" → ct_search({query: "Alzheimer's disease"}) → studies matching, with NCT IDs, phase, status.


View the full README on GitHub

Details

Repository
github.com/pipeworx-io/mcp-clinicaltrials
Website
pipeworx.io/packs/clinicaltrials
Category
Search & Web Crawling
Package
@pipeworx/mcp-clinicaltrials
Transport
STDIO, HTTP
Auth
Required
Registry
MCP registry, active
Prompts
12
Tools verified
Nov 6, 2026

More from pipeworx-io

Related Search & Web Crawling MCP servers

View all
1pipeworx-io avatarDomainspipeworx-io/mcp-domainsDomains MCP — domain registration lookup + availability search over live RDAP (ICANN standard…0stars
2pipeworx-io avatarHackernewspipeworx-io/mcp-hackernewsHacker News MCP — search and retrieve stories from Hacker News0stars
3pipeworx-io avatarMoviespipeworx-io/mcp-moviesMovies MCP — wraps iTunes Search API (movies, free, no auth) and TVmaze API (TV shows, free, no…0stars
4pipeworx-io avatarOpenfdapipeworx-io/mcp-openfdaFDA drug data via openFDA: adverse-event reports and safety-signal tools (FAERS search, event…0stars
5pipeworx-io avatarOpenversepipeworx-io/mcp-openverseOpenverse MCP — Creative-Commons-licensed image + audio search.0stars
6pipeworx-io avatarPlospipeworx-io/mcp-plosPLOS Search MCP — Solr-backed search over all PLOS journals.0stars