story-architect-mcp
An MCP server for AI-assisted novel writing that manages project structure, tracks plot holes and foreshadowing, audits timeline continuity, and provides writing analytics and prompt generation.
README
story-architect-mcp
<div align="center">
A Model Context Protocol (MCP) Server for AI-Assisted Long-Form Fiction Writing, Worldbuilding, Continuity Auditing, and Novel Architecture.
Key Features β’ Novel-as-Code β’ Quick Start β’ Client Setup β’ API Reference
</div>
π Overview & Core Philosophy
Writing long-form fiction (epics, thrillers, fantasy sagas, or multi-volume series) with AI assistance introduces severe context degradation, narrative drift, and structural inconsistencies. As manuscripts expand to tens or hundreds of thousands of words, LLMs easily forget minor lore points, character arcs, timeline logic, and voice guidelines.
story-architect-mcp solves this problem by pioneering the "Novels as Codebases" (NaC) paradigm. It bridges your AI writing assistant directly to a structured fiction repository via the Model Context Protocol (MCP).
flowchart TD
subgraph Client["MCP Clients (Claude Desktop / Cursor / Antigravity / Windsurf)"]
AI["AI LLM Agent"]
end
subgraph MCP["story-architect-mcp Server"]
Tools["20 MCP Tools"]
Res["6 Resources & 3 Templates"]
Prompts["5 Workflow Prompts"]
end
subgraph Storage["Novel Workspace (File System)"]
StoryMeta[".story/ (Config, Timelines, State)"]
Bible["bible/ (Characters, World, Factions)"]
Manuscript["manuscript/ (Arcs & Chapters)"]
Outline["outline/ (Scene Beats & Plot Arcs)"]
end
AI <-->|JSON-RPC via Stdio| MCP
MCP <-->|Read / Write / Snapshot| Storage
π‘ The "Novels as Codebases" Paradigm
| Software Engineering Concept | Novel Architecture Equivalent | story-architect-mcp Implementation |
|---|---|---|
| Modules & Packages | Arcs & Chapters | Standardized manuscript/arc_01/ch_001.md structure |
| Interfaces & Schemas | Character Bible & Lore | Frontmatter-backed Markdown files in bible/ |
| Compiler & Linter | Continuity & Pacing Auditing | story_detect_timeline_conflicts, story_analyze_voice |
| Bug Tracker | Plot Hole & Chekhov's Gun Registry | story_log_plot_hole, story_log_setup, story_log_payoff |
| Git & Rollback | Point-in-Time Snapshots | story_snapshot and story_rollback safety engine |
| Dependency Injection | Context Budgeting | story_query_context (Graph Memory + Semantic Search) |
β¨ Key Features
π§Ή 1. Messy Project Rescue & Auto-Refactoring
- Smart File Classifier (
story_scan_messy_project): Scans unorganized manuscript folders, auto-detects character encodings (UTF-8, Windows-1252, ISO-8859-1), computes content similarity matrices, and tags files (Manuscript,Lore,Notes,Outline) with confidence scores. - Automated Refactoring (
story_auto_refactor_structure): Reorganizes scattered files into a clean project structure with safe dry-run previews (confirm: false). - Snapshot & Rollback Protection (
story_snapshot/story_rollback): Creates automatic point-in-time state backups prior to file operations.
π 2. Continuity Auditing & Plot Hole Tracking
- Plot Hole Manager (
story_log_plot_hole/story_resolve_plot_hole): Tracks unresolved plot holes, severity levels, and proposed fixes directly in.story/unresolved_holes.json. - Chekhovβs Gun Tracker (
story_log_setup/story_log_payoff): Ensures planted clues or foreshadowed events are resolved before the story concludes. - Timeline Conflict Detector (
story_detect_timeline_conflicts): Audits character ages, event order, and absolute dates, generating interactive Mermaid Gantt Charts.
π§ 3. Knowledge Graph & Story Bible Integration
- Automatic Entity Extraction (
story_extract_entities_to_bible): Parses chapter drafts to automatically create structured Markdown profiles inbible/characters/andbible/world/. - Dynamic Relationship Graph (
story_map_relationships): Tracks changing relationships between characters across chapters into.story/relationships.json. - Token-Budget Context Querying (
story_query_context): Generates optimized context packages for LLMs by combining graph memory traversal with token budget constraints.
π 4. Pacing, Voice Drift & Analytics
- Pacing Inspector (
story_analyze_pacing): Measures Action / Dialogue / Description distribution and scene tension curves across chapters. - Voice Drift Monitor (
story_analyze_voice): Evaluates sentence complexity, vocabulary richness, and POV/tense compliance against your.story/style_guide.json. - Writing Statistics (
story_stats): Real-time word counts, writing velocity, and estimated project completion dates.
βοΈ 5. AI Prompt Generator & Manuscript Export
- Context-Rich Prompt Builder (
story_generate_writing_prompt): Automatically compiles lore, recent chapter endings, outline beats, and active Chekhov's guns into an optimized writing prompt. - Multi-Format Export (
story_export): Compiles manuscript files into Markdown, EPUB, PDF, or DOCX formats with custom metadata and Table of Contents.
π Standard Project Architecture
story-architect-mcp organizes novel projects into a standardized layout:
my-epic-novel/
βββ .story/ # Project metadata & state tracking
β βββ config.json # Title, Author, Genre, POV, Tense
β βββ status.json # Word counts & progress tracking
β βββ timeline.json # Event chronology & dates
β βββ unresolved_holes.json # Active plot hole registry
β βββ relationships.json # Character relationship matrix
β βββ foreshadowing.json # Chekhov's gun tracker (Setups & Payoffs)
β βββ style_guide.json # Voice, tone, sentence rules & reference excerpts
β βββ snapshots/ # Version snapshots for rollback protection
βββ bible/ # Story Bible & Worldbuilding Lore
β βββ characters/ # Character profiles with YAML frontmatter
β βββ world/ # Locations, factions, magic/tech systems
β βββ subplots/ # Subplot tracking & arc objectives
βββ manuscript/ # Official Manuscript Drafts
β βββ arc_01/
β βββ ch_001.md
β βββ ch_002.md
βββ outline/ # Master Outline & Chapter Beats
β βββ synopsis.md # High-level story synopsis
β βββ themes.md # Themes & key motifs
β βββ arc_01/
β βββ overview.md # Arc overview
β βββ ch_001_outline.md # Scene beats per chapter
βββ drafts_raw/ # Loose, unorganized writing snippets
π Quick Start
1. Installation
Install globally via npm:
npm install -g story-architect-mcp
Or build from source:
git clone https://github.com/PTCuong-1102/story-architect-mcp.git
cd story-architect-mcp
npm install
npm run build
βοΈ MCP Client Configuration
Add story-architect-mcp to your favorite MCP client configuration.
π‘ Zero-Config Project Switching: You do not need to hardcode your novel path in configuration args. Once the server starts, the AI agent can set or switch projects at runtime using
story_set_project.
Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"story-architect": {
"command": "npx",
"args": ["-y", "story-architect-mcp"]
}
}
}
Antigravity / Cursor / Windsurf / VS Code (mcp.json)
{
"mcpServers": {
"story-architect": {
"command": "node",
"args": ["/absolute/path/to/story-architect-mcp/dist/index.js"]
}
}
}
Initializing Default Path via CLI Argument (Optional)
If you prefer to load a specific project on server startup, pass the directory as a CLI argument:
{
"mcpServers": {
"story-architect": {
"command": "npx",
"args": ["-y", "story-architect-mcp", "/path/to/your/novel-project"]
}
}
}
π οΈ MCP API Reference
1. MCP Tools (20 Tools)
πΉ Project & Structure Management
| Tool Name | Key Parameters | Description |
|---|---|---|
story_set_project |
projectPath |
Sets or switches the target novel project directory dynamically at runtime. |
story_get_project_info |
none | Returns status, path, configuration, and word count of the active project. |
story_init |
template, title, author, genre, pov, tense |
Initializes project directory with predefined genre templates (fantasy-epic, mystery-thriller, romance-modern). |
story_stats |
none | Computes total manuscript word count, writing velocity, and estimated completion date. |
πΉ Rescue & Refactoring Suite
| Tool Name | Key Parameters | Description |
|---|---|---|
story_scan_messy_project |
path |
Scans unorganized directories, detects encoding, and classifies loose files. |
story_auto_refactor_structure |
strategy, confirm |
Refactors messy files into the standard novel structure (supports dry-run). |
story_snapshot |
description |
Creates a point-in-time state snapshot in .story/snapshots/. |
story_rollback |
snapshot_id, confirm |
Restores project state to a designated snapshot. |
πΉ Continuity & Management Suite
| Tool Name | Key Parameters | Description |
|---|---|---|
story_log_plot_hole |
title, description, severity, location, suggested_fix |
Registers an unresolved narrative plot hole or inconsistency. |
story_resolve_plot_hole |
hole_id, resolution_note |
Resolves or dismisses a logged plot hole. |
story_log_setup |
title, description, chapter, character |
Logs a foreshadowing setup (Chekhov's Gun). |
story_log_payoff |
setup_id, payoff_chapter, description |
Marks a foreshadowing setup as paid off. |
story_list_unfired |
none | Lists all planted foreshadowing items that haven't been resolved yet. |
πΉ Graph Memory & Context Suite
| Tool Name | Key Parameters | Description |
|---|---|---|
story_extract_entities_to_bible |
chapter_path, confirm |
Automatically extracts characters and locations from chapter drafts into bible/. |
story_map_relationships |
chapter_range |
Builds and updates inter-character relationship matrix across chapters. |
story_query_context |
query, budget_tokens |
Extracts context packages using knowledge graph memory + vector search. |
πΉ Analysis & Prompt Generator Suite
| Tool Name | Key Parameters | Description |
|---|---|---|
story_detect_timeline_conflicts |
arc_id |
Audits event chronology for conflicts and renders a Mermaid Gantt timeline. |
story_analyze_pacing |
chapter_range |
Computes Action / Dialogue / Description ratio and scene tension curves. |
story_analyze_voice |
chapter_range |
Checks sentence length, vocabulary richness, and POV/tense compliance against style guide. |
story_generate_writing_prompt |
target_chapter_id, strategy |
Compiles lore, outlines, recent endings, and style rules into an optimized prompt. |
story_export |
format, output_path, include_outline |
Compiles manuscript into Markdown, EPUB, PDF, or DOCX formats. |
2. MCP Resources (6 Static & 3 Templates)
Static Resources
| Resource URI | Description | MIME Type |
|---|---|---|
story://status |
Live project word counts, progress, and status | application/json |
story://config |
Project settings (Title, Author, Genre, POV, Tense) | application/json |
story://timeline |
Story timeline events and chronological entries | application/json |
story://holes |
List of unresolved plot holes and continuity warnings | application/json |
story://foreshadowing |
Unfired Chekhov's guns and foreshadowing setups | application/json |
story://relationships |
Character relationship matrix and interaction states | application/json |
Resource Templates
| Template URI | Description | MIME Type |
|---|---|---|
story://bible/characters/{name} |
Profile, frontmatter, and lore for a specific character | text/markdown |
story://bible/world/{location} |
Description, history, and lore for a location or faction | text/markdown |
story://manuscript/{arc}/{chapter} |
Manuscript text for a specific chapter in an arc | text/markdown |
3. MCP Workflow Prompts (5 Prompts)
| Prompt Name | Required Arguments | Workflow Description |
|---|---|---|
write-next-chapter |
arc, chapter |
Gathers lore, preceding chapter endings, outline beats, and style rules into an optimized prompt for writing the next chapter. |
character-deep-dive |
name |
Aggregates a character's Bible entry alongside all scene appearances across the manuscript for deep analysis. |
continuity-audit |
arc |
Scans an entire arc to detect timeline errors, term inconsistencies, and unresolved setups. |
rescue-project |
projectPath (optional) |
Step-by-step guided workflow for scanning, previewing, and refactoring chaotic manuscript folders. |
brainstorm-scene |
arc, chapter |
Generates 3β5 distinct scene execution options based on current outline and plot state. |
π‘οΈ Data Integrity & Safety Protocol
Writing a novel takes months or years; story-architect-mcp is designed with strict data preservation measures:
- Dry-Run Mode First (
confirm: false): All destructive or structural refactoring tools run in Preview mode by default. You can inspect exact proposed file moves and edits before confirming execution (confirm: true). - Automated Pre-Refactor Snapshots: Executing structural changes automatically triggers
story_snapshotto create a rollback checkpoint prior to file operations. - Transparent File Formats: All metadata is stored as standard JSON in
.story/, and all story content is stored in plain Markdown with YAML frontmatterβensuring zero vendor lock-in.
π€ Contributing
Contributions, bug reports, and feature requests are welcome!
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
π License
Distributed under the MIT License. See LICENSE for more information.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.