一个基于 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.
