Narracore Screenplay Formatter is a remote MCP server that gives an AI agent 14 tools, among them absorb_story_window, analyze_screenplay, build_video_prompts. It answers at https://mcp.narracore.app/mcp over streamable HTTP, and it listed its tools to an anonymous client, so no sign-in was needed for that. Our probes reached it 4 of 4 times since 16 September 2026; the last check, on 22 October 2026, succeeded.
Screenplay, film and story toolkit over MCP: PDF formatting, stats, diagnosis, video prompts.
Description as the publisher wrote it.
| Tool | What it does |
|---|---|
absorb_story_window | CHARGED (1 credit per story project per 24h; any validation failure is never charged, absorbed-window repeats are free no-ops). Merge YOUR extraction of a prepared window: selectors must quote/anchor exact unit text (server pulls canon verb Inputs: state, units, extraction, license_key, request_id |
analyze_screenplay | Deterministic screenplay statistics from the Narracore analyzer (analyzer_version 1.0, same rules as narracore.cn): a scene list with structured scene headings (scene number / location / time of day / INT-EXT parsed from each heading), per- Inputs: input_format, text, blocks, license_key, request_id |
build_video_prompts | Turn a screenplay into structured video-generation prompt scaffolds (deterministic — no LLM on the server; YOU fill the creative fields). For each selected scene it estimates ~15s segments (marked estimated), registers entities (characters Inputs: input_format, text, blocks, scenes, segment_seconds, style |
check_credits | Check the remaining credits for a Narracore license key (NRC-XXXX-XXXX-XXXX-XXXX), plus recent usage and the purchase link. One credit covers one screenplay for 24 hours across the screenplay tools, or one film analysis, or one story projec Inputs: license_key |
check_video_prompts | FREE deterministic quality gates for video-generation prompts written against a screenplay (no LLM on the server — pattern matching and set comparison only; findings are reported, nothing is blocked). Submit the SAME screenplay plus up to 1 Inputs: input_format, text, blocks, prompts, char_limit, style |
compile_film_breakdown | CHARGED (1 credit per film analysis — the same analysis_id within 24h is NOT charged again; failed validation is never charged). Compile a validated film breakdown into a bounded, derivable result: authoritative validation → window→canonica Inputs: film_manifest, shots, scenes, relations, license_key, request_id |
convert_fountain | Convert between Narracore screenplay blocks and Fountain (the plain-text screenplay interchange format). direction="to_fountain": screenplay (input_format="text" or "blocks") → Fountain text (Latin content upper-cased per convention, CJK pr Inputs: direction, input_format, text, blocks, fountain, license_key |
diagnose_scenes | Scene-level "shootability" diagnosis for a screenplay, using the same ai-2.0 rules as narracore.cn: YOU (the calling AI) cite the evidence, the server validates it and computes the score — no LLM on the server. Two steps: (1) mode="material Inputs: input_format, text, blocks, mode, scenes, findings |
format_screenplay | Convert raw or loosely formatted screenplay text (Chinese, English, or mixed) into professionally structured screenplay blocks and a print-ready PDF using a fixed typewriter character grid (33 CJK chars × 38 lines per page, or 61 × 55 for E Inputs: input_format, text, blocks, license_key, request_id, content_language |
get_film_contract | FREE. Return the Narracore Film Contract by section — the protocol that lets ANY vision-capable agent turn its own observation of a film into a stable, comparable, traceable Film IR (shot/scene/relation), validated and compiled by this serv Inputs: section, film_schema_version |
plan_film_analysis | FREE deterministic. Turn shot-cut timestamps into the analysis topology every Film Protocol agent shares: numbered base shots (shot-000001), long-take windowing (shot-000017-w01of03 when a shot exceeds the profile cap), and greedy analysis Inputs: duration_sec, cut_timestamps |
prepare_story_window | FREE. Split a story conversation (verbatim user/assistant turns) into stable, hash-anchored units for the Narracore Story Continuity Protocol. YOU judge the story; the server only slices and anchors provenance — a source is traceable, not p Inputs: conversation, state, lang, request_id |
render_story_handoff | FREE. Render a StoryState into a zh/en handoff document (recent-canon window + bible) for a successor writer/AI. The server formats the state you SUPPLY — project_token proves identity only, not that the state content is authentic or curren Inputs: state, direction, lang, recent_chars, request_id |
validate_film_breakdown | FREE preflight for a film breakdown payload (film_manifest + shots + scenes + relations). Checks the contract WITHOUT watching anything: schema shape, closed vocabularies (exact→alias→reject), cross-references (shot ids, scene membership, r Inputs: film_manifest, shots, scenes, relations |
Every block below points at https://mcp.narracore.app/mcp. Pick your client and copy.
claude mcp add --transport http narracore-screenplay-formatter https://mcp.narracore.app/mcp
{
"mcpServers": {
"narracore-screenplay-formatter": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.narracore.app/mcp"]
}
}
}{
"mcpServers": {
"narracore-screenplay-formatter": {
"url": "https://mcp.narracore.app/mcp"
}
}
}{
"servers": {
"narracore-screenplay-formatter": {
"type": "http",
"url": "https://mcp.narracore.app/mcp"
}
}
}{
"context_servers": {
"narracore-screenplay-formatter": {
"url": "https://mcp.narracore.app/mcp"
}
}
}{
"mcpServers": {
"narracore-screenplay-formatter": {
"serverUrl": "https://mcp.narracore.app/mcp"
}
}
}{
"mcpServers": {
"narracore-screenplay-formatter": {
"url": "https://mcp.narracore.app/mcp"
}
}
}name: Narracore Screenplay Formatter
version: 0.0.1
schema: v1
mcpServers:
- name: Narracore Screenplay Formatter
type: streamable-http
url: https://mcp.narracore.app/mcp{
"mcpServers": {
"narracore-screenplay-formatter": {
"httpUrl": "https://mcp.narracore.app/mcp"
}
}
}{
"mcpServers": {
"narracore-screenplay-formatter": {
"type": "http",
"url": "https://mcp.narracore.app/mcp"
}
}
}{
"mcpServers": {
"narracore-screenplay-formatter": {
"url": "https://mcp.narracore.app/mcp"
}
}
}goose://extension?url=https%3A%2F%2Fmcp.narracore.app%2Fmcp&type=streamable_http&id=narracore-screenplay-formatter&name=Narracore%20Screenplay%20Formatter
It answered our last check on 22 October 2026 in 964 ms. Over 4 checks since 16 September 2026 it answered 4. Status here comes from Neuronto's own probes, not from the publisher.
14, as returned by the server's own tools/list on 24 September 2026: absorb_story_window, analyze_screenplay, build_video_prompts, check_credits, check_video_prompts, compile_film_breakdown, convert_fountain, diagnose_scenes, and 6 more.
It answered our last check on 22 October 2026 in 964 ms. Over 4 checks since 16 September 2026 it answered 4.
Put the server under mcpServers in ~/.cursor/mcp.json with the URL https://mcp.narracore.app/mcp. The exact JSON is above, with the same setup for Claude Code, Claude Desktop, VS Code, Windsurf, Zed, Gemini CLI and the rest.
It listed its tools to an anonymous client, so reading the tool list needs no key. Individual tools can still ask for credentials in their own inputs.
Publisher: cn.narracore. Endpoint host: mcp.narracore.app. ARD identifier: urn:air:cn.narracore:mcp:screenplay-formatter.
First indexed 16 September 2026. The tools are exactly what the server returned; nothing on this page
is inferred from its name. Ranking in Neuronto search is never for sale.