Markus Michalski FAQ

StoryForge: MCP-Tools

Referenz aller 95 Tools des StoryForge-MCP-Servers, gruppiert nach Aufgabe, mit Parametern und Zweck. Das GateResult-Format der Prüf-Tools wird erklärt.

StoryForge: MCP-Tools

English Version

← Zurück zur Übersicht


Der MCP-Server storyforge-mcp stellt 95 Tools bereit. Sie sind in den Modulen unter servers/storyforge-server/routers/ definiert. Die Skills rufen sie selbst auf, du musst sie nicht von Hand ansprechen. Ein Fragezeichen hinter einem Parameter bedeutet: optional.

Buch-, Autoren- und Serien-Zustand (Status, Regeln, Canon, Session, Cache) läuft über diese Tools. Die Prosa selbst schreiben Skills direkt mit den Datei-Werkzeugen von Claude Code (Write, Edit), zum Beispiel chapter-writer in die draft.md und export-engineer in die Export-Dateien. Deshalb prüfen die Hooks jede solche Änderung.


Bücher und Kapitel

Tool Zweck
list_books() Alle Buchprojekte mit Status und Wortzahl
find_book(query) Buch per Slug oder Titel finden (Teiltreffer)
get_book_full(slug) Komplette Buchdaten inklusive Kapitel und Figuren
get_book_progress(slug) Kapitelstatus, Wortzahlen, Fertigstellungsgrad
list_chapters(book_slug) Alle Kapitel mit Status und Wortzahl
count_words(book_slug, chapter_slug?) Wörter eines Kapitels oder des ganzen Buchs
create_book_structure(title, author?, genres?, book_type?, book_category?, language?, target_word_count?, series_slug?) Neues Buchprojekt mit Verzeichnisgerüst; author steht immer im README-Frontmatter; mit series_slug wird eine Slug-Kollision mit einem bereits vorhandenen gleichnamigen Buch an anderer Stelle (Einzelband oder anderer Serienband) abgelehnt
create_chapter(book_slug, title, number, pov_character?, summary?) Neues Kapitelverzeichnis mit README und leerem Draft; bei Fiction wird zusätzlich die Rohfassung des Chapter Writers angelegt
create_character(book_slug, name, role?, description?) Neue Figurendatei (Fiction)
start_chapter_draft(book_slug, chapter_slug) Kapitel als aktiv gedraftet markieren

Briefs vor dem Schreiben und Prüfen

Tool Zweck
get_chapter_writing_brief(book_slug, chapter_slug) Gebündeltes JSON für chapter-writer (Story-Anker, Timelines, Figuren, Regeln, Tonregeln, Callbacks, Banlist, Taktik)
get_review_brief(book_slug, chapter_slug) Datenbasis für chapter-reviewer
get_continuity_brief(book_slug) Voller Buchzustand für continuity-checker
get_canon_brief(book_slug, chapter_slug, pov_character?, scope_chapters?) Begrenzter Canon-Auszug für ein Kapitel
get_current_story_anchor(book_slug, chapter_slug?) Story-Zeitanker und Zuordnung relativer Zeitphrasen
get_recent_chapter_timelines(book_slug, n?) Intra-Day-Zeitraster der letzten N Kapitel
verify_tactical_setup(book_slug, scene_outline_text, characters_present) Prüfung von Kampf- und Reiseszenen (Laufordnung)
register_chapter_promises(book_slug, chapter_slug, promises) Setup-Elemente eines Kapitels speichern
get_chapter_promises(book_slug, chapter_slug) Gespeicherte Promises eines Kapitels lesen
add_canon_fact(book_slug, chapter_num, subject, fact, book_num?, domain?, is_revision?, old_value?, revision_impacts?) Canon-Fakt in der Datenbank speichern

Qualitätsprüfungen

Die meisten dieser Tools liefern ein einheitliches Ergebnis (siehe unten). Ausnahmen sind scan_chapter_ai_tells und check_replacement_text.

Tool Zweck
validate_chapter(book_slug, chapter_slug) Dieselben Regeln wie der Prosa-Hook, als Tool
scan_manuscript(book_slug, min_occurrences?, write_report?, max_findings_per_category?) Kapitelübergreifender Scan auf Wiederholungen und Prosa-Muster
validate_timeline_consistency(book_slug) Zeitdrift zwischen Kapiteln gegen plot/timeline.md
verify_callbacks(book_slug) Callback-Register gegen alle gedrafteten Kapitel
analyze_plot_logic(book_slug, scope?, chapter_slug?) Plot-Hole-Erkennung (siehe Technische Details)
check_memoir_consent(book_slug) Einwilligungsstatus aller Personen im Memoir
validate_book_structure(book_slug) Vollständigkeit der Projektstruktur
run_pre_export_gates(book_slug) Export-Vorprüfung
run_quality_gates(book_slug) Alle Prüfer ausführen und zusammenfassen
scan_chapter_ai_tells(book_slug, chapter_slug, author_slug?, em_dash_per_1k_limit?) Deterministischer Vorab-Scan auf AI-Konstruktionen für chapter-humanizer (eigenes Ergebnisformat, kein GateResult)
check_replacement_text(book_slug, text, author_slug?) Prüft einen Ersatzvorschlag gegen die Humanizer-Muster (eigenes Ergebnisformat, kein GateResult)

Das GateResult

Die Prüf-Tools außer scan_chapter_ai_tells und check_replacement_text liefern ihr Ergebnis unter dem Schlüssel gate, neben ihren tool-spezifischen Feldern. Der Umschlag enthält einen Status PASS, WARN oder FAIL, dazu reasons, findings und metadata. Bei run_pre_export_gates steht außerdem das ältere Feld verdict (READY oder BLOCKED) auf oberster Ebene, es wiederholt sich in gate.metadata. Dazu kommt die Liste der einzelnen Gates.

Der globale Katalog hinter scan_chapter_ai_tells und check_replacement_text gilt nur für Bücher auf Englisch; bei anderer Buchsprache liefern beide eine Warnung und keine Katalog-Treffer. Verbotsmuster aus plot/tone.md werden dabei mitgeprüft, Punkte ohne Backticks erscheinen nur als Hinweis. Details dazu stehen unter Technische Details.


Review-Feedback und Entwurfsstände

Diese Tools protokollieren geprüfte Review-Entscheidungen und halten Entwurfsstände von Fiction-Kapiteln fest. Aufgerufen werden sie von chapter-voice-harvest und den übrigen Prüf-Skills, du musst sie nicht von Hand ansprechen.

Tool Zweck
log_review_feedback(book_slug, chapter_slug, source_skill, decision, comment_text?, before_text?, after_text?, proposal_text?, dimension?, direction?, normalized_rule?) Eine geprüfte Rückmeldung protokollieren (source_skill: writer, reviewer, fixer, rewriter, humanizer, proofreader oder self_edit; decision: accepted, reworked, rejected oder self_edit); Doppelte werden ignoriert; bei Memoir wird kein Rohtext gespeichert, Einordnung und Regel sind Pflicht
list_pending_feedback(book_slug, chapter_slug?) Offene Einträge des Autors, auch aus früheren Kapiteln und Büchern
set_feedback_classification(book_slug, feedback_id, dimension, direction, normalized_rule) Einen offenen Eintrag nach dem festen Vokabular einordnen
get_voice_candidates(author_slug, book_slug?) Übernahme-Kandidaten, Konflikte und zurückgestellte Muster aus den eingeordneten Einträgen
mark_feedback_harvested(book_slug, ids) Einträge als übernommen schließen
discard_feedback(book_slug, ids) Einträge als verworfen schließen
get_self_edit_hunks(book_slug, chapter_slug, offset?) Deine eigenen Änderungen an draft.md gegenüber der zuletzt von Claude geschriebenen Fassung (höchstens 20 je Aufruf; nur Fiction)
refresh_draft_baseline(book_slug, chapter_slug) Aktuelle draft.md als neue Vergleichsfassung merken
list_raw_drafts(book_slug) Kapitel mit Rohfassung des Chapter Writers auflisten (nur Fiction)
read_raw_draft(book_slug, chapter_slug) Rohfassung eines Kapitels lesen

Den vollständigen Ablauf beschreibt der Abschnitt Chapter Voice Harvest im Quality System.


Buchregeln und Book-CLAUDE.md

Regeln, Workflows und Callbacks eines Buchs liegen in der Datenbank. Die CLAUDE.md im Buchverzeichnis dient als lesbare Ansicht und trägt den Frontmatter-Wert linter_mode.

Tool Zweck
init_book_claudemd(book_slug, book_title?, pov?, tense?, genre?, writing_mode?, overwrite?) CLAUDE.md aus Vorlage anlegen
get_book_claudemd(book_slug) CLAUDE.md lesen
append_book_rule(book_slug, text, validate?) Regel anhängen
list_book_rules(book_slug) Alle Regeln auflisten
update_book_rule(book_slug, rule_index?, rule_match?, new_text?, delete?, validate?, include_callbacks?) Regel ersetzen oder entfernen
lint_book_rules(book_slug) Regeln auf Scanner-Blindstellen prüfen
append_book_workflow(book_slug, text) Workflow-Anweisung anhängen
append_book_callback(book_slug, text) Callback anhängen
sync_book_claudemd_from_text(book_slug, text) Einträge mit Präfix Regel:, Workflow:, Callback: aus Text extrahieren und speichern
update_character_snapshot(book_slug, character_slug, snapshot_json, book_category?) Figurenzustand am Kapitelende speichern

Autorenprofile

Tool Zweck
list_authors() Alle Profile
get_author(slug) Vollständiges Profil inklusive Writing Discoveries
create_author(name, genres?, tone?, voice?, tense?) Neues Profil mit Vorlagen-Dateien, legt 19 Standard-AI-Tell-Wörter als donts an; bei DB-Fehler enthält die Antwort ein warning
update_author(slug, field, value) Feld im Profil-Frontmatter ändern; normalisiert author_writing_mode: structured→outliner, accumulative→plantser
delete_author(slug, force?) Profil samt Erkenntnissen löschen; entfernt auch die protokollierten Review-Rückmeldungen des Autors; verweigert, solange Bücher darauf verweisen, außer mit force
harvest_book_rules(book_slug, author_slug?) Regeln eines Buchs als Promotions-Kandidaten klassifizieren
write_author_discovery(author_slug, section, text, book_slug, year_month?, validate?, example?, genres?, universal?) Erkenntnis speichern; bei einem Memoir-Buch ohne example und ohne Namen von Personen aus dem Buch
write_author_banned_phrase(author_slug, phrase, reason?) Verbotene Phrase speichern
add_vocabulary_entry(author_slug, entry_type, text, source?) Vokabular-Eintrag speichern
delete_discovery(author_slug, discovery_type, text) Erkenntnis per Textvergleich entfernen
update_discovery_metadata(author_slug, book_slug, source_genres) source_genres aller Erkenntnisse eines Buchs setzen
extract_text_from_file(file_path) Text aus PDF, EPUB, DOCX, TXT oder MD für die Stilanalyse

Ideen, Genres und Craft-Referenzen

Tool Zweck
create_idea(title, genres?, logline?, concept?, book_category?) Neue Ideen-Datei
list_ideas(status?, genre?) Ideen mit Filtern
get_idea(slug) Inhalt einer Idee
update_idea(slug, field, value) Frontmatter-Feld ändern
promote_idea(slug, book_slug) Idee als promoted markieren und mit dem Buch verknüpfen
list_genres() Alle Genres aus Plugin- und eigenem Verzeichnis, bei gleichem Namen hat das eigene Genre Vorrang
get_genre(name) Genre-README aus Plugin- oder eigenem Verzeichnis, das eigene Genre hat Vorrang
list_craft_references() Alle Craft- und Genre-Referenzen
get_craft_reference(name) Eine Referenz laden, zum Beispiel story-structure; chapter-writer, plot-architect und book-conceptualizer rufen sie zusätzlich je Genre als {genre}-craft auf

Memoir, Szenen und Cover

Tool Zweck
create_person(book_slug, name, relationship, person_category, consent_status?, anonymization?, real_name?, description?) Profil einer realen Person im Memoir
set_memoir_structure_type(book_slug, structure_type) Strukturtyp speichern: chronological, thematic, braided oder vignette
create_scene_list(book_slug, scenes) plot/scenes.md anlegen oder überschreiben
update_scene(book_slug, scene_number, chapter?, pov?, summary?, est_words?, status?) Eine Szenenzeile ändern
import_cover_image(book_slug, source_path, is_final?) Extern erzeugtes Cover ins Projekt kopieren
get_cover_image(book_slug) Cover für den Export ermitteln
get_post_processing_config() Konfiguriertes Typografie-Werkzeug

Serien

Tool Zweck
create_series(title, genres?, planned_books?, author?) Serienverzeichnis mit series.yaml
add_book_to_series(series_slug, book_slug, number, status?) Buch einer Serie zuordnen
create_character_tracker(series_slug, name, slug, role, recurs_in, species?, tracker_type?, book_slug?) Serien-Figurentracker aus Vorlage
list_series_trackers_for_book(series_slug, band) Tracker, die im Band vorkommen
read_character_for_harvest(book_slug, character_slug, book_category?) Figurendatei für die Ernte lesen
write_series_evolution_section(series_slug, tracker_slug, band, kind, content, log_message, date?) Start-, Ende- oder geplanten Wert in einen Tracker schreiben
copy_recurring_chars_to_new_book(series_slug, prev_book_slug, new_book_slug, new_band, book_category?) Wiederkehrende Figuren ins neue Buch kopieren
read_tracker_for_bootstrap(series_slug, tracker_slug, prev_band, new_band, prev_book_slug?) Bootstrap-Daten eines Trackers
bootstrap_character_for_new_book(series_slug, tracker_slug, prev_book_slug, new_book_slug, prev_band, snapshot_json, log_message?, book_category?, date?) Wiederkehrende Figur für das neue Buch anlegen

Zustand und Pfade

Tool Zweck
get_session() Aktuellen Session-Kontext lesen
update_session(last_book?, last_chapter?, last_phase?, active_author?) Session-Kontext speichern
get_review_handle_config() Konfigurierten Review-Handle
rebuild_state() State-Cache aus dem Dateisystem neu aufbauen; hebt den Buchstatus bei Bedarf in der README an
update_field(file_path, field, value) Feld in Markdown-Frontmatter oder YAML-Datei ändern
resolve_path(book_slug, component?, sub_path?) Pfad einer Buchkomponente auflösen
get_book_category_dir(category) Wissensverzeichnis einer Buchkategorie