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 |