{"id":37702309,"url":"https://github.com/itshen/paper_reader","last_synced_at":"2026-01-16T13:01:18.010Z","repository":{"id":331598526,"uuid":"1131527757","full_name":"itshen/paper_reader","owner":"itshen","description":"An MCP server that empowers AI assistants (Cursor, Claude, Cherry Studio) to search, read, and summarize arXiv papers directly.","archived":false,"fork":false,"pushed_at":"2026-01-10T15:37:03.000Z","size":323,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-11T02:47:11.524Z","etag":null,"topics":["ai-assistant","arxiv","cherry-studio","claude","claude-code","claude-mcp","cursor-mcp","mcp","paper-search","python","research-tools"],"latest_commit_sha":null,"homepage":"https://paper.lxshan.com/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/itshen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-10T07:22:15.000Z","updated_at":"2026-01-10T15:37:07.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/itshen/paper_reader","commit_stats":null,"previous_names":["itshen/paper_reader"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/itshen/paper_reader","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itshen%2Fpaper_reader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itshen%2Fpaper_reader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itshen%2Fpaper_reader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itshen%2Fpaper_reader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/itshen","download_url":"https://codeload.github.com/itshen/paper_reader/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itshen%2Fpaper_reader/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28478886,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T11:59:17.896Z","status":"ssl_error","status_checked_at":"2026-01-16T11:55:55.838Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-assistant","arxiv","cherry-studio","claude","claude-code","claude-mcp","cursor-mcp","mcp","paper-search","python","research-tools"],"created_at":"2026-01-16T13:01:17.884Z","updated_at":"2026-01-16T13:01:18.000Z","avatar_url":"https://github.com/itshen.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Paper Reader MCP\n\n一个基于 MCP (Model Context Protocol) 的 arXiv 论文搜索与阅读服务，带有 Web 管理界面和完整的认证机制。\n\n## 功能\n\n### 📚 论文搜索\n\n| 工具 | 功能 |\n|------|------|\n| `search_papers` | 搜索 arXiv 论文（支持智能排序、分类过滤） |\n| `get_paper_content` | 获取论文全文（Markdown 格式，支持分页） |\n\n### 🔍 搜索功能特性\n\n- **智能排序**：综合相关性和时间，越相关且越新的排越前\n- **分类过滤**：支持 cs.AI、cs.LG、cs.CV、cs.CL 等分类\n- **多种排序**：相关性、提交时间、更新时间\n\n### 📖 论文阅读特性\n\n- **PDF 转 Markdown**：自动下载并转换为易读的 Markdown 格式\n- **分页返回**：支持自定义每页字符数，适配 Token 限制\n- **摘要显示**：每次返回都包含论文摘要\n- **智能缓存**：自动缓存论文，超过 1GB 或 3 个月自动清理\n\n### 🔐 认证功能\n\n- 管理员登录（用户名/密码）\n- Session 会话管理\n- API Token 管理（供 MCP 客户端使用）\n\n## 快速开始\n\n### 1. 安装依赖并运行\n\n```bash\n./run.sh\n```\n\n或手动：\n\n```bash\npip install -r requirements.txt\npython3.11 server.py\n```\n\n### 2. 访问\n\n- **Web 界面**: http://localhost:8633\n- **管理后台**: http://localhost:8633/admin\n- **MCP 端点**: http://localhost:8633/mcp\n\n### 3. 默认账号\n\n- 用户名：`admin`\n- 密码：`admin123`\n\n**请登录后在管理页面修改密码！**\n\n## MCP 客户端配置\n\n### 1. 创建 API Token\n\n1. 访问管理页面：http://localhost:8633/admin\n2. 在「API Token 管理」中创建新 Token\n3. 复制生成的 Token\n\n### 2. 配置 Cursor / Claude Desktop\n\n```json\n{\n  \"mcpServers\": {\n    \"paper-reader\": {\n      \"url\": \"http://localhost:8633/mcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer mcp_xxxxxxxx...\"\n      }\n    }\n  }\n}\n```\n\n## 使用示例\n\n### 搜索论文\n\n```\n# 智能搜索（默认：相关性+时间综合排序）\nsearch_papers(\"transformer attention\")\n\n# 指定分类搜索\nsearch_papers(\"large language model\", category=\"cs.CL\")\n\n# 按时间排序\nsearch_papers(\"diffusion model\", sort_by=\"submitted\", category=\"cs.CV\")\n```\n\n### 获取论文全文\n\n```\n# 获取论文第一页（默认 20000 字符）\nget_paper_content(\"1706.03762\")\n\n# 获取指定页\nget_paper_content(\"1706.03762\", page=2)\n\n# 自定义每页字符数\nget_paper_content(\"1706.03762\", max_chars=50000)\n```\n\n## 常用分类\n\n| 分类代码 | 说明 | 推荐用于 |\n|----------|------|----------|\n| `cs.AI` | 人工智能 | 通用 AI |\n| `cs.CL` | 计算语言学/NLP | LLM、文本处理 |\n| `cs.CV` | 计算机视觉 | 图像、视频 |\n| `cs.LG` | 机器学习 | 通用 ML 算法 |\n| `cs.NE` | 神经网络 | 网络架构 |\n| `cs.IR` | 信息检索 | 搜索、推荐系统 |\n| `cs.RO` | 机器人 | 机器人技术 |\n| `stat.ML` | 统计机器学习 | 统计方法 |\n| `eess.AS` | 音频与语音 | 语音处理 |\n| `eess.IV` | 图像与视频 | 信号处理 |\n\n## 项目结构\n\n```\npaper_reader/\n├── server.py              # 服务器入口（Web + MCP）\n├── run.sh                 # 启动脚本\n├── config.yaml            # 配置文件\n├── requirements.txt       # 依赖列表\n├── paper_tools/           # 论文工具模块\n│   ├── arxiv_search.py    # arXiv 搜索\n│   ├── paper_cache.py     # 缓存管理\n│   └── pdf_converter.py   # PDF 转 Markdown\n├── auth.py                # 认证模块\n├── api_logger.py          # API 日志\n├── templates/             # HTML 模板\n│   ├── index.html         # 工具测试页面\n│   ├── login.html         # 登录页面\n│   ├── admin.html         # 管理页面\n│   └── logs.html          # 日志页面\n├── static/                # 静态资源\n│   ├── css/\n│   └── js/\n└── data/                  # 数据目录\n    ├── auth.db            # 认证数据库\n    ├── api_logs.db        # API 日志\n    └── papers/            # 论文缓存\n        ├── pdf/           # PDF 文件\n        └── markdown/      # Markdown 文件\n```\n\n## 配置说明\n\n### config.yaml\n\n```yaml\n# 服务器配置\nserver:\n  name: \"Paper Reader MCP\"\n  port: 8633\n\n# 认证配置\nauth:\n  default_password: \"admin123\"\n  salt: \"your_salt_here\"\n\n# 存储配置\nstorage:\n  data_dir: \"./data\"\n\n# 论文缓存配置\npapers:\n  max_size_mb: 1024      # 最大缓存 1GB\n  max_age_days: 90       # 保留 3 个月\n```\n\n## 缓存策略\n\n论文缓存自动管理，淘汰策略：\n1. 先删除超过 90 天的论文\n2. 然后删除最大的文件（直到总大小 \u003c 1GB）\n\n## ☕ 赞赏\n\n如果这个项目对你有帮助，欢迎请作者喝杯咖啡。\n\n\u003cimg src=\"static/image/sponsor.jpg\" width=\"300\" alt=\"赞赏码\"\u003e\n\n\u003e 💡 赞赏时请留下你的 GitHub ID，我会将你添加到感谢名单中。金额不限。\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e🙏 鸣谢\u003c/b\u003e（点击展开）\u003c/summary\u003e\n\n\u003cbr\u003e\n\n感谢以下小伙伴的支持：\n\n| 赞助者 | 留言 |\n|--------|------|\n| 虚位以待 | 期待你的支持 |\n\n\u003c/details\u003e\n\n## License\n\nMIT License\n\nCopyright (c) 2025 Miyang Tech (Zhuhai Hengqin) Co., Ltd.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitshen%2Fpaper_reader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fitshen%2Fpaper_reader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitshen%2Fpaper_reader/lists"}