Workflow MCP Tools

The FoxCue workflow MCP profile has 55 tools. These are the tools that the directory profile does not include.

The workflow profile has 55 tools: 31 workflow tools, 16 brand-setup tools, 3 video-claim tools and 5 library tools. The 35 directory tools are documented on Directory MCP tools. This page is the other 20.

Which profile is live depends on your workspace configuration. If the workspace uses the directory profile, these tools are not registered.

ToolTitleRead onlyScopes
preview_video_claimPreview a video claimyesoutputs:read
claim_videoClaim a finished videonomedia:write
inspect_video_claimInspect a video claimyesoutputs:read
library_searchSearch the template Libraryyesnone declared on the tool
library_ideasList logged reference ideasyesnone declared on the tool
library_log_ideaLog a reference ideanonone declared on the tool
library_submit_templateSubmit a templatenonone declared on the tool
library_submissionRead a submissionyesnone declared on the tool
discover_targetsDiscover proposed target questionsnostrategy:read, strategy:write, knowledge:read, generation:write
review_targetsReview target suggestionsnostrategy:read, strategy:write, knowledge:read
inspect_productionInspect an editable videoyesoutputs:read
edit_videoEdit an owned recordingnomedia:write, generation:write
render_videoRender a reviewed videonogeneration:write
prepare_publicationPrepare a publication draftnopublishing:write
update_publicationSave reviewed publication metadatanopublishing:write
submit_publicationSubmit an explicitly authorized publicationnopublishing:publish
read_measurement_reportRead retained measurement evidenceyesnone declared on the tool
check_citationsRun bounded citation checksnoperformance:write, strategy:read, knowledge:read
schedule_citation_checksSchedule budgeted citation checksnoperformance:write, strategy:read, knowledge:read
pause_citation_schedulePause or resume citation trackingnoperformance:write

A successful call returns content[0].text as JSON and, when an output schema exists, structuredContent.result. A 204 from the API becomes {ok: true}. Failures set isError: true and content[0].text to JSON {error}. The error string is API <status>: <message>, or Could not reach the configured FoxCue API. Input that fails the schema is rejected by the MCP SDK before the tool runs.

If the API returns 403 because the grant lacks brands:write or performance:write, the message tells you to remove the connector and add it again, then approve that permission.

preview_video_claim

Preview a supplied one-use claim code in the connected existing workspace. Check the brand, video and recipient workspace with the user before claiming. Does not consume the code, generate media, create an account or start a subscription. Keep the code private.

Scopes on the tool: outputs:read. Read only: yes. Idempotent hint: yes.

Input

FieldRequiredTypeNullableRules
codeyesstringno
{
  "name": "preview_video_claim",
  "arguments": {
    "code": "example"
  }
}

Output

structuredContent.result: The authoritative claim preview or durable copy receipt.

The output schema types result as unknown. The value is whatever the API operation returns. No fields are invented here.

Errors

Invalid input is rejected by the MCP SDK before the handler. A failed API call returns API <status>: <message> using the API error string, or Request failed. when the body has none. Network failures return Could not reach the configured FoxCue API. Calls time out after 30 seconds.

claim_video

After preview and explicit user confirmation, consume the one-use code and queue an exact copy of its editable video and finished output into the connected existing workspace. Set confirm=true only for authorized claims. No provider call, generation, account or subscription creation. Reuse the same idempotency_key after timeouts and inspect the returned claim_id for progress.

Scopes on the tool: media:write. Read only: no. Idempotent hint: yes.

Input

FieldRequiredTypeNullableRules
codeyesstringno
confirmyesbooleanno
idempotency_keyyesstringno
{
  "name": "claim_video",
  "arguments": {
    "code": "example",
    "confirm": true,
    "idempotency_key": "example"
  }
}

Output

structuredContent.result: The authoritative claim preview or durable copy receipt.

The output schema types result as unknown. The value is whatever the API operation returns. No fields are invented here.

Errors

Invalid input is rejected by the MCP SDK before the handler. A failed API call returns API <status>: <message> using the API error string, or Request failed. when the body has none. Network failures return Could not reach the configured FoxCue API. Calls time out after 30 seconds.

inspect_video_claim

Read an existing claim in this workspace. While the saved video is being copied, keep polling this claim_id. A completed claim returns its editable video and finished output links. This does not rerender or generate media.

Scopes on the tool: outputs:read. Read only: yes. Idempotent hint: yes.

Input

FieldRequiredTypeNullableRules
claim_idyesstringnominLength 1; maxLength 128
{
  "name": "inspect_video_claim",
  "arguments": {
    "claim_id": "example"
  }
}

Output

structuredContent.result: The authoritative claim preview or durable copy receipt.

The output schema types result as unknown. The value is whatever the API operation returns. No fields are invented here.

Errors

Invalid input is rejected by the MCP SDK before the handler. A failed API call returns API <status>: <message> using the API error string, or Request failed. when the body has none. Network failures return Could not reach the configured FoxCue API. Calls time out after 30 seconds.

Search listed Library templates before building, so you never submit a duplicate. mine=true lists every template this workspace submitted, with status and checks. Requires library:read.

Scopes on the tool: none declared. The underlying API still checks its own scope.. Read only: yes. Idempotent hint: no.

Input

FieldRequiredTypeNullableRules
qnostringnomaxLength 120
categorynostringnoone of launch, product-explainer, dashboard, kinetic-type, captions, presenter, social-hook, transition
minenobooleanno
{
  "name": "library_search",
  "arguments": {
    "q": "example",
    "category": "launch",
    "mine": true
  }
}

Output

This tool does not declare an output schema. The text content is the raw API JSON.

Errors

Invalid input is rejected by the MCP SDK before the handler. A failed API call returns API <status>: <message> using the API error string, or Request failed. when the body has none. Network failures return Could not reach the configured FoxCue API. Calls time out after 30 seconds.

library_ideas

List the reference ideas this workspace logged (source URL, creator, why, status). Requires library:read.

Scopes on the tool: none declared. The underlying API still checks its own scope.. Read only: yes. Idempotent hint: no.

Input

FieldRequiredTypeNullableRules
qnostringnomaxLength 120
{
  "name": "library_ideas",
  "arguments": {
    "q": "example"
  }
}

Output

This tool does not declare an output schema. The text content is the raw API JSON.

Errors

Invalid input is rejected by the MCP SDK before the handler. A failed API call returns API <status>: <message> using the API error string, or Request failed. when the body has none. Network failures return Could not reach the configured FoxCue API. Calls time out after 30 seconds.

library_log_idea

Log a reference worth turning into a template: its URL, the creator, why it is good and your frame-by-frame breakdown (shots with timing, motion and easing, type, colours, transitions). Logging the same URL again returns the existing idea. Requires library:write.

Scopes on the tool: none declared. The underlying API still checks its own scope.. Read only: no. Idempotent hint: yes.

Input

FieldRequiredTypeNullableRules
source_urlyesstringnomaxLength 2000
creatornostringnomaxLength 120; default
titleyesstringnominLength 1; maxLength 160
whynostringnomaxLength 2000; default
kindnostringnoone of launch, product-explainer, dashboard, kinetic-type, captions, presenter, social-hook, transition; default other
breakdownnoobjectnodefault {}
{
  "name": "library_log_idea",
  "arguments": {
    "source_url": "example",
    "creator": "example",
    "title": "example",
    "why": "example",
    "kind": "launch",
    "breakdown": {}
  }
}

Output

This tool does not declare an output schema. The text content is the raw API JSON.

Errors

Invalid input is rejected by the MCP SDK before the handler. A failed API call returns API <status>: <message> using the API error string, or Request failed. when the body has none. Network failures return Could not reach the configured FoxCue API. Calls time out after 30 seconds.

library_submit_template

Submit a FoxCue template as a Style folder: files maps package paths (style.json required; style.md, README.md, design/.md, kit/kit.css + kit/kit.js, recipes/<id>/scene.html|css|js|props.json|recipe.json, assets/ as data URLs declared in template.assets) to text. Keep the reference creator's people, names, logos and copy out: they go in credits. review carries the breakdown and side-by-side frames (reference vs FoxCue at the same second), which only the reviewer sees. Automatic checks run at once; a passing template waits for FoxCue review. Pass entry_id to add a revision. Requires library:write.

Scopes on the tool: none declared. The underlying API still checks its own scope.. Read only: no. Idempotent hint: yes.

Input

FieldRequiredTypeNullableRules
entry_idnostringno
slugnostringno
nameyesstringnominLength 1; maxLength 80
summarynostringnomaxLength 300; default
categorynostringnoone of launch, product-explainer, dashboard, kinetic-type, captions, presenter, social-hook, transition; default other
filesyesobjectno
creditsnoobjectno
reviewnoobjectno
idea_idnostringno
change_summarynostringnomaxLength 300; default
{
  "name": "library_submit_template",
  "arguments": {
    "name": "example",
    "files": {}
  }
}

Output

This tool does not declare an output schema. The text content is the raw API JSON.

Errors

Invalid input is rejected by the MCP SDK before the handler. A failed API call returns API <status>: <message> using the API error string, or Request failed. when the body has none. Network failures return Could not reach the configured FoxCue API. Calls time out after 30 seconds.

library_submission

Read a submission's status (draft: checks failed, checked: waiting for review, listed, parked with a reason), its check issues and warnings, and revisions. Fix issues with library_submit_template and entry_id. Requires library:read.

Scopes on the tool: none declared. The underlying API still checks its own scope.. Read only: yes. Idempotent hint: no.

Input

FieldRequiredTypeNullableRules
idyesstringnominLength 1; maxLength 64
{
  "name": "library_submission",
  "arguments": {
    "id": "example"
  }
}

Output

This tool does not declare an output schema. The text content is the raw API JSON.

Errors

Invalid input is rejected by the MCP SDK before the handler. A failed API call returns API <status>: <message> using the API error string, or Request failed. when the body has none. Network failures return Could not reach the configured FoxCue API. Calls time out after 30 seconds.

discover_targets

Generate proposed keywords and buyer questions from current public source evidence. Suggestions remain unapproved; provider charges may apply. Preserve the stable request key.

Scopes on the tool: strategy:read, strategy:write, knowledge:read, generation:write. Read only: no. Idempotent hint: yes.

Input

FieldRequiredTypeNullableRules
project_idyesstringnominLength 1; maxLength 100
silo_idyesstringnominLength 1; maxLength 100
source_idnostringnominLength 1; maxLength 100
idempotency_keyyesstringnominLength 8; maxLength 150
expected_source_revisionnointegerno
{
  "name": "discover_targets",
  "arguments": {
    "project_id": "example",
    "silo_id": "example",
    "source_id": "example",
    "idempotency_key": "example-key",
    "expected_source_revision": 1
  }
}

Output

structuredContent.result: The authoritative API result; missing metrics and provider acknowledgments remain explicit.

The output schema types result as unknown. The value is whatever the API operation returns. No fields are invented here.

Errors

Invalid input is rejected by the MCP SDK before the handler. A failed API call returns API <status>: <message> using the API error string, or Request failed. when the body has none. Network failures return Could not reach the configured FoxCue API. Calls time out after 30 seconds.

review_targets

Explicitly approve edited suggestions or dismiss them using the current source revision and discovery receipt. Only use approve when authorized by the human. This action does not start paid checks.

Scopes on the tool: strategy:read, strategy:write, knowledge:read. Read only: no. Idempotent hint: yes.

Input

FieldRequiredTypeNullableRules
project_idyesstringnominLength 1; maxLength 100
silo_idyesstringnominLength 1; maxLength 100
source_idnostringnominLength 1; maxLength 100
discovery_idyesstringnominLength 1
idempotency_keyyesstringnominLength 8; maxLength 150
expected_source_revisionnointegerno
localenostringnodefault en-US
candidatesyesarrayno
{
  "name": "review_targets",
  "arguments": {
    "project_id": "example",
    "silo_id": "example",
    "source_id": "example",
    "discovery_id": "example",
    "idempotency_key": "example-key",
    "expected_source_revision": 1,
    "locale": "example",
    "candidates": [
      {
        "id": "example",
        "action": "approve",
        "text": "example",
        "question": "example",
        "entities": [
          "example"
        ],
        "required_answers": [
          "example"
        ]
      }
    ]
  }
}

Output

structuredContent.result: The authoritative API result; missing metrics and provider acknowledgments remain explicit.

The output schema types result as unknown. The value is whatever the API operation returns. No fields are invented here.

Errors

Invalid input is rejected by the MCP SDK before the handler. A failed API call returns API <status>: <message> using the API error string, or Request failed. when the body has none. Network failures return Could not reach the configured FoxCue API. Calls time out after 30 seconds.

inspect_production

Read an owned composition, resolved timeline and current revision before editing/rendering. Original recordings and audio remain referenced.

Scopes on the tool: outputs:read. Read only: yes. Idempotent hint: yes.

Input

FieldRequiredTypeNullableRules
composition_idyesstringnominLength 1; maxLength 100
{
  "name": "inspect_production",
  "arguments": {
    "composition_id": "example"
  }
}

Output

structuredContent.result: The authoritative API result; missing metrics and provider acknowledgments remain explicit.

The output schema types result as unknown. The value is whatever the API operation returns. No fields are invented here.

Errors

Invalid input is rejected by the MCP SDK before the handler. A failed API call returns API <status>: <message> using the API error string, or Request failed. when the body has none. Network failures return Could not reach the configured FoxCue API. Calls time out after 30 seconds.

edit_video

Queue the existing recording edit pipeline with original narration, sourced Library cutaways and supported style/caption treatments. Choose exactly one media_id or recording_id. Re-edits require the existing composition and base revision. No automatic publishing.

Scopes on the tool: media:write, generation:write. Read only: no. Idempotent hint: yes.

Input

FieldRequiredTypeNullableRules
inputyesobjectno
{
  "name": "edit_video",
  "arguments": {
    "input": {
      "idempotency_key": "example-key"
    }
  }
}

Output

structuredContent.result: The authoritative API result; missing metrics and provider acknowledgments remain explicit.

The output schema types result as unknown. The value is whatever the API operation returns. No fields are invented here.

Errors

Invalid input is rejected by the MCP SDK before the handler. A failed API call returns API <status>: <message> using the API error string, or Request failed. when the body has none. Network failures return Could not reach the configured FoxCue API. Calls time out after 30 seconds.

render_video

Render the current reviewed composition revision into an output with original recorded audio. Keep the same idempotency key; interrupted work is surfaced rather than silently replayed.

Scopes on the tool: generation:write. Read only: no. Idempotent hint: yes.

Input

FieldRequiredTypeNullableRules
composition_idyesstringnominLength 1; maxLength 100
base_revisionyesintegernominimum 1
idempotency_keyyesstringnominLength 8; maxLength 128
{
  "name": "render_video",
  "arguments": {
    "composition_id": "example",
    "base_revision": 1,
    "idempotency_key": "example-key"
  }
}

Output

structuredContent.result: The authoritative API result; missing metrics and provider acknowledgments remain explicit.

The output schema types result as unknown. The value is whatever the API operation returns. No fields are invented here.

Errors

Invalid input is rejected by the MCP SDK before the handler. A failed API call returns API <status>: <message> using the API error string, or Request failed. when the body has none. Network failures return Could not reach the configured FoxCue API. Calls time out after 30 seconds.

prepare_publication

Create a draft from a completed owned video output and selected connected channel. This does not upload, release, schedule, approve metadata or grant Google consent.

Scopes on the tool: publishing:write. Read only: no. Idempotent hint: no.

Input

FieldRequiredTypeNullableRules
project_idyesstringnominLength 1; maxLength 128
artifact_idyesstringnominLength 1; maxLength 128
video_idnostringnominLength 1; maxLength 128
connection_idyesstringnominLength 1; maxLength 128
{
  "name": "prepare_publication",
  "arguments": {
    "project_id": "example",
    "artifact_id": "example",
    "video_id": "example",
    "connection_id": "example"
  }
}

Output

structuredContent.result: The authoritative API result; missing metrics and provider acknowledgments remain explicit.

The output schema types result as unknown. The value is whatever the API operation returns. No fields are invented here.

Errors

Invalid input is rejected by the MCP SDK before the handler. A failed API call returns API <status>: <message> using the API error string, or Request failed. when the body has none. Network failures return Could not reach the configured FoxCue API. Calls time out after 30 seconds.

update_publication

Save title, description, tags, disclosure, thumbnail and desired release metadata on an exact draft revision. This does not submit external delivery.

Scopes on the tool: publishing:write. Read only: no. Idempotent hint: no.

Input

FieldRequiredTypeNullableRules
draft_idyesstringnominLength 1; maxLength 100
expected_revisionyesintegerno
metadatayesobjectno
{
  "name": "update_publication",
  "arguments": {
    "draft_id": "example",
    "expected_revision": 1,
    "metadata": {
      "title": "example",
      "description": "example",
      "tags": [
        "example"
      ],
      "category_id": "example",
      "made_for_kids": true,
      "contains_synthetic_media": true,
      "visibility": "private"
    }
  }
}

Output

structuredContent.result: The authoritative API result; missing metrics and provider acknowledgments remain explicit.

The output schema types result as unknown. The value is whatever the API operation returns. No fields are invented here.

Errors

Invalid input is rejected by the MCP SDK before the handler. A failed API call returns API <status>: <message> using the API error string, or Request failed. when the body has none. Network failures return Could not reach the configured FoxCue API. Calls time out after 30 seconds.

submit_publication

EXTERNAL WRITE: upload/release or schedule the exact reviewed draft revision to its chosen YouTube channel. Requires explicit human authorization for this delivery and publishing:publish. Script generation or draft creation does not authorize publication. Reuse the same key after a timeout.

Scopes on the tool: publishing:publish. Read only: no. Idempotent hint: yes.

Input

FieldRequiredTypeNullableRules
draft_idyesstringnominLength 1; maxLength 100
expected_revisionyesintegerno
idempotency_keyyesstringnominLength 8; maxLength 128
{
  "name": "submit_publication",
  "arguments": {
    "draft_id": "example",
    "expected_revision": 1,
    "idempotency_key": "example-key"
  }
}

Output

structuredContent.result: The authoritative API result; missing metrics and provider acknowledgments remain explicit.

The output schema types result as unknown. The value is whatever the API operation returns. No fields are invented here.

Errors

Invalid input is rejected by the MCP SDK before the handler. A failed API call returns API <status>: <message> using the API error string, or Request failed. when the body has none. Network failures return Could not reach the configured FoxCue API. Calls time out after 30 seconds.

read_measurement_report

Read either scoped citation history or one cached supported YouTube Analytics report. Citation samples, search data and private Analytics remain distinct. Missing/failed checks are unknown, never zero. This read does not run a new paid query.

Scopes on the tool: none declared. The underlying API still checks its own scope.. By kind: citations needs strategy:read, knowledge:read, performance:read, youtube needs performance:read. Read only: yes. Idempotent hint: yes.

Input

FieldRequiredTypeNullableRules
reportyesyes
{
  "name": "read_measurement_report",
  "arguments": {
    "report": {
      "kind": "citations",
      "scope": {
        "project_id": "example",
        "silo_id": "example",
        "source_id": "example"
      }
    }
  }
}

Output

structuredContent.result: The authoritative API result; missing metrics and provider acknowledgments remain explicit.

The output schema types result as unknown. The value is whatever the API operation returns. No fields are invented here.

Errors

Invalid input is rejected by the MCP SDK before the handler. A failed API call returns API <status>: <message> using the API error string, or Request failed. when the body has none. Network failures return Could not reach the configured FoxCue API. Calls time out after 30 seconds.

check_citations

PAID EXTERNAL CHECKS: test explicitly approved current targets on selected engines within a per-call cost cap. Preserve key after uncertain outcomes; failed engines do not count as negatives. No schedule is created.

Scopes on the tool: performance:write, strategy:read, knowledge:read. Read only: no. Idempotent hint: yes.

Input

FieldRequiredTypeNullableRules
project_idyesstringnominLength 1; maxLength 100
silo_idyesstringnominLength 1; maxLength 100
source_idnostringnominLength 1; maxLength 100
idempotency_keyyesstringnominLength 8; maxLength 150
target_idsyesarrayno
enginesyesarrayno
max_cost_usdnonumbernominimum 0.01; maximum 2; default 0.25
{
  "name": "check_citations",
  "arguments": {
    "project_id": "example",
    "silo_id": "example",
    "source_id": "example",
    "idempotency_key": "example-key",
    "target_ids": [
      "example"
    ],
    "engines": [
      "chatgpt"
    ],
    "max_cost_usd": 0.25
  }
}

Output

structuredContent.result: The authoritative API result; missing metrics and provider acknowledgments remain explicit.

The output schema types result as unknown. The value is whatever the API operation returns. No fields are invented here.

Errors

Invalid input is rejected by the MCP SDK before the handler. A failed API call returns API <status>: <message> using the API error string, or Request failed. when the body has none. Network failures return Could not reach the configured FoxCue API. Calls time out after 30 seconds.

schedule_citation_checks

Create explicit recurring checks for approved targets, engines, cadence and finite budget. This authorizes recurring provider spend only when requested by the human. No immediate check is implied.

Scopes on the tool: performance:write, strategy:read, knowledge:read. Read only: no. Idempotent hint: yes.

Input

FieldRequiredTypeNullableRules
project_idyesstringnominLength 1; maxLength 100
silo_idyesstringnominLength 1; maxLength 100
source_idnostringnominLength 1; maxLength 100
idempotency_keyyesstringnominLength 8; maxLength 150
target_idsyesarrayno
enginesyesarrayno
cadence_hoursyesintegernominimum 24; maximum 720
max_cost_usdyesnumbernominimum 0.01; maximum 2
budget_usdyesnumbernominimum 0.01; maximum 25
{
  "name": "schedule_citation_checks",
  "arguments": {
    "project_id": "example",
    "silo_id": "example",
    "idempotency_key": "example-key",
    "target_ids": [
      "example"
    ],
    "engines": [
      "chatgpt"
    ],
    "cadence_hours": 24,
    "max_cost_usd": 0.01,
    "budget_usd": 0.01
  }
}

Output

structuredContent.result: The authoritative API result; missing metrics and provider acknowledgments remain explicit.

The output schema types result as unknown. The value is whatever the API operation returns. No fields are invented here.

Errors

Invalid input is rejected by the MCP SDK before the handler. A failed API call returns API <status>: <message> using the API error string, or Request failed. when the body has none. Network failures return Could not reach the configured FoxCue API. Calls time out after 30 seconds.

pause_citation_schedule

Pause or explicitly resume one scoped saved schedule. Resume continues already authorized remaining budget; provider/source permissions are revalidated.

Scopes on the tool: performance:write. Read only: no. Idempotent hint: yes.

Input

FieldRequiredTypeNullableRules
schedule_idyesstringnominLength 1; maxLength 100
project_idyesstringnominLength 1; maxLength 100
silo_idyesstringnominLength 1; maxLength 100
source_idnostringnominLength 1; maxLength 100
pausedyesbooleanno
{
  "name": "pause_citation_schedule",
  "arguments": {
    "schedule_id": "example",
    "project_id": "example",
    "silo_id": "example",
    "source_id": "example",
    "paused": true
  }
}

Output

structuredContent.result: The authoritative API result; missing metrics and provider acknowledgments remain explicit.

The output schema types result as unknown. The value is whatever the API operation returns. No fields are invented here.

Errors

Invalid input is rejected by the MCP SDK before the handler. A failed API call returns API <status>: <message> using the API error string, or Request failed. when the body has none. Network failures return Could not reach the configured FoxCue API. Calls time out after 30 seconds.

On this page