Provides access to a local Zotero library, allowing for paper discovery via metadata search, collection browsing, and direct reading of PDF files.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@principia-mcpfind papers about conformal gravity in my Zotero library"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
principia-mcp
MCP server that gives Claude access to your local Zotero library. Claude discovers papers via metadata search, then reads PDFs directly.
How It Works
You: "What does Mannheim say about conformal gravity?"
│
▼
Claude: search_papers("conformal gravity", collection="mannheim")
│
▼
MCP returns: [{id: 212, title: "Making the Case...", pdf_path: "/home/.../paper.pdf"}]
│
▼
Claude: Read("/home/.../paper.pdf") ← Claude sees equations visually
│
▼
Claude: "Mannheim argues that conformal gravity can explain galaxy rotation curves..."No embeddings, no text extraction. Claude reads PDFs natively.
Installation
git clone https://github.com/phelps-matthew/principia-mcp
cd principia-mcp
uv syncConfigure Claude Code
Add the MCP server (user-wide):
claude mcp add principia -s user -- uv run --directory /path/to/principia-mcp principia-mcpOr for just one project:
claude mcp add principia -s project -- uv run --directory /path/to/principia-mcp principia-mcpVerify with claude mcp list or /mcp in a new session.
MCP Tools
Tool | Description |
| List Zotero collections with paper counts |
| Browse papers in library or collection |
| Keyword search on title/abstract |
| Get metadata + PDF path for a paper |
Zotero Integration
Reads directly from ~/Zotero/:
zotero.sqlite- metadata databasestorage/[key]/- PDF files
No export needed. Add a paper to Zotero and it's available immediately.
Set ZOTERO_DIR environment variable if your Zotero data is elsewhere.
Development
uv sync # Install dependencies
uv run pytest # Run tests
uv run principia-mcp # Run server
uv run mcp dev src/principia_mcp/server.py # Dev/debug modeProject Structure
src/principia_mcp/
├── server.py # FastMCP server, tool definitions
├── models.py # Pydantic models (Paper, Collection)
├── zotero.py # ZoteroReader - reads Zotero SQLite DB
└── search.py # FTS5 index for fast search (optional)