Skip to main content
Glama
itshen

Paper Reader MCP

by itshen

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.

A
license - permissive license
-
quality - not tested
C
maintenance

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/itshen/paper_reader'

If you have feedback or need assistance with the MCP directory API, please join our Discord server