一个基于 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 客户端使用)
./run.sh或手动:
pip install -r requirements.txt
python3.11 server.py- Web 界面: http://localhost:8633
- 管理后台: http://localhost:8633/admin
- MCP 端点: http://localhost:8633/mcp
- 用户名:
admin - 密码:
admin123
请登录后在管理页面修改密码!
- 访问管理页面:http://localhost:8633/admin
- 在「API Token 管理」中创建新 Token
- 复制生成的 Token
{
"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 文件
# 服务器配置
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 个月论文缓存自动管理,淘汰策略:
- 先删除超过 90 天的论文
- 然后删除最大的文件(直到总大小 < 1GB)
如果这个项目对你有帮助,欢迎请作者喝杯咖啡。
💡 赞赏时请留下你的 GitHub ID,我会将你添加到感谢名单中。金额不限。
🙏 鸣谢(点击展开)
感谢以下小伙伴的支持:
| 赞助者 | 留言 |
|---|---|
| 虚位以待 | 期待你的支持 |
MIT License
Copyright (c) 2025 Miyang Tech (Zhuhai Hengqin) Co., Ltd.
