Skip to main content
Glama
README.md
# PaperMCP

> 一个轻量、单机、**多项目隔离**、可被任意通用 Agent 通过 MCP 调用的
> **论文双路检索索引服务**。

[![Python](https://img.shields.io/badge/python-3.11%2B-blue.svg)](https://www.python.org)
[![License](https://img.shields.io/badge/license-MIT-green.svg)](./LICENSE)
[![MCP](https://img.shields.io/badge/protocol-MCP-purple.svg)](https://modelcontextprotocol.io)

## 定位

- 每个用户/团队可创建多个 **Project**,每个 Project 独立数据源 + 独立索引 + 独立鉴权。
- 支持 **PDF / Markdown / LaTeX / DOCX** 四种格式,一次性上传,自动解析、切块、建索引。
- 双路检索:**BM25**(字面/术语/公式)+ **bge-m3 稠密向量**,用 **RRF** 融合,
  再乘 **文档权重** 得到最终排序。
- 双入口:
  - **MCP Server** — 面向 Agent(Claude / CodeBuddy / ...),启动时绑定 project,长会话免密。
  - **Admin HTTP Server** — 面向人,含项目 CRUD、文档 CRUD、统计、审计、渲染查看。

## 架构

见 [ARCHITECTURE.md](./ARCHITECTURE.md)。

## 快速开始(v0.1 正在开发中)

```bash
# 1. 安装
pip install -e ".[dev]"

# 2. 配置
cp .env.example .env
# 编辑 .env,设置 INVITE_CODES / JWT_SECRET

# 3. 启动 Admin,创建首个项目
paper-mcp serve admin
# 浏览器打开 http://localhost:8765,用邀请码建项目

# 4. 挂到 Agent(示例:CodeBuddy MCP 配置)
# {
#   "papermcp-<project>": {
#     "command": "paper-mcp",
#     "args": ["serve", "mcp", "--project", "<project-name>"],
#     "env": {
#       "PAPER_MCP_USERNAME": "...",
#       "PAPER_MCP_PASSWORD": "..."
#     }
#   }
# }
```

CLI 也提供短别名 `pmcp`,等价于 `paper-mcp`。

## 项目状态

- [x] 架构文档冻结(v3)
- [x] v0.1 骨架代码
- [x] v0.1 后端完整实现(config / domain / infra / core / service / server / cli)
- [ ] v0.1 端到端联调 + 打包
- [ ] v0.2 管理端 UI + FAISS 增量重建

## License

MIT