关于 biopharma-catalyst-mcp
biopharma-catalyst-mcp 是用于研究生物制药催化因素的 MCP 服务,汇集临床、文献、监管、SEC 和市场公开信号。聚合工具会给出由代码确定的判断,并提供数据供大模型分析。
主要功能
- 01聚合催化因素审计并给出确定性判断
- 02临床试验与方案信号
- 03检索文献、FDA 和 SEC 数据
- 04获取内部人、空头兴趣和期权数据
- 05支持无客户端的 CLI 分析
适用场景
- 01在投资决策前审查药物催化因素
- 02核查试验状态与监管历史
- 03对照公司申报文件、内部人和市场信号
MCP 相关
MCP 服务提供十种工具,包括九个数据源连接器和 `audit_catalyst` 聚合工具。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)获取催化剂级信号,并交由你的大模型处理。包含一个服务端聚合器,可通过一次工具调用运行完整的取证工作流,并返回确定性结论。
专为大多数散户生物制药分析师实际采用的工作流打造:某只股票进入视野后,你要花 2–4 小时埋头查阅 Google Scholar、FDA 页面、EDGAR 和期权链,以判断催化剂逻辑是否成立。本工具将这一过程压缩到约 30 秒。
目录
- 核心工具:audit_catalyst
- Tactical Auditor 系统提示词(替代方案)
- 工具
- 安装
- 配置为 MCP 服务
- CLI 模式
- 为何按药物名称而不是股票代码搜索
- 实时分析示例
- 路线图
- 技术参考与维护
- 参与贡献
- 联系方式
- 备注
- 许可证
核心工具:audit_catalyst
一个工具、一次调用、一个结论。适用于任意申办方/药物组合——不含任何硬编码股票代码。
大型制药公司示例——“Clean”案例
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 级看涨信号)。这比一般的“买入”评级更能支持看涨,因为推翻一个论点比确认它更难。
结论等级:
CLEAN— 试图推翻该论点,但未能做到。若出现 A 级问题,信心会下降。FLAG— 出现 A 级看跌信号,且没有 S 级看涨信号抵消。数据存在歧义;应进一步调查。BEAR_SIGNAL— 至少出现一个 S 级看跌信号(试验终止、FDA 拒绝、稀释风险等)。出现多个 S 级看跌信号时,信心会增强。BLACK_FLAG— 审计师披露了持续经营问题,且现金可支撑的时间不足 6 个月。股权面临极高的归零风险。DISQUALIFIED— 缺少与该公司相关的数据。请尝试其他药物,或直接查询底层连接器。
同时还会返回计算结果(现金可支撑月数、距离催化剂的月数、内部人士情绪、ATM 隐含波动率、催化剂日期),供用户查阅。大模型负责叙述;结论由代码生成。
Tactical Auditor 系统提示词(替代方案)
如果你希望由大模型通过各个工具自行运行工作流,可将此提示词作为自定义指令或系统提示词添加到 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 是本工具给出的最高评价——这意味着审计器试图找出论点中的漏洞,但未能做到。这比泛泛的看涨背书更能支持看涨。
工具
十种工具——九个原始连接器加一个聚合器:
| 工具 | 来源 | 功能 |
|---|---|---|
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 不会公开修订中有哪些变更。要检测具体的终点日期变更(也就是典型的目标日期移动),我们需要抓取公开的版本历史网页界面,或等待 API 更新。
- FDA 咨询委员会前瞻日历 — 目前,我们展示 FDA 申报历史。提供咨询委员会会议的前瞻日历,能让用户围绕二元监管事件进行规划。
- Polygon / Tradier 连接器 — 对于流动性较差的小盘生物科技公司,Yahoo 的期权数据并不完整。可为高级用户提供付费市场数据选项。
- 申办方类别加权 — 目前,聚合器只筛选由查询公司申办的试验。行业与学术界合作项目以及 NIH 申办的试验都会被排除。可以考虑加权,而非筛除。
- 10-K MD&A 扫描 — 提取“风险因素”部分,并查找超出持续经营检查范围、由管理层披露的风险。
技术参考与维护
本地验证
每次更改后,都要重新构建并运行 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。导出一个返回结构化数据的异步函数(不包含依赖 LLM 的字段,只提供数据)。 - 如果要访问
sec.gov或data.sec.gov,请使用throttleSec(() => axios.get(...))包装每个 axios 调用。 - 在
src/index.ts中接入:导入模块、添加到tools/list架构,并在请求处理程序中添加分发分支。 - 可选:接入
audit_catalyst——将其添加到Promise.allSettled代码块,并根据规范编写信号逻辑。 - 在本地
verify-mcp.mjs中添加一项冒烟测试调用。
各来源注意事项
- **SEC.gov:**硬性上限为每秒 10 个请求。通过
sec-throttle.ts限制为每秒约 5 个请求。超出上限会导致 IP 被封锁 10 分钟。SEC_USER_AGENT环境变量必须填写真实的联系邮箱——使用虚假占位符会受到更严格的速率限制。 - **CT.gov v2:**没有协议差异端点。目标日期检测器使用接近度启发式(firstPost 与 primaryCompletion 和 lastUpdate 之间的关系)。要获取真实差异,必须抓取公开的版本历史界面;已列入 v1.2 待办。
- **Yahoo Finance:**由于 Yahoo 的数据架构会随着流动性较差的生物科技期权链而变化,因此禁用了架构验证。调用会尽可能返回数据;期权链偶尔为空。
- openFDA:
drugsfda.json涵盖 NDA/BLA 申报历史,但不一定包含未来的 PDUFA 日期。请使用 CT.gov 的completionDate作为主要的催化剂指标。 - **Form 4 XML:**EDGAR 的
primaryDocument字段指向 HTML 包装页,而非结构化 XML。连接器会通过index.json列出每份申报的文件夹,并查找.xml条目。每次审计最多处理最近的 25 份申报,以控制成本。
安全
- **
SEC_USER_AGENT必须保留在本地环境变量中,绝不能提交到版本控制。**它包含真实的联系邮箱,并会记录在 SEC 端;将其视为机密,可避免邮箱进入公开的 git 历史记录,防止意外泄露身份。 - 本仓库默认将
.env和.env.local加入 git 忽略列表;请将联系信息保存在其中。 - 如果你 fork 此项目,请设置自己的
SEC_USER_AGENT——不要重复使用其他用户的值。 - Agent 上下文文件(
GEMINI.md、CLAUDE.md、.gemini/、.claude/)也已加入 git 忽略列表;绝不要提交这些文件,其中可能包含仅供本地使用的操作说明或策略细节。
版本管理
- 补丁版本(
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)。 - 使用约定式提交风格提交(
feat:、fix:、chore:)。 - 为提交添加标签:
git tag v<X.Y.Z>。 - 准备好后推送到远程仓库;如果你负责维护公开的 npm 发布版本,也可以选择运行
npm publish。
联系方式
Attila Kovacs (yesc97)
- 电子邮件:[email protected]
- GitHub:yesc97
备注
- 不构成投资建议。 这是研究自动化工具。综合分析和交易由你自行负责。
许可证
ISC
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。