Skip to content

Editory over MCP

Editory exposes its Studio tools over the Model Context Protocol, so an AI client can do the things you’d otherwise do in the web app: scrape an article, write a script, revise it, cut a video, and edit that video by describing the change.

It is the same tool registry the in-app Studio chat uses. There is no separate API surface to learn and no second implementation to drift.

Your client ──HTTPS──> https://editory.news/api/mcp
(Claude Code, Authorization: Bearer edty_…
Claude Desktop, │
Codex, …) ▼
the Studio tool registry
scripts · videos · manifest edits · presets
  1. In Editory, go to Settings → API Access and create a key. Give it the name of the client you’re connecting — Claude Desktop, Claude Code, whatever you’ll recognise later.

    The token is shown once, at creation. It looks like edty_ followed by 43 characters. Copy it now; Editory only stores a hash and cannot show it to you again.

  2. Terminal window
    claude mcp add --transport http editory https://editory.news/api/mcp \
    --header "Authorization: Bearer edty_your_token_here"
  3. Read https://example.com/article and write me a 60-second script in a conversational tone.

    Cut that into a video with captions on, using my Newsroom brand kit.

    Make the captions bigger and drop the background music.

The registry covers the whole path from an article to an edited cut. Two limits are worth knowing before you plan around them.

The chat does not render. create_video_from_script runs the analysis and stops with the video planned — the manifest exists and is watchable, but no MP4 has been encoded. That’s deliberate: encoding before you’ve seen a frame buys nothing, and the first edit would throw it away. Rendering is an explicit action you take afterwards.

Uploads go through the web app. There’s no file-transfer channel in MCP, so a tool that wants footage takes URLs. If you need to hand Editory a local clip, upload it in the browser first.

A tool that fails returns a structured error rather than a transport failure, so your client can recover instead of retrying blindly. The common one is naming a preset that doesn’t exist — the error carries the list of presets you do have, so the next call can be right.

Transport-level failures use JSON-RPC error codes: -32001 for a missing or invalid token, -32000 for a method other than POST, -32603 for an unexpected server error.

Personal access tokens are documented above and work with any client that lets you set a header — Claude Code, Claude Desktop via mcp-remote, and anything speaking raw JSON-RPC.

Browser-based connectors (the claude.ai and ChatGPT directories) negotiate OAuth instead of taking a pasted token. Support for that is being added; the 401 response carries a WWW-Authenticate challenge pointing at the authorization metadata, which is what those clients follow to start the flow.