Narracore Screenplay Formatter
RemoteAbout Narracore Screenplay Formatter
Narracore Screenplay Formatter is a remote MCP server for screenplay formatting and related film and story workflows. It serves writers and AI agents with structured screenplay output, PDF generation, film-breakdown tools, and continuity tools that keep story text and state with the user.
Key features
- 01Format screenplay text and generate print-ready PDFs
- 02Analyze screenplay scenes, characters, and dialogue
- 03Diagnose scenes and convert to or from Fountain
- 04Build and check structured video prompts
- 05Validate and compile film breakdowns
- 06Prepare and apply story continuity state
Use cases
- 01Turn rough screenplay text into a formatted PDF
- 02Review screenplay structure and scene shootability
- 03Prepare video prompts and check them against a screenplay
- 04Compile a film breakdown without uploading footage
- 05Carry story continuity across long conversations
MCP support
Exposes 14 screenplay, film-breakdown, story-continuity, and account tools through a remote Streamable HTTP MCP endpoint. MCP-compatible clients can connect directly to the hosted service.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://mcp.narracore.app/mcpclaude mcp add --transport http cn-narracore-screenplay-formatter https://mcp.narracore.app/mcp{"mcpServers":{"cn-narracore-screenplay-formatter":{"type":"http","url":"https://mcp.narracore.app/mcp"}}}Open in Cursor{"servers":{"cn-narracore-screenplay-formatter":{"type":"http","url":"https://mcp.narracore.app/mcp"}}}Open in VS Code{"mcpServers":{"cn-narracore-screenplay-formatter":{"type":"http","url":"https://mcp.narracore.app/mcp"}}}{"mcpServers":{"cn-narracore-screenplay-formatter":{"serverUrl":"https://mcp.narracore.app/mcp"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
https://mcp.narracore.app/mcpAuth requiredTools
14| Parameter | Type | Required | Description |
|---|---|---|---|
| text | string | No | Raw screenplay text, one element per line (required when input_format="text") |
| cover | object | No | Cover page fields — any field present adds a cover page (not counted in page numbers); date defaults to today (UTC) when omitted |
| cover.date | string | No | |
| cover.title | string | No | |
| cover.author | string | No | |
| cover.version | string | No | |
| blocks | array | No | Typed blocks (required when input_format="blocks") |
| footer | object | No | Explicit footer (centered below the text box); same value resolution as header |
| footer.items | array | Yes | |
| header | object | No | Explicit running header (overrides the default page-number line): field values come from cover; missing fields are skipped; page_number renders N/M at the right edge |
| header.items | array | Yes | |
| output | enum | No | pdf_and_blocks (default) / blocks_only / validate_only (free structure check, no render)pdf_and_blocks | blocks_only | validate_only |
| include | enum | No | Receipt body shape (default both): blocks=typed blocks only, plain_text=formatted text only — halves the receipt for large screenplays; validate_only always echoes blocksblocks | plain_text | both |
| request_id | string | No | Idempotency key (optional) |
| license_key | string | No | License key NRC-XXXX-XXXX-XXXX-XXXX (optional — free daily quota works without one) |
| input_format | enum | No | text (default): line-based screenplay text parsed server-side. blocks: submit typed blocks directly — validated and rendered as-is, never re-classified.text | blocks |
| content_language | enum | No | Content language (default: auto-detect)zh | en | auto |
Details
From the project READMENarracore Screenplay Formatter
Turn rough screenplay text into professionally structured screenplay format and a print-ready PDF — from any MCP-compatible AI.
Remote MCP server (Streamable HTTP): https://mcp.narracore.app/mcp
Works with Claude, ChatGPT, Cursor, Gemini and any MCP-compatible client. Paste a rough script, get back structured blocks (scenes, characters, parentheticals, dialogue, transitions), layout diagnostics, and a typeset PDF identical to narracore.cn — fixed typewriter grid, embedded Sarasa Mono / Courier Prime fonts, Chinese and English (or mixed) tracks.
Beyond formatting, the same endpoint carries a film-breakdown protocol and a story-continuity protocol for AI agents (14 tools in total — see below).
- Try it free: one free credit per day, no account, no key.
- Need more? $1.49 for 10 credits, $5.99 for 50 — buy here. One credit covers one screenplay for 24 hours across the screenplay tools, or one film analysis, or one story project. Failures are never charged; retries of the same request never double-charge.
- Example: rough input → formatted PDF (also Chinese → 中文 PDF).
Install
Claude (claude.ai / Claude Desktop)
- Settings → Connectors → Add a custom connector (Desktop: Settings → Connectors → Advanced).
- URL:
https://mcp.narracore.app/mcp→ Connect. - In any chat, ask: "Format this screenplay: …"
Step-by-step: docs/install-claude.md
ChatGPT
- Settings → Apps & Connectors → Advanced → Create (Developer mode).
- MCP Server URL:
https://mcp.narracore.app/mcp. - Ask ChatGPT: "用剧本排版工具排版这段剧本:…"
Step-by-step: docs/install-chatgpt.md
Cursor
Settings → MCP → Add new global MCP server, type url:
{ "url": "https://mcp.narracore.app/mcp" }
Step-by-step: docs/install-cursor.md
Gemini
Gemini CLI / Code Assist — add to settings.json:
{
"mcpServers": {
"narracore-screenplay-formatter": { "httpUrl": "https://mcp.narracore.app/mcp" }
}
}
Step-by-step: docs/install-gemini.md
Tools
Fourteen tools over one endpoint, in three billing units (see Paid credits).
Screenplay
| Tool | What it does |
|---|---|
format_screenplay | Parse rough text (or typed blocks) → structured blocks → layout diagnostics → print-ready PDF (free validate_only mode included) |
analyze_screenplay | Deterministic stats: scene list with parsed headings, character table, dialogue ratio, action density |
diagnose_scenes | Scene shootability diagnosis — the calling AI cites evidence, the server validates and scores 0-100 (material mode free) |
convert_fountain | Blocks ↔ Fountain (plain-text screenplay interchange format), both directions |
build_video_prompts | Screenplay → structured video-prompt scaffolds: ~15s segments, ≤4 shots each, character registry, dialogue pre-filled verbatim, style guidance (checklist / editable presets / your own note) |
check_video_prompts | Free deterministic checks of finished video prompts against the screenplay: dialogue-verbatim lock, cut-point handoff, shared-content rules (violations) + eyeline/rhetoric/conflict advisories |
One credit covers one screenplay for 24 hours across all of the above (they share a content fingerprint — send the same script, or the blocks you got back, to several tools and it charges once).
Film breakdown (the video never leaves your machine)
Your agent watches the footage locally with its own vision model; this server supplies the protocol, the deterministic validation and the compilation.
| Tool | What it does |
|---|---|
get_film_contract | Free — the Film Contract by section: pipeline and entities, the long-take window protocol, observability levels, closed vocabularies + alias table, observation and reasoning prompt templates, reference ffmpeg recipes |
plan_film_analysis | Free — cut timestamps → the analysis topology every Film Protocol agent shares: numbered base shots, long-take windows, ≤20s / ≤8-shot analysis units |
validate_film_breakdown | Free preflight — schema, closed vocabularies, cross-references, window topology, provenance shape; returns a lossless normalized_patch and retry feedback for your model |
compile_film_breakdown | Billed: 1 credit per film analysis — authoritative validation → long-take merge (a 96s take is ONE shot in every statistic) → exact aggregates → labelled deterministic heuristics → PDF report with a 24h signed link |
Story continuity
For AI agents carrying a long-running story (novel, interactive fiction, tabletop campaign, worldbuilding) across context windows. The full text and the returned StoryState stay with you; the server stores nothing.
| Tool | What it does |
|---|---|
prepare_story_window | Free — split a conversation (verbatim user/assistant turns) into stable, hash-anchored units bound to your current state |
absorb_story_window | Billed: 1 credit per story project / 24h — validate and apply YOUR extraction: selectors must quote exact unit text, and the returned canon_patch is tail-hash-verified before you apply it |
render_story_handoff | Free — render the state you supply into a model-independent zh/en handoff document for a successor writer/AI |
Account
| Tool | What it does |
|---|---|
check_credits | Show remaining credits for a license key, plus recent usage and the purchase link |
Structured input (typed blocks), diagnostics codes, and header-based auth are documented in the tool descriptions themselves — your AI already knows how to use them.
Paid credits (optional)
The free daily credit works with no key. To buy more:
- Buy a pack at narracore.app/checkout ($1.49 / 10 credits, $5.99 / 50 credits).
- You get a license key like
NRC-XXXX-XXXX-XXXX-XXXX. - Give it to your AI (paste it in chat, or set header
Authorization: Bearer NRC-…in your client). Top-ups land on the same key.
What one credit covers (three independent units — a credit spent on one is not a credit in another):
| Unit | Charged once per | Tools |
|---|---|---|
| Screenplay | one screenplay, for 24 hours | format_screenplay, analyze_screenplay, diagnose_scenes, convert_fountain, build_video_prompts |
| Film analysis | one analysis_id, for 24 hours | compile_film_breakdown |
| Story project | one story project, for 24 hours | absorb_story_window |
Free tier: one credit per day per visitor, any of the three. Failures are never charged; retrying the same request_id never double-charges.
Details: docs/pricing.md · Refund within 7 days if unused.
Privacy
Your text is used only to produce your result. PDFs are deleted after 24 hours. License keys are stored hashed. Videos are never uploaded for film breakdowns. No training, no accounts, no newsletters. → docs/privacy.md
Links
- Product page: narracore.app
- Service endpoint: mcp.narracore.app/mcp
- Registry entry:
cn.narracore/screenplay-formatter - Open-source core: narracore-format — the formatting engine as a free, local MCP server / DSH plugin (text output; PDF export stays here)
- Security: SECURITY.md
This repository is the public anchor for the hosted service — it contains documentation, examples, and registry metadata only. Docs are licensed CC-BY-4.0.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.