Medium Risk

media_pool_item

Operations on a media pool clip. Identify clip by clip_id. Actions: get_name(clip_id) -> {name} get_metadata(clip_id, key?) -> {metadata} set_metadata(clip_id, key, value) OR set_metadata(clip_id, metadata) -> {success} get_third_party_metadata(clip_id, key?) -> {metadata} set_third_party_metadat...

How to control media_pool_item ↓

AI agents use media_pool_item to create or update resources in DaVinci Resolve MCP — usually the action step of a workflow, after the agent has gathered context. Every call changes real data in your DaVinci Resolve MCP environment.

Medium Risk

While the tool includes read operations, the presence of multiple set_* functions that modify clip metadata, properties, and visual attributes (color) classifies it as Write. These modifications are reversible and do not constitute deletion (Destructive), code execution (Execute), or financial impact.

From the tool's definition Tool provides both read operations (get_name, get_metadata, get_media_id, get_clip_property, get_clip_color) and write operations (set_metadata, set_third_party_metadata, set_clip_property, set_clip_color).

Documented attack patterns abuse exactly the kind of access media_pool_item gives an agent:

PolicyLayer is an MCP gateway — it sits between your AI agents and DaVinci Resolve MCP, and nothing reaches the server without passing your rules. This is the rule we recommend for media_pool_item:

policy.json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "media_pool_item": {
      "limits": [
        {
          "counter": "media_pool_item_rate",
          "window": "minute",
          "max": 30,
          "scope": "grant"
        }
      ]
    }
  }
}

media_pool_item stays usable, but capped — an agent stuck in a loop can't make hundreds of changes a minute. Everything else on the server is denied unless you say otherwise.

  1. Create a free account and register DaVinci Resolve MCP — nothing to install.
  2. Add this policy — paste it, or build it visually.
  3. Point your MCP client (Claude, Cursor, anything) at your gateway URL.
LIMIT THIS TOOL →

Free to start. No card required.

Go deeper

What does the media_pool_item tool do? +

Operations on a media pool clip. Identify clip by clip_id. Actions: get_name(clip_id) -> {name} get_metadata(clip_id, key?) -> {metadata} set_metadata(clip_id, key, value) OR set_metadata(clip_id, metadata) -> {success} get_third_party_metadata(clip_id, key?) -> {metadata} set_third_party_metadata(clip_id, key, value) -> {success} get_media_id(clip_id) -> {media_id} get_clip_property(clip_id, key?) -> {properties} set_clip_property(clip_id, key, value) -> {success} get_clip_color(clip_id) -> {color} set_clip_color(clip_id, color) -> {success} clear_clip_color(clip_id) -> {success} link_proxy(clip_id, proxy_path) -> {success} unlink_proxy(clip_id) -> {success} replace_clip(clip_id, path) -> {success} set_name(clip_id, name) -> {success} link_full_resolution_media(clip_id, path) -> {success} monitor_growing_file(clip_id) -> {success} replace_clip_preserve_sub_clip(clip_id, path) -> {success} get_unique_id(clip_id) -> {id} transcribe_audio(clip_id, use_speaker_detection?) -> {success} — use_speaker_detection is Resolve 21+ clear_transcription(clip_id) -> {success} get_transcription(clip_id) -> {text, truncated, status, has_transcription} Read a clip's transcription. truncated flags when Resolve's preview property cut the text off (the full transcript is longer). extract_frames(clip_id, timestamps, output_dir?) -> {frame_paths, output_dir, count, errors} Extract still JPEGs from the clip's source at the given timestamps (seconds) via ffmpeg. Source-safe: reads source, writes only to a scratch dir. perform_audio_classification(clip_id) -> {success} — Resolve 21+ clear_audio_classification(clip_id) -> {success} — Resolve 21+ analyze_for_intellisearch(clip_id, identify_faces?, is_better_mode?) -> {success} — Resolve 21+, AI IntelliSearch Extra analyze_for_slate(clip_id, marker_color?) -> {success} — Resolve 21+, AI Slate ID Extra remove_motion_blur(clip_id, deblur_option?) -> {success, new, new_id} — Resolve 21+; renders NEW media (confirm-gated) get_audio_mapping(clip_id) -> {mapping} get_mark_in_out(clip_id) -> {mark} set_mark_in_out(clip_id, mark_in, mark_out, type?) -> {success} clear_mark_in_out(clip_id, type?) -> {success} open_in_viewer(clip_id, page?, mark_in_seconds?, mark_out_seconds?, clear_marks?) -> {success, clip_id, clip_name, folder_name, page, mark_set} — Switches to Media page (default) and selects the clip in the bin. Resolve auto-loads the selected clip into the source viewer on Media page. Optional: pre-set Mark In/Out on the clip so a shot's time range is highlighted when it loads. NOTE: Source-viewer auto-load is undocumented in the Scripting API; verified empirically on Resolve Studio 20.3.2.9. If BMD changes the behavior the clip will still be selected — editor double-clicks to load. It is categorised as a Write tool in the DaVinci Resolve MCP MCP Server, which means it can create or modify data. Consider rate limits to prevent runaway writes.

How do I enforce a policy on media_pool_item? +

Register the DaVinci Resolve MCP server in PolicyLayer and add a rule for media_pool_item: allow, deny, rate-limit, or require approval. Point your MCP client at the PolicyLayer proxy URL and the rule is enforced on every call, before it reaches DaVinci Resolve MCP. Nothing to install.

What risk level is media_pool_item? +

media_pool_item is a Write tool with medium risk. Write tools should be rate-limited to prevent accidental bulk modifications.

Can I rate-limit media_pool_item? +

Yes. Add a rate_limit block to the media_pool_item rule in your PolicyLayer policy. For example, setting max: 10 and window: 60 limits the tool to 10 calls per minute. Rate limits are tracked per agent session and reset automatically.

How do I block media_pool_item completely? +

Set action: deny in the PolicyLayer policy for media_pool_item. The AI agent will receive a policy violation error and cannot call the tool. You can also include a reason field to explain why the tool is blocked.

What MCP server provides media_pool_item? +

media_pool_item is provided by the DaVinci Resolve MCP server (samuelgursky/davinci-resolve-mcp). PolicyLayer sits as a proxy in front of this server to enforce policies before tool calls reach the server.

Enforce policy on every DaVinci Resolve MCP tool call.

Deterministic rules across all 369 DaVinci Resolve MCP tools. Per-identity grants. Full audit log. Live in minutes. Nothing to install.

Free to start. No card required.

369 DaVinci Resolve MCP tools catalogued and risk-classified — across an index of 42,500+ MCP servers.

// GET IN TOUCH

Have a question or want to learn more? Send us a message.

Message sent.

We'll get back to you soon.