PDFs in, classified library out, agent reads it through an MCP server.
~/inbox/ → classify → ~/library/ → agent answers questions via MCP
Prerequisites: uv (brew install uv).
make install # uv sync + install pre-commit hooks
make check # ruff + mypy
make test # pytest with coverageSet ANTHROPIC_API_KEY in a .env at the repo root (or your shell).
paperclaw process --inbox inbox --library librarymake ui # opens at http://localhost:8501Streamlit page with drag-and-drop upload, a single Process button, a
review panel for low-confidence or quarantined documents (HITL decisions
are recorded to <library>/.hitl_decisions.json), and library search.
Local only, no auth.
The MCP server runs over stdio. Add it to your Claude Desktop config (macOS:
~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"paperclaw": {
"command": "uv",
"args": ["--directory", "/Users/you/code/paperclaw", "run", "paperclaw-mcp"],
"env": {
"PAPERCLAW_LIBRARY": "/Users/you/code/paperclaw/library"
}
}
}
}Restart Claude Desktop. The agent will see three tools: search, list, read.
PAPERCLAW_LIBRARY defaults to ~/library if unset.
DESIGN.md— architecture, library layout, MCP design rules, securityCLAUDE.md— operating instructions for any agent working on this repo
M1 (scaffold) and M2 (classify + transcribe + file) complete. M3 (MCP server with search, list, read) in progress.