@ cyanheads/ biorxiv- mcp- 服务器
搜索并取回生物Rxiv和medRxiv预印——由DOI,日期间隔,或关键词——通过MCP. (原始内容存档于2012-10-12). STIO or Streamable HTTP.
概览
bioRxiv和medRxiv预印,元数据和全文. 由关键词和作者搜索,浏览一个日期间隔(可选择按主题),取取任何由DOI预印出,并查看哪些预印会继续到期刊出版.
工具
| 工具 | 说明 |
|---|---|
biorxiv_get_preprint | 获取完整元数据、 抽象、 修订历史和日记的交叉行走, 由 DOI 提供一个或多个预印 |
biorxiv_list_recent | 列出在日期间隔内张贴或更新的预印件, 包括可选服务器、 类别和供资者过滤器 |
biorxiv_search_preprints | 按关键词和(或)作者通过EuropePMC搜索预印,以进行相关性排名,并用BioRxiv/medRxiv元数据丰富 |
biorxiv_get_published_version | 解决其期刊出版记录(journal DOI、名称、出版日期)的预印本DOI,或期刊文章的DOI的预印本 |
biorxiv_list_published_versions | 列出在期刊出版日期的间隔内作为期刊文章出现的预印件,不论何时张贴,可选从一个出版社发布 |
biorxiv_get_fulltext | 从已渲染的 HTML 文章页面中提取的 Markdown 中获取预印文本全文 |
biorxiv_list_categories | 列出 BioRxiv 和 medRxiv 的有效主题类别字符串 |
能力参考
biorxiv_get_preprint 工具
- 光着或贴上
https://doi.org/…, (中文(简体) ),doi:…页:1biorxiv.org编号 :medrxiv.org文章 URL, avN或者说.full页:1biorxiv, (中文(简体) ),medrxiv,或both(默认)both(中文(简体) ) - 最多接受200个条目, 并查看前10个不同的目录; 其余的回来
unprocessed[]在另一个电话。 重复的 DOI 被查一次, 每个列表都保持输入顺序 - 每一个预印本都会在
revisions[]头衔、作者、类别、执照、,awards, (中文(简体) ),jatsxmlUrl, (中文(简体) ),publishedJournalDoi一经接受,和server发现于(biorxiv或者说medrxiv,准备返回server) (中文(简体) ). 因上游 API 错误属性而省略了资助者名称 - 抽象只停留在最新版本上:上游API每个预印保留一个抽象. 更早前版本的自取自其文章页
biorxiv_get_fulltext与version - 一个无法降落在
failed[]带有reason(单位:千美元)not_found, (中文(简体) ),invalid_doi_format, (中文(简体) ),upstream_unavailable, (中文(简体) ),rate_limited)和a 数据retryable旗帜;not_found仅在每个尝试的服务器回答时
biorxiv_list_recent 工具
- 需要一个
start_date编号 :end_date间隔,server(默认)both)和可选category(从biorxiv_list_categories)和仅生物Rxivfunder(a ROR ID) 过滤器; 无法应用的过滤器升起invalid_category或者说invalid_funder - 以整数提前30页
cursor,每个服务器跟踪({ biorxiv: { cursor, total, newPreprints }, medrxiv: { cursor, total, newPreprints } }; 上页的光标标记exhausted: true,且未回答的服务器在failed[] - 行为修改 :
total计数间隔中发布的每个版本,同时newPreprints如API报告的那样(当API发送不计数时不在此列) - 默认省略摘要;
include_abstract: true加上他们。 每一个都是预印版最新修订版的抽象,甚至排行进行较早的修订版
biorxiv_search_preprints 工具
- 带
query和(或)author选项date_from编号 :date_to财务报告和审定财务报表server(默认)both);每页最多100个结果(默认25个;较大limit返回 100 并附带通知)cursor_mark - EuropePMC对匹配进行排序(它在发布后1至2天内索引了新的预印),生物Rxiv/medRxiv API用相同的字段丰富它们
biorxiv_get_preprint; 仅带有欧洲PMC元数据的记录enriched: false还有一个enrichment_error(单位:千美元)service_error, (中文(简体) ),rate_limited, (中文(简体) ),not_found),与partial_results设定 - 摘要以默认方式列入;
include_abstract: false丢弃到大小约为三分之一的响应中
biorxiv_get_published_version 工具
- 采取一个DOI和
server(默认)both: 预印的DOI(10.1101/, (中文(简体) ),10.64898/),或期刊文章的"DOI",它解决了它作为(10.1016/j.cell.2020.01.001→10.1101/614172(三);10.64898/DOI 通过预印本自己的日记解析 DOI - 返回预印的 DOI, 日记 DOI, 日记名称, 已发布日期, 对应的作者机构, 以及
server答案; 如果没有服务器的答案, 它会引发一个可重试upstream_unavailable或者说rate_limited永远doi_not_found - 冷泉港实验室出版社杂志
10.1101/gr.…, (中文(简体) ),gad.…, (中文(简体) ),lm.…) 共享前印前印并无法由 DOI 解决
biorxiv_list_published_versions 工具
- 需要一个
start_date编号 :end_date期刊出版日期和server(默认)both); 每行匹配记录biorxiv_get_published_version返回,并可能是几年前张贴的预印本 - 回返
limit每个服务器行( 默认 25, 上至 API 的百行页面) 从整数cursor,继续在每个服务器上nextCursor; 最后一个行的光标被标记exhausted: true,且未回答的服务器在failed[] - 可选
publisher,一个日记 DOI 前缀(10.7554对于eLife,只列出在其下发布的生物Rxiv预印;server: "both"单是生物Rxiv,以及server: "medrxiv"或 API 不承认加价的前缀invalid_publisher。这些行没有日记名称、作者或抽象 - 默认省略摘要;
include_abstract: true加起来
biorxiv_get_fulltext 工具
- 需要一个DOI,
server(默认)both),可选version(或 a 个)vN后缀; 二者必须同意, 预印缺少的版本version_not_found; 返回从已渲染的 HTML 文章页面中提取的 Markdown , 命名答案server - 表格单元格不在页面上:每个表格保留其标题,以及
omittedTables用为单元格服务的 URL 命名它 - 页面通过
offset编号 :limit字符 (默认 20,000), 报告totalChars, (中文(简体) ),remainingChars, (中文(简体) ),hasMore,以及wordCount; 仅限 PDF 预印并屏蔽页面加高fulltext_unavailable,路径到biorxiv_get_preprint
biorxiv_list_categories 工具
- 没有 API 调用 — 包含 25 个 bioRxiv 和 51个 medRxiv 类的静态列表, 仅限于 API 过滤器的列表
- 用它来挑一个
category页:1biorxiv_list_recent
特征
建造在 @cyanheads/mcp-ts-core: stdio和可流式的 HTTP 传输器,可插接式(none 编号 : jwt 编号 : oauth),可互换存储(in-memory, (中文(简体) ), filesystem, (中文(简体) ), Supabase, (中文(简体) ), Cloudflare KV/R2/D1),结构化记录,可选择的OpenTeleometry tracking.
具体生物Rxiv:
BiorxivApiService包装api.biorxiv.org(详情、出版物和横行终点)EuropePmcService将 EuropePMC 搜索包成复试和指数回放BiorxivFullTextService从文章页面取出 Markdownwww.biorxiv.org编号 :www.medrxiv.org- 每个上游重试阶梯都运行在工具调用剩下的一个50斯的预算上,所以挂出源在客户端的60斯请求超时之前结束——在分类,可重试的错误中,或者,当挂出步骤是可选的,结果会说明缺少什么
- 查询
biorxiv财务报告和审定财务报表medrxiv当server="both",每个结果为响应的服务器命名;一旦服务器持有响应的服务器,DOI的搜索就会停止等待 - 礼貌
User-Agent包括一个邮件地址(BIORXIV_MAILTOenv var)每冷泉港实验室API准则 - 与 pubmed-mcp-服务器 (出版后), openalex-mcp-服务器 (引用分析)和 十字- mcp 服务器 (DOI元数据)
方便代理输出 :
- 优雅的局部失败——每个DOI和每个服务器的失败
failed[]输入reason财务报告和审定财务报表retryable旗帜而不是中止调用 - 费率限制透明度——429个表面
reason: "rate_limited"与解析retryAfter与upstream_unavailable - 型号浓缩状态 -
biorxiv_search_preprints成果记录enriched加一个已键入enrichment_error(单位:千美元)service_error编号 :rate_limited编号 :not_found(中文(简体) ) - 干净的标题和摘要——出口标记和符号占位符(
{beta}, (中文(简体) ),[≥]) 决心用纯文本
开始
连接到主机实例, 没有安装 :
claude mcp add --transport http biorxiv-mcp-server https://biorxiv.caseyjhand.com/mcp
或者在当地运行它:
claude mcp add biorxiv-mcp-server -- npx -y @cyanheads/biorxiv-mcp-server
对于其他客户端,请将此添加到 MCP 配置文件中 :
{
"mcpServers": {
"biorxiv-mcp-server": {
"command": "npx",
"args": ["-y", "@cyanheads/biorxiv-mcp-server"]
}
}
}
联系人电子邮件 BIORXIV_MAILTO (单位:千美元)-e [email protected],或一个 env 条目)在 User-Agent 标题,如"冷泉港实验室API准则"所问. 对于 Docker 或源构建,请参见 运行服务器。 。 。 .
配置
所有配置在启动时通过 Zod schemas 在 src/config/server-config.ts。 。 。 .
| 变量 | 说明 | 默认 |
|---|---|---|
BIORXIV_MAILTO | 电子邮件地址 User-Agent 头; 可选但推荐 . | —— 说 |
BIORXIV_API_BASE_URL | 覆盖 BioRxiv API 基础 URL. | https://api.biorxiv.org |
EUROPEPMC_API_BASE_URL | 覆盖欧洲PMC基础URL. | https://www.ebi.ac.uk/europepmc/webservices/rest |
BIORXIV_WEB_BASE_URL | 覆盖 BioRxiv 网站基址 URL( 全文 HTML 源码用于 biorxiv_get_fulltext) (中文(简体) ). | https://www.biorxiv.org |
MEDRXIV_WEB_BASE_URL | 覆盖 medRxiv 网站基址 URL( 完整文本 HTML 源代码 biorxiv_get_fulltext) (中文(简体) ). | https://www.medrxiv.org |
MCP_TRANSPORT_TYPE | 运输: stdio 或者说 http。 。 。 . | stdio |
MCP_HTTP_PORT | HTTP 服务器端口. | 3010 |
MCP_HTTP_ENDPOINT_PATH | HTTP 端点路径 . | /mcp |
MCP_AUTH_MODE | Auth 模式 : none, (中文(简体) ), jwt,或 oauth。 。 。 . | none |
MCP_LOG_LEVEL | 日志级别 (debug, (中文(简体) ), info, (中文(简体) ), warning, (中文(简体) ), error(见a/c.5/49/70,附件). | info |
LOGS_DIR | 日志文件目录(只有Node.js). | <project-root>/logs |
LOG_TOOL_FAILURE_PAYLOADS | 记录每个工具调用失败的参数和结果,按密钥名称编辑并封顶 LOG_TOOL_FAILURE_PAYLOAD_MAX_BYTES (默认) 16384) (中文(简体) ). 自由形式值内部的秘密不编辑 . | false |
OTEL_ENABLED | 启用 OpenTeleometry 仪器 . | false |
见 .env.example 用于完整可选覆盖列表.
运行服务器
地方发展
要求数 Bun v1.4.0 (英语) 或更高(或Node.js v24+).
-
克隆并安装 :
git clone https://github.com/cyanheads/biorxiv-mcp-server.git cd biorxiv-mcp-server && bun install cp .env.example .env # optionally set BIORXIV_MAILTO -
构建和运行 :
# One-time build bun run rebuild # Run the built server bun run start:stdio # or bun run start:http -
运行检查和测试 :
bun run devcheck # Lint, format, typecheck, security bun run test # Vitest test suite bun run lint:mcp # Validate MCP definitions against spec
夹克
docker run --rm -e [email protected] -p 3010:3010 ghcr.io/cyanheads/biorxiv-mcp-server:latest
图像默认为 HTTP 传输、 无国籍会话模式和日志到 /var/log/biorxiv-mcp-server; 服务器在 http://localhost:3010/mcp运行到一个 MCP 客户端的 stdio,使用 "command": "docker" 与 "args": ["run", "-i", "--rm", "-e", "MCP_TRANSPORT_TYPE=stdio", "ghcr.io/cyanheads/biorxiv-mcp-server:latest"]为了在当地建设, docker build -t biorxiv-mcp-server .; OpenTeleometry 端点依赖性默认安装——用 --build-arg OTEL_ENABLED=false 以略去它们.
项目结构
| 目录 | 目的 |
|---|---|
src/index.ts | createApp() 进入点——登记工具并初始化服务. |
src/config | 服务器特定环境变量与Zod解析并验证. |
src/mcp-server/tools | 工具定义*.tool.ts) (中文(简体) ). 跨越 BioRxiv 和 medRxiv 的七个工具. |
src/services/biorxiv | BiorxivApiService 细节、出版物和有再试的横道终点包装. |
src/services/biorxiv-fulltext | BiorxivFullTextService —— 使 HTML 文章页面获取和 Markdown 提取 . |
src/services/europe-pmc | EuropePmcService ——预打印关键字/作者搜索端点包装. |
tests/ | 单位和综合测试 src/ 结构. |
发展指南
见 CLAUDE.md 发展准则和建筑规则。 简本:
- 搬运工投掷,框架渔获量——否
try/catch在工具逻辑中 - 使用
ctx.log请求范围伐木,ctx.state租户范围储存 - 通过枪管登记新工具
src/mcp-server/tools/definitions/index.ts - 环绕外部 API 调用: 验证 生 → 规范到域类型 → 返回输出计划; 永远不要编织缺失的字段
捐款
问题值得欢迎。 提交前进行检查和测试:
bun run devcheck
bun run test
许可证
阿帕奇-2.0 — 见 自由主义 详细情况.