# Sume MCP MCP Server

> **Sume MCP MCP Server** is a hosted, multitenant Model Context Protocol (MCP) server run by **MewCP** (https://mewcp.com), giving AI agents managed access to Sume MCP.
>
> MewCP takes care of all MCP infrastructure for you — credential storage, OAuth flows,
> token refresh, and production-grade auto-scaling — so your AI agents can connect to
> third-party services and run freely without you managing any MCP server yourself.
>
> Server page:  https://mewcp.com/mcp/sume-mcp
> MewCP docs:   https://docs.mewcp.com
> All servers:  https://mewcp.com/servers (JSON: https://mewcp.com/api/servers)
> About MewCP:  https://mewcp.com/llms.txt

---

## About

Generate AI images and videos using leading models like Kling, Seedance, Nano Banana, and Grok Imagine through Sume

---

## Details

- Server ID: `sume-mcp`
- Version: 0.4.0
- Tools: 46
- Authentication: OAuth, managed by MewCP
- Transport: http

---

## Access

The gateway URL below serves your **entire MewCP toolset**, not this server on its
own. Pasting a config snippet is not enough — Sume MCP has to be in the toolset
first. In order:

1. Add Sume MCP to your toolset at https://mewcp.com/mcp/sume-mcp
2. Connect your Sume MCP account (OAuth); MewCP stores the credential and attaches it to each call
3. Add the gateway URL to your client (see Connect below). It signs in with OAuth
   the first time it connects, so there is no key to copy.

Once connected, an agent does **not** see this server's tools as top-level tools.
It sees four meta-tools and reaches everything through them:

- `search(query)` — find tools by keyword across the toolset
- `get_schema(tools)` — full description and arguments for the tools you picked
- `list_accounts(provider)` — only when one app has several connected accounts
- `call_tool(server_maskedId, tool_name, args)` — execute

So the list below is what `search` can return for this server, not a set of
callable tool names on their own.

---

## Tools (46)

Descriptions are truncated to 160 characters; call `get_schema`
for the full text and the argument schema. Where a tool is annotated, its type
is shown — treat `destructive` as irreversible.

- `get_workflow_instructions` _(read)_ — Sume's step-by-step guides for two kinds of work. Read the right one first: each is a SKILL.md that tells you which `generate_*` calls to make and with what…
- `get_workflow_bundle_file` _(read)_ — Returns one extra file, or a folder listing, from a guide that `get_workflow_instructions` loaded. Call it when that SKILL.md points to a file by path. For a…
- `get_presets` _(read)_ — Lists Sume's published presets, which are ready-made recipes for a finished image or video, such as a product commercial, a serum drip, a before-and-after or a…
- `get_preset_instructions` _(read)_ — Returns a published preset's instructions (its SKILL.md) and the files next to it, without running the preset. Pass `preset` as its id (`sume-cream-squeeze`)…
- `media_upload` _(write)_ — Puts an image, video or audio file into Sume and returns the URL generation tools take. For a file attached in the chat, send it as `file` with a new…
- `media_confirm` _(write)_ — Finishes an upload from `media_upload`. Call it after your PUT of the file bytes to `upload.url` succeeded (HTTP 200). Send `asset_id` and a new…
- `media_import_url` _(write)_ — Brings a web media URL into Sume so you can generate from it. A TikTok or Instagram post URL is imported. Sume fetches the video into its storage as a paid…
- `models_explore` _(read)_ — For product photos or an ad video, the workflow names the model and settings to use, so load it with `get_workflow_instructions` first. Lists, searches and…
- `balance` _(read)_ — Returns the connected workspace's balance in US dollars as `available_usd`. Check it before a large or paid batch. Quote dollars, never credits. Read-only.
- `list_workspaces` _(read)_ — Lists the workspaces this connection can use: the person's personal workspace and every team they belong to. `is_selected` marks the workspace that generations…
- `select_workspace` _(write)_ — Switches this connection to another workspace, given a `workspace_id` from `list_workspaces`. From the next call on, generations bill that workspace's balance,…
- `generate_image` _(write)_ — Product photos, packshots and other product-led stills need the 'product-photoshoot' workflow. Load it with `get_workflow_instructions` before your first…
- `generate_video` _(write)_ — An ad or promo video needs the 'ad-video' workflow. Load it with `get_workflow_instructions` before your first `generate_video` call for one in a conversation.…
- `generate_audio` _(write)_ — Before you make an ad's music or voiceover, load the 'ad-video' workflow with `get_workflow_instructions`. Makes audio: speech from a script, or music from a…
- `generate_image_batch` _(write)_ — Load the 'product-photoshoot' or 'ad-video' workflow with `get_workflow_instructions` before your first `generate_image_batch` call in a conversation for…
- `generate_video_batch` _(write)_ — Load the 'ad-video' workflow with `get_workflow_instructions` before your first `generate_video_batch` call in a conversation for an ad or promo video. Submits…
- `generate_audio_batch` _(write)_ — Submits up to 12 independent `generate_audio` requests in one call, for example one voice line per scene. Each request carries its own `index`,…
- `execute_preset` _(write)_ — Runs one published Sume preset from `get_presets` and makes its finished image or video. Call it only when the person asks to generate with that preset. Before…
- `jobs_wait` _(read)_ — Waits for jobs to finish and can return their result URLs in the same answer. Pass `job_id`, or `job_ids` (up to 20) from `generate_*` or a batch, and set…
- `job_status` _(read)_ — Reads one job's current state without waiting. It takes a generation job id from `generate_*` or a preset run id (arun_...) from `execute_preset`. While the…
- `usage_get` _(read)_ — Returns public API usage ledger entries (spend/refund-style history) through GET /v1/usage, in a Sume ledger shape. With `thread_id`, `run_id` or `job_id` it…
- `jobs_list` _(read)_ — Lists recent generation-job status: in a Studio Agent turn, this thread's jobs; with an API key or a sign-in connection, your own jobs in the workspace. It is…
- `jobs_get` _(read)_ — Returns one job record by `job_id`, a fuller snapshot than status alone. Use it to inspect a known job after list/create. It is also the only tool that can…
- `jobs_result` _(read)_ — Returns the results/artifacts of a job that reached terminal success. It takes `job_id` (single) or `job_ids[]` (1–20, the `jobs_wait` ceiling). Call it only…
- `jobs_cancel` _(destructive)_ — Cancels a job that has not reached the provider yet, through POST /v1/jobs/:id/cancel. Once provider work has started, it answers 409…
- `avatar_image_to_video_create` _(write)_ — Purpose: POST /v1/avatar-1.0/image-to-video is a deprecated REST compatibility alias. Use POST /v1/veed/fabric-1.0 (public model id veed/fabric-1.0), same…
- `kling_motion_control_create` _(write)_ — Submits a Kling 3.0 Motion Control job through POST /v1/kling/3.0/motion-control and returns a job id. The public model id is kling/3.0/motion-control. A…
- `remix_video_create` _(write)_ — Runs one Sume Remix endpoint: an edit of one existing video, one model per endpoint. `model` is `sume-remix-motion-transfer` (Sume/Remix Motion Transfer),…
- `tts_router_voices` _(read)_ — Lists the voices a `generate_audio` take can speak with. family eleven (the default) is for model eleven-v4, and sonic is for the public Sonic voices. Each…
- `rmbg_create` _(write)_ — Removes the background from an existing still through POST /v1/rmbg-1.0/remove and returns a cutout PNG with alpha. The public model id is sume/rmbg-1.0. It is…
- `video_upscale_create` _(write)_ — Upscales an existing clip through POST /v1/video-upscale-1.0/upscale and returns a job id. The public model id is sume/video-upscale-1.0. It is not a generator…
- `video_frames_create` _(write)_ — Extracts stills from a Sume-hosted video at times you choose (POST /v1/video-frames). An async video_frames job returns durable media.sume.com image artifacts.…
- `video_frames_get` _(read)_ — Reads one frame-extract by id (GET /v1/video-frames/:id). It returns status, plus frames[{t,url,width,height}] once ready. The id is the `request_id` that…
- `video_inspect` _(write)_ — Inspects ONE media.sume.com clip (Video inspect 1.0, POST /v1/video-inspect). Returns a probe (duration, size, rotation, fps, codecs, has_audio, hdr), up to 24…
- `fastlane_models_list` _(read)_ — Lists the Fastlane video models: Fastlane Green Screen (`fastlane/green-screen`), Fastlane Wall of Text (`fastlane/wall-of-text`) and Fastlane Slideshow…
- `fastlane_brands_list` _(read)_ — Lists this workspace's Fastlane brands, newest first, then Sume's shared default brand (sume.com, `system: true`), which every workspace can use with no…
- `fastlane_brands_get` _(read)_ — Reads one Fastlane brand: status analyzing, ready (the brand's fee is charged then) or failed (refunded). Brands finish on their own; reading one only shows…
- `fastlane_brands_create` _(write)_ — Registers a brand from its public website for Fastlane: Fastlane reads the site and builds the brand profile that every video uses. It costs $1.00, held now…
- `fastlane_videos_create` _(write)_ — Makes one short marketing video for a ready Fastlane brand. It costs $0.05, held now and charged when the video is stored; a video Fastlane cannot make is…
- `video_trim` _(write)_ — Cuts ONE media.sume.com clip to a range (Video trim 1.0, POST /v1/video-trim). An async job returns one NEW artf_ MP4 that holds only [start, end). It is…
- `audio_detach` _(write)_ — Extracts the audio of ONE media.sume.com video (Audio detach 1.0, POST /v1/audio-detach). An async job returns one NEW media.sume.com audio artifact: wav…
- `timeline_create` _(write)_ — Renders one audio track and ordered video[] into one MP4 (Timeline 1.0, POST /v1/timeline-1.0/render), an async timeline_render job. audio.duration_seconds…
- `timeline_audio` _(write)_ — Combines or splits Sume-hosted audio into durable media.sume.com files (Timeline 1.0, POST /v1/timeline-1.0/audio) as an async job of result kind…
- `timeline_compose` _(write)_ — Shows one still and one video on screen at ONCE (Timeline 1.0 compose, POST /v1/timeline-1.0/compose). An async job returns one media.sume.com MP4, kind…
- `video_filter` _(write)_ — Runs a pixel program on ONE Sume-hosted clip (Video filter 1.0, POST /v1/video-filter). An async job returns one NEW media.sume.com artf_ MP4, kind…
- `timeline_get` _(read)_ — Reads a Timeline 1.0 job result by `job_id` (GET /v1/jobs/:id/result): kind `timeline_render` with `video_url`, `duration_seconds`, `segment_count`,…

---

## Connect

- URL: https://gateway.mewcp.com/personal/mcp
- Transport: Streamable HTTP (remote). Nothing to install.
- Sign-in: OAuth. On first connect the client opens a browser window to sign in
  to MewCP and approve access. No API key.
- Headless clients (SDKs, servers without a browser) send an API key instead:
  `Authorization: Bearer <API_KEY>`, key from https://mewcp.com/dashboard/api-keys

Agents setting themselves up: follow https://mewcp.com/SKILL.md

Step-by-step guide per client:

- Claude Desktop: https://mewcp.com/mcp/sume-mcp/connect/claude
- ChatGPT: https://mewcp.com/mcp/sume-mcp/connect/chatgpt
- VS Code: https://mewcp.com/mcp/sume-mcp/connect/vscode
- Cursor: https://mewcp.com/mcp/sume-mcp/connect/cursor
- Codex: https://mewcp.com/mcp/sume-mcp/connect/codex
- Claude Code: https://mewcp.com/mcp/sume-mcp/connect/claude-code
- OpenCode: https://mewcp.com/mcp/sume-mcp/connect/opencode
- OpenClaw: https://mewcp.com/mcp/sume-mcp/connect/openclaw
- Antigravity: https://mewcp.com/mcp/sume-mcp/connect/antigravity
- Hermes: https://mewcp.com/mcp/sume-mcp/connect/hermes
- DeepSeek Harness: https://mewcp.com/mcp/sume-mcp/connect/dsh
- Python: https://mewcp.com/mcp/sume-mcp/connect/python
- TypeScript: https://mewcp.com/mcp/sume-mcp/connect/typescript