biopharma-catalyst-mcp について
biopharma-catalyst-mcpは、臨床、文献、規制、SEC、市場の公開情報を集約してバイオ医薬品のカタリストを調査するMCPサーバーです。集約ツールはコードで判定した結論と、LLM分析用のデータを返します。
主な機能
- 01カタリスト監査と決定論的な判定
- 02臨床試験とプロトコルのシグナル
- 03文献・FDA・SECデータの取得
- 04インサイダー・空売り・オプションデータ
- 05ヘッドレス分析用CLI出力
活用シーン
- 01投資判断前に薬剤のカタリストを調査
- 02試験状況と規制履歴を確認
- 03企業提出書類とインサイダー・市場シグナルを照合
MCP 対応
MCPサーバーは、9つのデータソースコネクターと集約ツール`audit_catalyst`の計10ツールを公開します。MCPクライアントは個別データの取得、または統合監査と判定の依頼ができます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y biopharma-catalyst-mcpSEC_USER_AGENTSEC EDGAR User-Agent header (your-app/1.0 [email protected]). Required by SEC fair-use policy.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
biopharma-catalyst-mcp
バイオ医薬品研究のためのフォレンジック MCP サーバーです。6つの無料かつ信頼できる情報源(ClinicalTrials.gov、PubMed、SEC EDGAR、SEC XBRL companyfacts、openFDA、Yahoo Finance)からカタリスト評価に役立つシグナルを取得し、LLM に渡します。フォレンジックワークフロー全体を1回のツール呼び出しで実行し、判定を確定的に返すサーバー側アグリゲーターを備えています。
多くの個人投資家のバイオ医薬品アナリストが実際に行っているワークフロー向けに構築されています。ティッカーが注目リストに入ったら、カタリストのストーリーが妥当か判断するため、Google Scholar、FDA のページ、EDGAR、オプションチェーンを2~4時間かけて調べます。この作業を約30秒に短縮します。
目次
- 注目のツール:audit_catalyst
- Tactical Auditor システムプロンプト(代替案)
- ツール
- インストール
- MCP サーバーとして設定
- CLI モード
- ティッカーではなく薬剤名で検索する理由
- ライブ分析の例
- ロードマップ
- 技術リファレンスとメンテナンス
- コントリビューション
- 連絡先
- 注記
- ライセンス
注目のツール:audit_catalyst
1つのツール、1回の呼び出し、1つの判定です。スポンサーと薬剤のあらゆる組み合わせに対応しており、ティッカーのハードコードは一切ありません。
大手製薬会社の例 —「クリーン」ケース
audit_catalyst(ticker="MRK", drug="Keytruda", sponsor="Merck")
→ Verdict: CLEAN (MED)
Primary finding: Tried to break thesis. Approved 20260424. (1 secondary
concern noted in signals)
Signals fired:
[A-BEAR] AMENDED_AFTER_COMPLETION_NO_RESULTS — NCT04700072
[S-BULL] RECENT_FDA_APPROVAL — 20260424
Math: positive cash flow, IV 29.1%, insider net $0.00M
CLEAN 判定は、このツールが与える最高の評価です。監査役が9つの情報源を相互参照し、強気シナリオを崩そうと試みたものの、できなかった(または、Sティアの強気シグナルを覆すには至らない二次的な懸念しか見つからなかった)ことを意味します。シナリオを崩せないことは、その確認よりも難しいため、これは一般的な「BUY」評価より強いロングシグナルです。
判定の尺度:
CLEAN— シナリオを崩そうとしたものの、できませんでした。Aティアの懸念が見つかった場合、信頼度は低下します。FLAG— 相殺するSティアの強気シグナルがない状態で、Aティアの弱気シグナルが発生しました。データは曖昧なため、さらに調べてください。BEAR_SIGNAL— 少なくとも1つのSティアの弱気シグナルが発生しました(試験中止、FDA の却下、希薄化リスクなど)。Sティアの弱気シグナルが複数ある場合、信頼度は上昇します。BLACK_FLAG— 監査役が継続企業の前提に関する開示を行い、資金余力が6か月未満です。株式の価値がゼロになるリスクが高い状態です。DISQUALIFIED— 企業に関連付けられたデータが不十分です。別の薬剤を試すか、基盤となるコネクターに直接クエリしてください。
資金余力、カタリストまでの月数、インサイダーのセンチメント、ATM IV、カタリストの日付などの計算結果も返されるため、ユーザーが確認できます。ナレーションは LLM が行い、判定はコードが行います。
Tactical Auditor システムプロンプト(代替案)
個別のツールを使って LLM 自身にワークフローを実行させたい場合は、このプロンプトをカスタム指示またはシステムプロンプトとして MCP クライアントに追加してください。
You are a Tactical Biopharma Auditor. Your goal is to cross-reference company PR
against raw data from ClinicalTrials.gov, PubMed, SEC EDGAR, openFDA, and the
options market to find discrepancies. You are looking for "Trial Drift" and
"Signal Decay."
When auditing a ticker/drug, run this workflow:
1. Trial Drift Audit (search_clinical_trials)
- Flag terminations, withdrawals, or COMPLETED status without a results readout.
- If a Phase 2/3 trial has a completionDate in the past but the market is still
waiting for "upcoming data," flag the delay as a negative signal.
- The connector emits an `auditFlag` field; surface it in your output.
2. Literature Signal Check (search_pubmed)
- Scan abstracts for skepticism keywords: "controversial," "mixed results,"
"safety concerns," "marginal improvement," "failed to demonstrate."
- Compare to standard of care if abstracts mention comparators.
3. Filing Density & FDA History (get_sec_filings, get_fda_activity)
- Count 8-K (current event) frequency. A flurry of 8-Ks before a catalyst
usually signals structural changes or pre-announcing trouble.
- Has the drug or sponsor had NDAs marked CRL (rejected), WD (withdrawn), or
received supplements with regulatory friction?
4. Market Pricing (get_market_data)
- Check ATM IV. If IV is extremely high (>150%) but the bull case seems
"certain," the market is pricing a binary failure risk that needs identifying.
Output format:
* Audit Verdict: [CLEAN / FLAG / BEAR SIGNAL]
(CLEAN means: tried to break the thesis, couldn't.)
* Primary Discrepancy: One sentence on the biggest data point that contradicts
the company's PR.
* Key Risks: 2-3 specific risks found in CT.gov or PubMed.
* Data Density: Summary of how much info we actually have vs. how much is
missing.
続けて、audit ticker SRPT, drug elevidys(または任意の銘柄と薬剤)と尋ねてください。
CLEAN 判定は、このツールが与える最高の評価です。監査役がシナリオの穴を探そうとしたものの、見つけられなかったことを意味します。これは、一般的な強気評価より強いロングシグナルです。
ツール
10 個のツール — 9 つの生コネクターとアグリゲーターです。
| ツール | ソース | 機能 |
|---|---|---|
audit_catalyst | (アグリゲーター) | 主要ツールです。(ティッカー、医薬品)に対して、Tactical Auditor のワークフロー全体を実行します。判定は決定論的です。 |
search_clinical_trials | ClinicalTrials.gov v2 API | 介入薬ごとのパイプラインとステータスを検索し、中止、取り下げ、結果未公表のまま完了した試験にフラグを付けます |
search_pubmed | NCBI E-utilities | 医薬品/作用機序/疾患に関する最近の文献を検索します |
get_sec_filings | SEC EDGAR | ティッカーごとの直近 10 件の提出書類(10-K、10-Q、8-K、S-1) |
get_xbrl_facts | SEC XBRL companyfacts | 現金、四半期ごとの資金消費額、ランウェイの月数、継続企業に関するフラグ |
get_insider_transactions | SEC EDGAR Form 4 XML | 役職で分類したインサイダー取引(臨床/財務/管理)、協調的な売却の検出(72 時間の期間)、純インサイダーセンチメント($)、10b5-1 の検出 |
get_short_interest | Yahoo Finance | 浮動株に占める空売り比率、買い戻し所要日数、前月比の変化 — SHORT_INTEREST_SPIKE と SHORT_SQUEEZE_POTENTIAL のシグナルに反映されます |
get_protocol_snapshot | ClinicalTrials.gov v2 API | 試験プロトコルと改訂の近接性(目標変更の検出) |
get_market_data | Yahoo Finance | 株価情報と完全なオプションチェーン(IV、権利行使価格、満期日) |
get_fda_activity | openFDA drugsfda.json | ステータスを解読した NDA/BLA 申請(AP、CRL、WD など)。医薬品名からスポンサー名への自動フォールバック |
すべてのソースは無料で、API キーは不要です。
インストール
git clone https://github.com/yesc97/biopharma-catalyst-mcp.git
cd biopharma-catalyst-mcp
npm install
npm run build
MCP サーバーとして設定
MCP クライアントの設定に追加します(例:~/.config/claude/claude_desktop_config.json)。
{
"mcpServers": {
"biopharma-catalyst": {
"command": "node",
"args": ["/absolute/path/to/biopharma-catalyst-mcp/build/index.js"],
"env": {
"SEC_USER_AGENT": "Your Name <[email protected]>"
}
}
}
}
SEC EDGAR では SEC_USER_AGENT が必須です。実際に連絡可能なメールアドレスを使用してください。そうしないと、リクエストがレート制限されます。
CLI モード
MCP クライアントを使わずにヘッドレスで実行する場合:
node build/cli.js <TICKER> "<DRUG_NAME>" "<SPONSOR_NAME>"
node build/cli.js PFE "Comirnaty" "Pfizer"
node build/cli.js MRK "Keytruda" "Merck"
node build/cli.js LLY "Mounjaro" "Eli Lilly"
CLI は、構造化された人間が読みやすいスナップショットを出力します。これは MCP ツールが公開するデータと同じです。
ティッカーではなく医薬品名で検索する理由
バイオ医薬品の調査シグナルは、企業レベルではなく、パイプライン内の医薬品レベルにあります。CT.gov で「Pfizer」を検索すると、あらゆる治療領域にまたがる無関係な試験が何百件も返されます。Comirnaty を検索すると、規制上の結果を左右する特定のワクチン試験が返されます。ツールには常に医薬品名(ブランド名または一般名)を渡し、ティッカーは市場データと SEC 提出書類の取得にのみ使用してください。
ライブ分析の例
機関投資家水準のバイオ医薬品調査には、世界最大のパイプラインを分析する必要があります。ライブ実行の例をいくつか紹介します。
audit_catalyst("LLY", "Mounjaro", "Eli Lilly")
Verdict: CLEAN (HIGH)
Primary finding: Tried to break thesis. Strong pipeline density with 10+
ongoing Phase 3 trials.
Signals:
[S-BULL] RECENT_FDA_APPROVAL — 20260315
[A-BULL] INSIDER_BUYING — net $2.4M over 90d
audit_catalyst("PFE", "Comirnaty", "Pfizer")
Verdict: CLEAN (MED)
Primary finding: Massive data density; no S-tier bear signals detected in
last 12 months.
Signals:
[A-BEAR] 8K_CLUSTER — 4 filings in last 30d (normal for earnings)
[S-BULL] RECENT_FDA_APPROVAL
audit_catalyst("MRK", "Keytruda", "Merck")
Verdict: CLEAN (MED)
Primary finding: Approved 20260424. (1 secondary concern noted in signals)
Signals:
[A-BEAR] AMENDED_AFTER_COMPLETION_NO_RESULTS — NCT04700072
[S-BULL] RECENT_FDA_APPROVAL
10b5-1 プランがあっても、インサイダーによる売却が弱気材料になることに変わりはありません。経営陣が売却を予定することを選んだからです。実際に資金が流出すれば、それは現実の資金流出です。
ロードマップ
- CT.gov のプロトコル差分 — 現在は、近接性ヒューリスティック(最終更新日と主要完了日の比較)を使って 後期段階の変更 を検出しています。CT.gov v2 API では、変更によって何が変わったのかを公開していません。特定のエンドポイントの変更(目標時期の移動を示す決定的な指標)を検出するには、公開されているバージョン履歴の Web UI をスクレイピングするか、API の更新を待つ必要があります。
- FDA 諮問委員会の今後の予定表 — 現在は、FDA への申請履歴を表示しています。諮問委員会の今後の会議予定表があれば、ユーザーは二者択一の規制イベントに合わせて計画を立てられます。
- Polygon / Tradier コネクター — Yahoo のオプションデータは、流動性の低い小型バイオテクノロジー企業について不完全です。パワーユーザー向けに、有料の市場データオプションを提供します。
- スポンサー分類による重み付け — 現在、アグリゲーターは、照会された企業がスポンサーとなっている試験に絞り込んでいます。産学連携や NIH がスポンサーとなっている試験は除外されます。絞り込みではなく、重み付けにすることもできます。
- 10-K の MD&A スキャン — 「Risk Factors」セクションを抽出し、継続企業の前提に関するチェック以外に、経営陣が開示したリスクを探します。
技術リファレンスとメンテナンス
ローカルでの検証
変更を加えたら、再ビルドして MCP stdio のスモークテストを実行します。
npm run build
node /path/to/verify-mcp.mjs # 9-tool stdio handshake + 1 invocation each
アグリゲーターについては、次のテストも実行します。
node build/cli.js <TICKER> "<DRUG>" "<SPONSOR>"
どちらも、ライブ API に対して 30 秒以内に完了するはずです。完了しない場合は、SEC によるレート制限が発生していないか確認してください(下記の「ソースごとの注意事項」を参照)。
新しいコネクターの追加
src/connectors/<name>.tsを作成します。構造化されたデータを返す非同期関数を 1 つエクスポートします(LLM に依存するフィールドは含めず、データのみを返します)。sec.govまたはdata.sec.govにアクセスする場合は、各 axios 呼び出しをthrottleSec(() => axios.get(...))でラップします。src/index.tsに組み込みます。インポートし、tools/listのスキーマに追加し、リクエストハンドラーにディスパッチケースを追加します。- 必要に応じて
audit_catalystにも組み込みます。Promise.allSettledブロックに追加し、仕様に基づいてシグナルロジックを記述します。 - ローカルの
verify-mcp.mjsにスモークテストの呼び出しを追加します。
ソースごとの注意事項
- SEC.gov: 1 秒あたり 10 リクエストの厳格な上限があります。
sec-throttle.tsにより、1 秒あたり約 5 リクエストに制限されています。上限を超えると、IP が 10 分間ブロックされます。SEC_USER_AGENT環境変数には実際の連絡先メールアドレスを設定する必要があります。偽のプレースホルダーは、より厳しくレート制限されます。 - CT.gov v2: プロトコル差分を取得するエンドポイントはありません。目標時期の検出には、近接性ヒューリスティック(firstPost と primaryCompletion と lastUpdate の比較)を使います。真の差分を得るには、公開されているバージョン履歴 UI のスクレイピングが必要です。v1.2 で対応予定です。
- Yahoo Finance: 流動性の低いバイオテクノロジー企業のオプションチェーンでは Yahoo のスキーマが変動するため、スキーマ検証は抑制されています。呼び出しは取得できたデータを返します。オプションチェーンが空になることもあります。
- openFDA:
drugsfda.jsonでは NDA/BLA の申請履歴を取得できますが、今後の PDUFA 日が常に含まれているわけではありません。主要なカタリストの指標には、CT.gov のcompletionDateを使用してください。 - Form 4 XML: EDGAR の
primaryDocumentフィールドが示すのは、構造化 XML ではなく HTML ラッパーです。コネクターはindex.jsonを使って各提出書類のフォルダーを一覧表示し、.xmlエントリーを探します。コストを抑えるため、監査ごとに直近 25 件までに制限されています。
セキュリティ
SEC_USER_AGENTはローカルの環境変数に設定し、バージョン管理に絶対にコミットしないでください。 実際の連絡先メールアドレスが含まれており、SEC 側でログに記録されます。シークレットとして扱うことで、公開 git 履歴への混入や、意図しない個人情報の暴露を防げます。- このリポジトリでは
.envと.env.localはデフォルトで gitignore されています。連絡先情報はこれらのファイルに保持してください。 - このプロジェクトをフォークする場合は、独自の
SEC_USER_AGENTを設定してください。他のユーザーのものを再利用しないでください。 - エージェントのコンテキストファイル(
GEMINI.md、CLAUDE.md、.gemini/、.claude/)も gitignore されています。これらにはローカル専用の運用メモや戦略の詳細が含まれている可能性があるため、絶対にコミットしないでください。
バージョン管理
- パッチ(
x.x.+1): バグ修正、ドキュメントの調整、スキーマの変更なし。 - マイナー(
x.+1.0): 新しいツール、新しいコネクター、シグナルロジックの追加、既存ツールへのスキーマ追加。 - メジャー(
+1.0.0): 互換性のないスキーマ変更(フィールド名の変更、ツールの削除)、必須環境変数の追加、MCP プロトコルのアップグレード。
リリースの公開
- 変更の範囲に合わせて、
package.jsonのversionを更新します。 - 動作が変わった場合は、README の「headline tool」または「Forensic case studies」セクションを更新します。
npm run build && node verify-mcp.mjsを実行します。9/9 で合格する必要があります。- Conventional Commits 形式(
feat:、fix:、chore:)でコミットします。 - コミットにタグを付けます:
git tag v<X.Y.Z>。 - 準備ができたらリモートにプッシュします。公開 npm リリースを管理している場合は、必要に応じて
npm publishを実行します。
お問い合わせ
Attila Kovacs (yesc97)
- メール: [email protected]
- GitHub: yesc97
注意事項
- 投資助言ではありません。 これは調査の自動化です。分析の統合と取引は、ご自身の責任で行ってください。
ライセンス
ISC
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。