Docs
Enough to connect an agent and read the output correctly. The MCP install story used to live in one paragraph on the marketing page; it lives here now.
Published on npm as pepiros-mcp. No clone required -- point your client at it directly.
{
"mcpServers": {
"pepiros": {
"command": "npx",
"args": ["-y", "pepiros-mcp"]
}
}
}Working from a clone instead (e.g. to test a local change to mcp/* before it's published):
npm install
npm run mcp:stdio{
"mcpServers": {
"pepiros": {
"command": "npx",
"args": ["tsx", "mcp/stdio.ts"],
"cwd": "/path/to/pepiros"
}
}
}A remote streamable-HTTP transport with OAuth 2.1 (dynamic client registration, PKCE) is also live now, for clients that can only reach a hosted connector rather than spawning a local process -- point one at /api/mcp on this deployment’s own origin, and it discovers the rest from /.well-known/oauth-authorization-server.
Every claim carries one of three states. They are not degrees of confidence in the research; they describe how well the claim matched the text it cites.
A claim with no checked excerpt at all is badged inference. Nothing is ever badged “verified”. See how it works for the reasoning.
Anchors use stable, human-readable ids so a citation stays meaningful across a conversation: C7 for a text chunk, F3 for a figure, N12 for a numeric ledger row.
An anchor can span multiple rects on a page, which is how a quote that wraps across a column break still highlights correctly.
12 tools are registered: list_papers, search_paper, get_outline, get_node, verify_claim, create_node, find_contradictions, paper_facts, list_workspaces, create_workspace, add_paper, get_job. Full argument tables are on the MCP page.
create_node re-verifies server-side and never trusts a client-asserted tier. An agent cannot write a claim into the graph badged “quote located” by simply saying it is.
A PDF is capped at 50MB and 120 pages. The size limit is checked the moment the upload form sees the file; the page count can only be known after parsing, so that check runs server-side. Both apply the same way whether a paper arrives through the form or through add_paper, with the actual reason named rather than a generic failure.