PaperGraph MCP
PaperGraph MCP turns papers into a local theorem-centered reading workspace with evidence, dependencies, and reading-state management.
Import and manage local LaTeX, arXiv, born-digital PDF, and DOI papers in persistent SQLite workspaces.
Explore paper maps, theorem/result search, proofs, source slices, citations, and dependency graphs with diagnostics.
Discover, search, resolve, and review external scholarly references without automatic paywall bypass.
Run approved bounded reference expansions to search, download, import, and resolve references.
Create reading sessions, queues, checkpoints, notes, and export Markdown reports or cross-paper plans.
Validate arXiv/DOI inputs, inspect environment diagnostics, and export reading bundles or focused reading contexts.
Allows loading arXiv papers by identifier, downloading sources from arXiv's e-print endpoint, caching them, and building a dependency graph of theorem-like environments.
Provides tools for parsing local LaTeX papers, recursively following \input and \include commands, and exploring theorems, dependencies, and usages in the resulting document graph.
Click on "Deploy 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., "@PaperGraph MCP load arXiv paper 2401.12345 and list its theorems"
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.
PaperGraph MCP
Read math papers with evidence, not guesses.
Turn arXiv papers, local LaTeX projects, and born-digital PDFs into a local theorem-centered workspace. Inspect source-backed results, proofs, citations, and dependencies; save reading progress and export Markdown reports.
What You Can Do
Start with a Paper Map: inspect structure, main-result candidates, and external reading risks before choosing a theorem.
Trace statements and proof-local references back to source slices; inspect direct and recursive dependencies, shared prerequisites, cycles, and unknowns.
Discover public full-text candidates for DOI papers and review scholarly reference matches from Crossref, OpenAlex, and arXiv.
Keep queues, sessions, checkpoints, notes, and open questions in local SQLite workspaces. Export Reading Reports and Cross-Paper Reading Plans.
Related MCP server: paper-mcp
Quick Start
Install uv; no Git or checkout is required:
uvx --from papergraph-mcp==1.2.3 papergraph-mcp --version
uvx --from papergraph-mcp==1.2.3 papergraph-mcp doctorPyPI 1.2.3 is published and has passed actual public-package and local Git-free acceptance. The dedicated GitHub public-index CI has not run; the GitHub Release is not published. Diagnostics alone do not verify publication.
An MCP client can use this JSON-style stdio configuration:
{
"mcpServers": {
"papergraph": {
"command": "uvx",
"args": ["--from", "papergraph-mcp==1.2.3", "papergraph-mcp"]
}
}
}Restart the client after configuration. A bare server launch waits quietly for a stdio MCP connection; CLI commands also work without an MCP client.
For agent-assisted setup, use the repository's setup skill from the freshly fetched remote default revision. Preserve existing branches and local changes; ask before installing software, changing client configuration, or restarting. The optional Git-source route requires Git and live verification of the selected version tag against its reviewed package source.
Read Your First Paper

Keep the workspace database outside the repository. Preview inputs with
plan-starter-project; it validates files without importing or writing. Runbootstrap-reading-projectafter review to create the workspace and reading artifacts. Local LaTeX inputs must name the main.texfile.Open the Paper Map and Evidence Triage, choose a result, then inspect its statement, proof, source slices, and dependency evidence.
Review external import plans, save checkpoints and notes, and export a report or cross-paper plan. Follow the first-workspace walkthrough for commands and examples.
For raw arXiv requests, use load_arxiv_request; conflicting IDs or links require user selection before loading. For DOI discovery, discover-doi DOI finds candidates without downloading. add-doi-paper WORKSPACE DOI can import a requested root paper when exactly one eligible public PDF exists; multiple candidates require selection.
For an existing workspace, replace the placeholders with actual IDs:
uvx --from papergraph-mcp==1.2.3 papergraph-mcp get-paper-map --workspace WORKSPACE --paper-id PAPER_ID
uvx --from papergraph-mcp==1.2.3 papergraph-mcp get-dependency-reading WORKSPACE PAPER_ID --target-result-id RESULT_ID --detail compactArguments are command-specific: check each command's --help. Compact dependency output retains access to full evidence.
Evidence Boundaries
PaperGraph does not verify proofs, infer hidden prerequisites, or establish semantic theorem equivalence. Empty dependencies do not prove independence; extracted reading orders are not complete mathematical dependency graphs.
Long PDFs support raw source pagination through
workspace_read_source_blocksand itsnexthandle. New automatic PDF proof evidence covers only the first physical line with an explicit proof heading; ownership can remain unknown, and later proof references remain unknown. Raw continuation is readable but does not become dependency evidence automatically. Existing excerpts retain their extraction policy until explicit reimport.External references become reviewable plans, not automatic downloads. Bounded reference expansion requires an explicitly approved finite policy; ambiguous matches await review. Metadata is not full text, and no workflow bypasses paywalls.
Papers and reading state remain local. Back up workspaces before schema upgrades; older versions cannot open schema 9.
Documentation
Available Tools
68 toolsdiscover_doi_paperC
Find exact DOI metadata and public body candidates; never download links.
Inputs: doi (required).
get_dependenciesC
Return theorem-like nodes referenced by the given theorem.
Inputs: theorem_id (required), recursive. Returns: result
get_dependency_diagnosticsB
Explain how dependencies were extracted for one theorem-like node.
Inputs: theorem_id (required), recursive.
get_environment_diagnosticsB
Return PaperGraph version and reproducible launch diagnostics.
Inputs: no named parameters.
get_theoremB
Return the full text and metadata for one theorem-like node.
Inputs: theorem_id (required).
list_theoremsC
List theorem-like environments in the currently loaded paper.
Inputs: kind. Returns: result
load_arxiv_paperC
Download an arXiv source project and build its theorem graph.
Inputs: arxiv_id (required), refresh, main_file.
load_arxiv_requestB
Validate a raw arXiv request, then load it only if unambiguous.
Inputs: input (required), refresh, main_file.
load_paperA
Load a local LaTeX paper and build its theorem graph.
Inputs: path (required).
open_workspaceC
Open or initialize a persistent multi-paper workspace.
Inputs: path (required).
validate_arxiv_inputC
Normalize arXiv ID and URL inputs and return the safe next action.
Inputs: url, text_id.
validate_arxiv_requestB
Validate a raw user arXiv request and return the safe next action.
Inputs: input (required).
where_usedB
Return theorem-like nodes that reference the given theorem.
Inputs: theorem_id (required). Returns: result
workspace_add_arxiv_paperB
Add or replace an arXiv LaTeX project in the active workspace.
Inputs: arxiv_id (required), refresh, main_file.
workspace_add_doi_paperB
Load a user-requested root DOI when one public PDF candidate is eligible.
Multiple candidates require user selection. Do not use for newly discovered external references: those require an import plan and review first.
Inputs: doi (required).
workspace_add_local_paperB
Add or replace a local LaTeX project in the active workspace.
Inputs: path (required), paper_id (required).
workspace_add_pdf_paperC
Add or replace a born-digital PDF paper in the active workspace.
Inputs: path (required), paper_id (required).
workspace_add_reading_noteC
Add a note or question to a reading session.
Inputs: text (required), session_id (required), note_type, target_id, +1 more.
workspace_advance_reference_expansionB
Execute the saved policy: search, download arXiv sources, import unique strong candidates and record resolutions without per-paper prompts, within approved budgets. Resume with the same run ID.
Inputs: run_id (required), max_steps, time_budget_seconds.
workspace_apply_reading_queue_to_sessionC
Apply reading queue items as checkpoints in a reading session.
Inputs: queue_id (required), session_id (required), status.
workspace_bootstrap_reading_projectC
Create starter artifacts for a first reading project.
Inputs: papers (required), artifact_dir (required), workspace_path (required), focus, +5 more.
workspace_cancel_reference_expansionC
Permanently stop this run, preserving imported papers and history.
Inputs: run_id (required).
workspace_create_reading_queueC
Create a persistent reading queue for one stored result.
Inputs: result_id (required), label, recursive.
workspace_create_reading_sessionC
Create a persistent reading session in the active workspace.
Inputs: paper_id (required), label, target_result_id.
workspace_create_reference_expansionC
Save an approved finite expansion policy. Creation does not search or import.
Inputs: root_paper_ids (required), policy.
workspace_decide_reference_expansionC
Record exactly one candidate_id, target, existing_paper_id, skip:true or retry:true. Advance separately to execute the approved choice.
Inputs: run_id (required), edge_id (required), decision (required).
workspace_export_cross_paper_reading_planC
Export a deterministic Markdown reading plan for selected papers.
Inputs: paper_ids (required), focus, max_candidates_per_paper.
workspace_export_paper_reading_reportC
Export a deterministic Markdown reading report for one stored paper.
Inputs: paper_id (required), max_candidates.
workspace_export_reading_bundleC
Export a paper-level evidence bundle for paper-reading consumers.
Inputs: paper_id (required).
workspace_export_reading_session_summaryC
Export a deterministic recovery summary for a reading session.
Inputs: session_id (required).
workspace_export_reference_expansionC
Return saved JSON or Markdown without writing client files or using network.
Inputs: run_id (required), format.
workspace_export_result_reading_contextB
Export focused evidence context for reading one result's proof.
Inputs: result_id (required).
workspace_get_citationsC
Return incoming or outgoing citation evidence for a stored paper.
Inputs: paper_id (required), direction, include_unresolved. Returns: result
workspace_get_dependenciesC
Return dependencies of a globally identified stored theorem.
Inputs: global_theorem_id (required), recursive. Returns: result
workspace_get_dependency_diagnosticsC
Explain how workspace dependencies were extracted for one theorem.
Inputs: global_theorem_id (required), recursive.
workspace_get_dependency_readingC
List main-result candidates or read a user-selected target with evidence.
Statement references and proof-local dependencies remain separate. External references produce reviewable plans only; empty evidence is not independence.
Inputs: paper_id (required), detail, recursive, max_candidates, +1 more.
workspace_get_evidenceC
Return metadata and source spans for one evidence node or edge.
Inputs: node_or_edge_id (required).
workspace_get_external_result_mentionsB
Return external result mentions from a result's proof evidence.
Inputs: result_id (required). Returns: result
workspace_get_paperA
Return metadata and counts for one stored paper.
Inputs: paper_id (required).
workspace_get_paper_mapC
Return an evidence-first first-load map for one stored paper.
Inputs: paper_id (required), max_candidates.
workspace_get_proof_dependenciesC
Return proof dependency evidence for one stored evidence result.
Inputs: result_id (required), recursive.
workspace_get_reading_queueB
Return one persistent reading queue with ordered items.
Inputs: queue_id (required).
workspace_get_reading_sessionB
Return one persistent reading session with checkpoints and notes.
Inputs: session_id (required).
workspace_get_reference_expansionB
Read saved graph, counts, decisions and continuation actions without network.
Inputs: run_id (required).
workspace_get_resultB
Return one stored evidence result with source spans.
Inputs: result_id (required).
workspace_get_result_proofC
Return proof evidence for one stored evidence result.
Inputs: result_id (required).
workspace_get_result_reading_pathB
Return deterministic local reading paths for one result.
Inputs: result_id (required), recursive.
workspace_get_source_sliceC
Return bounded source text around one span, result, or proof.
Inputs: context, span_id, proof_id, result_id.
workspace_import_doi_candidateB
Import a selected root DOI PDF only after explicit review/confirmation.
This is not permission to download newly discovered external references. Candidate provider identity is evidence, not a verification of PDF contents.
Inputs: doi (required), candidate_id (required), confirmed.
workspace_list_external_reference_resolutionsC
List recorded external reference resolutions and selection provenance.
Inputs: paper_id.
workspace_list_external_reference_searchesC
List scholarly reference search runs and candidates.
Inputs: paper_id, blocked_id.
workspace_list_papersB
List all papers stored in the active workspace.
Inputs: no named parameters. Returns: result
workspace_list_reading_queuesC
List persistent reading queues in the active workspace.
Inputs: status, paper_id. Returns: result
workspace_list_reading_sessionsB
List persistent reading sessions in the active workspace.
Inputs: status, paper_id. Returns: result
workspace_list_reference_expansionsC
List saved expansion summaries, optionally filtered by state.
Inputs: state.
workspace_list_resultsC
List a stable result page (limit 1..100). Advance offset by returned count.
A full page may be truncated; continue until a page has fewer than limit results. This is not an unbounded complete list.
Inputs: kind, limit, offset, paper_id. Returns: result
workspace_pause_reference_expansionC
Pause scheduling after the active step. Advance explicitly to resume.
Inputs: run_id (required).
workspace_plan_external_imports_for_paperC
Plan external arXiv imports visible in one stored paper.
Inputs: paper_id (required).
workspace_plan_external_imports_for_queueC
Plan external arXiv imports referenced by one reading queue.
Inputs: queue_id (required).
workspace_plan_external_imports_for_resultC
Plan external arXiv imports for one result's reading path.
Inputs: result_id (required), recursive.
workspace_plan_starter_projectC
Plan a Workspace Starter run without writing files.
Inputs: papers (required), artifact_dir (required), workspace_path (required), focus, +5 more.
workspace_read_source_blocksB
Read raw source blocks from a slice locator; follow next until null.
Blocks are source text, with no inferred proof ownership. Works for legacy imports without changing reading data. A changed extraction needs new locators.
Inputs: span_id (required), limit.
workspace_record_reading_checkpointC
Create or update a reading checkpoint in the active workspace.
Inputs: status (required), target_id (required), session_id (required), target_kind (required), +2 more.
workspace_resolve_external_referenceC
Resolve a blocked external reference to a user-confirmed target.
Inputs: target (required), paper_id (required), blocked_id (required), artifact_dir, +1 more.
workspace_resolve_external_reference_candidateC
Apply a searched candidate as an explicit reference resolution.
Inputs: paper_id (required), blocked_id (required), candidate_id (required), overwrite, +2 more.
workspace_search_external_referenceC
Search scholarly metadata providers for a blocked external reference.
Inputs: paper_id (required), blocked_id (required), refresh, providers, +2 more.
workspace_search_theoremsB
Search theorem titles and bodies across the active workspace.
Inputs: query (required), kind, limit, paper_id. Returns: result
workspace_update_reference_expansion_policyB
Explicitly revise numeric budgets; cumulative usage is retained.
Inputs: limits (required), run_id (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 68 tools
Many tools have overlapping functionality, particularly around loading papers (load_arxiv_paper, load_arxiv_request, workspace_add_arxiv_paper, validate_arxiv_request) and reading sessions/queues/expansions that are difficult to distinguish without deep domain knowledge. The descriptions provide some guidance, but the distinctions between many workspace_* tools remain subtle and prone to misselection.
The naming is generally snake_case but mixes conventions: some tools use workspace_ prefix, others do not; verbs vary between load_, add_, get_, list_, create_, plan_, export_ in inconsistent patterns. The verb_noun structure is mostly present, but the inconsistency in prefixing and verb selection makes it only borderline readable.
With 68 tools, this server is far too large for a coherent toolset, likely causing context overload and increased error rates. The sheer number suggests a monolithic design where many operations could be consolidated or moved to separate specialized servers.
The domain appears to be academic paper reading and theorem graph analysis. The tool surface covers many operations (loading, searching, reading sessions, reference expansion, exports), but it's unclear if core CRUD for all entities is complete. Some operations like updating or deleting papers/notes are missing, and the reference expansion lifecycle seems complex but potentially incomplete for all use cases.
Maintenance
Related MCP Connectors
Academic research MCP server for paper search, citation checks, graphs, and deep research.
arXiv MCP — preprint server search (free, no auth)
Search arXiv/Semantic Scholar/OpenAlex + medical evidence (PubMed/Europe PMC) + LaTeX/PDF tools.
ArXiv preprint search, daily category digest, and author-collaborator graph.
Related MCP Servers
- AlicenseAqualityCmaintenanceMCP server for searching and retrieving arXiv papers with full-text PDF extraction.52MIT
- AlicenseNot gradedqualityCmaintenanceRemotely-callable MCP server for academic paper search, full-text retrieval and image to LaTeX conversion across arXiv, Semantic Scholar, and OpenAlex.1MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server for semantic search over 9.27 million mathematical statements from sources like arXiv and Stacks Project, offering 5 tools for filtered search, citation weighting, and dependency graph traversal.MIT
- AlicenseCqualityBmaintenanceEnables AI agents to turn local and arXiv LaTeX papers into queryable theorem-proof dependency graphs, making mathematical relationships easier to explore.31MIT