paperloom
paperloom
Ordnerbezogenes, LLM-gepflegtes Forschungswiki. Karpathys llm-wiki-Muster, für wissenschaftliche Artikel.
$ mkdir my-research && cd my-research
$ paperloom init
Vault created at /home/you/my-research
$ paperloom ingest ~/Downloads/papers/
Ingesting ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 12/12
12 ingested, 0 skipped, 0 failed (of 12)
$ claude "/contribute the I-JEPA paper"
[Claude Code reads sources/raw/2301.08243/paper.md, drafts a plan,
writes sources/research/2301.08243-assran-i-jepa.md via the MCP tools]Kurzfassung
Paperloom ist ein kleiner MCP-Server + CLI, der einem Coding-Agenten (Claude Code, Gemini CLI, ...) die Datei-Basisoperationen bereitstellt, um ein persönliches Forschung-Wiki aus einem Ordner voller Markdown-Dateien zu pflegen – Stapel-PDF-Import, Suche, Notizenerstellung, Verschlagwortung – während der Agent die tatsächliche Lese- und Denkarbeit übernimmt. Anders als eine generische llm-wiki-Einrichtung oder MindBase’s global Ordnerdatenordner ist eine Paperloom-Vault ein einzelnes in sich geschlossenes Verzeichnis (git init && paperloom init – fertig), das darauf ausgelegt ist, Korpora von 50 bis 1000 Papieren in einem Zug aufzunehmen, und es verlangt nie einen eigenen LLM-API-Schlüssel – der Hostagent hat bereits einen.
Related MCP server: ScholarMCP
Danksagungen
Paperloom stützt sich auf zwei Schultern:
Andrej Karpathy für das LLM-Wiki-Muster, das dieses Projekt vollständig umsetzt.
Frank Chus MindBase für den Beweis, dass das Muster ein Produkt sein konnte, sowie für die CLAUDE.md-Schema-Konventionen, die wir übernehmen und erweitern.
Paperloom unterscheidet sich dadurch, ordnergebunden zu sein (eine KB pro Verzeichnis, kein globaler Zustand), Stapel-Import zuerst (entwickelt für Korpora von 50–1000 Papers) und keinen eigenen LLM-API-Schlüssel zu benötigen.
Volle Ausführungen in docs/credits.md.
Schnellstart
Noch nicht auf PyPI – aus dem Quellcode installieren (siehe Installation unten), danach:
mkdir my-vault && cd my-vault
paperloom init
paperloom ingest ~/Downloads/papers/paperloom init erzeugt nicht .mcp.json für dich – ergänze sie selbst (einmalig, pro Vault):
cat > .mcp.json << 'EOF'
{ "mcpServers": { "paperloom": { "command": "paperloom", "args": ["mcp"] } } }
EOFDann richtest deinen Coding-Agent auf die Vault aus und starte mit /contribute oder frage einfach, was im Wiki steht. Siehe den vollständigen Leitfaden in docs/quickstart.md.
Was es ist / was es nicht ist
Es ist:
Ein Set aus Dateibearbeitungs-MCP-Tools (
search,read_page,create_note, ...) plus eine CLI für den Stapel-PDF-Import.Ordnerbezogen – jede Vault ist ein selbstständiges Verzeichnis, kein globaler Zustand, kein Dämon.
Von Grund auf ohne eigenen API-Schlüssel konstruiert – der Host-Coding-Agent ist die LLM.
Gebaut für echte Korpora – Stapel-Import, fortsetzbar, parallele MinerU-Jobs, Fehlerisolation pro PDF.
Es ist nicht:
Eine Web-Oberfläche. Richt Obsidian auf deine Vault, falls du eine haben möchtest.
Eine Vektor-Datenbank oder semantische Suchmaschine. Ripgrep plus Agent-Urteilsvermögen deckt realen Einsatz bis zu Hunderten Papieren ab; die genauen Gründe dafür stehen in den Nicht-Zielen der Build-Spezifikation.
Ein eigener LLM-Router. Der Ollama-Plugin (v0.2) ist der einzige Pfad, bei dem Paperloom direkt eine LLM zusätzlich ruft, und diese ist wahlfrei (opt‑in) und nur für Headless-Jobs.
Multi‑User, authenticate oder SaaS.
paperloom mcpist ausschließlich stdio‑fähig, ein Prozess pro Client.
Installation
Noch nicht auf PyPI veröffentlicht. Das Repo klonen (oder kopieren) und dann mit uv installieren, nicht mit einfachem pip – direkt verifiziert: *pip install .schlägt tatsächlich mitresolution-too-deepfehl (der Pip-Resolver schafft den kombinierten Abhängigkeitsgraph vonmineru[core]+fastmcpnicht)``` komint, währenduv pip install .` den identischen Graph in wenigen Minuten sauber löst.
git clone https://github.com/Alpsource/paperloom
cd paperloom
curl -LsSf https://astral.sh/uv/install.sh | sh # if you don't have uv yet
uv venv
uv pip install .
source .venv/bin/activate(uv pip install -e . statt ., wenn du selbst an Paperloom herumbauen möchtest – siehe CONTRIBUTING.md).
Außerdem doodst du ripgrep in PATH – das ist ein Systembinary, kein Pip-Paket:
# Debian/Ubuntu
sudo apt install ripgrep
# macOS
brew install ripgrep
# Fedora
sudo dnf install ripgrepOptionale Erweiterungen:
uv pip install "paperloom[ollama]" # offline synthesis via a local Ollama model
uv pip install "paperloom[grobid]" # bibliography extraction via GROBID
uv pip install "paperloom[dev]" # pytest, ruff, mypy, pre-commit, mkdocs-material, pip-auditmineru[core] (der eigentliche lokale PDF‑Parser, wird automatisch als Kernabhängigkeit eingezogen) ist schwergewichtig – er installiert PyTorch und lädt beim ersten tatsächlichen Parsen eines PDFs einige GB an Modellgewichten herunter. Wenn du lokales PDF‑Parsing willst, komset du darum nicht herum; plane Plattenb bedarf, Zeit (idealerweise auch eine GPU – reines CPU‑Parsing funktioniert, ist aber deutlich langsamer) für den ersten echten paperloom ingest‑Lauf ein.
Primär auf Linux getestet; Windows funktioniert über WSL2 (siehe die Hinweise der Build‑Spezifikation), ist aber nicht das Hauptziel.
Erste Vault (5 Minuten)
mkdir my-research && cd my-research
paperloom initDadurch wird das Template scientific-paper-vault übernommen: CLAUDE.md (das Schema – siehe unten), leere context.md/index.md sowie das Grundgerüst von sources//artifacts//logs/. Zusätzlich wird .paperloom/config.yaml geschrieben und git init ausgeführt, falls noch nicht geschehen.
paperloom ingest ~/Downloads/some-papers/Jedes PDF wird von MinerU in sources/raw/<paper-id>/paper.lock.md und meta.json geparst. IDs werden, wenn möglich, aus dem arXiv/DOI-Muster auf der ersten Seite erkannt; fallback auf einen Inhalts‑Hash. Dieser Schritt berührt niemals sources/research/ – Import und Wiki‑Schreiben sind bewusst getrennt.
claude "/contribute sources/raw/2301.08243"Dein Coding-Agent liest CLAUDE.md, entwirft einen Plan (welche Seite welches unterschrieben), zeigt ihn dir, und nach Freigabe schreibt echte Wiki-Seiten über die MCP‑ Tools. Wiederhole für weitere Paper und dann:
claude "What does my wiki know about JEPA?"Siehe examples/ml-robotics-vault/ für eine vollständig befüllte Beispiel-Vault, statt von Grund auf eine neue anzulegen.
Architektur
graph LR
PDF[Original PDF] -->|paperloom ingest, MinerU| RAW
subgraph RAW["sources/raw/<paper-id>/ (immutable)"]
direction TB
R1[paper.pdf]
R2[paper.md]
R3[meta.json]
end
RAW -->|"/contribute — host agent reads, writes"| RESEARCH
subgraph RESEARCH["sources/research/ (agent-owned)"]
direction TB
W1[paper pages]
W2[method pages]
W3[dataset / concept / synthesis pages]
end
USER[You] -->|daily notes| CONTRIB["sources/contributors/<you>/"]
CONTRIB -.->|"/contribute"| RESEARCHDrei Ebenen, drei Vertretensstufen: sources/raw/ ist eine treue, niemals bearbeitende Abschrift; sources/research/ ist der Ort für echtes Agent-Urteiler, das stets auf raw/ zurückverweist; sources/contributors/ ist dein tägliches Erlebnisprotokoll, ergänzt aber nie überschrieben. Für vollständige Seiten‑Referenz siehe docs/schema.md.
Die 9 Werkzeuge
Werkzeug | Beschreibung |
| Volltextsuche über die Vault (ripgrep‑basiert). Liefert Pfad, Snippet und Metadaten, optional eingeschränkt durch |
| Liest den vollständigen Inhalt einer Markdown-Datei einschließlich Frontmatter. |
| List dt Dateien eines Unterverzeichnisses mit grundlegenden Frontmatter (Typ, Tags, Titel) – schnell, ohne Volltext durchzulesen. |
| Erstellt eine neue Markdown-‑Datei mit YAML–Frontmatter. Fehler, wenn der Pfad bereits entsteht; weigert sich, außerhalb von |
| Hängt einem bestehenden Inhalt an eine bestehende Seite an, optional unter einem benannten Abschnitt. |
| Ersetzt die Frontmatter‑Tags einer Seite oder ersetzt sie. |
| Hängt eine zeitgestempelte Zeile an das heutige Log oder die tägliche Datei eines Mitwirkenden an. |
| Importiert ein einzelnes PDF direkt aus einer Agent‑Session – die Pipeline wie |
| Wurzel, Konfiguration und Dateianzahl der aktuellen Vault – ein guter erster Aufruf pro Sitzung. |
Das ist die komplette Liste, bewusst – Einblick in die Build‑Spezifikation warum bewusst kein Kern‑Werkzeug ist, findest du und warum.
Plugins
Braucht du ein Werkzeug über die 9 hinaus? Schreib ein Plugin – ein Python‑Modul, register(mcp) bereitstellt, geladen aus drei Stellen (built-in, Drittanbieter über pip‑‑Points, oder Vault‑lokal in .paperloom/plugins/), wobei bei Namenskonflikten die jeweils späteren gewinnen. Komplette Anleitung und Referenzplich in docs/plugins.md mit example_plugin.py (word_count, find_orphans).
Ollama-Backend
Für unbeaufsichtigte/ geplante Jobs (nächtliches /rebuild-context, per Cron gestartetes /lint), wenn kein Host-Agent die Session führt, fügt uv pip install "paperloom[ollama]" ein Tool synth hinzu, das einen Prompt über ein lokales Ollama-Model ausführt – keine API‑Schlüssel, komplett offline. Nur für mechanische Pflichtarbeiten nutzen; wesentliche Entscheidungen bleiben weiter Aktivität des interaktiven Host‑Agenten. (v0.2 – noch nicht gebaut; in der Build‑Spec als §17, Punkt 10 erfasst.)
Migration von MindBase
paperloom migrate-from-mindbase ~/mindbase-data/projects/my-research/Übernimmt (nia durchschiebt) sources/raw/, sources/research/, sources/contributors/, context.md, README.md und logs/ in eine neue Paper‑Vault, wobei die Indizes ausgehend vom Datenträger neu abgeleitet werden statt MindBase’s index.yaml zu vertrauen. (v0.2 – noch nicht gebaut; in der Build‑Spec als §17, Punkt 9 erfasst.)
Optional: deine Vault visuell durchstöbern
Paperloom-Vaulten sind reine Markdown-‑Dateien mit [[wikilinks]], sodass Obsidian sofort auf einer Vault funktioniert:
Öffne Obsidian → „Ordner als Vault öffnen“ → Dein Paperloom-Vault-Wurzelverzeichnis.
Optional das Dataview-Plugin installieren – Das YAML-Frontmatter lässt sich per Dataview abfragen.
Ctrl‑Gfür die Grafi‑Ansicht.
Nicht verlangt, nicht darauf – freundlicher Nebeneffekt des Dateiformats.
Roadmap
Geplante Plugins (v0.3+, Community‑Beiträge möglich), keine Kern-Erweiterungen:
arxiv_watcher– arXiv nach neuen Papers in gespeicherten Suche abfragen.marp_export– Synthese-Seite in ein Marp-Folien-Set umwandeln.graph_export– Den[[wikilink]]‑Graph als GraphViz/JSON exportieren.citekey_lint–\cite{...}‑References in Entwurfs‑Artefakten validieren.
Der Kern (die 9 Werkzeuge, die CLI, jedes Plugin‑System, das Schema) ist mit v0.1 abgeschlossen – siehe CHANGELOG.md.
Mitwirken
Siehe CONTRIBUTING.md – Einstieg, Test‑Commands und was durch die Build-Spezifikation fixiert vore Späich.4. Issues und PRs sind willkommen, insbesondere neue Plugins.
Lizenz
Zitieren
@software{paperloom,
title = {Paperloom: a folder-scoped, LLM-maintained research wiki},
author = {{paperloom contributors}},
year = {2026},
url = {https://github.com/Alpsource/paperloom}
}This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to download, index, and semantically search PDF research papers using 8 MCP tools.2GPL 3.0
- AlicenseNot gradedqualityBmaintenanceAn MCP server that enables coding agents to search academic papers, ingest full-text PDFs, extract structured details, and manage citations in literature research workflows.23MIT
- AlicenseNot gradedqualityAmaintenanceProvides AI assistants with a local knowledge base and research library, enabling semantic and full-text retrieval, memory persistence, and multi-agent collaboration via 58 MCP tools.2MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI tools to maintain a personal knowledge wiki via MCP, allowing users to add sources and ask questions grounded in their research.6MIT
Related MCP Connectors
Self-hostable team wiki; agents read & write it via MCP; Atlas turns your repo into a cited wiki.
Persistent memory and knowledge management for AI agents with semantic search and 50+ tools.
Persistent docs and memory for AI agents — read, write, organize & search a shared workspace.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Alpsource/paperloom'
If you have feedback or need assistance with the MCP directory API, please join our Discord server