Integrations
Calling Sume from automation platforms, serverless functions, agent frameworks, and MCP clients. Each uses plain HTTPS or remote MCP, not a connector.

Claude Code: same MCP name in two scopes, one Sume entry, no merge
If a Sume server is defined in local and project scope, Claude Code loads one definition whole and warns. Order, no field merge, and which tools you get.

claude -p loads project .mcp.json with no approval: Sume paid tools
In claude -p, Agent SDK and cloud sessions, Claude Code loads .mcp.json servers without asking. What that means for a committed Sume entry, and how to block it.

Codex env_http_headers: send the Sume key as x-api-key
Codex can send a Sume API key from an environment variable as an x-api-key header with env_http_headers. Config, caveats on auth order, and how to verify it.

Codex enabled_tools: allowlist only read-only Sume MCP tools
Codex's enabled_tools setting limits which tools a Sume MCP server exposes. Here is an allowlist of Sume's read tools, and why it matters most for API keys.

Codex MCP required = true: fail fast when the Sume server is down
Codex's required = true makes startup fail if an enabled MCP server cannot initialize. When to set it for Sume, and how the 1000 ms grace and 10 s timeout work.

Cursor MCP allowlist: approve Sume's URL and its read tools
Cursor enterprise admins approve remote MCP servers by URL entry and list tools per server. How to allow Sume's mcp.sume.com/mcp and which tools to list.

Cursor supports MCP roots and elicitation; Sume uses tools only
Cursor lists tools, prompts, resources, roots, elicitation and Apps as supported. Sume's hosted MCP answers only tools, so here is what you will see.

Instagram Reels API aspect ratio: 0.01:1 to 10:1, 9:16 advised
Meta's Reels API accepts any aspect ratio from 0.01:1 to 10:1 and only recommends 9:16. See what each ratio rule says and check a clip with video inspect.

Instagram Reels API audio: AAC, 48 kHz max, mono or stereo
Meta's Reel spec asks for AAC audio, a sample rate of 48 kHz at most, 1 or 2 channels and 128 kbps. Check those fields with a Sume video inspect probe first.

Instagram Reels API cover_url vs thumb_offset: which one wins?
If a Reel container sets both cover_url and thumb_offset, Meta uses cover_url and ignores thumb_offset. How each works, and how to pull a cover frame.

Instagram Reels API share_to_feed: true does not guarantee Reels
share_to_feed=true lets a Reel appear in Feed and Reels; false limits it to Reels. Neither value guarantees placement. What Meta's page says, and what to prep.

Instagram Reels API limits: 3 collaborators, no carousel, audio tags
Meta's Reels API allows up to 3 collaborators, keeps Reels out of carousels, and limits music tagging to original audio. The limits that shape a batch plan.

n8n Data table as a Sume job ledger: the 200 MiB default limit
Store each Sume job id in an n8n Data table and upsert it when the webhook arrives. The default cap is 200 MiB per instance, and a full table errors inserts.

n8n Execution Data node: find a run by its Sume job id
Save the Sume job id with n8n's Execution Data node and you can search the Executions list by it. Keys cap at 50 characters, values at 512, plan limits apply.

n8n Form Trigger: Respond When and a long Sume video job
n8n's Form Trigger can answer on submit or when the workflow finishes. For a Sume video job that runs minutes, answer on submit and deliver the video later.

n8n Remove Duplicates node: skip repeat rows before Sume calls
Use n8n's Remove Duplicates node in previous-executions mode so a repeated row never reaches a paid Sume call, and keep an Idempotency-Key for retries.

TikTok max_video_post_duration_sec: trim before Direct Post
TikTok's creator_info endpoint returns max_video_post_duration_sec, a per-creator limit. Read it first, then cut the clip to fit with Sume video trim.

TikTok privacy_level_options: public vs private account values
TikTok creator_info returns different privacy_level_options for public and private accounts, and Direct Post privacy_level must match one. Values for each.

Storage by Zapier 32-character keys: remember a Sume job id
Storage by Zapier keys are limited to 32 characters and 500 keys, and idle keys vanish after 2 months. Key by your row id, store the Sume job id as the value.

Zed MCP: which agents use your Sume server (Panel, ACP, terminal)
Zed's own Agent uses context_servers directly, external agents get them over ACP, and terminal CLIs read their own config. Where the Sume MCP entry goes.

Airtable webhook expired after 7 days: refresh it, then batch Sume
Airtable webhooks made with a token expire after 7 days and stop after 13 failed pings. Refresh on a schedule, then send changed rows to one Sume bulk run.

Apps Script UrlFetch 20,000 calls a day: budget Sume polling
Consumer Apps Script allows 20,000 UrlFetch calls a day and 90 minutes of trigger time. One Sume bulk run per sheet plus a slow poll fits well inside both.

Claude Code 2.1.287 large MCP results: Sume's include_results answer
Claude Code 2.1.287 fixed paging of large MCP results saved as JSON. For Sume job waves, use jobs_wait include_results and read omitted ids once.

Claude connector sign-in now, when needed or none: pick for Sume
For Sume's hosted MCP, pick Sign in now with OAuth, or add one auth header for an API key. No sign in fails, because the server needs a credential.

Claude Desktop: add Sume's hosted MCP as a custom connector
Claude Desktop adds a remote MCP server through Customize > Connectors, not claude_desktop_config.json. Paste Sume's URL, sign in, and call tools_list.

Claude Team or Enterprise: owner adds the Sume connector first
On Claude Team and Enterprise an owner adds the custom connector in Organization settings first, then members connect. Free plans get one custom connector.

Cloudflare Cron Triggers: 5 free, 250 paid, one Sume bulk run
Free Workers accounts get 5 Cron Triggers, Paid get 250. Use one trigger to fan out many Sume Format runs through a bulk queue instead of one cron each.

Cloudflare Workers waitUntil: 30 seconds to submit a Sume run
ctx.waitUntil extends a Worker up to 30 seconds past the response: enough to submit a Sume job with an Idempotency-Key, not to wait on sync mode.

Devin Desktop team allowlist: Sume's MCP server blocked until listed
In Devin Desktop, once an admin allowlists any MCP server, all others are blocked for the team. Add Sume's production URL to the list before members connect.

Devin Desktop 100-tool limit: fit Sume's MCP tools with disabledTools
Cascade in Devin Desktop (formerly Windsurf) caps total tools at 100. Sume's docs list about 75 tool ids; trim others with disabledTools.

Gemini CLI headless: ask_user acts as deny, so paid Sume calls skip
In Gemini CLI non-interactive mode a policy of ask_user is treated as deny. A paid Sume call then never runs, so allow it narrowly or use an API-key script.

Gemini CLI MCP tool names: write policy rules for Sume's paid tools
Gemini CLI names MCP tools mcp_{server}_{tool}, so Sume's generate_image becomes mcp_sume_generate_image. Write a TOML policy with mcpName and toolName.

Lambda 1,000 concurrency and Sume webhook bursts finishing together
Jobs from one bulk queue often finish together. Lambda starts at 1,000 concurrent executions, lower on new accounts. Here is how Sume's retries absorb a burst.

Lambda async 1 MB limit vs Sume's 1 MiB run webhook overflow
Lambda takes 1 MB for async events and 6 MB sync. Sume sends a run webhook inline up to 1 MiB, then payload null. Forward the id, not the receipt.

Lightroom Prompt to Edit runs on Nano Banana: batch edits by API
Adobe's Lightroom v9.6 adds Prompt to Edit, powered by Nano Banana. To run the same kind of prompt edit over many photos, send them to Sume's image edit API.

LinkedIn ad video captions: one English SRT, and it must process
On LinkedIn ad videos, caption processing must succeed or the video will not serve. One English caption file per video. Plan it next to a Sume avatar render.

LinkedIn EXPIRED_UPLOAD_URL (400): why it happens and how to retry
LinkedIn upload URLs expire, and uploading to one after uploadUrlsExpireAt fails. Re-run initializeUpload and send the Sume clip again. Here is the flow.

LinkedIn: reuse one uploaded video in a feed post and a sponsored ad
LinkedIn says a video uploaded through the Videos API can be reused across post formats. Upload your Sume avatar clip once, then reference its URN twice.

LinkedIn video status PROCESSING_FAILED: read the reason, fix the clip
LinkedIn Videos API returns PROCESSING_FAILED with a processingFailureReason. Probe your Sume clip first and re-upload a clean file instead of guessing.

Cline MCP remote not connecting: set type streamableHttp for Sume
Cline treats a remote server with no type as legacy SSE. Sume's hosted MCP is streamable HTTP and answers GET /mcp with 405, so set type to streamableHttp.

Next.js after() runs even on errors: guard Sume submits with a key
Next.js after() runs after the response, even when the handler threw. Put a Sume submit there only with an Idempotency-Key, and cap it by route maxDuration.

Notion 2,000-character text limit: write Sume results back in chunks
Notion caps one text value at 2,000 characters and a request at 1,000 blocks or 500KB. Split Sume's structured output into blocks instead of one property.

Pinterest video Pin 400: the cover image is required, here is a frame
Creating a Pinterest video Pin needs a valid cover_image_url or you get a 400. Pull a still from your Sume avatar clip with video frames and host it publicly.

Slack Events API retries 3 times: keep one Sume run per event
Slack retries a missed Events API ack three times and can disable your subscriptions. Ack in 3 seconds and let an Idempotency-Key keep one Sume run per event.

Snapchat Spotlight API: SUBMITTED, LIVE or REJECTED, 160-char caption
A Spotlight post through Snap's Public Profile API returns SUBMITTED, LIVE or REJECTED and takes a 160-character description with a locale. Prep it with Sume.

Snapchat MEDIA_EXPIRED: Story media dies 24 hours after creation
Snap Public Profile Story media objects expire 24 hours after creation, which causes MEDIA_EXPIRED. Generate with Sume, then upload and post in one run.

Supabase Edge Function 504 at 150 s idle: Sume sync stays under it
A Supabase Edge Function that sends no response in 150 seconds returns 504. Sume sync waits at most 30 seconds: a bounded wait, then poll.

TikTok publish webhooks vs Sume run webhooks: wire both safely
TikTok sends webhooks for failed, complete, inbox, public and removed posts. Sume signs its own run webhook separately. Keep two receivers and verify Sume's.