Skip to content

Conversation

PKHexxxor
Copy link

Hello, I have used your code as a basis and with the help of Claude adapted and extended many functions .... unfortunately I am super clumsy when it comes to github but I thought maybe you want to have it too ....hope this is the right way :)

Thanks

BookStack MCP Server (v1.2.0)

smithery badge
(Optional: Ersetze den Badge, wenn du den Server auf Smithery veröffentlichst)

Einleitung

Dieser Model Context Protocol (MCP) Server dient als erweiterte Schnittstelle zu einer BookStack-Instanz. Er ermöglicht es MCP-kompatiblen Clients (wie z.B. Claude von Anthropic) nicht nur, Inhalte aus BookStack zu suchen und abzurufen, sondern auch, neue Bücher und Seiten auf eine strukturierte und konsistente Weise zu erstellen und zu aktualisieren.

Ein besonderer Fokus liegt auf der Generierung von Markdown-Inhalten für neue oder aktualisierte Seiten. Anstatt rohes Markdown zu übergeben, können strukturierte Inhalte (Titel, Abschnitte mit Typen) bereitgestellt werden. Der Server formatiert diese Inhalte dann automatisch gemäß einem konfigurierbaren Styleguide (Überschriftenebenen, optionales Logo, Icons für Info/Warnung, rechtlicher Footer).

Zusätzlich bietet der Server automatische Funktionen wie das Hinzufügen von Tags basierend auf Keywords und das Anhängen eines standardisierten rechtlichen Footers, ebenfalls über Umgebungsvariablen konfigurierbar.

Die Tools werden mit deutschen Namen angesprochen, um die Interaktion in deutscher Sprache intuitiver zu gestalten. Diese Dokumentation richtet sich sowohl an Endanwender, die den Server über einen Client nutzen, als auch an Entwickler, die den Server warten oder erweitern möchten.

Features

  • Seiten/Bücher durchsuchen: Findet Seiten in BookStack anhand flexibler Suchanfragen (seiten_suchen).
  • Seiteninhalt abrufen: Holt den vollständigen Markdown- (bevorzugt) oder Text-Inhalt einer spezifischen Seite (seiteninhalt_abrufen).
  • Bücher erstellen: Legt neue Bücher mit optionaler Beschreibung und Tags an (buch_erstellen).
  • Strukturierte Seitenerstellung: Erstellt neue Seiten basierend auf übergebenen Titeln und Inhaltsabschnitten (seite_erstellen).
    • Anwendung eines konfigurierbaren Styleguides für Überschriften (H1, H2).
    • Optionale Einbindung eines Logos am Seitenanfang.
    • Optionale Icons für Info- oder Warnhinweis-Abschnitte.
  • Strukturierte Seitenaktualisierung: Aktualisiert bestehende Seiten durch Ersetzen des gesamten Inhalts mit neu generiertem Markdown aus strukturierten Abschnitten (seite_aktualisieren).
  • Konfigurierbarer Styleguide: Einfache Anpassung von Überschriften-Markdown, Logo, Icons und Footer-Text über Umgebungsvariablen.
  • Automatisches Tagging: Fügt automatisch Tags hinzu, wenn konfigurierte Keywords im Titel oder Inhalt gefunden werden (aktivierbar).
  • Automatischer rechtlicher Footer: Hängt automatisch einen konfigurierten rechtlichen Hinweis an Seiten an (aktivierbar).
  • Deutsche Tool-Namen: Intuitive deutsche Namen für alle bereitgestellten Tools.
  • Modulare Code-Struktur: Übersichtliche Aufteilung des Codes in Services, Tools, Schemas und Konfiguration zur einfachen Wartung und Erweiterung.
  • Verbesserte Fehlerbehandlung: Klarere Rückmeldungen bei API-Fehlern oder ungültigen Eingaben.

Installation

Voraussetzungen

  • Node.js (Version 20.x oder höher empfohlen)
  • npm (wird normalerweise mit Node.js installiert)
  • Git
  • Zugang zu einer BookStack-Instanz
  • Ein BookStack API Token (ID und Secret) mit Berechtigungen zum Lesen, Erstellen und Bearbeiten von Büchern/Seiten. (Erstellen unter "Einstellungen" -> "API-Zugriff" in BookStack).

Schritt 1: Repository klonen

# Ersetze <repository_url> mit der URL deines Git-Repositorys
git clone <repository_url> mcp-bookstack
cd mcp-bookstack
Schritt 2: Abhängigkeiten installieren
Dieser Befehl installiert alle notwendigen Node.js-Pakete aus der package.json, inklusive zod-to-json-schema. Er führt auch automatisch das build-Skript aus (via prepare), um den TypeScript-Code zu kompilieren.

Bash

npm install
Schritt 3: Konfiguration erstellen (.env)
Für die lokale Entwicklung oder wenn der Server direkt gestartet wird, ist eine .env-Datei der einfachste Weg zur Konfiguration.

Erstelle eine neue Datei namens .env im Hauptverzeichnis des Projekts (mcp-bookstack/).

Füge die Umgebungsvariablen hinzu und passe sie an. Die BOOKSTACK_...-Variablen sind essenziell!

Code-Snippet

# Erforderliche BookStack API Credentials
BOOKSTACK_API_URL=https://DEINE_BOOKSTACK_URL.com
BOOKSTACK_API_TOKEN=DEIN_API_TOKEN_ID
BOOKSTACK_API_KEY=DEIN_API_TOKEN_SECRET

# Optionale Styleguide & Automatisierungs-Einstellungen (Defaults werden verwendet, wenn nicht gesetzt)
# MCP_DEFAULT_LANGUAGE=de
# STYLEGUIDE_HEADING_LEVEL_1=##
# STYLEGUIDE_HEADING_LEVEL_2=###
# STYLEGUIDE_LOGO_MARKDOWN="![Mein Logo](/pfad/zum/logo.png)"
# STYLEGUIDE_INFO_ICON=":information_source:"
# STYLEGUIDE_WARN_ICON=":warning:"
# STYLEGUIDE_LEGAL_FOOTER_MD="---\n(c) Meine Firma"
# AUTO_TAGS_ENABLED=false
# AUTO_TAGS_KEYWORDS="ProjektX,Wichtig"
# AUTO_LEGAL_FOOTER_ENABLED=false
Eine vollständige Liste aller Variablen findest du im Abschnitt "Konfiguration".

Schritt 4: Build (falls nötig)
Wenn du Änderungen am TypeScript-Code (src/) vornimmst, musst du den Code neu kompilieren:

Bash

npm run build
Dies erstellt den JavaScript-Code im build/-Verzeichnis.

Konfiguration
Die Konfiguration des Servers erfolgt über Umgebungsvariablen. Diese können entweder über eine .env-Datei (siehe Installation) oder über die Einstellungen deines MCP-Clients (empfohlen für den Einsatz mit Clients wie Claude) gesetzt werden.

Übersicht der Konfigurationsvariablen:

Variable	Erforderlich	Standardwert	Beschreibung
BOOKSTACK_API_URL	Ja	-	Basis-URL deiner BookStack-Instanz (z.B. https://docs.example.com). Ohne /api oder / am Ende!
BOOKSTACK_API_TOKEN	Ja	-	Die API Token ID, generiert in BookStack.
BOOKSTACK_API_KEY	Ja	-	Das API Token Secret, generiert in BookStack.
MCP_DEFAULT_LANGUAGE	Nein	de	Standardsprache für zukünftige Internationalisierung (Texte, Meldungen).
STYLEGUIDE_HEADING_LEVEL_1	Nein	##	Markdown für H1-Überschriften (Seitentitel). Z.B. # oder ##.
STYLEGUIDE_HEADING_LEVEL_2	Nein	###	Markdown für H2-Überschriften (Abschnittstitel). Z.B. ## oder ###.
STYLEGUIDE_LOGO_MARKDOWN	Nein	""	Vollständiger Markdown-String für ein Logo (z.B. ![Logo](/logo.png)). Leer lassen für kein Logo.
STYLEGUIDE_INFO_ICON	Nein	:information_source:	Icon/Emoji-Präfix für Abschnitte vom Typ info.
STYLEGUIDE_WARN_ICON	Nein	:warning:	Icon/Emoji-Präfix für Abschnitte vom Typ warning.
STYLEGUIDE_LEGAL_FOOTER_MD	Nein	""	Markdown für den rechtlichen Footer. \n für Zeilenumbrüche wird unterstützt. Leer lassen für keinen Footer.
AUTO_TAGS_ENABLED	Nein	false	Automatisches Tagging aktivieren (true) oder deaktivieren (false).
AUTO_TAGS_KEYWORDS	Nein	""	Komma-getrennte Liste von Keywords. Bei Fund im Titel/Inhalt wird ein Tag mit exakt dieser Schreibweise erstellt. Groß-/Kleinschreibung bei Suche ignoriert. Beispiel: "Projekt Alpha, API Doku, Prinz Wissen"
AUTO_LEGAL_FOOTER_ENABLED	Nein	false	Automatisches Anhängen des Footers (aus STYLEGUIDE_LEGAL_FOOTER_MD) aktivieren (true) oder deaktivieren (false).

In Google Sheets exportieren
Konfiguration im MCP Client (Beispiel für VSCode settings.json):

Wenn du den Server über einen MCP Client wie die Claude VSCode Extension nutzt, konfigurierst du ihn dort. Der Client startet den Server und übergibt die Konfiguration als Umgebungsvariablen.

JSON

{
  "mcp.servers": {
    // Eindeutiger Name für diesen Server im Client
    "bookstack": {
      // Befehl zum Starten des Servers
      "command": "node",
      // Argumente für den Befehl - Pfad zur kompilierten main.js Datei!
      "args": ["/vollstaendiger/pfad/zu/mcp-bookstack/build/main.js"],
      // Umgebungsvariablen für den Server-Prozess
      "env": {
        // Erforderlich
        "BOOKSTACK_API_URL": "[https://dein-bookstack.com](https://dein-bookstack.com)",
        "BOOKSTACK_API_TOKEN": "dein-token-id",
        "BOOKSTACK_API_KEY": "dein-token-secret",
        // Optional (Beispiele)
        "STYLEGUIDE_HEADING_LEVEL_1": "#",
        "AUTO_TAGS_ENABLED": "true",
        "AUTO_TAGS_KEYWORDS": "ProjektAlpha,Anleitung,Prinz Wissen",
        "AUTO_LEGAL_FOOTER_ENABLED": "true",
        "STYLEGUIDE_LEGAL_FOOTER_MD": "---\\n(c) 2025 Firma XYZ\\n[Impressum](https://firma.xyz/impressum)"
      }
    }
  }
}
Server Starten
Direkt (für Entwicklung/Test):
Bash

npm start
Via MCP Client: Der Client startet den Server automatisch gemäß seiner Konfiguration (siehe oben), wenn ein Tool dieses Servers benötigt wird.
Via Smithery (falls veröffentlicht): Smithery übernimmt das Management und den Start des Servers.
Bash

# Nach der Installation via Smithery läuft der Server im Hintergrund
Verwendung / Tools (User-Anleitung)
Interagiere mit dem Server über natürliche Sprache in deinem MCP-Client (z.B. Claude). Beschreibe, was du tun möchtest, und der Client wählt das passende Tool aus und fragt ggf. nach benötigten Argumenten.

Hier sind die verfügbaren Tools und ihre Argumente im Detail:

Tool: seiten_suchen
Beschreibung: Sucht Seiten in Bookstack anhand einer Suchanfrage. Gibt eine Liste von Treffern mit Titel, ID, Buchname, URL und einer kurzen Inhaltsvorschau zurück.
Argumente:
query (string, optional, default=""): Suchanfrage. Unterstützt Bookstack-Syntax wie [tag=wert], {type:page} oder {book:buch-slug} (z.B. {book:alpenlexikon}, um nur im Buch "Alpenlexikon" zu suchen).
page (number, optional, default=1): Seitennummer der Ergebnisse (Minimum 1).
count (number, optional, default=10): Anzahl Ergebnisse pro Seite (Minimum 1, Maximum 100).
Rückgabe: Formatierter Text mit den Suchergebnissen oder eine Meldung, falls nichts gefunden wurde.
Tool: seiteninhalt_abrufen
Beschreibung: Ruft den vollständigen Inhalt (Markdown bevorzugt) einer bestimmten Seite anhand ihrer ID ab. Gibt ein JSON-Objekt zurück, das der Client interpretieren kann.
Argumente:
page_id (number, erforderlich): Die eindeutige ID der Seite.
Rückgabe: Ein JSON-String mit der Struktur: { "page_id": number, "format": "markdown" | "plaintext", "content": string, "name": string, "url": string }.
Tool: buch_erstellen
Beschreibung: Erstellt ein neues Buch in Bookstack.
Argumente:
name (string, erforderlich): Der Name des neuen Buches.
description (string, optional): Optionale Beschreibung des Buches (Markdown erlaubt).
tags (array, optional): Optionale Tags für das Buch. Jedes Tag-Objekt im Array: { "name": "string", "value"?: "string" }.
Rückgabe: Eine Erfolgsmeldung mit der ID, dem Namen und der URL des erstellten Buches.
Tool: seite_erstellen
Beschreibung: Erstellt eine neue Seite in Bookstack mit strukturiertem Inhalt. Der finale Markdown-Code wird basierend auf den übergebenen Abschnitten (sections) und den Styleguide-Einstellungen (Überschriften, Logo, Icons, Footer) generiert. Auto-Tagging wird ebenfalls angewendet, falls aktiviert.
Argumente:
book_id (number, erforderlich): ID des Buches, in dem die Seite erstellt werden soll.
page_title (string, erforderlich): Der Haupttitel der neuen Seite (wird als H1 gemäß Styleguide formatiert).
sections (array von Objekten, erforderlich, min=1): Die Inhaltsabschnitte der Seite. Jedes Objekt muss enthalten:
title (string): Titel des Abschnitts (wird als H2 gemäß Styleguide formatiert).
content (string): Inhalt des Abschnitts (Markdown ist hier erlaubt und wird direkt übernommen).
type (string, optional, default="normal"): Typ des Abschnitts ("normal", "info", "warning") für optionale Icons (gemäß Styleguide).
tags (array, optional): Optionale, manuell zu setzende Tags (Format wie bei buch_erstellen). Werden mit automatisch generierten Tags kombiniert.
include_logo (boolean, optional, default=false): Fügt das Logo (aus STYLEGUIDE_LOGO_MARKDOWN) am Anfang der Seite ein, falls konfiguriert.
chapter_id (number, optional): Optionale ID eines Kapitels innerhalb des Buches zur Zuordnung.
sprache (string, optional): Sprache für Statusmeldungen (z.B. 'de', 'en'). Standard: Server-Konfig (MCP_DEFAULT_LANGUAGE).
Rückgabe: Eine Erfolgsmeldung mit ID, Name und URL der erstellten Seite.
Tool: seite_aktualisieren
Beschreibung: Aktualisiert eine bestehende Seite in Bookstack. Ersetzt den gesamten bisherigen Seiteninhalt durch den neu generierten Markdown basierend auf den übergebenen sections und den Styleguide-Einstellungen. Auto-Tagging wird erneut angewendet.
Argumente:
page_id (number, erforderlich): Die ID der zu aktualisierenden Seite.
page_title (string, optional): Wenn angegeben, wird der Seitentitel aktualisiert. Sonst bleibt der alte Titel erhalten.
sections (array von Objekten, erforderlich, min=1): Die neuen Inhaltsabschnitte der Seite (Format wie bei seite_erstellen). Diese ersetzen den gesamten alten Inhalt.
tags (array, optional): Ein neuer Satz von manuellen Tags. Wenn angegeben, werden alle vorherigen manuellen Tags der Seite ersetzt. Automatisch generierte Tags werden basierend auf dem neuen Inhalt neu ermittelt und hinzugefügt.
include_logo (boolean, optional, default=false): Fügt das Logo am Anfang der Seite ein.
sprache (string, optional): Sprache für Statusmeldungen (z.B. 'de', 'en'). Standard: Server-Konfig (MCP_DEFAULT_LANGUAGE).
Rückgabe: Eine Erfolgsmeldung mit ID, Name und URL der aktualisierten Seite.
Anwendungsbeispiele & Prompts
Hier sind Beispiele, wie die Interaktion mit einem MCP Client wie Claude aussehen könnte:

Szenario 1: Informationen suchen

Dein Prompt: "Suche alle Anleitungen im Alpenlexikon." (Annahme: "Alpenlexikon" ist ein Buch mit dem Slug alpenlexikon)
Claude könnte seiten_suchen aufrufen:
use_mcp_tool with:
  server_name: "bookstack"
  tool_name: "seiten_suchen"
  arguments: { "query": "Anleitung {book:alpenlexikon}" }
Szenario 2: Seite lesen und zusammenfassen

Dein Prompt: "Fasse mir den Inhalt der Bookstack Seite mit ID 78 zusammen."
Claudes Plan: Erst Inhalt holen, dann zusammenfassen.
Claude ruft seiteninhalt_abrufen auf:
use_mcp_tool with:
  server_name: "bookstack"
  tool_name: "seiteninhalt_abrufen"
  arguments: { "page_id": 78 }
Claude erhält JSON mit Inhalt und fasst content zusammen.
Szenario 3: Schnell eine neue Seite für Notizen erstellen

Dein Prompt: "Erstelle eine neue Seite im Buch 'Projekte' (ID: 12) namens 'Meeting 21.04.'. Inhalt: Teilnehmer waren A, B, C. Beschlossen wurde X und Y."
Claude ruft seite_erstellen auf:
use_mcp_tool with:
  server_name: "bookstack"
  tool_name: "seite_erstellen"
  arguments: {
    "book_id": 12,
    "page_title": "Meeting 21.04.",
    "sections": [
      {
        "title": "Notizen", // Claude wählt einen generischen Titel
        "content": "Teilnehmer waren A, B, C.\nBeschlossen wurde X und Y."
      }
    ],
     "tags": [{"name": "Meeting"}, {"name": "Protokoll"}] // Claude fügt evtl. passende Tags hinzu
  }
Szenario 4: Eine strukturierte Anleitung mit Styling erstellen

Dein Prompt: "Erstelle eine neue Seite im Buch 'Anleitungen' (ID: 5). Titel: 'VPN Einrichtung (Mac)'. Bitte mit Logo. Erster Abschnitt 'Download' mit Inhalt 'Lade den Client hier herunter.'. Zweiter Abschnitt 'Installation' als Info markieren, Inhalt 'Doppelklicke die DMG-Datei und folge den Schritten.'. Dritter Abschnitt 'Verbindung' mit Inhalt 'Öffne die App und klicke Verbinden.'."
Claude ruft seite_erstellen auf:
use_mcp_tool with:
  server_name: "bookstack"
  tool_name: "seite_erstellen"
  arguments: {
    "book_id": 5,
    "page_title": "VPN Einrichtung (Mac)",
    "include_logo": true,
    "sections": [
      { "title": "Download", "content": "Lade den Client [hier](link) herunter." },
      { "title": "Installation", "content": "Doppelklicke die DMG-Datei und folge den Schritten.", "type": "info" },
      { "title": "Verbindung", "content": "Öffne die App und klicke Verbinden." }
    ],
    "tags": [{"name": "Anleitung"}, {"name": "VPN"}, {"name": "MacOS"}]
  }
Ergebnis: Der Server generiert Markdown mit Logo, H1/H2, Info-Icon und fügt ggf. Auto-Tags/Footer hinzu.
Szenario 5: Inhalt einer Seite erweitern (Mehrstufig)

Dein Prompt: "Füge zur VPN-Anleitung für Mac (Seite 150) einen Warnhinweis hinzu: Titel 'Sicherheit', Inhalt 'Trenne die VPN-Verbindung, wenn sie nicht benötigt wird!'."
Claudes Plan: Inhalt holen -> Abschnitte rekonstruieren -> Neuen Abschnitt hinzufügen -> Seite mit allen Abschnitten aktualisieren.
1. Claude ruft seiteninhalt_abrufen auf:
use_mcp_tool with: server_name: "bookstack", tool_name: "seiteninhalt_abrufen", arguments: { "page_id": 150 }
2. Claude verarbeitet die Antwort (Inhalt): Claude erhält den Markdown der Seite. Dies ist der anspruchsvollste Teil für die KI: Sie muss den Markdown analysieren, um die bestehende Abschnittsstruktur (title, content, type) zu extrahieren oder zu rekonstruieren. Alternativ könnte ein Mensch diesen Schritt unterstützen oder die Struktur vereinfacht werden.
3. Claude erstellt die neue sections-Liste (Annahme):
JavaScript

// Claude interne Logik (Beispiel)
const existingSections = [
    { title: "Download", content: "...", type: "normal" },
    { title: "Installation", content: "...", type: "info" },
    { title: "Verbindung", content: "...", type: "normal" }
];
const newSection = { title: "Sicherheit", content: "Trenne die VPN-Verbindung, wenn sie nicht benötigt wird!", type: "warning" };
const allSectionsForUpdate = [...existingSections, newSection];
4. Claude ruft seite_aktualisieren auf:
use_mcp_tool with:
  server_name: "bookstack"
  tool_name: "seite_aktualisieren"
  arguments: {
    "page_id": 150,
    // page_title wird nicht geändert
    "sections": allSectionsForUpdate // Übergibt die komplette, neue Liste
    // Manuelle Tags werden ggf. geleert, wenn hier nichts übergeben wird.
  }
Ergebnis: Der Server generiert das Markdown für die neue, vollständige Abschnittsliste neu und überschreibt den alten Inhalt.
Anpassungen (Entwickler-Anleitung)
Der Server ist modular aufgebaut, um Anpassungen zu erleichtern:

Styleguide ändern:
Konfiguriere die STYLEGUIDE_...-Variablen in deiner .env-Datei oder MCP-Client-Konfiguration.
Für tiefgreifende Änderungen an der Markdown-Struktur, passe die Funktion generateStyledMarkdown in src/tools/markdown_generator.ts an.
Automatisches Tagging anpassen:
Aktiviere/Deaktiviere und konfiguriere Keywords über AUTO_TAGS_ENABLED und AUTO_TAGS_KEYWORDS in der Konfiguration.
Ändere die Logik zur Keyword-Erkennung oder Tag-Generierung in src/tools/tag_generator.ts.
Rechtlichen Footer ändern:
Aktiviere/Deaktiviere über AUTO_LEGAL_FOOTER_ENABLED.
Ändere den Text (inkl. Markdown) in STYLEGUIDE_LEGAL_FOOTER_MD.
Die Logik zum Anhängen ist in src/tools/markdown_generator.ts.
Neue Tools hinzufügen:
Definiere ein Zod-Schema für die Tool-Argumente in src/common/schemas_tools.ts.
Erstelle eine neue Handler-Datei in src/tools/ (z.B. mein_neues_tool.ts).
Implementiere darin das ToolSchema-Objekt (mit name, description, inputSchema: zodToJsonSchema(...)) und die Handler-Funktion, die die Logik ausführt (ggf. unter Nutzung von BookStackAPI aus src/services/bookstack_api.js).
Importiere Schema und Handler in src/server.ts und registriere sie in den ListToolsRequestSchema- und CallToolRequestSchema-Handlern.
API-Kommunikation ändern:
Modifiziere die Methoden in der Klasse BookStackAPI in src/services/bookstack_api.ts.
Mehrsprachigkeit:
Integriere eine i18n-Bibliothek (z.B. i18next).
Erstelle Locale-Dateien (z.B. locales/de.json, locales/en.json).
Passe die Handler an, um Beschreibungen, Meldungen und generierte Texte basierend auf der Sprache (Standard oder Tool-Argument sprache) aus den Locales zu laden.
Projektstruktur
mcp-bookstack/
├── build/          # Kompilierter JavaScript Code
├── src/
│   ├── common/       # Geteilte Typen & Schemas (types.ts, schemas_api.ts, schemas_tools.ts, utils.ts)
│   ├── config/       # Konfigurationslogik (styleguide.ts)
│   ├── services/     # API-Kommunikation (bookstack_api.ts)
│   ├── tools/        # Einzelne Tool-Logik (*.ts, markdown_generator.ts, tag_generator.ts)
│   ├── main.ts       # Haupteinstiegspunkt der Anwendung
│   └── server.ts     # MCP Server Klasse & Request Handler
├── .env            # Lokale Konfigurationsdatei (nicht versionieren!)
├── .gitignore      # Git Ignore-Regeln
├── package.json    # Projektdefinition & Abhängigkeiten
├── package-lock.json # Genaue Abhängigkeitsversionen
├── tsconfig.json   # TypeScript Compiler-Optionen
├── smithery.yaml   # Konfiguration für Smithery Deployment
└── README.md       # Diese Datei
Entwicklungs-Skripte
npm run build: Kompiliert TypeScript nach JavaScript (build/).
npm start: Startet den kompilierten Server (node build/main.js).
npm run watch: Startet den TypeScript-Compiler im Watch-Modus (kompiliert bei Änderungen automatisch neu).
npm run inspector: Startet den MCP Inspector zum interaktiven Testen der Tools (Server muss gebaut sein).
Lizenz
MIT License


Quellen und ähnliche Inhalte

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant