# io.github.yesc97/biopharma-catalyst-mcp (npm · biopharma-catalyst-mcp)

Forensic biopharma catalyst auditor — 10 tools, deterministic CLEAN/BEAR_SIGNAL verdict.

- Trust score: 68/100 (medium)
- Change this week: +22
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `biopharma-catalyst-mcp`: 68/100 (this document), [markdown](https://verifymcp.io/servers/yesc97-biopharma-catalyst-mcp/biopharma-catalyst-mcp.md), [page](https://verifymcp.io/servers/yesc97-biopharma-catalyst-mcp/biopharma-catalyst-mcp)

## Channel facts

- Registry: `npm`
- Package: `biopharma-catalyst-mcp`
- Version: `1.2.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 87/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (142 of 143), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (142 of 143), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (ISC).
  - Actively maintained (last published 84 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 71/100
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 801 tokens (~80/item across 10 items; 10 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 23/100
  - Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add yesc97-biopharma-catalyst-mcp -- npx -y biopharma-catalyst-mcp
```

### Codex

```bash
codex mcp add yesc97-biopharma-catalyst-mcp -- npx -y biopharma-catalyst-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "yesc97-biopharma-catalyst-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "biopharma-catalyst-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add yesc97-biopharma-catalyst-mcp --command npx --arg -y --arg biopharma-catalyst-mcp
```

### Hermes

```yaml
mcp_servers:
  yesc97-biopharma-catalyst-mcp:
    command: "npx"
    args: ["-y", "biopharma-catalyst-mcp"]
```

### Other

```json
{
  "mcpServers": {
    "yesc97-biopharma-catalyst-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "biopharma-catalyst-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 68, +1)

No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-02 (score 67, +62)

- [security regression] Provenance: unverified → fail
- [security improvement] Install scripts: unverified → pass
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Malware scan: unverified → pass
- [functional regression] Security disclosure: fail → unverified
- [functional improvement] Tool coverage: unverified → 100
- [functional improvement] License: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] Stability: unverified → 0.20
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Schema quality: unverified → good
- [functional] Licence: ISC

### 2026-08-01 (score 5, −17)

- [security regression] Malware scan: pass → unverified
- [functional regression] Dependency health: partial → unverified

### 2026-07-31 (score 22, −6)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 28, −18)

- [security regression] Malware scan: pass → unverified

### 2026-07-27 (score 46)

First indexed and scored.

## MCP tools (10)

### `search_clinical_trials` (~42 tokens)

Search ClinicalTrials.gov for studies by intervention (drug or company name)

Input parameters:

- `intervention` (string, required): The name of the drug or company to search for

### `search_pubmed` (~35 tokens)

Search PubMed for scientific papers by term (drug name, condition, etc.)

Input parameters:

- `term` (string, required): The search term

### `get_sec_filings` (~46 tokens)

Get recent SEC filings (10-K, 10-Q, 8-K, S-1) for a stock ticker.

Input parameters:

- `ticker` (string, required): The stock ticker symbol

### `get_market_data` (~31 tokens)

Get current price and options data for a stock ticker

Input parameters:

- `ticker` (string, required): The stock ticker symbol

### `get_fda_activity` (~143 tokens)

Get FDA submission and approval activity for a drug or sponsor (NDA/BLA filings, approvals, supplements). Use kind='drug' for drug name (brand or generic) or kind='sponsor' for company sponsor name. Submission status codes are decoded (AP=approved, CRL=rejection, WD=withdrawn). Supports auto-fallback from drug to sponsor if results are empty.

Input parameters:

- `kind` (string): Whether the query is a drug name or sponsor company name
- `query` (string, required): Drug name or sponsor name to search
- `sponsorFallback` (string): Optional: Company sponsor name to fall back to if drug search returns nothing

### `get_xbrl_facts` (~69 tokens)

Get structured financial facts from SEC XBRL for a ticker — cash, quarterly burn, runway months, and Going Concern disclosure flag. Used by the Tactical Auditor to detect dilution risk (runway shorter than time to next catalyst).

Input parameters:

- `ticker` (string, required): The stock ticker symbol

### `get_insider_transactions` (~93 tokens)

Get insider Form 4 transactions for a ticker over the last N days. Returns individual transactions, total sales/purchases in dollars, and a Net Insider Sentiment score (purchases - sales). Detects 10b5-1 scheduled sales but does not exempt them.

Input parameters:

- `ticker` (string, required): The stock ticker symbol
- `windowDays` (number): Lookback window in days (default 90)

### `get_protocol_snapshot` (~95 tokens)

Get current protocol details + amendment proximity for a clinical trial by NCT ID. Flags late-stage protocol amendments (the 'goalpost move') by computing how far into the trial timeline the last update happened. Cannot detect WHAT changed (CT.gov v2 API does not expose protocol diffs) — only WHEN.

Input parameters:

- `nctId` (string, required): ClinicalTrials.gov NCT identifier (e.g. NCT04994483)

### `audit_catalyst` (~171 tokens)

FORENSIC AGGREGATOR. Runs all 8 connectors in parallel against (ticker, drug) and returns a deterministic verdict: CLEAN | FLAG | BEAR_SIGNAL | BLACK_FLAG. Encodes the full Tactical Auditor logic — terminations, FDA rejections, late-stage protocol amendments, dilution risk (runway vs catalyst), Going Concern disclosure, insider unloading, 8-K clusters, literature skepticism. CLEAN means: tried to break the thesis, couldn't. The strongest long signal this tool gives.

Input parameters:

- `drug` (string, required): Drug name (brand or generic) — biopharma signal lives at the drug level, not the company level
- `sponsor` (string): Optional sponsor company name (used for FDA fallback when drug query returns empty)
- `ticker` (string, required): The stock ticker symbol

### `get_short_interest` (~76 tokens)

Get short interest data for a ticker — short % of float, days to cover, and month-over-month delta. Used to detect SHORT_INTEREST_SPIKE (delta >20%, bear) and SHORT_SQUEEZE_POTENTIAL (days to cover >5, bull).

Input parameters:

- `ticker` (string, required): The stock ticker symbol

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/yesc97-biopharma-catalyst-mcp/biopharma-catalyst-mcp#diagnostics

## Score history

- 2026-08-03: 68
- 2026-08-02: 67
- 2026-08-01: 5
- 2026-07-31: 22
- 2026-07-30: 28
- 2026-07-28: 46
- 2026-07-27: 46

## Links

- npm package: https://www.npmjs.com/package/biopharma-catalyst-mcp
- Socket report: https://socket.dev/npm/package/biopharma-catalyst-mcp
- Repository: https://github.com/yesc97/biopharma-catalyst-mcp
- Changelog RSS feed: https://verifymcp.io/servers/yesc97-biopharma-catalyst-mcp/biopharma-catalyst-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/yesc97-biopharma-catalyst-mcp/biopharma-catalyst-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/yesc97-biopharma-catalyst-mcp/biopharma-catalyst-mcp
