Bitte einen KI-Assistenten, den Vorfall von gestern aufzuschreiben, und er macht das ordentlich – bis zum Diagramm. Der Screenshot liegt auf deinem Desktop, in der Notiz steht „siehe Anhang“, und angehängt ist nichts. Bisher konnte der Notez-MCP-Server deine Notizen lesen, schreiben und umorganisieren, aber an eine Datei auf deinem Rechner kam er nicht heran.
Notez v0.11.0 schließt diese Lücke. Jeder MCP-Assistent, der Shell-Befehle ausführen kann – Claude Code, Cursor, Codex CLI –, lädt jetzt ein lokales Bild oder eine Datei hoch und fügt sie direkt in eine Notiz ein.
So sieht das aus
Du schreibst:
Füge ./grafana-latency.png in meine Notiz Incident 2026-09-10 ein, direkt unter der Überschrift Timeline, und häng die Roh-Logs aus ./incident-logs.zip an.
Der Assistent lädt beide Dateien hoch und bearbeitet die Notiz. Der Screenshot erscheint direkt unter Timeline, das Archiv wird zu einem Datei-Chip, den du zum Herunterladen anklickst. Beide tauchen auf deiner Seite Dateien auf, werden wie alles andere auf deinen Speicher angerechnet, und es gelten dieselben Formate und Größenlimits wie im Editor.
Das funktioniert überall, wo eine Notiz geschrieben wird: beim Anlegen einer neuen Notiz, beim Bearbeiten eines Teils und beim Neuschreiben.
Warum die Datei nie durch den Chat geht
Der naheliegende Ansatz ist ein Tool, das die Datei als Argument bekommt. MCP-Tool-Aufrufe sind JSON, also würde die Datei als Base64-Text in der Ausgabe des Modells selbst reisen – rund 35.000 Tokens für einen 100-KB-Screenshot, und ein PDF würde gar nicht hineinpassen. Das Protokoll kann bisher keine Dateien übertragen; ein Vorschlag genau dafür ist noch ein Entwurf.
Deshalb habe ich den Weg gewählt, den der Notez-Editor schon nutzt. Wenn du ein Bild in den Editor ziehst, fragt dein Browser den Server nach einem signierten Upload und schickt die Bytes direkt in den Speicher. Ein Assistent macht dasselbe in drei Schritten:
Er fordert einen Upload an. Das Tool
create_uploadbekommt den Dateinamen, den Typ und die exakte Größe und antwortet mit einem fertigencurl-Befehl, der für genau diese eine Datei signiert ist.Er führt den Befehl aus. Die Datei geht direkt von deinem Rechner in den Speicher. Nichts läuft durch das Gespräch, also kostet ein PDF mit 20 MB nicht mehr Tokens als eines mit 20 KB.
Er bestätigt.
confirm_uploadprüft, ob die Datei wirklich angekommen ist, und gibt dann ein einzeiliges Snippet zurück, das der Assistent in die Notiz einfügt.
Einen Haken gibt es, und ich verschweige ihn nicht: Schritt 2 braucht eine Shell. Assistenten, die Befehle ausführen können, wie Claude Code und Cursor, erledigen das, ohne dass du darum bitten musst. Reine Chat-Clients wie Claude Desktop können das nicht, und sie sagen es, statt so zu tun, als ob: Sie verweisen dich auf die App.
Prüfen, ob die Datei wirklich angekommen ist
Ein Agent kann „erledigt“ melden, obwohl der Befehl fehlgeschlagen ist. Statt ihm zu glauben, fragt confirm_upload beim Speicher nach der Datei. Ist dort nichts, bekommt der Assistent die Anweisung, den Befehl noch einmal auszuführen. Haben die angekommenen Bytes nicht die angegebene Größe, wird der Upload abgelehnt, und der Assistent fängt von vorn an. Dein Speicherkontingent zählt die angegebene Größe, deshalb wird eine Datei mit falscher Größenangabe nie erfasst.
Das Snippet statt des Links – und der Bug, den ich vorab ausgeschlossen habe
An diesem Teil habe ich am längsten gearbeitet.
Notez merkt sich jede Datei, die eine Notiz verwendet. Nur deshalb kann es hinter dir aufräumen: Löschst du ein Bild aus einer Notiz, wird sein Speicher nach einiger Zeit freigegeben, und eine hochgeladene, aber nie verwendete Datei wird nach drei Tagen entfernt. Im Editor bekommst du davon nichts mit, weil jedes Bild, das er einfügt, eine versteckte Datei-ID trägt.
Ein Assistent schreibt Markdown von Hand. Nach einem Upload ist für ein Modell nichts natürlicher als ein einfacher Bildlink – . Er wird angezeigt. Er sieht richtig aus. Und er trägt keine Datei-ID, also verwendet die Notiz diese Datei aus Sicht von Notez gar nicht. Drei Tage später entfernt die Bereinigung sie, und eine Notiz, die du letzte Woche geteilt hast, zeigt ohne jede Warnung ein kaputtes Bild.
Ich habe das beim Bauen der Funktion bemerkt, nicht erst nach dem Release, und die Lücke von beiden Seiten geschlossen:
Der Assistent bekommt das richtige Markup.
confirm_uploadgibt ein Snippet zurück, das die Datei-ID schon enthält, und die Anweisungen des Servers sagen dem Assistenten, es unverändert einzufügen.Notez lehnt das falsche Markup ab. Verlinkt ein Schreibvorgang eine frisch hochgeladene Datei nur über ihre Adresse, wird er mit einer Erklärung abgelehnt, und der Assistent versucht es erneut mit dem Snippet. Links auf alles andere funktionieren weiter: Bilder von anderen Websites und Dateien, die schon sicher in einer anderen Notiz liegen.
Dieselbe Sperre schützt den KI-Chat in der App, sodass keiner der beiden Assistenten eine Zeitbombe in deinen Notizen hinterlassen kann.
Was du vorher wissen solltest
Uploads sind über ihre exakte Adresse erreichbar, genau wie Bilder, die du in den Editor einfügst. Nichts listet sie auf, und die Adressen lassen sich nicht erraten, aber lade nichts hoch, was du nicht auch in eine Notiz stellen würdest.
Der Speicher gehört dem Eigentümer des Workspaces. Uploads werden dem Konto angerechnet, dem der Workspace gehört, egal wie sich der Assistent verbunden hat.
Screenshots werden in voller Größe gespeichert. Der Editor komprimiert Bilder in deinem Browser; der Upload eines Assistenten kommt genau so an, wie die Datei auf der Festplatte liegt.
Der KI-Chat in der App kann nicht hochladen. Er läuft in deinem Browser ohne Zugriff auf deine Dateien. Die zwei Upload-Tools und
list_workspacesfür Verbindungen per Anmeldung sind die einzigen, die der MCP-Server hat und der Chat nicht.
Ausprobieren
Öffne in Notez Einstellungen → Integrationen → Notez-MCP-Server und klick auf MCP-Schlüssel generieren.
Füge den Schlüssel mit dem Befehl auf dieser Seite zu Claude Code hinzu oder mit der JSON-Konfiguration zu Cursor.
Bitte um etwas mit einer Datei darin: „Füg ./architecture.png in meine Notiz System design ein.“
Die vollständige Referenz mit jedem Tool, jedem Fehler und jedem Limit steht in MCP-Server einrichten, und Dateien und Anhänge behandelt Formate und Speicher.
Häufige Fragen
Kann Claude Code Bilder in Notez hochladen?
Ja. Claude Code kann Shell-Befehle ausführen und nutzt deshalb die Tools create_upload und confirm_upload, um ein lokales Bild oder eine Datei in jede Notiz eines verbundenen Workspaces zu bringen.
Funktioniert das in Claude Desktop?
Nicht ohne Weiteres. Der Upload-Schritt führt einen curl-Befehl aus, und Claude Desktop kann keine Befehle ausführen, solange du ihm kein Tool dafür gegeben hast. Es sagt dir dann, dass du die Datei stattdessen in der App hinzufügen sollst.
Welche Dateien kann ein KI-Assistent hochladen?
Dieselben wie der Editor: Bilder (JPG, PNG, GIF, SVG, WEBP und weitere), PDFs und Office-Dokumente, Videos sowie ZIP- und RAR-Archive – bis zum Limit pro Datei, das dein Plan vorgibt.
Wird eine hochgeladene Datei auf meinen Speicher angerechnet?
Ja, auf den Speicher des Kontos, dem der Workspace gehört, genau wie eine Datei, die du im Editor hinzufügst.
Was bedeutet NOTE_UPLOAD_NOT_LINKED?
Der Assistent hat versucht, eine hochgeladene Datei nur über ihre Adresse zu verlinken. Notez lehnt das ab, weil die Datei dann nicht erfasst und nach drei Tagen entfernt würde. Der Assistent sollte das Snippet einfügen, das confirm_upload zurückgegeben hat; die meisten versuchen es von selbst noch einmal.
Weiterlesen
Dauerhaftes Gedächtnis für Claude und Cursor mit MCP – ein Notiz-Workspace als Gedächtnis, das jeder Assistent liest und beschreibt, und was hineingehört.
Deine Notizen in Claude und ChatGPT, ohne API-Schlüssel – Notez mit einer URL und einer Anmeldung zu Claude, ChatGPT oder VS Code hinzufügen und den Zugriff wieder entziehen.
Notez per MCP mit Claude, Cursor und Windsurf verbinden – einen MCP-Schlüssel in Claude Code, Cursor oder Windsurf einrichten und welche Tools er einem Assistenten gibt.