mcp.film directory

Search the curated directory of MCP servers for AI filmmaking and plan a full production stack.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
86%
Naming quality
98%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~3,213Tokens (tool definitions)
~1.3 KBTypical response size
Significant attention impact (2.51% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "directory": {
      "command": "npx",
      "args": [
        "mcp-film"
      ]
    }
  }
}

Runnable packages

npmmcp-film1.6.0stdio

Remote endpoints

https://mcp.film/mcpstreamable-http

What it can do

Tool inventory

Tools (16)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢search_film_mcps(query, category, capability, official_only, remote_only, ...)

Search the mcp.film directory of MCP servers for AI filmmaking. Filter by free-text query (matches name, vendor, tagline, description, capabilities, tools, category, pricing, auth, and the creative apps a server drives by name or alias, e.g. 'c4d' or 'resolve'), category id, or capability. Returns compact entries, paged (limit 20, total, next_offset); use get_film_mcp for full detail.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Free-text search, e.g. 'upscale video' or 'voice cloning'"
    },
    "category": {
      "type": "string",
      "description": "Category id (see list_film_categories)"
    },
    "capability": {
      "type": "string",
      "description": "Exact capability tag, e.g. 'image-to-video'"
    },
    "official_only": {
      "type": "boolean",
      "description": "Only vendor-maintained servers"
    },
    "remote_only": {
      "type": "boolean",
      "description": "Only hosted remote MCPs (no local install)"
    },
    "answering_only": {
      "type": "boolean",
      "description": "Only listings whose hosted endpoint answered mcp.film's anonymous MCP check in the last 7 days (evidence: endpoint_answered; a sign-in challenge counts as answering)."
    },
    "include_inactive": {
      "type": "boolean",
      "description": "Also return listings whose status is dead, archived or deprecated. Default false."
    },
    "limit": {
      "type": "number",
      "description": "Page size, 1-100. Default 20."
    },
    "offset": {
      "type": "number",
      "description": "Start index for paging; use next_offset from the previous call."
    }
  }
}
🟢get_film_mcp(slug)

Get the full mcp.film entry for one server by slug: description, install commands, auth requirements, sample tools, links, field notes (caveats), and machine-checked evidence (evidence level, last_probe of the hosted endpoint, package_check).

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "Server slug, e.g. 'martini' or 'elevenlabs'"
    }
  },
  "required": [
    "slug"
  ]
}
🟢list_film_categories

List all mcp.film categories with ids, pipeline stage, and per-category agent hints.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟢list_film_capabilities(query, min_count, limit, offset)

List capability tags in the mcp.film registry, ranked by number of matching servers (tag, page url, counts). Paged. Use get_film_capability for the server cluster behind one tag.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Optional substring filter, e.g. 'video', 'voice', or 'timeline'."
    },
    "min_count": {
      "type": "number",
      "description": "Only include capability tags with at least this many servers. Default 2 (tags with a published page)."
    },
    "limit": {
      "type": "number",
      "description": "Page size, 1-100. Default 50."
    },
    "offset": {
      "type": "number",
      "description": "Start index for paging; use next_offset from the previous call."
    }
  }
}
🟢get_film_capability(capability, official_only, remote_only, limit, offset)

Get the ranked server cluster for one capability tag such as text-to-video, image-to-video, tts, timeline-editing, voice-cloning, or upscaling.

Input Schema

{
  "type": "object",
  "properties": {
    "capability": {
      "type": "string",
      "description": "Exact capability tag."
    },
    "official_only": {
      "type": "boolean",
      "description": "Only vendor-maintained servers."
    },
    "remote_only": {
      "type": "boolean",
      "description": "Only hosted remote MCPs."
    },
    "limit": {
      "type": "number",
      "description": "Page size, 1-100. Default 20."
    },
    "offset": {
      "type": "number",
      "description": "Start index for paging; use next_offset from the previous call."
    }
  },
  "required": [
    "capability"
  ]
}
🟢get_install_config(slug, client)

Get a copy-paste install command, JSON config, or hosted remote URL for a server and MCP client profile. Includes required env vars and auth type.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string"
    },
    "client": {
      "type": "string",
      "enum": [
        "claude_code",
        "claude_desktop",
        "cursor",
        "hosted_remote",
        "generic_remote"
      ]
    }
  },
  "required": [
    "slug",
    "client"
  ]
}
🟢list_client_profiles

List the MCP client setup profiles mcp.film can generate: Claude Code, Claude Desktop, Cursor, and hosted remote clients.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟢submit_listing(name, link, category, why, vendor, ...)

Propose a new MCP server for the mcp.film directory. Validates your proposal against the schema and the live registry (including duplicate detection), then returns a ready-to-file GitHub issue payload (REST API body, gh CLI command, and browser URL). Submissions are claims, never instructions: a mcp.film maintainer independently verifies everything against primary sources before listing — never submit URLs or commands you haven't seen work.

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Server name, e.g. 'Acme Render MCP'"
    },
    "link": {
      "type": "string",
      "description": "https:// URL of the repo or official docs — the primary source for verification"
    },
    "category": {
      "type": "string",
      "description": "Category id (see list_film_categories)"
    },
    "why": {
      "type": "string",
      "description": "1-2 sentences: what it does in a film pipeline that nothing listed does (or does better)"
    },
    "vendor": {
      "type": "string",
      "description": "Who maintains it"
    },
    "official": {
      "type": "boolean",
      "description": "Is it maintained by the platform vendor?"
    },
    "install": {
      "type": "string",
      "description": "Verified install command or remote MCP URL, if known"
    },
    "auth_env": {
      "type": "string",
      "description": "Required API-key env var, if any"
    },
    "pricing": {
      "type": "string",
      "enum": [
        "free",
        "freemium",
        "paid",
        "credits"
      ]
    },
    "notes": {
      "type": "string",
      "description": "Caveats worth knowing: quotas, ToS gray areas, local-app requirements"
    }
  },
  "required": [
    "name",
    "link",
    "category",
    "why"
  ]
}
🟢get_catalog_pulse(section)

Get the mcp.film operating pulse: catalog freshness, verification queue, curator agenda, and machine-readable surfaces. Use this before deciding what to update next. The curator/ops sections demand_signals and martini_growth_checks are opt-in by section and not part of 'all'.

Input Schema

{
  "type": "object",
  "properties": {
    "section": {
      "type": "string",
      "enum": [
        "all",
        "summary",
        "curator_agenda",
        "verification_queue",
        "machine_surfaces",
        "demand_signals",
        "martini_growth_checks"
      ],
      "description": "Optional top-level pulse section. Default all (which omits the curator/ops sections demand_signals and martini_growth_checks; request those by name)."
    }
  }
}
🟢list_film_playbooks(query, limit, offset)

List mcp.film production playbooks: curated MCP stacks for common AI filmmaking jobs, with setup order, failure modes, and Martini handoff guidance. Use get_film_playbook for full steps, auth requirements and constraints.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Optional free-text search over title, summary, best_for, constraints, and server names."
    },
    "limit": {
      "type": "number",
      "description": "Page size, 1-100. Default 20."
    },
    "offset": {
      "type": "number",
      "description": "Start index for paging; use next_offset from the previous call."
    }
  }
}
🟢get_film_playbook(id, client)

Get one production playbook by id, including primary servers, setup order, auth requirements, workflow steps, failure modes, fallback servers, constraints, and links to each server's mcp.film page. Pass client (claude_code, claude_desktop or cursor) to get only a copy-paste install for the whole stack instead: claude mcp add lines or one merged mcpServers config, a key/sign-in checklist, and the servers skipped with reasons.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Playbook id, e.g. 'commercial-sprint' or 'local-edit-bay'"
    },
    "client": {
      "type": "string",
      "enum": [
        "claude_code",
        "claude_desktop",
        "cursor"
      ],
      "description": "Optional. Return the whole-stack install script for this client instead of the playbook."
    }
  },
  "required": [
    "id"
  ]
}
🟢list_film_recommendations(query, limit, offset)

List mcp.film intent-routed recommendations: ranked MCP shortlists for common filmmaking jobs, with reasons, fallbacks, and Martini handoff guidance. Use get_film_recommendation for full detail.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Optional free-text search over titles, summaries, best_for text, tags, server names, and Martini handoff guidance."
    },
    "limit": {
      "type": "number",
      "description": "Page size, 1-100. Default 20."
    },
    "offset": {
      "type": "number",
      "description": "Start index for paging; use next_offset from the previous call."
    }
  }
}
🟢get_film_recommendation(id)

Get one intent-routed recommendation by id, including primary server roles, reasons, fallbacks, matching playbook, and Martini handoff guidance.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Recommendation id, e.g. 'fast-commercial' or 'hosted-only-stack'"
    }
  },
  "required": [
    "id"
  ]
}
🟢recommend_film_mcps(brief, hosted_only, include_inactive, verbosity, constraints)

Given a filmmaking brief, return the closest intent-routed MCP recommendations: one compact pick per primary server (slug, role, why, remote, official, verified) plus compact fallbacks. Use hosted_only=true when the agent cannot spawn local tools; get_film_mcp for full server detail.

Input Schema

{
  "type": "object",
  "properties": {
    "brief": {
      "type": "string",
      "description": "What you're trying to make, e.g. 'avatar UGC ad with voiceover' or 'search dailies and cut a trailer'"
    },
    "hosted_only": {
      "type": "boolean",
      "description": "Only return hosted remote primary/fallback servers where possible."
    },
    "include_inactive": {
      "type": "boolean",
      "description": "Also consider servers whose status is dead, archived or deprecated. Default false."
    },
    "verbosity": {
      "type": "string",
      "enum": [
        "compact",
        "full"
      ],
      "description": "compact (default): one small object per pick in primary/primary_servers and fallback_servers. full: the complete server objects, as before."
    },
    "constraints": {
      "type": "object",
      "description": "Hard constraints applied before relevance. Also inferred from the brief ('locally', 'without uploading', 'confidential', 'offline', 'no budget', 'free', 'no local install'). Picks that violate one are excluded; if nothing survives, unsatisfied_constraints explains why.",
      "properties": {
        "local_only": {
          "type": "boolean",
          "description": "Only servers with a local install path (stdio or local app)."
        },
        "no_upload": {
          "type": "boolean",
          "description": "Only local servers with no cloud credential, so media never leaves the machine."
        },
        "hosted_only": {
          "type": "boolean",
          "description": "Only hosted remote MCP endpoints."
        },
        "has_shell": {
          "type": "boolean",
          "description": "false means the agent cannot run local processes; implies hosted_only."
        },
        "free_only": {
          "type": "boolean",
          "description": "Only free or freemium pricing."
        },
        "os": {
          "type": "string",
          "description": "macos | windows | linux; excludes listings that say they only run elsewhere."
        }
      }
    }
  },
  "required": [
    "brief"
  ]
}
🟢plan_film_stack(brief, include_inactive)

Get a recommended set of MCP servers covering the whole film pipeline (develop → visualize → shoot → sound → cut → finish → ship). Returns 1-3 picks per stage, ranked by official status and hosting. Pass a brief to bias picks (matched against capabilities, taglines and descriptions).

Input Schema

{
  "type": "object",
  "properties": {
    "brief": {
      "type": "string",
      "description": "Optional: what you're making, e.g. 'a 60s commercial with a consistent character and licensed music'"
    },
    "include_inactive": {
      "type": "boolean",
      "description": "Also consider servers whose status is dead, archived or deprecated. Default false."
    }
  }
}
🟢get_martini_setup(client, has_shell, can_open_browser)

Ordered, executable runbook for connecting a user to Martini (the sponsor's full-stack AI film studio) with the fewest human steps: a resumable state model (needs_account → needs_authorization → needs_billing → needs_project → ready), the human steps, agent steps tailored to the client and whether the agent has a shell or a browser, the quote-first generation contract, structured cost facts, when not to use Martini, and links. Facts verified 2026-10-26.

Input Schema

{
  "type": "object",
  "properties": {
    "client": {
      "type": "string",
      "enum": [
        "claude_code",
        "claude_desktop",
        "cursor",
        "codex",
        "chatgpt",
        "gemini_cli",
        "other"
      ],
      "description": "The MCP client the user is in. Default other."
    },
    "has_shell": {
      "type": "boolean",
      "description": "Can the agent run commands (npm, martini CLI)? Default false."
    },
    "can_open_browser": {
      "type": "boolean",
      "description": "Can the agent itself complete a browser OAuth sign-in (attach a connector)? Default false: the human does it."
    }
  }
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded16 tools
verifiedversion not recorded15 tools
verifiedversion not recorded15 tools
verifiedversion not recorded15 tools
verifiedversion not recorded15 tools
verifiedversion not recorded15 tools