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: Anki MCP Data Bridge

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

A
license - permissive license
-
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

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/rreben/zettelkasten-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server