MCP-Server (KI-Agenten)

Video ansehenIhre Notizen als KI-Kontext 00:26

LightNote enthält einen headless MCP-Server (Model Context Protocol), der deinen Arbeitsbereich in ein Werkzeug für KI-Agenten verwandelt (Claude Desktop, Claude Code, Cursor und jeden MCP-fähigen Client). Der Agent kann Dateien lesen und schreiben, suchen, tabellarische Daten und Datenbanken abfragen, mit den Aufgaben arbeiten, Git nutzen und HTTP-Anfragen auslösen — alles auf den Ordner beschränkt (directory jail: Pfade mit .. oder außerhalb der Wurzel werden abgelehnt). Der Transport ist JSON-RPC 2.0 über stdin/stdout; jede Sitzung startet einen leichten lnote.exe-Prozess, getrennt vom Editorfenster.

Ein-Klick-Verknüpfung: Über KI → KI in diesem Ordner aktivieren schaltet LightNote MCP ein und schreibt die .mcp.json in einem Schritt (der Klick ist die Zustimmung). Ist die KI im Ordner bereits aktiv, wird der Eintrag zu KI dieses Ordners einrichten… und öffnet die Arbeitsbereich-Einstellungen.

Zwei Sicherheitsebenen: (1) der Server startet nur, wenn du das Opt-in für diesen Ordner gegeben hast; (2) jedes Werkzeug ist an die Wurzel des Arbeitsbereichs gebunden. Zusätzlich wird jedes Werkzeug mit Annotationen angekündigt (schreibgeschützt, destruktiv, idempotent, „berührt die Außenwelt"), damit der KI-Client das Risiko vor dem Aufruf einschätzen kann.

Einrichtung Schritt für Schritt

  1. Aktiviere MCP für den Ordner. Unter Werkzeuge → Arbeitsbereich → Arbeitsbereich-Konfiguration... aktiviere MCP für diesen Arbeitsbereich aktivieren. Ohne dieses Opt-in weigert sich der Server zu starten (das ist die Hauptsperre). Alternativ über die Befehlszeile: lnote --mcp-enable "C:\Pfad\zum\arbeitsbereich" (und --mcp-disable, um es auszuschalten).
  2. Finde den Pfad zu lnote.exe. Sie liegt im selben Ordner wie lightnote.exe (dem Installationsordner der App). Es ist die schlanke Konsolen-Ausführungsdatei ohne Oberfläche — genau diese führt der Agent aus.
  3. Registriere den Server in deinem KI-Client, indem du den Befehl auf lnote.exe zeigen lässt und --mcp gefolgt vom Arbeitsbereich-Ordner übergibst. Im Format, das Claude Desktop / Cursor und ähnliche verwenden:
{
  "mcpServers": {
    "lightnote": {
      "command": "C:\\Pfad\\zu\\lnote.exe",
      "args": ["--mcp", "C:\\Pfad\\zum\\arbeitsbereich"]
    }
  }
}

Konfigurationstipps:

  • Backslashes in JSON müssen verdoppelt werden (C:\\Users\\...\\lnote.exe), wie im Beispiel.
  • Um mehrere Arbeitsbereiche bereitzustellen, füge einen Eintrag pro Ordner mit verschiedenen Namen hinzu ("lightnote-projektA", "lightnote-projektB"), jeweils auf seine Wurzel zeigend.
  • Nach dem Speichern der Konfiguration starte den KI-Client neu, damit er den Server hochfährt. Nach dem Verbinden sollte der Agent die lightnote_*-Werkzeuge auflisten; bitte ihn um „liste die Dateien des Arbeitsbereichs", um zu bestätigen, dass es funktioniert.
  • Für Claude Code (CLI) lässt sich derselbe Server registrieren mit claude mcp add lightnote -- "C:\Pfad\zu\lnote.exe" --mcp "C:\Pfad\zum\arbeitsbereich".

Datenbank-Passwort (optional). Das Werkzeug db_query öffnet eine .lnc-Verbindung. Ist das Passwort mit der Sicheren Phrase verschlüsselt, übergib die Phrase über die Umgebungsvariable LNOTE_PASSPHRASE im Server-Block (niemals in Befehlszeilenargumenten) — Verbindungen, deren Passwort im Modus „nachfragen" ist, lassen sich nicht unbeaufsichtigt nutzen.

Ist LightNote geöffnet, läuft die Datenbank über das Fenster. Eine KI-CLI im Terminal der App (zum Beispiel Claude Code) fragt über die Sitzung ab, die Sie bereits geöffnet haben: Das gilt für jede Datenbank, auch Oracle, mit dem schon eingegebenen Passwort und dem aktiven SSH-Tunnel. Ist die Verbindung geschlossen, wird das Passwort im Fenster abgefragt — wer dort ablehnt, lehnt die KI ab —, und die Statusleiste meldet, wenn ein KI-Werkzeug eine Abfrage ausführt. Um eine Abfrage für eine große Datenbank zu schreiben, findet die KI Tabellen über den Namen mit db_search_objects (in allen Schemas), liest die Liste mit Kommentar und geschätzter Zeilenzahl (db_list_objects) und beschreibt mehrere Tabellen auf einmal, mit den Fremdschlüsseln, die die JOINs ergeben (db_describe). Bei geschlossener App gilt das oben Gesagte.

KI-Abfragen sind pro Verbindung Opt-in. Das Aktivieren von MCP im Ordner gibt die Verbindungen nicht frei: Jede .lnc antwortet nur dann auf db_query, wenn im Verbindungsdialog „KI-Abfragen erlauben (MCP)“ aktiviert ist. Der Zugriff ist schreibgeschützt (SELECT). Die Erlaubnis wird in den Ordnereinstellungen auf diesem Rechner gespeichert: Sie steht nicht in der .lnc-Datei, wandert nicht über Git, und die KI kann sie nicht durch Bearbeiten der Datei einschalten. Wird Server, Datenbank, Benutzer oder Tunnel der Verbindung geändert, ist sie ausgesetzt, bis Sie die Option erneut aktivieren. Eine Datenbank in einer Datei (SQLite, DuckDB) muss im Arbeitsbereich liegen, und über DuckDB liest die KI nur Dateien innerhalb des Arbeitsbereichs – bei geöffnetem LightNote gar keine.

Export aus der Datenbank durch den Agenten. Der Agent kann nicht nur abfragen, sondern ein SELECT mit db_export auch in eine Datei materialisieren (Parquet, CSV, JSON oder .xlsx) — nützlich für Ergebnisse, die zu groß für eine Antwort sind. Es gelten dieselben drei Vorkehrungen, in dieser Reihenfolge: die Abfrage muss schreibgeschützt sein, die Verbindung braucht die Option «KI-Abfragen erlauben (MCP)» (geprüft, bevor das Passwort entschlüsselt wird), und das Ziel muss innerhalb des Arbeitsbereichs bleiben. Große Exporte nutzen den temporären Systemordner als Arbeitsbereich, etwa in der Größe des Ergebnisses — halten Sie Speicherplatz frei.

Verfügbare Werkzeuge

Der Agent sieht die Werkzeuge unter dem Präfix des Clients (z. B. lightnote_read_file). Nach Kategorie:

  • Dateien: read_file (mit optionalem Zeilenbereich), write_file, edit_file (ersetzt einen exakten Ausschnitt, ohne die ganze Datei neu zu schreiben), append_file, list_files, move_file, make_dir und delete_file (geht in den Papierkorb, kein endgültiges Löschen).
  • Suche und Navigation: search_files (ripgrep, mit Unterordner-/Glob-Filter und Limit), list_symbols (Gliederung der Funktionen/Klassen einer Datei) und open_in_editor (öffnet/fokussiert eine Datei im LightNote-Fenster, falls geöffnet).
  • Daten und SQL: query (DuckDB-SQL über Parquet/CSV/JSON, Ausgabe als tsv/json/markdown), describe_table (Schema + Statistik, ohne Zeilen auszugeben), export_query (materialisiert ein SELECT über COPY in eine Datei), sqlite_query (SQL auf einer .sqlite/.db), db_list_connections (listet die .lnc des Arbeitsbereichs) und db_query (schreibgeschütztes SQL auf einer .lnc-Verbindung). Um das Ergebnis in eine Datei statt in die Antwort zu schreiben: db_export (Parquet/CSV/JSON/.xlsx).
  • Außerdem: search_notes (liefert die relevantesten Notiz-Ausschnitte zu einer Frage — dieselbe Engine wie KI-Chat), list_links (die ausgehenden Links einer Notiz, aufgelöst oder defekt), audit_vault_links (defekte Links und verwaiste Notizen im ganzen Tresor), list_note_templates und der Parameter template von create_note, list_due_tasks (heute fällige oder überfällige Aufgaben aller Projekte), xlsx_read (liest ein .xlsx-Blatt als TSV), data_diff (vergleicht zwei Tabellendateien) und der Datenbank-Katalog db_list_objects/db_describe (Tabellen/Views sowie Spalten, Schlüssel und DDL einer Tabelle — gleiche Voraussetzungen wie db_query). Und note_export (exportiert eine Notiz nach docx, odt, epub, LaTeX, Typst, HTML, reStructuredText, AsciiDoc, Org, MediaWiki, Notebook oder in einen anderen Markdown-Dialekt — ganz ohne Fenster, und auch über lnote note-export). Und note_import (der umgekehrte Weg: ein docx, odt, epub, rtf, HTML oder tex wird zur Notiz neben dem Original, mit Überschriften, Listen, Tabellen, Hervorhebungen, Links, Formeln und Bildern — auch über lnote note-import). Und folder_export (ein ganzer Ordner wird zur HTML-Website, zu einem Satz Dokumente oder zu Markdown, mit umgeschriebenen Links — auch über lnote folder-export).
  • Archive: zip_list (listet die Mitglieder eines .zip/.isx) und zip_read (liest ein Mitglied als Text) — ohne das Archiv auf die Festplatte zu entpacken.
  • Aufgaben: list_task_projects (listet die .lnt-Aufgabenprojekte des Arbeitsbereichs), list_tasks, list_task_statuses (Board-Spalten), create_task, update_task (Titel, Aufwand, Spalte, Priorität, Daten, %, Tags, Checkliste und Archivieren), update_task_status (Spalte wechseln), delete_task und task_note (die .md-Notiz der Aufgabe lesen/schreiben). Ein Arbeitsbereich kann mehrere .lnt-Projekte enthalten: wähle eines mit dem Parameter project (dem name aus list_task_projects; entfällt, wenn es nur eines gibt). Die id/status_id sind Sitzungskennungen — lies nicht die internen .lnt-Dateien, um sie zu erhalten; nutze die Aufgaben-Werkzeuge.
  • Notizen (PKM): create_note (erstellt eine .md-Notiz), append_daily_note (hängt eine Notiz an die heutige Tagesnotiz an), remember (legt einen dauerhaften Fakt über Sie in der Gedächtnisnotiz ab), list_backlinks (Notizen, die auf eine Notiz verweisen), list_note_tags und search_by_tag (die #Hashtags des Vaults und die Notizen, die sie verwenden) sowie add_task (erstellt eine Aufgabe mit Fälligkeit/Etiketten und nimmt natürliche Sprache im Titel an).
  • Git: git_status, git_log, git_diff und git_restore.
  • Web und Hinweise: http_request (löst eine HTTP-Anfrage aus und gibt Status/Header/Body zurück) und notify (zeigt einen Hinweis in der Taskleiste des offenen Fensters — praktisch, damit der Agent den Abschluss signalisiert).
  • KI-Proxy: list_ai_models und ask_ai (unten).
  • LightNote selbst: help_lookup (liest diese Hilfe nach Abschnitt oder Begriff, in der gewünschten Sprache) und markdown_reference (die genaue Syntax des Markdown, das die App darstellt). Beim Verbinden erhält der Client außerdem eine Beschreibung des Servers mit den Werkzeugen nach Kategorie, und die Hilfe und die Markdown-Referenz erscheinen als Ressourcen (lightnote://help/… und lightnote://markdown/…).

Der Server stellt die Dateien des Arbeitsbereichs auch als MCP-Ressourcen bereit (resources/list und resources/read), für Clients, die Dateien lieber „anhängen", statt read_file aufzurufen.

Deine Prompt-Bibliothek (der Ordner Prompts/ des Arbeitsbereichs) wird als MCP-Prompts bereitgestellt (prompts/list und prompts/get). In Claude Code wird jeder Prompt zu einem Slash-Befehl — /mcp__lightnote__<name> — direkt in der KI-CLI nutzbar.

Sicherheitsnetz beim Schreiben. Vor dem Überschreiben (write_file/edit_file) oder Entfernen (delete_file) einer Datei speichert der Server die vorherige Version im lokalen Verlauf — dem Sicherheitsnetz des Editors —, sodass du eine von einem Agenten vorgenommene Änderung auch außerhalb eines Git-Repositorys rückgängig machen kannst.

Jedes Werkzeug gibt an, ob es liest oder schreibt: neben den MCP-Annotations (readOnlyHint/destructiveHint) beginnt die Beschreibung mit einem Kennzeichen [read-only], [writes] oder [destructive] — praktisch, um Freigabelisten sicher aufzubauen.

KI-Proxy (an ein anderes Modell delegieren)

Die API-Anbieter, die du mit aktivierter Spalte MCP registriert hast, werden dem Agenten über zwei Werkzeuge bereitgestellt: list_ai_models (listet die freigegebenen Modelle mit id, Name und Modell) und ask_ai ({model, prompt}). So kann der Hauptagent eine Teilaufgabe delegieren an ein günstigeres oder spezialisiertes Modell. Der Aufruf wird vom laufenden LightNote vermittelt (die lnote.exe des MCP leitet die Anfrage über die interne Brücke an das App-Fenster weiter): der API-Schlüssel verlässt nie deinen Computer und erreicht nie den Agenten. Ist LightNote nicht geöffnet, gibt das Werkzeug einen Fehler zurück und bittet dich, es zu öffnen.

Inhalt

Bearbeiten

Werkzeuge

Automatisierung (KI / Skripte)

Referenz