symflow-mcp
Provides tools for TikTok's Symphony Creative Studio, enabling AI video and image generation, trend templates with director prompts, talking avatars, try-on, video refresh, dubbing, and editor draft management.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@symflow-mcp Check my Symphony credits and generate a Seedance video from this product image."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
symflow-mcp — Claude MCP for TikTok Symphony Creative Studio
Run TikTok's Symphony Creative Studio from Claude Code or Claude Desktop: trend templates with their full director prompts, reference-to-video / image-to-video / text-to-video on Seedance, talking avatars, product and apparel try-on, video refresh from your own footage, dubbing into other languages and the editor draft — inside your own Symphony account and weekly credits.
This package is the open bridge: an MCP server (stdio) plus a tiny local HTTP queue. The work in the browser is done by the SymFlow Chrome extension (https://lingoflow.pro/symflow), which reads the studio's data with your session and reports results back. No API keys, no scraping services, nothing leaves your machine except the calls your browser already makes to ads.tiktok.com.
Claude ──MCP stdio──▶ symflow-mcp ──▶ bridge 127.0.0.1:8789 ◀── polling ── SymFlow extension ──▶ Creative Studio tab
│
files on disk (symflow-out/<job>/)Install
claude mcp add symflow -- npx -y symflow-mcpThen install the SymFlow extension, open ads.tiktok.com/creative/creativestudio signed in, and ask
Claude to call sym_status. Claude receives the director playbook from the extension and works by it:
asks what you sell and where, proposes ideas, names the cost in credits before spending, generates,
waits and downloads the files.
Related MCP server: TAP Insights MCP
Tools
Tool | What it does |
| connection, credits (weekly grant, spent, next refill), available models, inbox from the "→ Claude" button, the director playbook |
| TikTok trend templates with the complete director prompt, reference image and sample video |
| reference-to-video, image-to-video, text-to-video, image generation; |
| AI and real avatars, voices, a talking avatar video from a script with captions |
| avatar holding your product or wearing your apparel (images, then animated clips) |
| "Video refresh": new 15/30 s TikTok cuts from your ≥15 s footage and photos, 11 languages |
| dubbing into other languages, subtitle replacement, lip-sync |
| read / update / render / export the server-side editor draft |
| what was generated, download links, library uploads, ledger |
| wait for files, cancel the queue, diagnostics |
Credits
Symphony grants weekly credits. Only Seedance clips are charged (Seedance 1.5: 1 credit per second; 2.0: 5; 2.0 Mini: 2; 2.0 Fast: 3; 2.5: 10). Image generation, talking avatars, try-on images, video refresh and dubbing were free at the time of writing. Claude reads the balance before every batch and stops when a job would exceed it.
Remote Claude
By default the bridge listens on 127.0.0.1:8789. For Claude on another machine set OF_HOST to a
Tailscale address; a non-loopback bind requires the token from ~/.symflow-token (header
X-SymFlow-Token), which you paste into the extension settings.
Security
The bridge refuses requests with an http(s) Origin (only chrome-extension:// and local callers),
keeps its queue in memory, and never stores your TikTok session — the extension uses the cookies your
browser already has. The Symphony adapter and the director playbook are part of the extension, not of
this package.
MIT © DanikVR — https://lingoflow.pro/symflow
Available Tools
21 toolssym_apiA
Developer escape hatch: call a Symphony JSON endpoint from inside the signed-in tab (path relative to https://ads.tiktok.com). Use only when a documented tool cannot do it.
Inputs: path (required), body, query, method.
sym_avatarsA
Avatars: kind aigc (1400+ AI-generated presenters, default), real (licensed real people), tryon (avatars for apparel/product try-on), product (avatars holding a product). Filter by query (name/tags) or tagsAll (e.g. ["female","e-comm","western_europe"]). Returns avatarId, name, tags, cover, preview.
Inputs: kind, page, limit, query, +1 more.
sym_avatar_videoA
Talking avatar video from a script: the studio synthesises the voice (TTS), lip-syncs the avatar and adds captions. script ≤ 1000 characters in the spoken language; voiceId from sym_voices (default: the avatar's own voice); speed 0.8–1.3. Currently free of credits. Returns jobId — wait with sym_wait.
Inputs: items (required), folder, prefix.
sym_cancelA
Remove everything that has not started yet. Running renders are not interrupted.
Inputs: no named parameters.
sym_creditsA
Live Symphony credit account: balance, weekly grant and spent, tier, available models, recent ledger with the price actually charged per task, expected next refill. Use before batches and after failures.
Inputs: limit.
sym_downloadA
Download the files of an already finished studio task (taskId from sym_history / sym_status) into a job folder without generating anything. Returns jobId — get the paths with sym_wait.
Inputs: taskId (required), folder, watermarked.
sym_dubA
Dubbing: translate the speech of a video into other languages with a synthetic voice; options: replace burned-in subtitles, lip-sync (one visible speaker). Up to 20 videos per call. Returns jobId.
Inputs: videos (required), targets (required), dryRun, folder, +4 more.
sym_editorC
Server-side draft of the Symphony editor: op get (read the draft JSON), update (write a changed draft), estimate, render, check_render, export. Drafts are CapCut-style documents (tracks, materials, texts); change them structurally and render.
Inputs: op (required), draftId (required), draft, taskId, +2 more.
sym_generateA
Queue video/image generation in the live Symphony account. Modes: r2v (reference-to-video: up to 4 photos/videos on Seedance 1.5, 12 on 2.0, 50 on 2.5; optional templateId adds the template reference first), i2v (image-to-video from 1–2 frames), t2v (text-to-video), i2i (image with Nano Banana Pro / Flux). Returns jobId immediately; the extension waits for the render and downloads the files — get them with sym_wait. ALWAYS run with dryRun:true first unless the user confirmed the cost: dryRun returns model, seconds, cost in credits and balance without spending.
Inputs: items (required), dryRun, folder, prefix.
sym_historyC
What was generated in this account: drafts with status, type, vid, cover, errors. miniAppTypes: 1 refresh, 2 i2v, 3 t2v, 5 hpi, 6 try-on, 7 dubbing, 9 avatar, 11 image, 13 r2v.
Inputs: limit, offset, miniAppTypes.
sym_inboxA
Templates the user sent from the studio page with the "→ Claude" button (full director prompt, reference image, sample). Newest first. clear:true empties the inbox after reading.
Inputs: clear.
sym_linksA
Download links of a finished draft: original file (no watermark) and, with watermarked:true, the official export. The extension downloads files by itself for jobs; use this for older drafts from sym_history.
Inputs: draftId (required), watermarked.
sym_logB
Last lines of the extension log (diagnostics).
Inputs: n.
sym_statusA
Bridge and extension state: whether the SymFlow extension is connected, whether a Creative Studio tab is open and signed in, credits (weekly grant, spent, next refill, available models), the queue, the last templates sent with the "→ Claude" button (inbox) — plus extension.director, the director playbook sent by the extension. Call it FIRST and follow the playbook. If extension.license is "expired", ask the user to activate a key (https://lingoflow.pro/symflow); the queue resumes by itself.
Inputs: no named parameters.
sym_templateB
One template with its COMPLETE director prompt (Format & Look, Lenses, Grade, shot list), reference image URL and sample video. Use it as the structure of your own prompt.
Inputs: templateId (required), inspirationItemId.
sym_templatesB
TikTok trend templates (about 78) with name, description, use cases, industry, reference image and the director prompt (videoPrompt, truncated unless full:true). useCase: 1 viral ads (default list), 8 ready-to-use on the Create page; query filters by text.
Inputs: full, page, limit, query, +2 more.
sym_transformA
"Video refresh": Symphony cuts new TikTok-ready clips (15 or 30 s) from the user's own product videos (each ≥ 15 s) and photos, with a voice-over in one of 11 languages (ar de en es fr id ms vi th ja pt). Returns jobId.
Inputs: videos (required), productName (required), dryRun, folder, +4 more.
sym_tryonB
Avatar try-on: a video of an avatar wearing the user's apparel (kind apparel) or presenting the product (kind product). avatarId from sym_avatars kind=tryon|product; images = product/apparel photos. Returns jobId.
Inputs: images (required), avatarId (required), kind, dryRun, +2 more.
sym_uploadA
Upload files into the Symphony library without generating anything (to reuse URLs/vids across tasks).
Inputs: files (required).
sym_voicesC
Voices for talking avatars (assets of the studio) with tags (language, gender, age, style) and preview audio. language: e.g. english, spanish; gender: male|female.
Inputs: limit, query, gender, language, +1 more.
sym_waitA
Wait for a job and return its items with local file paths (symflow-out//…), links, cost data and errors. Returns the intermediate picture on timeout — call again.
Inputs: jobId (required), timeoutSec.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 21 tools
Most tools target distinct resources or actions (templates vs template, generate vs editor, upload vs download). The only mild ambiguity is between sym_links and sym_download, since both retrieve finished outputs, but descriptions clarify links vs file download jobs.
All tools share the consistent sym_ prefix and snake_case style, making the set feel cohesive. However, naming mixes resource nouns (sym_inbox, sym_history, sym_links) with action verbs (sym_generate, sym_upload, sym_cancel), so it is not a strict verb_noun pattern.
With 21 tools, the server sits at the heavy end of the appropriate range. The count is justified by the broad video-generation domain, but it pushes past the ideal 3-15 tool sweet spot.
The tool surface covers the full workflow: status, credits, templates, generation modes, avatars, voices, dubbing, editing, history, file transfer, job waiting, and cancellation. No major dead ends are apparent, and the escape-hatch sym_api further fills rare gaps.
Maintenance
Related MCP Connectors
Connect Claude or any MCP client to Wireflow, the AI canvas for image, video and audio workflows. List, build, inspect and run your workflows and published apps, browse templates, check models, prices and credits, edit a video node's timeline, and plan or schedule social posts. Drafts and edits cost no credits; run tools spend the user's credits.
Brand-aware creative studio for Claude: 200+ tools for on-brand ads, video, email and campaigns.
TikTok research for AI agents. Ask ChatGPT, Claude, Cursor, Codex or any MCP client what people search, watch, say and buy on TikTok, and get real numbers back. 34 tools: weekly TikTok search volume and 7-day trends, content gaps, videos, creators, comments and caption transcripts, hashtags and sounds, TikTok Shop sales estimates for products, shops, creators, videos and LIVE streams, TikTok’s Top Ads library with CTR and retention, places, and a fair comment-giveaway picker. 17 markets. Built for marketers, agencies, TikTok Shop sellers and creators. Sign in with OAuth or an API key; 50 free credits, no card.
Creative intelligence for Meta, TikTok, Google Ads and Amazon DSP, in Claude and other MCP clients.
Related MCP Servers
- AlicenseBqualityDmaintenanceIntegrates TikTok video analysis into Claude AI via TikNeuron, enabling users to retrieve subtitles, analyze content for virality factors, and extract video details including engagement metrics and metadata.32 npmMIT
- FlicenseNot gradedqualityDmaintenanceConnects TikTok accounts to Claude, enabling analysis of account data for branding and affiliate marketing.-
- FlicenseNot gradedqualityBmaintenanceEnables Claude to generate videos and images via TopView.ai's API, including text-to-video, image-to-video, text-to-image, and image editing.-
- FlicenseNot gradedqualityBmaintenanceEnables Claude to query a TikTok account on demand, retrieving profile information, recent videos, today's videos, and detailed video statistics.-