{"ok":true,"site":{"host":"ekene-111.github.io","url":"https://ekene-111.github.io/cowriter-webmcp/","type":"live","desc":"CoWriter: a screenplay you and an AI agent write together, live, using WebMCP.","tools":[{"name":"get_script","kind":"answer","impl":"imperative","description":"ALWAYS call this FIRST, before any other tool, no matter what the user is asking for. It reads the entire current script: the story premise (title, logline, theme, genre, tone), the human-authored outline (the story's real, act-by-act throughline — e.g. Act 1 with its beats, Act 2 with its beats, etc. — including beats not written as scenes yet), all acts and their actually-written scenes (heading, action, dialogue), the full character list, and the idea board. Every scene you write, every edit you make, and every consistency check must be grounded in this outline and premise — they are the source of truth for where the story is headed, not just whatever scene happens to be open. The outline is the plan; the scenes are what's actually been written; they won't always be in sync yet.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cowriter-webmcp/"},{"name":"update_premise","kind":"act","impl":"imperative","description":"Revise the story's premise: title, logline, theme, genre, and/or tone. Use this if the direction of the story shifts, so future writing (by you or the human) stays grounded in the current premise. Only the fields you provide are changed.","inputSchema":{"type":"object","properties":{"title":{"type":"string"},"logline":{"type":"string","description":"One or two sentences summarizing the story."},"theme":{"type":"string","description":"The underlying idea/message the story is about."},"genre":{"type":"string"},"tone":{"type":"string"}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cowriter-webmcp/"},{"name":"add_outline_beat","kind":"act","impl":"imperative","description":"Add a new beat to a named act in the story outline — the human-authored, act-by-act throughline of the whole story, independent of which scenes have actually been written yet. Use this to plan ahead or record a structural decision. If the act doesn't exist yet in the outline, it's created.","inputSchema":{"type":"object","properties":{"actLabel":{"type":"string","description":"Which act this beat belongs to, e.g. \"Act 2\"."},"text":{"type":"string","description":"A single beat, e.g. \"Mara realizes the letter is addressed to her.\""},"position":{"type":"integer","description":"Optional 0-based index within that act to insert at. Defaults to the end."}},"required":["actLabel","text"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cowriter-webmcp/"},{"name":"update_outline_beat","kind":"act","impl":"imperative","description":"Rewrite an existing outline beat's text.","inputSchema":{"type":"object","properties":{"beatId":{"type":"string","description":"The id of the beat to update (from get_script)."},"text":{"type":"string"}},"required":["beatId","text"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cowriter-webmcp/"},{"name":"set_outline","kind":"act","impl":"imperative","description":"Replace the entire outline at once with a full act-by-act structure. Use this only when asked to import, restructure, or rewrite the whole outline — for a single change, prefer add_outline_beat / update_outline_beat instead.","inputSchema":{"type":"object","properties":{"groups":{"type":"array","description":"Ordered list of acts, each with its ordered beats.","items":{"type":"object","properties":{"actLabel":{"type":"string"},"beats":{"type":"array","items":{"type":"string"}}},"required":["actLabel","beats"]}}},"required":["groups"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cowriter-webmcp/"},{"name":"add_scene","kind":"act","impl":"imperative","description":"Add a brand-new scene to a given act of the script. The new scene appears live on the user's screen immediately.","inputSchema":{"type":"object","properties":{"actId":{"type":"string","description":"The id of the act to add the scene to (from get_script)."},"heading":{"type":"string","description":"Scene heading, e.g. \"INT. KITCHEN - NIGHT\"."},"action":{"type":"string","description":"Action / description text for the scene."},"dialogue":{"type":"array","description":"Ordered list of dialogue lines.","items":{"type":"object","properties":{"character":{"type":"string"},"line":{"type":"string"}},"required":["character","line"]}},"position":{"type":"integer","description":"Optional 0-based index to insert the scene at within the act. Defaults to the end."}},"required":["actId","heading"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cowriter-webmcp/"},{"name":"edit_scene","kind":"act","impl":"imperative","description":"Rewrite or tweak an existing scene's heading, action text, and/or dialogue. Only the fields you provide are changed; everything else is left as-is.","inputSchema":{"type":"object","properties":{"sceneId":{"type":"string","description":"The id of the scene to edit (from get_script)."},"heading":{"type":"string"},"action":{"type":"string"},"dialogue":{"type":"array","items":{"type":"object","properties":{"character":{"type":"string"},"line":{"type":"string"}},"required":["character","line"]}}},"required":["sceneId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cowriter-webmcp/"},{"name":"reorder_scenes","kind":"act","impl":"imperative","description":"Reorder the scenes within one act by supplying the full desired order of scene ids.","inputSchema":{"type":"object","properties":{"actId":{"type":"string","description":"The act whose scenes should be reordered."},"orderedSceneIds":{"type":"array","items":{"type":"string"},"description":"Scene ids in the new desired order."}},"required":["actId","orderedSceneIds"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cowriter-webmcp/"},{"name":"add_character","kind":"act","impl":"imperative","description":"Add a new character to the story bible (name, one-line description, key traits).","inputSchema":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"traits":{"type":"string","description":"Comma-separated key personality traits."}},"required":["name"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cowriter-webmcp/"},{"name":"update_character","kind":"act","impl":"imperative","description":"Revise an existing character's description or traits.","inputSchema":{"type":"object","properties":{"characterId":{"type":"string","description":"The id of the character to update (from get_script)."},"name":{"type":"string"},"description":{"type":"string"},"traits":{"type":"string"}},"required":["characterId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cowriter-webmcp/"},{"name":"add_idea","kind":"act","impl":"imperative","description":"Drop a loose plot idea, a 'what if', or a direction the story could go onto the shared idea board — without committing it to the script yet.","inputSchema":{"type":"object","properties":{"text":{"type":"string"}},"required":["text"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cowriter-webmcp/"},{"name":"check_consistency","kind":"answer","impl":"imperative","description":"Get every dialogue line in the script annotated with its speaker, plus the full character bible, formatted specifically for reviewing consistency. Use this to find things like: a character's dialogue contradicting their established traits, a speaker who has no character entry, or pacing/repetition issues across scenes. This tool returns data for you to analyze — after finding issues, report them to the user and optionally fix them with edit_scene / update_character.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cowriter-webmcp/"}],"category":"Media & Personal","apiSurface":"spec","toolCount":12}}