Skip to main content
Glama
rreben

Zettelkasten MCP Server

by rreben

Zettelkasten MCP Server

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.

Warum dieser MCP Server?

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.

Architektur

┌─────────────────────────────────────────────────────────────┐
│                 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)      │
        └─────────────────────────────────────┘

Related MCP server: obsidian-emergent-mcp

Projektstruktur

~/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

Abhängigkeiten

Python-Version: 3.11+ (MCP erfordert >= 3.10)

Installierte Packages im venv:

  • mcp[cli] - MCP Protocol Library

  • flask, flask-wtf, flask-pagedown - Flask-Abhängigkeiten von tools4zettelkasten

  • graphviz, 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.

Konfiguration

Claude Desktop / Claude Code

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"
    }
  }
}

Umgebungsvariablen

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)

Tools-Übersicht

Input-Management

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

Zettelkasten-Abfragen

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

Struktur & Analyse

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)

Reorganisation

Tool

Parameter

Beschreibung

preview_reorganize

-

Zeigt geplante Änderungen

execute_reorganize

confirm=False

Führt Reorganisation durch

Technische Hinweise

Import-Workaround

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")

Manuelles Testen

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())
"

MCP-Status in Claude Code prüfen

claude mcp list

Oder im Chat: /mcp

Deployment-Checkliste

  1. Python 3.11+ installiert? (python3.11 --version)

  2. venv erstellt? (python3.11 -m venv venv)

  3. Dependencies installiert?

    ./venv/bin/pip install "mcp[cli]" flask flask-wtf flask-pagedown \
        graphviz pyfiglet inquirerpy colorama markdown mistune
  4. claude_desktop_config.json konfiguriert?

  5. Pfade korrekt? (Dropbox-Symlinks beachten!)

  6. Claude Desktop/Code neu gestartet?

Beispiel-Nutzung

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

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides Claude Code with deep access to an Obsidian vault through 28 tools for structural analysis, semantic retrieval, and git-backed timeseries tracking. It transforms your vault into a live knowledge base that Claude can search, navigate, and reason about using its knowledge graph.
    2
    MIT
  • F
    license
    A
    quality
    C
    maintenance
    Enables Claude Code to interact with Obsidian vaults by providing tools for multi-term searching, reading notes, and exploring tag-based relationships. It allows users to query, analyze, and manage their personal knowledge base directly through natural language.
    9
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables Claude Code to serve as the primary interface for a personal knowledge vault (zk or Obsidian), allowing full read, write, search, and synthesis operations on notes.
    Apache 2.0