Dieses Repository implementiert einen Model Context Protocol (MCP) Server, der als Brücke zwischen Claude Desktop / Claude Code und deinem Zettelkasten (basierend auf tools4zettelkasten) fungiert.
Die Bibliothek tools4zettelkasten bietet mächtige Python-Werkzeuge zur Verwaltung eines Zettelkastens (Dateinamen-Logik, Strukturen, Links). Dieser MCP Server macht diese Werkzeuge für KI-Assistenten wie Claude zugänglich.
Der Nutzen:
- Direkter Zugriff: Claude kann deinen Zettelkasten nicht nur "sehen" (als Dateien), sondern versteht die Struktur (Verwandte Zettel, Hierarchien).
- Sichere Manipulation: Statt dass die KI versucht, Dateien 'blind' umzubenennen, nutzt sie die getestete Logik der Bibliothek, um konsistente Dateinamen und IDs zu erzeugen.
- Komplexe Analysen: Claude kann Fragen beantworten wie "Welche Themen hängen damit zusammen?", indem es die Graphen-Analyse der Bibliothek nutzt.
┌─────────────────────────────────────────────────────────────┐
│ Claude Desktop / Claude Code │
└─────────────────────┬───────────────────────────────────────┘
│ stdio (JSON-RPC)
▼
┌─────────────────────────────────────────────────────────────┐
│ zettelkasten_mcp/server.py │
│ ┌───────────────────────────────────────────────────────┐ │
│ │ MCP Protocol Handler (FastMCP) │ │
│ └───────────────────────────────────────────────────────┘ │
│ │ │
│ ┌───────────────────────▼───────────────────────────────┐ │
│ │ 12 Tools │ │
│ │ • list_input_files • search_zettel │ │
│ │ • stage_file • get_zettel │ │
│ │ • preview_staging • list_zettel │ │
│ │ • get_statistics • get_links │ │
│ │ • find_related • analyze_structure │ │
│ │ • preview_reorganize • execute_reorganize │ │
│ └───────────────────────────────────────────────────────┘ │
│ │ │
│ ┌───────────────────────▼───────────────────────────────┐ │
│ │ tools4zettelkasten (importlib) │ │
│ │ • persistency.PersistencyManager │ │
│ │ • handle_filenames │ │
│ │ • reorganize │ │
│ │ • analyse │ │
│ └───────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────┐
│ ~/Dropbox/zettelkasten/ │
│ ├── mycelium/ (567 Zettel) │
│ └── input/ (neue Notizen) │
└─────────────────────────────────────┘
~/Dropbox/zettelkasten_mcp/
├── README.md # Diese Datei
├── venv/ # Python 3.11 Virtual Environment
│ └── bin/python # Python-Interpreter für MCP
└── zettelkasten_mcp/
├── __init__.py
├── __main__.py # Entry point: python -m zettelkasten_mcp
└── server.py # MCP Server mit allen Tools
Python-Version: 3.11+ (MCP erfordert >= 3.10)
Installierte Packages im venv:
mcp[cli]- MCP Protocol Libraryflask,flask-wtf,flask-pagedown- Flask-Abhängigkeiten von tools4zettelkastengraphviz,pyfiglet,inquirerpy,colorama,markdown- Weitere Abhängigkeiten
Externe Abhängigkeit (tools4zettelkasten):
- Repository: rreben/tools4zettelkasten
- Beschreibung: Python-Tools für das "Folgezettel"-Prinzip, Verwaltung alphanumerischer Sortierungen und Strukturanalyse.
- Integration: Dieses Projekt importiert die Bibliothek direkt (via
PYTHONPATH), um deren Logik für Parsing und Dateisystem-Operationen zu nutzen.
Datei: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"zettelkasten": {
"command": "/Users/rupertrebentisch/Dropbox/zettelkasten_mcp/venv/bin/python",
"args": ["-m", "zettelkasten_mcp"],
"env": {
"PYTHONPATH": "/Users/rupertrebentisch/Library/CloudStorage/Dropbox/tools4zettelkasten",
"TOOLS4ZETTELKASTEN_PATH": "/Users/rupertrebentisch/Library/CloudStorage/Dropbox/tools4zettelkasten",
"ZETTELKASTEN": "/Users/rupertrebentisch/Dropbox/zettelkasten/mycelium",
"ZETTELKASTEN_INPUT": "/Users/rupertrebentisch/Dropbox/zettelkasten/input"
},
"cwd": "/Users/rupertrebentisch/Dropbox/zettelkasten_mcp"
}
}
}| Variable | Beschreibung | Standard |
|---|---|---|
ZETTELKASTEN |
Pfad zum Hauptordner des Zettelkastens | ~/Dropbox/zettelkasten/mycelium |
ZETTELKASTEN_INPUT |
Pfad zum Input-Ordner für neue Notizen | ~/Dropbox/zettelkasten/input |
TOOLS4ZETTELKASTEN_PATH |
Pfad zum tools4zettelkasten-Repository | ~/Library/CloudStorage/Dropbox/tools4zettelkasten |
PYTHONPATH |
Muss tools4zettelkasten enthalten | (wie TOOLS4ZETTELKASTEN_PATH) |
| Tool | Parameter | Beschreibung |
|---|---|---|
list_input_files |
- | Zeigt alle Dateien im Input-Ordner |
preview_staging |
- | Vorschau der geplanten Umbenennungen |
stage_file |
filename |
Benennt eine Datei nach Titel um |
| Tool | Parameter | Beschreibung |
|---|---|---|
get_zettel |
identifier (ID oder Filename) |
Liest einen einzelnen Zettel |
search_zettel |
query, limit=10 |
Volltextsuche |
list_zettel |
prefix="", limit=50 |
Listet Zettel (optional nach Topic) |
get_statistics |
- | Statistiken über den Zettelkasten |
| Tool | Parameter | Beschreibung |
|---|---|---|
get_links |
identifier |
Ein-/ausgehende Links eines Zettels |
find_related |
identifier, limit=5 |
Verwandte Zettel (Links + Hierarchie) |
analyze_structure |
topic="" |
Strukturanalyse (Tree + Links) |
| Tool | Parameter | Beschreibung |
|---|---|---|
preview_reorganize |
- | Zeigt geplante Änderungen |
execute_reorganize |
confirm=False |
Führt Reorganisation durch |
tools4zettelkasten hat in seiner __init__.py ein from .cli import *, das Click-Commands exportiert und dabei Modulnamen wie reorganize überschreibt. Der MCP-Server umgeht dies durch direkten Import via importlib:
import importlib
ro = importlib.import_module("tools4zettelkasten.reorganize")cd ~/Dropbox/zettelkasten_mcp
# Server-Import testen
PYTHONPATH="$HOME/Library/CloudStorage/Dropbox/tools4zettelkasten" \
ZETTELKASTEN="$HOME/Dropbox/zettelkasten/mycelium" \
ZETTELKASTEN_INPUT="$HOME/Dropbox/zettelkasten/input" \
./venv/bin/python -c "from zettelkasten_mcp.server import mcp; print('OK')"
# Tools testen
PYTHONPATH="$HOME/Library/CloudStorage/Dropbox/tools4zettelkasten" \
ZETTELKASTEN="$HOME/Dropbox/zettelkasten/mycelium" \
ZETTELKASTEN_INPUT="$HOME/Dropbox/zettelkasten/input" \
./venv/bin/python -c "
from zettelkasten_mcp.server import get_statistics
print(get_statistics())
"claude mcp listOder im Chat: /mcp
- Python 3.11+ installiert? (
python3.11 --version) - venv erstellt? (
python3.11 -m venv venv) - Dependencies installiert?
./venv/bin/pip install "mcp[cli]" flask flask-wtf flask-pagedown \ graphviz pyfiglet inquirerpy colorama markdown mistune - claude_desktop_config.json konfiguriert?
- Pfade korrekt? (Dropbox-Symlinks beachten!)
- Claude Desktop/Code neu gestartet?
Du: "Was liegt im Input-Ordner?"
Claude: [ruft list_input_files auf]
Du: "Zeige mir den Zettel über Kreativität"
Claude: [ruft search_zettel(query="Kreativität") auf]
Du: "Welche Zettel sind mit 01_001 verwandt?"
Claude: [ruft find_related(identifier="01_001") auf]
Du: "Gib mir Statistiken"
Claude: [ruft get_statistics auf]
Erstellt am: 27. Januar 2026