Model Context Protocol Server

MemoMeister
MCP Server

Verbindet KI-Assistenten wie Claude oder Windsurf direkt mit MemoMeister — Projekte verwalten, PDFs befüllen, Berichte erstellen, alles per natürlicher Sprache.

30+
Tools
2
Transports (stdio / HTTP)
67
Tests
100%
TypeScript

Vom Prompt zum fertigen PDF

Der KI-Assistent ruft die MCP-Tools auf — du sprichst, der Server erledigt den Rest.

1

Template finden

find_pdf_templates sucht in der MemoMeister-Bibliothek

2

Projekt laden

list_projects + get_project_briefing für Kontext

3

PDF befüllen

fill_project_template füllt Felder automatisch

4

Hochladen

Fertiges PDF landet direkt im richtigen Ordner

Stateless Tools, intelligenter Assistent

Der MCP-Server selbst hat keinen globalen Zustand. Der Kontext entsteht durch das Zusammenspiel von Tools und dem KI-Assistenten.

🔍

Schritt 1 — Projektraum aufbauen

Der Assistent ruft list_projects oder get_project_briefing auf und erhält Ordnerstruktur, offene Aufgaben und letzte Aktivität. Dieser Kontext bleibt im Chat-Verlauf erhalten.

🧠

Schritt 2 — Kontext zwischen Tools teilen

Die Projekt-ID aus list_projects wird automatisch in den nächsten Tool-Aufruf weitergegeben — z.B. als projectFolderId für fill_project_template. Kein manuelles Copy-Paste.

⚙️

Schritt 3 — Auto-Field-Mapping

fill_project_template lädt Projektname, Ersteller und heutiges Datum direkt aus MemoMeister und befüllt passende Felder automatisch — ohne dass der Nutzer diese Werte kennen oder eingeben muss.

💬

Natürliche Sprache als Interface

Der Nutzer sagt: "Erstelle einen Rapport für Musterstraße 12 für heute". Der Assistent übersetzt das in die richtigen Tool-Aufrufe mit den richtigen IDs und Feldern — vollständig automatisch.

30+ spezialisierte Tools

Jedes Tool hat einen klaren Zweck. Zwei Sätze genügen — wer mehr braucht, findet die vollständige Parameterdokumentation direkt im MCP-Client.

📁

Projekte & Ordner

6 Tools — Einstiegspunkt für jeden Workflow
list_projects

Listet alle Top-Level-Projekte mit Aktivitätsdatum und Dokumentenanzahl auf. Startpunkt für jeden Workflow — gibt dem Assistenten die Projekt-ID für alle folgenden Aufrufe.

get_project_contents

Liefert Projektdetails und alle direkten Unterordner mit deren Dokumentenanzahl. Nützlich um die richtige Ziel-Ordner-ID (z.B. "04.Rapporte") für Uploads zu finden.

get_project_briefing

Aggregiert in einem Aufruf: Ordnerstruktur, letzte Aktivitäten, offene Aufgaben. Ideal als erster Aufruf wenn ein KI-Assistent ein Projekt noch nicht kennt — vollständiger Kontext auf einen Schlag.

create_project

Legt ein neues Projekt (Top-Level-Ordner) an, optional mit einem Ordner-Template für eine vordefinierte Unterordner-Struktur. Spart die manuelle Anlage von Standardordnern wie "Pläne", "Rapporte", "Abnahme".

get_inactive_projects

Gibt alle Projekte zurück, bei denen seit N Tagen keine Dokumente erstellt wurden. Hilfreich für Bauleiter die regelmäßig prüfen wollen, welche Baustellen keine Dokumentation mehr liefern.

get_project_handover_readiness

Prüft ob alle für die Übergabe erwarteten Unterordner vorhanden und befüllt sind. Gibt einen Vollständigkeitsscore zurück — z.B. "Abnahmeprotokoll fehlt noch".

📄

Dokumente & Aktivität

7 Tools — Überblick und Dokumentation
get_recent_activity

Alle Dokumente der letzten N Tage — projektübergreifend oder für ein bestimmtes Projekt. Beantwortet "Was wurde heute auf der Baustelle dokumentiert?" in Sekunden.

get_worker_stats

Zeigt pro Mitarbeiter wie viele Dokumente er im Zeitraum erstellt hat. Für Bauleiter die sehen wollen, wer aktiv dokumentiert und wer nicht.

get_open_tasks

Listet alle Dokumente mit einem bestimmten Label auf — Standard ist "offen". Zeigt alle offenen Mängel oder Aufgaben quer über alle Projekte oder innerhalb eines Projekts.

search_documents

Volltextsuche über alle Dokumente in MemoMeister. Findet z.B. alle Dokumente die "Riss" oder "Feuchtigkeit" im Text enthalten — projektübergreifend.

create_memo

Erstellt ein Text-Memo (Markdown) in einem Ordner, optional mit Labels und Hintergrundfarbe. Für schnelle Notizen direkt aus dem Chat heraus — z.B. Gesprächsprotokoll oder Aufgabe anlegen.

upload_document

Lädt eine Datei (Bild, PDF, beliebige Binärdatei) als Base64 in einen Ordner hoch. Baustein für alle Workflows die am Ende ein fertiges Dokument in MemoMeister ablegen.

get_project_dashboard

Gibt für alle Projekte gleichzeitig eine Übersicht: Dokumentenanzahl, Aktivitätsalter, offene Aufgaben. Der schnellste Weg für einen Gesamtüberblick über alle laufenden Baustellen.

📝

PDF-Formulare

10 Tools — Lesen, Befüllen, Generieren
find_pdf_templates

Durchsucht die MemoMeister-Template-Bibliothek nach PDF-Vorlagen (Rapport, Abnahme, Mängelliste…). Liefert die Download-URL die für fill_project_template benötigt wird — inklusive verschlüsselter Templates.

inspect_pdf_form

Gibt alle Formularfelder eines PDFs zurück: Name, Typ, aktueller Wert, Optionen bei Dropdowns. Vorbereitungsschritt vor fill_pdf_form — zeigt exakt welche Feldnamen das PDF erwartet.

inspect_pdf_from_url

Lädt ein PDF direkt von einer URL und gibt seine Formularfelder zurück — funktioniert auch mit AES-256-verschlüsselten Templates. Nützlich um Templates aus der Bibliothek zu analysieren ohne sie zuerst herunterladen zu müssen.

fill_pdf_form

Befüllt Formularfelder in einem PDF per Name-Wert-Mapping — Text, Checkboxen, Dropdowns, Radio-Buttons. Gibt das befüllte PDF als Base64 zurück — Basis für alle weiteren Schritte wie Flatten oder Upload.

fill_and_finalize_pdf

Kombiniert Befüllen und Flatten in einem einzigen Aufruf. Wenn das Ergebnis direkt unveränderlich sein soll — spart einen API-Aufruf gegenüber fill + finalize separat.

finalize_pdf

Flattened ein bereits befülltes PDF — alle Formularfelder werden zu statischem Inhalt. Macht das Dokument tamper-proof und verhindert nachträgliche Bearbeitung der Felder.

generate_pdf_form

Generiert ein komplett neues PDF-Formular aus einer JSON-Schemabeschreibung mit Seiten, Feldern und Positionen. Für dynamisch erstellte Formulare ohne eine bestehende Vorlage — z.B. projektspezifische Checklisten.

merge_pdfs

Führt mehrere PDFs in der angegebenen Reihenfolge zu einem Dokument zusammen. Z.B. Deckblatt + Rapport + Fotonachweise in eine einzige Datei für die Übergabedokumentation.

embed_pdf_metadata / read_pdf_metadata

Bettet ein JSON-Objekt als XMP-Metadaten ein oder liest es zurück — nicht-destruktiv, der PDF-Inhalt bleibt unverändert. Nützlich um Projekt-IDs, Tracking-Daten oder Versionsnummern unsichtbar im PDF zu speichern.

check_pdf_signatures

Prüft welche Signaturfelder im PDF bereits unterschrieben sind und gibt einen allSigned-Boolean zurück. Für Abnahmeprotokolle — prüft ob alle Parteien unterschrieben haben bevor das Dokument archiviert wird.

Workflows & Berichte

7 Tools — End-to-End-Automatisierung
fill_project_template

Der Haupt-Workflow: Template aus der Bibliothek holen, Felder mit Projektdaten befüllen, flatten, in MemoMeister hochladen — alles in einem Aufruf. Datum, Projektname und Ersteller werden automatisch gemappt; weitere Felder können per additionalFields übergeben werden.

fill_and_store_pdf

Befüllt ein beliebiges PDF (als Base64) mit Feldern und lädt das Ergebnis direkt in einen MemoMeister-Ordner. Für Fälle wo das PDF nicht aus der Template-Bibliothek kommt sondern z.B. extern erzeugt wurde.

get_form_documents

Sucht alle PDF-Formulardokumente die in den letzten N Tagen erstellt wurden. Zeigt welche Rapporte, Protokolle oder Checklisten bereits ausgefüllt vorliegen.

find_pdf_templates

Durchsucht die MemoMeister-Template-Bibliothek und gibt Name, Dateiname und Download-URL zurück. Notwendiger erster Schritt vor fill_project_template wenn der Template-Name, aber nicht die URL bekannt ist.

list_report_templates

Listet alle verfügbaren DOCX/PDF-Berichtsvorlagen auf. Gibt die Template-ID zurück die für create_folder_report und create_selection_report benötigt wird.

create_folder_report

Generiert asynchron einen DOCX- oder PDF-Bericht aus allen Dokumenten eines Ordners nach einer Berichtsvorlage. Erstellt z.B. einen Fotobericht aller Mängelfotos eines Projekts — mit Datum, Labels und optionalen Empfängerangaben im Kopf.

create_selection_report

Wie create_folder_report, aber nur für eine explizite Auswahl von Dokument-IDs. Wenn nicht alle Dokumente eines Ordners in den Bericht sollen — z.B. nur die mit Label "Mangel".

✏️

Update & Ersetzen

4 Tools — Bestehende Dokumente aktualisieren
update_document

Aktualisiert Metadaten eines bestehenden Dokuments: Beschreibung, Labels, Status, Fälligkeitsdatum, Assignees. Ideal um einen Mangel von "offen" auf "erledigt" zu setzen oder Labels nachträglich zu korrigieren — ohne die Datei zu berühren.

update_memo_content

Ersetzt den Markdown-Inhalt eines Text-Memos (und optional die Hintergrundfarbe). Für Besprechungsprotokolle oder Notizen die nach einem Meeting aktualisiert werden sollen.

replace_document_file

Ersetzt die Datei eines bestehenden Dokuments durch eine neue Version — Ordner, ID, Labels und Metadaten bleiben erhalten. Typisch: Rapport nachträglich korrigieren und neu hochladen ohne ein Duplikat zu erzeugen. isExternalFile=true markiert es als neue Dateiversion statt als Bearbeitung.

render_pdf_thumbnail

Rendert eine Seite eines PDFs als PNG-Bild — direkt im Chat sichtbar bei Claude, Windsurf oder Cursor. Vorschau nach fill_project_template: KI zeigt das befüllte Formular vor dem Hochladen zur Bestätigung an.

Nicht nur für KI-Assistenten

Der MCP-Server läuft auch als HTTP-Endpunkt — direkt ansteuerbar aus Automatisierungsplattformen wie N8N oder Make.

🔴

N8N

Per HTTP-Request-Node direkt MCP-Tools aufrufen. Trigger-basiert: z.B. jeden Morgen automatisch get_inactive_projects → Slack-Benachrichtigung an den Bauleiter. Oder: neues Dokument in MemoMeister → fill_project_template → PDF-Rapport generieren.

🟣

Make (ehem. Integromat)

MCP-Server als HTTP-Modul einbinden. Szenarien wie: Formular-Einsendung → create_memo in MemoMeister ablegen → create_folder_report → PDF per E-Mail versenden. Vollautomatisch, ohne Code.

🤖

Claude / Windsurf / Cursor

Native MCP-Integration per stdio — kein HTTP-Server nötig. Der Assistent startet den Server-Prozess automatisch beim ersten Tool-Aufruf. Konfiguration einmalig in mcp_config.json.

⚙️

Eigene Clients

HTTP-Transport nach MCP-Spec (POST /mcp, JSON-RPC 2.0). Direkt aus Python, TypeScript oder cURL ansteuerbar — kein SDK nötig. Ideal für eigene Dashboards oder mobile Apps.

Built for Production

Entwickelt für den täglichen Einsatz auf Baustellen und in Bauleitungsbüros.

🔐

Verschlüsselte PDFs

AES-256-verschlüsselte MemoMeister-Templates werden serverseitig via qpdf entschlüsselt — transparent für den Client.

Zwei Transports

Läuft per stdio direkt in Windsurf/Claude Desktop oder als HTTP-Server für Remote-Zugriff.

🗂️

Auto-Field-Mapping

fill_project_template erkennt automatisch Felder wie Datum, Projektname und Ersteller und füllt sie aus dem Projektkontext.

📊

Tool-Logging

Alle Tool-Aufrufe werden optional in eine JSONL-Logdatei geschrieben — für Audit-Trail und Debugging.

🔑

.env Fallback

API-Keys können per mcp_config.json oder als .env-Datei konfiguriert werden — dotenv als Fallback integriert.

🧪

67 Tests

Vollständige Unit-Test-Suite mit Vitest — alle Clients, Tools und Edge Cases abgedeckt. E2E-Tests gegen Live-API.

Setup in 2 Minuten

Zwei Konfigurationswege — je nach Einsatzszenario.

~/.codeium/windsurf/mcp_config.json
"memomeister": {
  "command": "node",
  "args": ["/path/to/dist/index.js"],
  "env": {
    "MEMOMEISTER_API_KEY": "...",
    "FORMSONFIRE_API_KEY": "...",
    "TRANSPORT": "stdio"
  }
}
.env (Fallback)
# Pflichtfelder
MEMOMEISTER_API_KEY=dein-key
FORMSONFIRE_API_KEY=dein-key

# Optional
TRANSPORT=stdio   # oder http
HTTP_PORT=3000
HTTP_HOST=0.0.0.0
LOG_FILE=./logs/tool-calls.jsonl
Variable Beschreibung Default Pflicht
MEMOMEISTER_API_KEY API-Key für die MemoMeister GraphQL-API Pflicht
FORMSONFIRE_API_KEY API-Key für den FormsOnFire PDF-Service Pflicht
MEMOMEISTER_API_URL GraphQL-Endpoint (überschreibbar für Staging) https://api.memomeister.com/graphql Optional
FORMSONFIRE_BASE_URL FormsOnFire-Endpoint https://formsonfire.corncreeker.com Optional
TRANSPORT stdio (für Windsurf/Claude) oder http stdio Optional
HTTP_PORT Port für HTTP-Transport 3000 Optional
LOG_FILE Pfad zur JSONL-Logdatei für Tool-Aufrufe Optional

stdio — für Windsurf & Claude Desktop

Windsurf startet den Prozess automatisch. Konfiguration via mcp_config.json.

TRANSPORT=stdio node dist/index.js

HTTP — für Remote / Eigene Clients

Streamable HTTP nach MCP-Spec. Ideal für eigene Integrationen oder mehrere gleichzeitige Clients.

TRANSPORT=http HTTP_PORT=3000 node dist/index.js
Lädt…
Version
Uptime
Aufrufe letzte 60 Min