Neun Tools, ein Endpoint, keine Zusatzdienste. Ein MCP-Server, der direkt mit der MemoMeister-API spricht, Logbücher sicher fortschreibt, Fotos an die KI liefert und PDF-Formulare selbst liest.
Bewusst schlank: create_text_memo und create_folder legen Inhalte an; update_text_memo und update_document_metadata schreiben erst im bestätigten apply-Schritt.
| Tool | Zweck | Wichtige Parameter |
|---|---|---|
search_documents |
Exakte Label-Suche, Volltext, serverseitiger Änderungszeitpunkt und datumsgenaue Dokumenttypen. Ein opaker Cursor setzt die Suche verlustfrei fort. | query, labels, modifiedSince, createdOn, utcOffset, documentTypes, sortBy, folderId, cursor, limit |
search_folders |
Projekte und Unterordner per Name finden, direkte Kinder oder mit topLevelOnly alle Projektwurzeln auflisten. |
query, parentId, topLevelOnly, limit |
create_text_memo |
Text-Memo (Markdown) in einem Ordner anlegen, optional mit Label, Status, Frist und Zuständigen. assignees nimmt Namen oder User-IDs. |
folderId, textContent, description, labels, status, dueDate, assignees, backgroundColor |
update_text_memo |
Logbuch oder Textmemo zweistufig fortschreiben: Anhängen erhält den bisherigen Inhalt, Ersetzen setzt den kompletten Text. Ein Revisionswert verhindert Überschreiben. | documentId, text, mode (append | replace), apply, expectedLastModified |
create_folder |
Mappe anlegen: neues Projekt auf oberster Ebene oder Unterordner in einer bestehenden Mappe, optional aus einer Ordnervorlage. Die Vorlage wird per Name gewählt; bei unbekanntem oder mehrdeutigem Namen kommt die Liste der vorhandenen Vorlagen zurück. | name, parentId, template, description, labels |
get_open_tasks |
Dokumente mit Aufgaben-Label (Standard offen) über alle Projekte oder in einem Ordner inkl. Unterordnern. |
label, folderId, assignee (Name oder ID), status, dueBefore, limit |
get_document |
Ein Dokument vollständig, einschließlich Kommentare, Änderungsaktivitäten und Mappenpfad. Bei Bildern optional MCP-Bildvorschau; bei PDFs Formularfelder. | documentId, includeImage, formFields: all | filled | none |
get_documents |
Bis zu 20 bekannte Dokumente in einem MCP-Aufruf mit Text, Kommentaren, Änderungsaktivitäten und Mappenpfad lesen. | documentIds |
update_document_metadata |
Zweistufige Änderung von Beschriftung und Labels: erst Vorschau, dann bestätigtes Schreiben. Ein Revisionswert verhindert, dass zwischenzeitliche Änderungen überschrieben werden. | documentId, description, labels, labelMode (add | replace), apply, expectedLastModified |
Die API kennt genau vier Werte und ignoriert alles andere stillschweigend. Der Server nimmt die deutschen Begriffe an und lehnt unbekannte Werte mit einer Fehlermeldung ab.
| API-Wert | Wird auch akzeptiert |
|---|---|
TO_BE_DONE | offen, todo |
IN_PROGRESS | in Arbeit, in Bearbeitung |
BLOCKED | blockiert |
FINISHED | erledigt, fertig, done |
Streamable HTTP nach MCP-Spezifikation (JSON-RPC 2.0), zustandslos. Der API-Key kommt pro Anfrage im Header — der Server speichert keine Keys.
| Pfad | Zweck |
|---|---|
POST /mcp | MCP-Endpoint. Header X-Memomeister-Api-Key (Pflicht), X-Memomeister-Api-Url (optional, z. B. Staging). |
GET /health | Status, Version, Laufzeit, MCP-Aufrufe der letzten 60 Minuten. |
GET /activity/<Token> | Privates, read-only Activity Log; nur aktiv, wenn ein zufälliges ACTIVITY_LOG_TOKEN gesetzt ist. Optional mit ?format=json. |
POST /feedback | Rückmeldungs-Formular der Übersichtsseite. |
/chef, /bauleiter, /monteur, /buero, /formular und /admin funktionieren weiter und liefern dieselben 9 Tools. Bestehende Client-Konfigurationen müssen nicht angepasst werden.URL: https://mcp.corncreeker.com/mcp Header: X-Memomeister-Api-Key: <dein-key>
claude mcp add memomeister -e MEMOMEISTER_API_KEY=<dein-key> -- node /pfad/zu/dist/index.js
{
"mcpServers": {
"memomeister": {
"command": "node",
"args": ["/pfad/zu/dist/index.js"],
"env": { "MEMOMEISTER_API_KEY": "<dein-key>" }
}
}
}
| Variable | Beschreibung | Standard |
|---|---|---|
MEMOMEISTER_API_KEY | Pflicht im stdio-Modus. Im HTTP-Modus kommt der Key per Header. | — |
MEMOMEISTER_API_URL | GraphQL-Endpoint | https://api.memomeister.com/graphql |
TRANSPORT | stdio oder http | stdio |
HTTP_PORT / HTTP_HOST | Bind-Adresse im HTTP-Modus | 3000 / 0.0.0.0 |
LOG_DIR | Ordner für die Anfrage-Logs: eine JSONL-Datei pro Tag (requests-JJJJ-MM-TT.jsonl) mit Tool, bereinigten Argumenten, Nutzer, Client, Dauer und Ergebnis. Inhalte, URLs und Secrets werden nicht geschrieben. | — (im Docker-Image /app/logs) |
ACTIVITY_LOG_TOKEN | Mindestens 24 zufällige URL-sichere Zeichen. Aktiviert das private Dashboard unter /activity/<Token>; der Token ist wie ein Passwort zu behandeln. | — (Dashboard deaktiviert) |
FEEDBACK_FILE | JSONL-Datei für Rückmeldungen aus dem Formular | — (Formular antwortet dann mit 503) |
docker compose up -d --build
get_document lädt für ein IMAGE-Dokument eine Vorschau innerhalb des Servers und liefert sie als MCP-Bildinhalt an den Client. Die eigentliche Bildanalyse macht das Vision-Modell der verbundenen KI.
Bevor Beschriftung oder Labels geändert werden, liefert update_document_metadata mit apply=false die bisherigen und vorgeschlagenen Werte. Erst nach Bestätigung wird mit apply=true geschrieben. expectedLastModified schützt vor dem Überschreiben einer neueren Revision.
Kein externer PDF-Dienst: get_document lädt das PDF über den MemoMeister-Downloadlink und liest die AcroForm-Felder im Prozess (Text, Checkbox, Radio, Dropdown, Liste, Signatur).
Die meisten MemoMeister-Vorlagen sind mit einem Besitzer-Passwort geschützt. Der Server nutzt @cantoo/pdf-lib, das solche PDFs selbst entschlüsselt. Getestet an 50 echten Vorlagen und ausgefüllten Formularen: alle 50 gelesen, keine verstümmelten Feldnamen.
formFields.error — der Rest des Dokuments kommt trotzdem zurück.Mit folderId suchen search_documents und get_open_tasks im Ordner selbst und in allen Unterordnern. Die API trennt das in zwei Filter, der Server führt beide sortiert und ohne verlorene Treffer zusammen.
modifiedSince wird als exakter serverseitiger Zeitfilter an MemoMeister geschickt. Kommentare, Änderungsfelder, Revisionen und der vollständige Mappenpfad kommen mit den Dokumentdetails. Die MemoMeister-API ändert bei einem neuen oder bearbeiteten Kommentar jedoch nicht lastModified des Dokuments; deshalb liefern die Detail-Tools zusätzlich commentLastModified und effectiveLastModified. Eine reine modifiedSince-Suche kann eine ausschließlich kommentierte Änderung nicht finden.
Ersteller und Zuständige kommen in allen Ergebnissen als { id, name }. Wo ein Tool Personen annimmt (assignees, assignee), gehen Namen oder IDs: der Server gleicht sie mit dem Team des API-Keys ab — ID, voller Name, E-Mail, eindeutiger Vor- oder Nachname, eindeutiger Namensteil. Ist ein Name mehrdeutig oder unbekannt, wird nichts angelegt und die Antwort listet das Team als „Name (ID)". Die Teamliste wird pro Key 10 Minuten zwischengespeichert.
dueBefore filtert auf die Frist (dueDate) des Dokuments. Dokumente ohne Frist fallen dabei heraus.
Frisch angelegte Memos tauchen nach wenigen Sekunden in Suche und Aufgabenliste auf (Suchindex der API). Per get_document sind sie sofort abrufbar.
Der Server sucht, liest, legt Textmemos und Mappen an und aktualisiert bestätigte Textinhalte, Beschriftungen und Labels. Er löscht und verschiebt nichts und überschreibt keine Dateien.