@cyanheads/arxiv-mcp-server

中文文档
1.8.2发布于 2026/11/09Apache-2.0TypeScriptES Module近 30 天下载 4727

搜索arXiv,取出纸质元数据,通过MCP读取全文内容. (原始内容存档于2012-10-12). STIO or Streamable HTTP.

中文使用文档
文档目录25 节
  1. 概览
  2. 工具
  3. 资源
  4. 能力参考
  5. arxiv_search_papers 工具
  6. arxiv_get_metadata 工具
  7. arxiv_read_paper 工具
  8. arxiv_list_categories 工具
  9. arxiv://paper/{paperId} 资源
  10. arxiv://categories 资源
  11. 特征
  12. 开始
  13. 公共托管实例
  14. 自有/当地
  15. 先决条件
  16. 安装
  17. 配置
  18. 运行服务器
  19. 地方发展
  20. 可选: 本地镜像
  21. 夹克
  22. 项目结构
  23. 发展指南
  24. 捐款
  25. 许可证

@cyanheads/arxiv-mcp-服务器

搜索arXiv,取出纸质元数据,通过MCP读取全文内容. (原始内容存档于2012-10-12). STIO or Streamable HTTP.

4个工具 • 2个资源

Version License Docker MCP SDK npm TypeScript Bun

Install in Claude Desktop Install in Cursor Install in VS Code

Framework


概览

arXiv文件、元数据以及ArXiv API及其审调处-PMH元数据反馈的全文。 按查询、类别和提交日期来搜索文件;通过ID获取结构化元数据;并读取HTML和PDF制成的全纸文本,自动回落。 运行为 stdio 进程,本地可流的 HTTP 服务器,或上面的公共主机端点.

工具

工具说明
arxiv_search_papers使用字段前缀、类别和日期过滤器查询搜索 arXiv 文档
arxiv_get_metadata用 arXiv ID 获取一个或多个文件的元数据
arxiv_read_paper通过 HTML、 ar5iv 或 PDF 提取的倒置读取纸张全文
arxiv_list_categories列出 arXiv 类分类, 可选择按组过滤

资源

资源说明
arxiv://paper/{paperId}由 arXiv ID 编写的纸质元数据
arxiv://categories完全arXiv 分类

能力参考

arxiv_search_papers 工具

  • 查询支持字段前缀 ti:, (中文(简体) ), au:, (中文(简体) ), abs:, (中文(简体) ), cat:, (中文(简体) ), co:, (中文(简体) ), jr:, (中文(简体) ), all: 财务报告和审定财务报表 AND 编号 : OR 编号 : ANDNOT,最多1000个字符; category 使用一个代码( e)cs.CL)或整个档案(astro-ph, (中文(简体) ), cs, (中文(简体) ), math(中文(简体) )
  • 查询语法遵循 arXiv 的: 空间分隔的名词与 OR (写出) AND 以要求每个术语),运算符只是大写,所有三个词都有一个优先级归为右(a AND b OR c 实值 a AND (b OR c). 引文使用过时参数coauthors (帮助) 多字专题 (简体中文)"graph neural networks" AND cat:cs.LG)并在过滤器前加括号;arXiv 忽略了常见的单词,例如 of 财务报告和审定财务报表 the 引用的短语之外
  • 排序为 sort_by (单位:千美元)relevance 编号 : submitted 编号 : updated,无论如何;arXiv自己的 submittedDate 编号 : lastUpdatedDate 改为 submitted 编号 : updated和 sort_order,与 submitted_from 编号 : submitted_to 包括世界协调时 YYYY-MM-DD 界限;每次呼叫最多50个结果(较大) max_results 返回 50时
  • arXiv只服务于一个查询的第一个10,000个结果; a start 1万个失败 start_beyond_result_limit。使用日期窗口更进一步
  • 输出回放有效的查询,总匹配计数,以及页面偏移;空页带回取回的指引而不是出错. 总共为一层(当地镜子计为5万) totalFoundIsLowerBound: true

arxiv_get_metadata 工具

  • 最多需要100张身份证 查一下前10张 remaining_ids 下一个电话的 paper_ids。任何接受的拼写中重复的ID会被查一次,而不同版本的一张纸则分开
  • 接受版本( E)2401.12345v2),未转录,以及2007年之前(hep-th/9901001身份证,可选 arXiv: 前缀或 arxiv.org abs 编号 : pdf 编号 : html 網址
  • 返回已找到的纸外加打入的 not_found[] (单位:千美元)not_in_arxiv 编号 : version_not_in_mirror 编号 : version_not_served 编号 : live_lookup_failed 编号 : invalid_id其余部分; version_not_served arXiv 的 API 对 HTTP 500 的回答及其 detail 命名最新版本。 与当地的镜子, live_lookup_failed 标记一个识别符 镜像缺少其活视镜失败; 镜像服务的文件仍然回来
  • 失败者 invalid_id 当没有很好的身份证, no_match 当每一个身份缺失, version_unavailable 当一个版本只能在活的 API 上达到时,并且 version_not_served 当每个ID是一个版本 arXiv 将不会服务

arxiv_read_paper 工具

  • Tries arXiv HTML,然后是 ar5iv,然后是 PDF 文本提取 source 回答的实地报告。 PDF 文本是简单的, 因此数学、 表格和标题均匀
  • ar5iv保留每张纸的一出出处,所以ar5iv的正文可能是另一种修改,而不是 paper_id 并携带 revision_unconfirmed: true,除非已读取的无版本和arXiv的API将v1报告为论文的唯一版本; pdf_url 准确的就是 paper_id 订正
  • max_characters 默认为 100,000(通过) null 整页) start。第一页载有 outline 页:1
  • paper_id 接受相同的 ID 拼写为 arxiv_get_metadata
  • 失败者 invalid_id, (中文(简体) ), no_match (arXiv没有这种文件,或没有这种版本), content_unavailable (无渲染、无PDF), pdf_extraction_failed (PDF没有文本层或不解析), version_unavailable (arXiv是无法接触到的,当地镜像持有被钉住的ID的另一个版本),或 version_not_served (被取代的2007年前版本arXiv将不服务;命名最新版本和本版本的PDF)

arxiv_list_categories 工具

  • ~155个类别,分布在8个最高级别的团体(cs, (中文(简体) ), econ, (中文(简体) ), eess, (中文(简体) ), math, (中文(简体) ), physics, (中文(简体) ), q-bio, (中文(简体) ), q-fin, (中文(简体) ), stat(中文(简体) )
  • 可选 group 过滤到缩小结果
  • 静态数据——总是成功的

arxiv://paper/{paperId} 资源

  • paperId 接受相同的 ID 拼写为 arxiv_get_metadata; %-encode 一个遗留的ID的斜线(arxiv://paper/hep-th%2F9901001(中文(简体) )
  • 失败者 empty_id, (中文(简体) ), invalid_id, (中文(简体) ), no_match, (中文(简体) ), version_unavailable,或 version_not_served

arxiv://categories 资源

  • 回返 { categories: [...] },一个平面阵列,其中 code 编号 : name 编号 : group 每个条目
  • 无参数;24h可缓存

特征

建造在 @cyanheads/mcp-ts-core: stdio和可流式的 HTTP 传输器,可插接式(none 编号 : jwt 编号 : oauth),可互换存储(in-memory, (中文(简体) ), filesystem, (中文(简体) ), Supabase, (中文(简体) ), Cloudflare KV/R2/D1),结构化记录,可选择的OpenTeleometry tracking.

arXiv 特异性:

  • 只读, 不需要认证
  • 请求队列执行 arXiv 的 三秒爬行延迟; 速率限制响应在冷却后迅速失败
  • 纸张文本从 arXiv HTML 返回到 ar5iv 到 PDF 提取
  • 作为静态数据嵌入的完整arXiv分类
  • 可选的本地审调处-PMH元数据镜像(SQLite + FTS5)可以去除搜索和元数据的限速曝光. 见 可选: 本地镜像

方便代理输出 :

  • arxiv_read_paper 名称 source· ; arxiv_search_papers 响应有效的查询
  • arxiv_get_metadata 返回已输入的已找到的文档 not_found[] 每个错失的原因
  • 类型 source 财务报告和审定财务报表 not_found[].reason enums 允许调用数据分支

开始

公共托管实例

可在 https://arxiv.caseyjhand.com/mcp 无需安装。 通过可流式HTTP将 MCP 客户端指向它 :

{
  "mcpServers": {
    "arxiv-mcp-server": {
      "type": "streamable-http",
      "url": "https://arxiv.caseyjhand.com/mcp"
    }
  }
}

自有/当地

在您的 MCP 客户端配置文件中添加以下内容 .

{
  "mcpServers": {
    "arxiv-mcp-server": {
      "type": "stdio",
      "command": "bunx",
      "args": ["@cyanheads/arxiv-mcp-server@latest"]
    }
  }
}

或者用 npx( 不需要 Bun) :

{
  "mcpServers": {
    "arxiv-mcp-server": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@cyanheads/arxiv-mcp-server@latest"]
    }
  }
}

或与道克相会:

{
  "mcpServers": {
    "arxiv-mcp-server": {
      "type": "stdio",
      "command": "docker",
      "args": ["run", "-i", "--rm", "-e", "MCP_TRANSPORT_TYPE=stdio", "ghcr.io/cyanheads/arxiv-mcp-server:latest"]
    }
  }
}

对于可流式HTTP,设置传输并启动服务器:

MCP_TRANSPORT_TYPE=http MCP_HTTP_PORT=3010 bun run start:http
# Server listens at http://localhost:3010/mcp

先决条件

安装

  1. 清除仓库 :
git clone https://github.com/cyanheads/arxiv-mcp-server.git
  1. 导航到目录 :
cd arxiv-mcp-server
  1. 安装依赖性 :
bun install

配置

所有配置都是可选的——服务器在框外工作,有合理的默认值.

变量说明默认
ARXIV_API_BASE_URLarXiv API 基础 URL.https://export.arxiv.org/api
ARXIV_REQUEST_DELAY_MSArXiv API请求之间的最小延迟 (ms).3000
ARXIV_CONTENT_TIMEOUT_MS取纸体的超时——HTML使和PDF下载(ms).30000
ARXIV_API_TIMEOUT_MSAPI搜索/元数据请求的超时(ms). 随着镜像的启用, 也是最长的未转换 arxiv_read_paper 等待它的元数据查找, 包括队列, 等待镜像持有纸质答案 .15000
ARXIV_READ_TIMEOUT_MS其中一项的时间预算 arxiv_read_paper 调用 – 其元数据查询,每个内容请求和重试,以及 PDF 文本提取 (ms). 保存在您的 MCP 客户端的请求超时( 默认为 60 s) 下 .50000
ARXIV_MIRROR_ENABLED启用本地审调处- PMH 元数据镜像 .false
ARXIV_MIRROR_PATHSQLite 路径用于镜像 ../data/arxiv-mirror.db
ARXIV_MIRROR_REFRESH_CRONUTC cron 表达式用于进程内每日刷新(仅HTTP模式).未设定
ARXIV_MIRROR_FALLBACK_LIVE接通现场API 接听本地的身份证检查小姐.true
ARXIV_MIRROR_RECENT_DAYS_LIVE正值发送 sort_by=submitted将查询输入实时API; 0 禁用 .2
ARXIV_MIRROR_OAI_BASE_URLarXiv 审调处-PMH端点基础URL.https://oaipmh.arxiv.org/oai
ARXIV_MIRROR_OAI_REQUEST_DELAY_MS审调处-公共卫生部之间请求之间的最小延迟(ms).3000
ARXIV_MIRROR_REFRESH_TIMEOUT_MS一个预定更新的时间预算(毫秒).7200000
MCP_TRANSPORT_TYPE运输: stdio 或者说 http。 。 。 .stdio
MCP_HTTP_PORTHTTP 服务器端口 .3010
MCP_SESSION_MODEauto, (中文(简体) ), stateful,或 stateless。 。 。 .stateless
MCP_AUTH_MODEAuth 模式 : none, (中文(简体) ), jwt,或 oauth。 。 。 .none
MCP_LOG_LEVEL日志级别(RFC 5424).info
OTEL_ENABLED启用 OpenTelemet 仪器 (日文、度量、完成日志).false

见 .env.example 用于完整可选覆盖列表.

运行服务器

地方发展

  • 构建和运行 :

    # One-time build
    bun run rebuild
    
    # Run the built server
    bun run start:http
    # or
    bun run start:stdio
    
  • 运行检查和测试 :

    bun run devcheck   # Lint, format, typecheck, security audit
    bun run test       # Vitest test suite
    

可选: 本地镜像

对于一个Egress IP背后的自备部署,ARXIV的SQLite + FTS5 镜像可选 SQLite + FTS5 镜像服务 arxiv_search_papers 财务报告和审定财务报表 arxiv_get_metadata 本地,所以并行用户停止在arXiv的3秒爬行延迟后排队; arxiv_read_paper 仍可实时获取纸张文本。 收获一次 bun run mirror:init (~4.4h),然后设定 ARXIV_MIRROR_ENABLED=true。从 npm 安装、 调度更新、 计划升级中运行它, 且镜像搜索与 API 的活式搜索不同 文件/备忘录。 。 。 .

夹克

docker build -t arxiv-mcp-server .
docker run --rm -p 3010:3010 arxiv-mcp-server

Dockerfile 默认为 HTTP 传输、 无国籍会话模式和日志到 /var/log/arxiv-mcp-server。默认情况下安装了 OpenTeleometry 端端依赖性 --build-arg OTEL_ENABLED=false 以略去它们.

项目结构

目录目的
src/index.tscreateApp() 入站点——注册工具/资源并启动可选的镜像再更新调度器.
src/config服务器特定环境变量与Zod解析并验证.
src/mcp-server/tools/definitions工具定义*.tool.ts) (中文(简体) ).
src/mcp-server/resources/definitions资源定义*.resource.ts) (中文(简体) ).
src/services/arxivArxivService ——活 arXiv API 客户端(搜索,元数据,HTML),和 PDF 文本从工人线程中提取(pdf-text.ts) (中文(简体) ).
src/services/arxiv/mirror可选审调处-PMH镜像-收割机,SQLite + FTS5商店,查询翻译,跑道.
skills/arxiv-guide代理技能发布给安装服务器的代理,并服务于MCP:引用-到ID分辨率,搜索门,版本和分节读取工作流程.
scripts/arxiv-mirror-*.ts镜像生命周期脚本( E)init, (中文(简体) ), refresh, (中文(简体) ), verify(三); scripts/tsconfig.json 解决他们的 @/ 进口到 src/,或改为 dist/ 在安装.
tests/单位与整合测试.
docs/设计文档,本地镜像指南,以及目录结构.

发展指南

见 CLAUDE.md 发展准则和建筑规则。 简本:

  • 搬运工投掷,框架渔获量——否 try/catch 在工具逻辑中
  • 使用 ctx.log 请求范围伐木, ctx.state 租户范围储存
  • arXiv API 返回 HTTP 200 , 包括速率限制, 因此在解析前检查内容类型和正文
  • 验证原始 arXiv 响应 = 与域类型正常化 = 返回输出计划; 永远不编织缺失的字段

捐款

问题值得欢迎。 提交前运行检查 :

bun run devcheck
bun run test

许可证

阿帕奇-2.0 — 见 自由主义 详细情况.

版本与发布记录

@cyanheads/arxiv-mcp-server 共发布 47 个版本,首次发布于 2026/03/30;过去 12 个月发布了 47 个版本。

版本发布日期距今
1.8.2latest2026/11/092 天前
1.8.12026/10/2912 天前
1.8.02026/10/2615 天前
1.7.22026/10/2516 天前
1.7.12026/10/2418 天前
1.7.02026/10/2220 天前

关于 @cyanheads/arxiv-mcp-server 的常见问题

@cyanheads/arxiv-mcp-server 是什么?

搜索arXiv,取出纸质元数据,通过MCP读取全文内容. (原始内容存档于2012-10-12). STIO or Streamable HTTP.

如何安装 @cyanheads/arxiv-mcp-server?

在项目目录运行 npm install @cyanheads/arxiv-mcp-server,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 arxiv-mcp-server,可以用 npx arxiv-mcp-server 直接运行。

@cyanheads/arxiv-mcp-server 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@cyanheads/arxiv-mcp-server 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@cyanheads/arxiv-mcp-server 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=24.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@cyanheads/arxiv-mcp-server 可以商用吗?

@cyanheads/arxiv-mcp-server 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@cyanheads/arxiv-mcp-server 的下载量有多少?

根据 npm 官方下载统计,@cyanheads/arxiv-mcp-server 在 2026/10/11 – 2026/11/09 这 30 天内被下载 4,727 次,日均约 158 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@cyanheads/arxiv-mcp-server 还在维护吗?

最新版本 1.8.2 发布于 2026/11/09(2 天前);至今共发布 47 个版本,其中过去 12 个月发布了 47 个;首次发布于 2026/03/30。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。