MCP tools and gates
Hosted MCP tools wrap selected public API capabilities. Always discover the live
contract with tools_list and tools_schema — do not assume HTTP API parity.
Live tool ids are underscore names from packages/mcp-server/src/mcp.ts
(remoteMcpTools). The server canonicalizes . → _ on call, so dotted
aliases such as tools.list still work. Retired aliases:
image-generations_create → generate_image, video-router_create →
generate_video.
Discover tools
| Tool | Purpose |
|---|---|
tools_list | List every tool visible in this session, with safety metadata. |
tools_schema | Fetch one tool contract by name. |
mcp_health | Endpoint readiness, auth source, and safety posture. |
Example agent instruction:
Safety gates
Hosted MCP defaults to read-only visibility under OAuth mcp:read.
Mutating and paid tools are hidden until the session has mcp:write (or an
API key). Spend is wallet/admission — there is no mcp:paid scope.
| Gate | Required? | Meaning |
|---|---|---|
idempotency_key | Required on write and paid tools | Stable key for transport/dedup, not human approval. |
dry_run=true | Optional | Admission/cost preview only; do not submit the job. |
max_spend_usd | Optional | Enforced only when provided. |
allow_write / allow_paid | Optional (legacy) | Accepted for back-compat; not required. Cannot bypass a missing mcp:write scope. |
Prefer generation_admission_preview and/or dry_run before expensive bursts.
Ordinary single creates do not need admission theater.
Auth interaction
| Session auth | What you see / can call |
|---|---|
OAuth mcp:read only | Read-only tools. Mutating/paid calls return insufficient_scope. |
OAuth mcp:read + mcp:write | Full hosted tool set. Paid submits still need idempotency_key and wallet/admission. |
| API key | Full hosted tool set. Same idempotency_key / admission rules. |
script_run
script_run runs a short JavaScript program on the Sume side that calls the
tools below in a loop, in parallel, or conditionally, and returns one value.
Use it when a turn needs three or more independent calls of the same shape
(one tts_create per sentence, one generate_image per scene). Inside the
script, await sume.call(name, arguments) runs any listed tool with the same
gates, redaction and errors as a direct call, and paid creates still need
their own idempotency_key. The run is bounded by timeout_seconds (5–55),
max_calls and max_paid_calls; the response carries the returned value, a
calls[] journal and the child jobs[] to jobs_wait on. Discovery tools
and script_run itself cannot be called from a script.
Tool inventory (hosted)
Grouped from the current hosted registry. Names are live tool ids. Call
tools_list for the session-visible subset.
Meta and health
mcp_healthtools_listtools_schemascript_run(programmatic tool calling, see above)health_servicehealth_v1
Account and catalog
account_mebalance_getusage_getcatalog_listimage-models_list/image-models_getvideo-router_modelsgeneration_admission_preview
Jobs
Read: jobs_list, jobs_get, jobs_status, jobs_result, jobs_events,
jobs_wait.
Write (idempotency_key): jobs_cancel.
Assets
Read: assets_list, assets_get, assets_download_url.
Write (idempotency_key): assets_create, assets_upload_url,
assets_complete.
Hosted MCP cannot read files from your laptop. Upload flow is: create upload
URL → client PUT bytes → assets_complete.
Image, video, audio generation
Paid (idempotency_key; omit payload.model to route to sume/auto unless
the user named a family):
generate_imagegenerate_videomusic_createtts_createstt_createimage_upscale_creatermbg_createvideo_upscale_createkling-motion-control_create
Avatars and talking-head
Read: avatars_list, avatars_get, avatars_search, avatar-videos_list,
avatar-videos_get.
Paid: avatars_create, avatar-videos_create,
avatar-image-to-video_create, avatar-video-previews_create /
_get / _regenerate / _generate_video.
Crawl (web + social)
Read: crawl_scrape, crawl_map, crawl_search, crawl_get,
crawl_profile, crawl_feed, crawl_media, crawl_find.
Write (idempotency_key; unbilled utility): crawl_site (then jobs_wait →
crawl_get on the same id).
Social discovery skill: crawl-social. Web research skill: crawl-web.
Media inspect / import / captions / timeline
media-imports_create/media-imports_getvideo_inspect(default for “what is this clip”; dest and prod) — Video inspectvideo_frames_create/video_frames_get— Video framesvideo_trim— Video trimaudio_detach— Audio detachvideo_filter— Video filter (check_only: trueis the unbilled/check)video-captions_create/video-caption-overlay_create/video-captions_gettimeline_create/timeline_get— Timeline 1.0timeline_compose— Timeline composetimeline_audio— Timeline audiotrending-videos_search,trending-research_search
video-analyses_* (#5953): dest (SUME_COM_VIDEO_ANALYSIS_ENABLED=false)
delists them from tools_list and video-analyses_create answers
410 video_analysis_retired. Production still lists them until PR-C2. Do not
call create on dest.
Dest-only (mcp.dev.sume.com / api.dev.sume.com, never production):
video_analyze and video_segment appear in tools_list only when
videoUnderstand.enabled is on (Railway development + trusted origin
https://api.dev.sume.com + SUME_COM_TWELVELABS_API_KEY). Both require
idempotency_key and max_spend_usd. They are not a replacement for
video_inspect on lightweight probe/stills.
Not on hosted MCP
These names are not in tools_list:
images_create/videos_create— Sume Image 1.0 and Video 1.0 stay REST-only. Use the Developer API.- Higgsfield-only names (
get_workflow_instructions,models_explore,media_import_url,remove_backgroundas an HF tool). Cutouts arermbg_create; social URL mirror ismedia-imports_create.
catalog_list may still show HTTP capabilities that do not have matching MCP
tools.
Playbooks
Playbook A — OAuth read-only discovery (Cursor / Claude)
- Connect to
https://mcp.sume.com/mcpwith OAuth. Leave Write off unless you need mutations. - Call
mcp_healthand confirmauthenticated.auth_sourceismcp_oauth. - Call
tools_listand keep onlyread_onlytools in mind when Write is off. - Call
catalog_list,balance_get, andjobs_listas needed. - If Write was off, stop before mutating tools — they return
insufficient_scope.
Playbook B — Inspect one tool before paying
- Call
tools_schemawithname: "generate_image"(oravatars_create). - Call
generation_admission_previewor the paid tool withdry_run=true. - Confirm estimate, balance, and queue behavior.
- Submit with a fresh
idempotency_keyon a session that hasmcp:writeor an API key. Optionalmax_spend_usdwhen you want a cap.
Playbook C — Paid avatar create (write session)
Use only when the user explicitly confirms spend.
allow_write / allow_paid may still be sent; they are not required.
- First call with
dry_run=trueand review the preview. - Repeat with
dry_runomitted orfalseto submit. - Poll with
jobs_status/jobs_wait, then readjobs_result. - Prefer Sume public ids and
media.sume.comURLs in agent reports. Do not paste signed URLs, OAuth tokens, or API keys into chat logs.
Playbook D — Local CLI instead of hosted MCP
Use when the agent already runs local shell commands. CLI tool ids stay dotted
(avatars.create) — that registry is not the hosted MCP catalog. Local
sume mcp remains coming_soon in current CLI releases.
Hosted OAuth and local CLI login are different flows; do not expect
sume login to mint hosted MCP OAuth tokens.

