Skip to main content

BioCatalystFeed

An open-source catalyst feed for biotech: see what changed across clinical trials, FDA 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

Source Command What you get
ClinicalTrials.gov API v2 (NLM) bcf trials search, sponsor pipelines, diffs: new trials, status/phase/enrollment/date changes
openFDA (Drugs@FDA, SPL labels) bcf fda approvals (incl. novel NME/BLA flag), submissions, label revisions, diffs
NIH RePORTER bcf grants grants by org / PI (middle-initial aware) / keyword; new awards, amount changes
PubMed + Europe PMC + bioRxiv/medRxiv bcf papers papers & preprints, deduplicated by DOI/PMID across sources
SEC EDGAR bcf sec 8-K mentions of PDUFA dates (UNVERIFIED candidates, linked to the filing)
All of the above bcf profile one merged company profile (name or ticker)

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

Quickstart

python3 -m venv .venv && .venv/bin/pip install -e '.[mcp]'     # PyPI package: not yet published
source .venv/bin/activate

bcf trials search --sponsor "Viking Therapeutics" --phase PHASE3
bcf papers search --drug resmetirom --since 2026-09-01 --exclude mice rat --rank
bcf grants search --pi "Ioannou, George N" --since 2024-01-01 --no-future
bcf sec pdufa MDGL --since 2023-01-01
bcf profile Lilly MDGL "Viking Therapeutics" --md profiles.md

# 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.rss
bcf papers --db bcf.db watch --name mdgl --affiliation "Madrigal Pharmaceuticals" --json-feed mdgl.feed.json

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

MCP server

{"mcpServers": {"biocatalystfeed": {"command": "/path/to/.venv/bin/biocatalystfeed-mcp",
  "env": {"BIOCATALYSTFEED_DB": "/path/to/bcf.db"}}}}

Tools include search_trials, sponsor_pipeline, fda_approvals, company_profile, search_grants, search_papers, sec_pdufa_mentions, snapshot_* / *_changes_since, and changes_feed (RSS / JSON Feed).

Configuration

Env var Purpose
BIOCATALYSTFEED_CONTACT contact email put in the SEC User-Agent (SEC fair-access policy). Default is a placeholder (contact@biocatalystfeed.invalid); set it to your own contact before heavy SEC use
SEC_USER_AGENT full SEC User-Agent override
NCBI_EMAIL optional email sent to NCBI E-utilities
BIOCATALYSTFEED_DB (or TRIALWATCH_DB) SQLite DB for the MCP server
FDAWATCH_ALIASES JSON file extending the company alias table

How it compares

Facts about DataLookout are from datalookout.com/citeline-alternative (checked 2026-10-12 PT). We have not tested their product.

BioCatalystFeed (open source) DataLookout
Price Free (Apache-2.0); hosted tier planned Free tier; Pro $49/month
Sources ClinicalTrials.gov, openFDA, NIH RePORTER, PubMed, Europe PMC, bioRxiv/medRxiv, SEC EDGAR ClinicalTrials.gov
Change tracking Diffs between your own runs (trials: status, phase, enrollment, dates, sponsor, title, why stopped, results; plus FDA, 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
Delivery CLI, MCP server for AI agents, RSS/JSON Feed files, Apify actor Morning email digest + dashboard inbox
Watch limits None when self-hosted Free: 1 sponsor + 1 disease watchlist + 1 saved search; Pro: 10 of each
Scheduling You run it (cron, Apify schedule) Hosted, daily
Setup Python 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.

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 8-K text, not a calendar. Attributions are in NOTICE. Design notes and per-source terms are in docs/DEVELOPER-NOTES.md.

Hosted tier

A paid hosted version (scheduled watches, persisted history, hosted MCP) is planned. Draft terms: TERMS.md, PRIVACY.md (drafts, not legal advice, not in effect).

Contributing & licence

See CONTRIBUTING.md. Licensed under the Apache License 2.0. BioCatalystFeed is independent and not endorsed by NLM, NIH, FDA, SEC, EMBL-EBI/Europe PMC, or bioRxiv/medRxiv.

Metadata

Release files for biocatalystfeed 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for biocatalystfeed 0.2.0
File Size Uploaded
biocatalystfeed-0.2.0.tar.gz 59.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for biocatalystfeed 0.2.0
File Interpreter ABI Platform
biocatalystfeed-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 121.4 kB

Release files / biocatalystfeed-0.2.0.tar.gz

Download URL biocatalystfeed-0.2.0.tar.gz
Size 59.8 kB
Tags Source
SHA-256 checksum
How to use checksums
0b8eda434c3f15f6a27fd990aab7a38af0e49397257f9d757f8b4c7660bb0399
BLAKE2b-256 checksum
How to use checksums
8cce9d6052ef400ea4bf6f39b2cf16f4d68b85025e89dc30d5f5e4b04912f07e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.5

Release files / biocatalystfeed-0.2.0-py3-none-any.whl

Download URL biocatalystfeed-0.2.0-py3-none-any.whl
Size 61.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fb9b44bad00ad6488871365f4e3226aa4485bc47cc14af5ef40e44d6a0e32763
BLAKE2b-256 checksum
How to use checksums
e52ccc3ee50679c889ddd8683c0b3b2047a1e63710004bd2cc61dbace64c899c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.5

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page