Skip to content

An MCP server that empowers AI assistants (Cursor, Claude, Cherry Studio) to search, read, and summarize arXiv papers directly.

License

Notifications You must be signed in to change notification settings

itshen/paper_reader

Repository files navigation

Paper Reader MCP

一个基于 MCP (Model Context Protocol) 的 arXiv 论文搜索与阅读服务,带有 Web 管理界面和完整的认证机制。

功能

📚 论文搜索

工具 功能
search_papers 搜索 arXiv 论文(支持智能排序、分类过滤)
get_paper_content 获取论文全文(Markdown 格式,支持分页)

🔍 搜索功能特性

  • 智能排序:综合相关性和时间,越相关且越新的排越前
  • 分类过滤:支持 cs.AI、cs.LG、cs.CV、cs.CL 等分类
  • 多种排序:相关性、提交时间、更新时间

📖 论文阅读特性

  • PDF 转 Markdown:自动下载并转换为易读的 Markdown 格式
  • 分页返回:支持自定义每页字符数,适配 Token 限制
  • 摘要显示:每次返回都包含论文摘要
  • 智能缓存:自动缓存论文,超过 1GB 或 3 个月自动清理

🔐 认证功能

  • 管理员登录(用户名/密码)
  • Session 会话管理
  • API Token 管理(供 MCP 客户端使用)

快速开始

1. 安装依赖并运行

./run.sh

或手动:

pip install -r requirements.txt
python3.11 server.py

2. 访问

3. 默认账号

  • 用户名:admin
  • 密码:admin123

请登录后在管理页面修改密码!

MCP 客户端配置

1. 创建 API Token

  1. 访问管理页面:http://localhost:8633/admin
  2. 在「API Token 管理」中创建新 Token
  3. 复制生成的 Token

2. 配置 Cursor / Claude Desktop

{
  "mcpServers": {
    "paper-reader": {
      "url": "http://localhost:8633/mcp",
      "headers": {
        "Authorization": "Bearer mcp_xxxxxxxx..."
      }
    }
  }
}

使用示例

搜索论文

# 智能搜索(默认:相关性+时间综合排序)
search_papers("transformer attention")

# 指定分类搜索
search_papers("large language model", category="cs.CL")

# 按时间排序
search_papers("diffusion model", sort_by="submitted", category="cs.CV")

获取论文全文

# 获取论文第一页(默认 20000 字符)
get_paper_content("1706.03762")

# 获取指定页
get_paper_content("1706.03762", page=2)

# 自定义每页字符数
get_paper_content("1706.03762", max_chars=50000)

常用分类

分类代码 说明 推荐用于
cs.AI 人工智能 通用 AI
cs.CL 计算语言学/NLP LLM、文本处理
cs.CV 计算机视觉 图像、视频
cs.LG 机器学习 通用 ML 算法
cs.NE 神经网络 网络架构
cs.IR 信息检索 搜索、推荐系统
cs.RO 机器人 机器人技术
stat.ML 统计机器学习 统计方法
eess.AS 音频与语音 语音处理
eess.IV 图像与视频 信号处理

项目结构

paper_reader/
├── server.py              # 服务器入口(Web + MCP)
├── run.sh                 # 启动脚本
├── config.yaml            # 配置文件
├── requirements.txt       # 依赖列表
├── paper_tools/           # 论文工具模块
│   ├── arxiv_search.py    # arXiv 搜索
│   ├── paper_cache.py     # 缓存管理
│   └── pdf_converter.py   # PDF 转 Markdown
├── auth.py                # 认证模块
├── api_logger.py          # API 日志
├── templates/             # HTML 模板
│   ├── index.html         # 工具测试页面
│   ├── login.html         # 登录页面
│   ├── admin.html         # 管理页面
│   └── logs.html          # 日志页面
├── static/                # 静态资源
│   ├── css/
│   └── js/
└── data/                  # 数据目录
    ├── auth.db            # 认证数据库
    ├── api_logs.db        # API 日志
    └── papers/            # 论文缓存
        ├── pdf/           # PDF 文件
        └── markdown/      # Markdown 文件

配置说明

config.yaml

# 服务器配置
server:
  name: "Paper Reader MCP"
  port: 8633

# 认证配置
auth:
  default_password: "admin123"
  salt: "your_salt_here"

# 存储配置
storage:
  data_dir: "./data"

# 论文缓存配置
papers:
  max_size_mb: 1024      # 最大缓存 1GB
  max_age_days: 90       # 保留 3 个月

缓存策略

论文缓存自动管理,淘汰策略:

  1. 先删除超过 90 天的论文
  2. 然后删除最大的文件(直到总大小 < 1GB)

☕ 赞赏

如果这个项目对你有帮助,欢迎请作者喝杯咖啡。

赞赏码

💡 赞赏时请留下你的 GitHub ID,我会将你添加到感谢名单中。金额不限。

🙏 鸣谢(点击展开)

感谢以下小伙伴的支持:

赞助者 留言
虚位以待 期待你的支持

License

MIT License

Copyright (c) 2025 Miyang Tech (Zhuhai Hengqin) Co., Ltd.

About

An MCP server that empowers AI assistants (Cursor, Claude, Cherry Studio) to search, read, and summarize arXiv papers directly.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published