About
Final Draft (.fdx) MCP Server for AI
README
Description
fdx-mcp-server is a Model Context Protocol (MCP) server that lets AI agents read, analyze, and manipulate Final Draft screenplay files (.fdx). It exposes tools for parsing scene headings, character arcs, dual dialogues, SmartType dictionaries, pagination maps, script breakdowns, and more — effectively giving an LLM the ability to understand and edit screenplay structure.
Written in TypeScript, it runs on Bun or Deno using the stdio transport protocol, making it suitable for integration with any MCP-compatible client such as Claude Desktop.
Repository: github.com/dmongrel/fdx-mcp-server · Changelog: CHANGELOG.md
Table of Contents
Installation
Prerequisites: Node.js
Node.js is required for Option B (Global NPM Install). If you plan to use that option, install it first using one of these methods:
- Windows / macOS: Download the LTS installer from nodejs.org and run it.
- Linux (apt):
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash - && sudo apt-get install -y nodejs - Homebrew (macOS / Linux):
brew install node
Verify the installation by running node --version and npm --version in your terminal.
Option A — Direct from GitHub (Bun or Deno)
If you have Bun, Deno, or both installed, you can run the server directly from raw.githubusercontent.com without installing it locally. No compilation or OS code-signing warnings needed.
⚠️ Rate-limit notice: This path fetches the server from
raw.githubusercontent.comevery time your MCP client starts. GitHub enforces an anonymous usage policy that limits unauthenticated requests to 60 per hour (across all ofgithub.comand its subdomains). If you exceed this limit, requests will be rejected with a403 Forbiddenerror until the window resets. Frequent restarts can trigger this — for heavy use, see Option B which caches everything locally.
Option B — Global NPM Install
If you prefer a traditional Node.js/NPM setup, install the package globally from the npm registry. This downloads all dependencies locally so the server boots instantly and works 100% offline.
npm install -g fdx-mcp-server
To update later: npm update -g fdx-mcp-server
Because this installs a pre-built package from the registry (rather than cloning and building the repo locally), it avoids the Windows npm/node-tar ENOENT race that git-based (github:user/repo) installs are prone to.
Usage
Add a configuration block to your MCP client's config file (e.g., claude_desktop_config.json or .mcp.json). Select the entries that apply to you:
Using Bun only:
{
"mcpServers": {
"fdx-mcp-server-bun": {
"command": "bun",
"args": ["run", "https://raw.githubusercontent.com/dmongrel/fdx-mcp-server/master/src/index.ts"]
}
}
}
Using Deno only:
{
"mcpServers": {
"fdx-mcp-server-deno": {
"command": "deno",
"args": ["run", "--allow-env", "--allow-read", "--allow-write", "https://raw.githubusercontent.com/dmongrel/fdx-mcp-server/master/src/index.ts"]
}
}
}
Using both Bun and Deno:
{
"mcpServers": {
"fdx-mcp-server-bun": {
"command": "bun",
"args": ["run", "https://raw.githubusercontent.com/dmongrel/fdx-mcp-server/master/src/index.ts"]
},
"fdx-mcp-server-deno": {
"command": "deno",
"args": ["run", "--allow-env", "--allow-read", "--allow-write", "https://raw.githubusercontent.com/dmongrel/fdx-mcp-server/master/src/index.ts"]
}
}
}
Using global NPM install:
{
"mcpServers": {
"fdx-mcp-server": {
"command": "fdx-mcp-server",
"args": []
}
}
}
Features
Key capabilities exposed by fdx-mcp-server:
- Document lifecycle — open, save, reload, create new
.fdxfiles; manage server-side document cache. - Batch edits & savepoints — apply an ordered list of edits atomically (all-or-nothing, with automatic rollback on failure), or take a manual savepoint around any sequence of edits and roll back to it on demand.
- Document integrity — detect and repair paragraphs that silently share a duplicated id (a FinalDraft copy/paste artifact that otherwise makes id-addressed edits land on the wrong paragraph); list every proofing-flag (spellcheck squiggle) hit with
get_flagged_words, or just its count viaget_script_stats, to confirm a sweep didn't alter anything; list or exclude drafting placeholders ([FIX - ...]-style whole-bracket paragraphs) withget_placeholdersandget_script_stats'sexcludePlaceholders, so a paragraph-count baseline stays usable while they're still in the document. - Scene analysis — parse scene headings (INT./EXT., location, time of day), extract scene index and properties, compute script stats and page maps; set a scene's Color and/or Title with
edit_scene_properties, or color a newly created Scene Heading in the same call viaedit_par action=create'scolorparameter. - Character tracking — retrieve character lists, extension metadata (V.O., O.S.), per-character scene appearance counts, and arc beats across scenes; rename or merge a character across every place its name is stored (cue paragraphs, dictionary, cast, arc beats, highlighting) in one call; create a new Character/[Parenthetical]/Dialogue speech as one atomic insertion.
- Dual dialogue support — read and create side-by-side dialogue blocks.
- SmartType dictionaries — manage the FinalDraft autocomplete lists: characters, extensions, transitions, scene intros, times of day, spell-check lists, and paragraph types.
- Location usage — see actual location usage parsed from Scene Heading text (not just the autocomplete dictionary) and rename a location across every scene that uses it in one call.
- Formatting & styling — query and edit element settings (fonts, indentation, spacing) for every paragraph type; manage header/footer content.
- Title page management — read and write title, author, contact block, copyright, and based-on credits.
- Script breakdowns — generate full production breakdown reports (props, vehicles, camera, cast) as text or HTML/PDF.
- Macro system — query macro aliases and their activation scopes.
- Search & navigation — find paragraphs by text, list sections and section contents, retrieve revision colors and display board data; diff two documents' paragraphs by id (added/removed/modified) — useful for confirming what a versioned save actually changed.
Publishing
Maintainer notes for releasing a new version to npm:
bun run build # rebuilds dist/index.js, which is checked into the repo
npm publish
If the npm account has two-factor authentication enabled, each npm publish requires its own
live 2FA approval — logging in beforehand is not enough, and the approval from one publish does
not carry over to the next. Because of this, npm publish has to be run interactively, in a real
terminal, by whoever holds the authenticator — it cannot be scripted or run non-interactively (e.g.
from an AI coding assistant's shell tool) without a fresh prompt failing with an EOTP error.
Install Fdx in Claude Desktop, Claude Code & Cursor
unyly install fdxInstalls into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.
First time? Get the CLI: curl -fsSL https://unyly.org/install | sh
Or configure manually
Run in your terminal:
claude mcp add fdx -- npx -y fdx-mcp-serverStep-by-step: how to install Fdx
FAQ
Is Fdx MCP free?
Yes, Fdx MCP is free — one-click install via Unyly at no cost.
Does Fdx need an API key?
No, Fdx runs without API keys or environment variables.
Is Fdx hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Fdx in Claude Desktop, Claude Code or Cursor?
Open Fdx on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
Fetch
Web content fetching and conversion for efficient LLM usage.
AWS KB Retrieval
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
by modelcontextprotocolSpring AI MCP Server
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
llm-analysis-assistant
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also
by xuzexin-hzMCP-Agent
A simple, composable framework to build agents using Model Context Protocol by [LastMile AI](https://www.lastmileai.dev)
by lastmile-aiSpring AI MCP Client
Provides auto-configuration for MCP client functionality in Spring Boot applications.
mcp.natoma.ai
A Hosted MCP Platform to discover, install, manage and deploy MCP servers by [Natoma Labs](https://www.natoma.ai)
MCPHub
Website to list high quality MCP servers and reviews by real users. Also provide online chatbot for popular LLM models with MCP server support.
MCP Servers Rating and User Reviews
Website to rate MCP servers, write authentic user reviews, and [search engine for agent & mcp](http://www.deepnlp.org/search/agent)
mkinf
An Open Source registry of hosted MCP Servers to accelerate AI agent workflows.
Compare Fdx with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All ai MCPs
