BioCatalystFeed

io.github.biocatalystfeed由 GitHub 帳號 biocatalystfeed 發布v0.4.0更新於 Nov 5, 2026

Biotech catalysts: trials, FDA decisions (PDUFA, AdCom, approvals, CRLs), NIH, PubMed, SEC, EMA.

概覽

AI 產生的概覽

生技催化劑資訊 MCP 伺服器,讓助理檢索臨床試驗、FDA 與 EMA 動態、補助、論文和 SEC 文件,並追蹤變化。

可以做什麼
  • 檢索並比對臨床試驗:贊助商產品線、狀態、期別、收案、終點與試驗中心數量變化,並標示嚴重程度
  • 查詢 FDA 動態:核准、標籤、完整回覆函、顧問委員會會議、橘皮書專利與專屬期,以及 PDUFA 決策行事曆
  • 檢索 NIH 補助、論文與預印本(PubMed、Europe PMC、bioRxiv/medRxiv,依 DOI/PMID 去重)、SEC 8-K 中的 PDUFA 提及與 EMA 藥品資訊
  • 依公司名稱或股票代號產生合併公司檔案,並提供試驗讀出時程與高風險試驗標記
  • 建立快照並列出與上次執行相比的變化,匯出 RSS、JSON Feed、Markdown 或 HTML 摘要
適用情境
適合關注特定生技公司、藥物或疾病領域,希望助理把多個公開來源的試驗、法規、補助與申報更新彙整到一處,或回報自上次檢查以來有哪些變化。
執行需求
以 stdio 在本機執行,通常透過 uvx 或 pip 安裝 PyPI 套件 biocatalystfeed,需要 Python。BIOCATALYSTFEED_DB 指定 SQLite 快照路徑。選用金鑰與聯絡方式:OPENFDA_API_KEY、NCBI_API_KEY、NCBI_EMAIL、BIOCATALYSTFEED_CONTACT、SEC_USER_AGENT、FDAWATCH_ALIASES。需要連線至各公開資料來源。另有免費唯讀託管端點。
安裝前請注意
資料可能不完整、延遲或有誤,PDUFA 日期是從 SEC 文件擷取的未核實候選值,應核對原始來源。不構成投資、法律或醫療建議。watch 可透過 webhook URL 推送變化,設定 BCF_WEBHOOK_SECRET 時會加上簽章,這會把監看結果傳送給第三方服務。選用 API 金鑰會傳送給 openFDA 與 NCBI。變化偵測僅涵蓋自己的執行,沒有歷史回填。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 BioCatalystFeed,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

[BioCatalystFeed logo]

BioCatalystFeed

Website: https://biocat.ai · Contact: [email protected]

An open-source catalyst feed for biotech: see what changed across clinical trials, FDA and EMA actions, NIH grants, papers/preprints and SEC filings for the companies and drugs you follow. Use it as a CLI, as an MCP server for AI agents (Claude, Cursor, …), or as an Apify actor.

⚠️ Not investment, legal or medical advice. Data may be incomplete, delayed or wrong; PDUFA dates are unverified candidates from SEC filings. Always check the linked primary source.

What it does

SourceCommandWhat you get
ClinicalTrials.gov API v2 (NLM)bcf trialssearch, sponsor pipelines, diffs: new trials, status/phase/enrollment/date, primary-endpoint, arm, intervention, site-count and results-posted changes, each labelled critical / notable / minor
openFDA (Drugs@FDA, SPL labels)bcf fdaapprovals (incl. novel NME/BLA flag), submissions, label revisions, diffs
NIH RePORTERbcf grantsgrants by org / PI (middle-initial aware) / keyword; new awards, amount changes
PubMed + Europe PMC + bioRxiv/medRxivbcf paperspapers & preprints, deduplicated by DOI/PMID across sources
SEC EDGARbcf sec8-K mentions of PDUFA dates (UNVERIFIED candidates, linked to the filing)
European Medicines Agency (EMA)bcf emaEU centrally authorised medicines: CHMP opinions, EC authorisations, refusals, withdrawals, suspensions; orphan/PRIME flags; diffs
Federal Register (FDA notices)bcf adcomFDA advisory committee meetings: committee, meeting date, NDA/BLA numbers and sponsors from the agenda; postponements/cancellations; diffs
openFDA complete response letters (FDA)bcf crlFDA complete response letters (CRLs) for NDAs/BLAs: company, application, product, deficiency topics (facility, product quality, clinical, safety ...), first-deficiency excerpt, PDF link; diffs flag new letters and Unapproved → Approved
FDA Orange Book (patents + exclusivities)bcf orange-bookpatent and exclusivity expiries per NDA/ANDA (NCE, orphan, pediatric, new-indication, 180-day generic ...), soonest first; loe = last listed protection per application (loss-of-exclusivity date); diffs flag new listings, moved expiries and delistings
FDA decision calendar (SEC EDGAR 8-Ks + Federal Register + Drugs@FDA + openFDA CRLs)bcf fda-decisionsone list of upcoming PDUFA dates (company-disclosed in 8-Ks), AdCom meetings, recent approvals and CRLs; filter by drug, company/ticker, condition, kind, date window or --upcoming DAYS; every event has confidence (company-disclosed / scheduled / confirmed), date_precision and provenance; watches notify on new events, moved PDUFA dates, postponed AdComs and status flips
Trial readout calendar + Trials at Risk (ClinicalTrials.gov)bcf readoutsmarket-wide upcoming primary completion dates (ESTIMATED / ACTUAL), filter by sponsor/ticker, condition, intervention, phase, window, industry-only, ticker-only; watches report new readouts and slipped dates; at-risk flags stopped, overdue, delayed and enrollment-shortfall trials with a risk score; Markdown / HTML / RSS / JSON digests; static page bcf readouts page (live at biocat.ai/calendar)
All of the abovebcf profileone merged company profile (name or ticker)

Optional global coverage (--global / include_global). Off by default. When you turn it on, BCF also links to records in trial registries outside the US and EU, such as China's ChiCTR and other WHO-listed national registries, and flags papers from other jurisdictions. These records may come from research run under regulatory, ethics and data standards different from, and sometimes lighter than, those of the US or EU. They are labelled "non-FDA/EMA registry". The option is for users who want to see everything that is out there. Inclusion is not an endorsement or recommendation and is not medical, legal or investment advice.

Records are links (registry ID + URL, from ClinicalTrials.gov secondary IDs); papers get jurisdiction_flag from author-affiliation countries ("unknown" when none is found). Details: bcf --global --help or docs/GLOBAL.md.

Across tools: --exclude TERM … to drop noise, --rank for relevance ordering, and --rss / --json-feed digest files on every watch (local files you can serve or feed into any reader; nothing is emailed). Webhook alerts (0.4.1): --webhook URL (repeatable) on every watch POSTs the changes when something changed: --webhook-format json (default; signed with x-bcf-signature: sha256=<HMAC> when BCF_WEBHOOK_SECRET is set), slack or discord (incoming-webhook text); --webhook-always also posts empty runs. Failures are reported on stderr and never stop the watch.

Quickstart

bash
python3 -m venv .venv && source .venv/bin/activate   # macOS/Homebrew Python blocks global pip installs (PEP 668)pip install biocatalystfeed# no venv needed:  uvx --from biocatalystfeed bcf --help    or    pipx install biocatalystfeed
bcf trials search --sponsor "Viking Therapeutics" --phase PHASE3bcf trials search --sponsor TERN                           # known names/tickers are alias-resolved (CT.gov: "Terns, Inc."); --no-aliases to send as typedbcf papers search --drug resmetirom --since 2026-09-01 --exclude mice rat --rankbcf grants search --pi "Ioannou, George N" --since 2024-01-01 --no-futurebcf sec pdufa MDGL --since 2023-01-01bcf profile Lilly MDGL "Viking Therapeutics" --md profiles.mdbcf ema search --status Opinion --since 2026-09-01          # latest CHMP opinions (EU)bcf adcom upcoming --area drugs biologics                   # scheduled FDA advisory committee meetingsbcf crl search --since 2026-01-01 --status Unapproved       # FDA complete response letters, newest firstbcf orange-book loe --company "Novo Nordisk"                # last listed patent/exclusivity per NDA (LOE dates)bcf orange-book search --upcoming-days 90 --kind exclusivity # exclusivities expiring in the next 90 daysbcf fda-decisions search --upcoming 90                     # PDUFA dates (8-K) + AdComs in the next 90 days, soonest firstbcf fda-decisions search --company BBIO                     # all FDA decision events for a ticker (pdufa, adcom, approval, crl)bcf fda-decisions search --drug semaglutide --kinds approval crl --since 2025-01-01bcf readouts search --upcoming 60 --condition obesity          # industry Ph2/3 primary completions in the next 60 daysbcf readouts search --sponsor VKTX --upcoming 720 --md vktx.md  # one company's readouts + a Markdown digestbcf readouts at-risk --condition NASH --html risk.html          # Trials at Risk (stopped / overdue / delayed / enrollment shortfall)
# watches: first run = baseline, later runs report what changed (cron it daily)bcf trials --db bcf.db watch --name obesity --condition obesity --phase PHASE3 --rss obesity.rssbcf trials --db bcf.db changes --name obesity --min-severity critical   # terminations, endpoint rewritesbcf readouts --db bcf.db watch --name ph3-90d --phases PHASE3 --upcoming 90 --digest-html readouts.html --json-feed readouts.feed.json   # notify: new readouts, date slips, ESTIMATED->ACTUALbcf fda-decisions --db bcf.db watch --name obesity-fda --condition obesity --json-feed fda.feed.json   # notify: new/moved PDUFA dates, AdComs, approvals, CRLsbcf papers --db bcf.db watch --name mdgl --affiliation "Madrigal Pharmaceuticals" --json-feed mdgl.feed.jsonbcf readouts --db bcf.db watch --name ph3-90d --webhook "$SLACK_WEBHOOK_URL" --webhook-format slack   # push alerts to Slack/Discord/any URL

Global flags such as --db go after the tool name and before the subcommand: bcf trials --db bcf.db changes, not bcf --db bcf.db trials changes or bcf trials changes --db bcf.db. bcf trials changes prints a readable one-line-per-change summary; add --json for one JSON object per line. PubMed --since/--until filter on the publication date shown in the output (Europe PMC uses first-publication date).

The old commands (trialwatch, fdawatch, grantwatch, paperwatch, secwatch, trialwatch-mcp) still work.

MCP server

json
{"mcpServers": {"biocatalystfeed": {"command": "uvx", "args": ["biocatalystfeed", "mcp"],  "env": {"BIOCATALYSTFEED_DB": "/path/to/bcf.db"}}}}

(or point command at an installed biocatalystfeed-mcp). Listed in the official MCP Registry as io.github.biocatalystfeed/biocatalystfeed. Tools include search_trials, sponsor_pipeline, fda_approvals, company_profile, search_grants, search_papers, sec_pdufa_mentions, ema_medicines, fda_adcom_meetings, fda_complete_response_letters, fda_decisions (FDA decision calendar), readout_calendar (trial readout calendar), trials_at_risk, snapshot_* (incl. snapshot_fda_decisions, snapshot_readouts) / *_changes_since, and changes_feed (RSS / JSON Feed / Markdown / HTML).

Provenance on every record (0.3.6). Every record returned by every MCP tool (stdio and hosted), and by bcf readouts / bcf fda-decisions / bcf trials search, carries verified_as_of (UTC), source_url (the official record or API URL), verify_hash (sha256: of the record's canonical JSON, excluding the provenance and ticker fields; re-check with biowatch.provenance.check(record)), and, where a company is named, ticker, ticker_confidence (1.0 source-given, 0.95 alias table, 0.9 SEC exact name, 0.6 SEC name prefix, 0 none) and ticker_method.

Configuration

Env varPurpose
BIOCATALYSTFEED_CONTACTcontact email put in the SEC User-Agent (SEC fair-access policy). Default is the project contact ([email protected]); set it to your own contact for heavy SEC use
SEC_USER_AGENTfull SEC User-Agent override
NCBI_EMAILoptional email sent to NCBI E-utilities
OPENFDA_API_KEYoptional openFDA API key (free at open.fda.gov/apis/authentication); raises daily/minute rate limits. Never logged
NCBI_API_KEYoptional NCBI E-utilities API key (free from your NCBI account settings); raises the PubMed limit from 3 to 10 req/s. Never logged
BIOCATALYSTFEED_DB (or TRIALWATCH_DB)SQLite DB for the MCP server
FDAWATCH_ALIASESJSON file extending the company alias table

How it compares

Facts about DataLookout are from datalookout.com, its /citeline-alternative and /clinical-trial-monitoring pages (checked 2026-10-21 PT). We have not tested their product. Fuller, cited comparison: docs/COMPARISON.md; three-way matrix incl. DropwatchHQ Bio Catalyst: samples/competitor_matrix.md.

BioCatalystFeed (open source)DataLookout
PriceFree to self-host (BSL 1.1 from 0.4.0; 0.3.6 and earlier Apache-2.0); free hosted MCP endpoint (200 tool calls/day)Free tier; Pro $49/month
SourcesClinicalTrials.gov, openFDA (approvals, labels, CRLs), NIH RePORTER, PubMed, Europe PMC, bioRxiv/medRxiv, SEC EDGAR (PDUFA dates), EMA, Federal Register (FDA AdComs), FDA Orange Book (patents, exclusivities)ClinicalTrials.gov
Change trackingDiffs between your own runs (trials: status, phase, enrollment, dates, sponsor, title, why stopped, primary endpoints, arms, interventions, site counts, results posting; severity critical/notable/minor; plus FDA, EMA, AdCom, grant, paper and SEC changes)Daily scan; 13 fields incl. status, enrollment, primary endpoints, interventions, results, site counts, completion dates; changes marked Stopped/Notable/Minor
DeliveryCLI, MCP server for AI agents (local, or hosted read-only subset), RSS/JSON Feed files, webhooks (JSON/Slack/Discord), Apify actorMorning email digest + dashboard inbox
Watch limitsNone when self-hostedFree: 1 sponsor + 1 disease watchlist + 1 saved search; Pro: 10 of each
SchedulingYou run it (cron, Apify schedule)Hosted, daily
SetupPython install"2 minutes" (their claim)

Pick DataLookout for a hosted, emailed, ClinicalTrials.gov-only digest. Pick BioCatalystFeed if you want several sources per company or ticker, agent/MCP access, or to self-host.

Trial change severity (v0.3.0)

Every trial change carries severity, and date changes carry shift_days:

  • critical: status moves to TERMINATED / SUSPENDED / WITHDRAWN, a why-stopped reason appears, or the primary endpoint(s) are rewritten.
  • notable: other status or phase changes, new trials, lead-sponsor changes, results posted, arm or intervention changes, enrollment changes of 20% or more, start / primary completion / completion dates moved 30+ days.
  • minor: everything else (small date or enrollment tweaks, site-count changes, title edits).

Filter with --min-severity notable|critical on bcf trials watch / changes, or min_severity in the MCP tool trial_changes_since. Snapshots made by older versions start tracking the new fields on their next run, so upgrading doesn't produce a burst of false changes.

Search filters (v0.2.1)

  • --exclude takes words or phrases (space- or comma-separated); matching is whole-word and case-insensitive, and a trailing * is a prefix wildcard (--exclude "murin*" rat).
  • --rank scores title hits 3 and other-field hits 1 (simple plurals tolerated), +1 for exact multi-word phrases in the title and +2 when every query term matches; ties break by newest date. The score is in relevance.

Data sources, limits and etiquette

Built-in throttles follow each source's published policy (e.g. NIH RePORTER 1 req/s, NCBI ≤3 req/s without key, SEC ≤10 req/s with a declared User-Agent, openFDA 1,000 req/day per IP without key). We store metadata and links only for papers/preprints, never abstracts. Change detection only covers your own runs; there's no historical backfill. PDUFA dates are regex extractions from company 8-K text (FDA does not publish PDUFA dates); bcf fda-decisions labels them confidence: company-disclosed with the filing link, and always read the filing. Data provided by the U.S. Food and Drug Administration (https://open.fda.gov). Source: European Medicines Agency (EMA), https://www.ema.europa.eu. Full attributions are in NOTICE. Design notes and per-source terms are in docs/DEVELOPER-NOTES.md.

Hosted MCP endpoint (free)

A free, read-only, rate-limited MCP endpoint (Streamable HTTP, no account) runs on Cloudflare Workers:

https://bcf-mcp.lively-recipe-5a12.workers.dev/mcp
json
{"mcpServers": {"biocatalystfeed-hosted": {"type": "http", "url": "https://bcf-mcp.lively-recipe-5a12.workers.dev/mcp"}}}

It offers 12 tools (search_trials, get_trial, fda_approvals, search_papers, fda_complete_response_letters, fda_decisions, readout_calendar, trials_at_risk, fda_adcom_meetings, and the hosted-only paper_retraction_check, condition_landscape and condition_momentum), all with provenance fields, plus a cached public GET /calendar.json (90-day readout calendar, refreshed every 6 h; feeds biocat.ai/calendar) over ClinicalTrials.gov, openFDA, PubMed, SEC EDGAR and the Federal Register. Free tier: 200 tool calls per IP per UTC day (resets at 00:00 UTC) and 30 requests/minute. initialize and tools/list don't count. Over the limit you get HTTP 429 with JSON-RPC error -32002, Retry-After and x-daily-* headers. /calendar.json is unmetered. API keys for higher limits are planned but not yet available. Self-hosting is free and unlimited: pip install biocatalystfeed. Retraction warning (hosted only, free): paper_retraction_check takes up to 50 PMIDs or DOIs and reports, per paper, whether it is retracted, partially retracted, under an expression of concern or corrected, with links to each notice, the first notice date and how many sources agree (PubMed, Crossref including Retraction Watch records, OpenAlex). An OpenAlex-only signal is shown as possible_retraction with no warning. none_found means no notice was found, not that a paper is sound. One call counts as one tool call toward the free daily limit. Informational only; not medical or investment advice. Data: PubMed/MEDLINE (U.S. National Library of Medicine), Crossref metadata including the Retraction Watch Database (The Center for Scientific Integrity, openly available via Crossref), OpenAlex (CC0). This tool is not part of the source-available package. Landscape reports (hosted only, free): condition_landscape lists every sponsor with active trials in a condition, by phase (with ticker matching), the phase distribution, new-entrant sponsors, newly posted trials, upcoming primary completions and recently stopped trials; condition_momentum compares up to 8 disease areas by new trials, active Phase 3 and stops (documented formula). ClinicalTrials.gov registry counts only; not a forecast and not investment advice. Not part of the source-available package. Watches, change history and the other sources need the local install above. No request logs are kept; see TERMS.md and PRIVACY.md. Source: worker/.

Contributing / Testing

bash
git clone https://github.com/biocatalystfeed/biocatalystfeed && cd biocatalystfeedpython3 -m venv .venv && source .venv/bin/activatepip install -e '.[dev]'pytest                      # offline tests; live-API tests are skipped by defaultTRIALWATCH_LIVE=1 pytest    # also run tests that call the real public APIs (needs network; slower)

Contributing & licence

See CONTRIBUTING.md, CODE_OF_CONDUCT.md and SECURITY.md (report vulnerabilities privately). Licence: version 0.4.0 and later is under the Business Source License 1.1. You can use, modify and self-host it for any purpose, including commercial internal use, but you cannot offer it to others as a competing catalyst, trial, FDA data, alert, API or MCP service. Each version becomes Apache-2.0 twelve months after its release. Versions 0.3.6 and earlier stay Apache-2.0. See NOTICE. For commercial licensing, contact [email protected]. BioCatalystFeed is independent and not endorsed by NLM, NIH, FDA, SEC, EMA, the Office of the Federal Register, EMBL-EBI/Europe PMC, or bioRxiv/medRxiv.

來源:README.md,提交 45e94a8

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

3
  1. v0.4.0最新Oct 29, 2026
  2. v0.3.1Oct 21, 2026
  3. v0.2.2Oct 14, 2026

評分

已滿足適用檢查項的 40%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

    請在儲存庫或註冊中心條目中宣告授權條款。