
ReelsFarm
io.github.mateohysa由 GitHub 账号 mateohysa 发布v2.0.1更新于 Oct 26, 2026
Create, manage, schedule, and publish short-form user-generated content through AI agents.
概览
ReelsFarm 是一个远程 MCP 服务器,让 AI 助手创建、生成、排期并发布短视频、图文轮播和图片等短内容。
- 可以做什么
- 生成并管理图片、虚拟形象、产品场景和图片模板,支持基于对话的后续生成
- 制作图文轮播与文字版式,支持 Look 样式、成熟格式、图片搜索以及从 TikTok 链接复刻
- 用文本、首尾帧或参考素材生成视频,并生成钩子片段和 AI Clone 语音
- 浏览媒体合集、社区图片、图库条目和回收站内容
- 对已连接的 TikTok、Instagram、YouTube、Facebook 账号做发布预检、排期、修改和发布
- 管理自动化流程,并查看账号定价、任务和操作状态
- 适用场景
- 适合需要让助手制作短内容并发布到已连接社交账号的场景,也适合用代理脚本化地完成生成、排期和发布,而不必手动操作 ReelsFarm 后台。
- 运行要求
- 远程 MCP 端点 mcp.reelsfarm.com,使用 streamable HTTP;需要 OAuth 认证,可用 content:read、content:generate 等权限范围。可选的 TypeScript SDK 与 CLI 为 npm 包,支持 API key 或 OAuth。任何创建、修改、发布或删除操作都需要有套餐或试用期的 ReelsFarm 账号。
安装
在 SourceWeft 中
- 打开 控制台中的 ReelsFarm,将其添加到工作区。
- 连接 所需的 凭据。它们会被私密存储,绝不会在公开页面上展示。
- 为需要使用其工具的对话启用该服务。
Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。
交给智能体安装
把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。
阅读 https://sourceweft.com/mcp/io.github.mateohysa%2Freelsfarm/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。其他 MCP 客户端
把它添加到你客户端的 mcpServers 配置中。 客户端会在首次连接时完成 OAuth 登录。
{
"mcpServers": {
"reelsfarm": {
"type": "http",
"url": "https://mcp.reelsfarm.com/mcp"
}
}
}README
@reelsfarm/mcp-client
Typed TypeScript SDK and CLI for the ReelsFarm MCP server.
Version 3.11
SDK 3.11.0 matches ReelsFarm MCP server 3.11.0 and contract
2026-10-30.1. It tracks all 177 public tools. Mutation and generation results
include explicit ReelsFarm provenance, execution state, and an assetCreated
completion signal.
Server 3.11 lists the same tools in about a quarter of the old size.
Confirmation tools take only confirmationId, so a dry-run client no longer
calls them. Read MIGRATION.md for the other changes.
Version 3.9 confirms each prepared action with its own confirmation tool,
because servers since 3.7 no longer accept reelsfarm_confirm_action from
clients. Update from 3.6: its confirmations fail against the current server, and
validateToolSurface: 'throw' refuses to connect. Read MIGRATION.md.
It also adds slideshow Looks (tweet, iMessage, notebook, magazine cover), proven formats, Recreate from a TikTok link, TikTok text fonts and modes with free text positions, photo search, saved formats and batches, the automation photo sources and AI pictures, hook reaction styles, and natural speech for Videos.
Publishing aliases from MCP 2.x are removed. Read MIGRATION.md before you update a publishing integration.
Review mode returns a PreparedAction by default. Its confirmationTool names
the one tool that confirms it, such as reelsfarm_confirm_generate_avatar; call
it with the confirmationId after the user approves. Trusted applications can set
autoConfirm: true to confirm Review actions automatically. Creator and
Autopilot connections execute the capabilities enabled by their server-owned
connection policy without an extra SDK approval step.
Use nano-banana-2-1 for Nano Banana 2.1. The legacy nano-banana-2-pro key
also uses 2.1. Use gpt-image-2.5-sunburst as the public GPT Image 2.5 model
key. GPT Image 2 and GPT Image 2.5 accept low, medium, or high quality.
Seedream 5.0 Pro accepts basic or high. FLUX 3 (flux-3) accepts basic
(1K), high (about 2 megapixels), ultra (2K), or max (4K); bigger sizes
cost more credits, and the prepared result's estimate follows the size. Omit
quality for Nano Banana models.
Job waits and publishing discovery
All 13 generation, import, and export status methods accept { waitMs: 25000 }.
Use an integer from 0 through 25000. Omit it or use 0 for an immediate snapshot.
The server returns when recorded progress changes, the job ends, or the wait budget expires.
This option does not apply to operation or publish status tools.
jobProgress contains step, terminal, nextPollAfterMs, and available batch
counts. Inspect item results even when a batch completes; some items can fail.
The SDK preserves these fields when unwrapping job results. job.wait() follows
the server's suggested polling delay, with backoff for older responses.
Publishing preflight targets include settingsSchema (JSON Schema 2020-12 for
one platforms entry), rules, and limits. Build settings from the exact
account and media result. ready checks account and media readiness; required
settings still need values. Missing limits are unknown. Integration targets
can expose fewer settings than native connections. Run preflight again after
changing the content, format, or account.
For a native Instagram video, set instagramShareToFeed: false to keep the
Reel in the Reels tab only. Set it to true to also allow it on the profile
grid. New native Reels default to false. This field is not available for
Instagram integration accounts or photo posts. Check that the selected
account's settingsSchema includes it before sending it. instagramTestReel
is a separate setting.
Connected and social account lists mark an account managed: true when
ReelsFarm connected the Instagram or Facebook account through its managed
integration. Publish to it like any other integration account.
Conversational generation
Avatar and product-scene jobs return conversationId, parentGenerationId,
and jobId. Pass the conversation and parent IDs into the next generation to
continue the same branch. Read the complete branch through
rf.imageGenerations.getConversation(conversationId).
Hook generation accepts customPrompt, all current Veo and Seedance models,
duration, and optional spoken script settings. Slideshow generation accepts
Max mode visual context. Use rf.slideshows.reviseText(...) to apply a natural
language instruction to the complete current slide text state.
Slideshow text generation and revision accept the dashboard effort presets:
light, low, medium, high, and extra_high. Higher effort uses more
visual references (0, 2, 5, 10, or 20) and more model time. extra_high also
reviews the rendered text layout and is the dashboard default. Without effort,
Max mode accepts up to five visual references; with it, up to 20. Give each reference its slide
aspectRatio, because layout checks assume 1:1 when it is missing.
Looks, formats, and Recreate
generateText takes a Look and a proven format. A designed slide comes back with
a design object and no text items; pass it unchanged to create or update.
An iMessage slide draws no photo, so it needs no imageUrl and no visual context.
auto picks a designed look only when the prompt asks for one.
rf.slideshows.recreate(...) copies a public TikTok photo slideshow for your
product: the same format and text looks, new words, and a photo for every slide.
It takes about two minutes, and the finished status has the slideshowId.
Text items accept TikTok's textFont, textEffect (none, outline,
background, translucent) and textColor, which win over textStyle, plus
textX and textY (0 to 1) for a free position. searchPhotos(...) finds
photos on Pinterest, Tumblr, or Pexels, and savePhotos(...) turns picks into
ReelsFarm URLs a slide can use. saveFormat(...) and createBatch(formatId, count)
make many slideshows from one format, as Make 10 now does in the app.
Videos workbench
rf.videos.generateVideo(...) starts the same job as the dashboard Videos
workbench. It supports text-to-video, a start frame with an optional end frame,
or up to three reference images. Seedance models also accept one reference
video and one reference audio file. Do not combine frames with reference media.
Use owned ReelsFarm asset URLs for frames and references. With a start frame of a
person, motionPreset opens the video with a hook reaction such as shocked or
grateful. With audio, naturalSpeech (on by default) makes spoken lines in
quotes sound like a real person without changing the words; set it to false
to send the prompt exactly as written.
The models are seedance-2.5 (the default), seedance-2, seedance-2-fast,
veo-3.1, veo-3.1-fast, and gemini-omni-1.1-flash. Each model supports its
own durations, aspect ratios, and resolutions. rf.account.getGenerationPricing()
lists them with per-second prices under videoGeneration. Poll with
rf.videos.getGenerationStatus(jobId, { waitMs: 25000 }). A completed job
returns the finished library video in video.
One video job runs at a time per account, across hooks, AI Clone, and the
Videos workbench. Another request fails with code VIDEO_JOB_IN_PROGRESS and
names the active job. Wait for that job to finish, then retry with a new
idempotency key. For an avatar-led hook clip, use rf.hooks.generate(...).
Image templates
rf.imageGenerations.listTemplates({ category }) returns the Product and
Infographics templates from the dashboard Images workbench. Each template has a
reference image, a prompt brief with [PLACEHOLDER] fields, and the generation
tool to call. Replace the placeholders, remove lines you cannot fill, and start
the prompt with the template categoryLine.
For a template with requiresProduct: true, call rf.productScenes.generate(...)
with sourceImageUrl set to referenceUrl and productImageUrl set to the
product photo. peopleTemplate gives the brief and settings for the people
reference images from rf.avatars.listTemplates().
The SDK also maps the web content library workflows directly:
imageCategory filters generated images only, so set kinds to return images
only. groupCollections: true returns each collection as one item, as the
dashboard gallery tabs do. Collection items arrive in one response unless you
set limit or cursor; then follow nextCursor until hasMore is false. Video
lists return totalCount, and the first asset page returns the category
totalCount. Use these totals instead of counting a page.
The same MCP contracts now cover the unified gallery, personal media
collections, community images, hook import health and jobs, AI Clone voice
search, product-context URL suggestions, saved character identity extraction,
and all eight creative Trash item types: avatars, product placements, videos,
slideshows, stored assets, saved characters, drafts, and product contexts. Use the
exact type and ID returned by rf.trash.list() when restoring. Permanent deletion
remains dashboard-only.
Protocol and OAuth
The SDK uses the stable MCP TypeScript SDK v2. It probes for the 2026-07-28 protocol and falls back to the legacy 2025 handshake when required.
OAuth clients should request only the capabilities they need. The default
remains mcp:full for compatibility:
Pass the complete callback URL to completeOAuthCallback. The SDK validates
the redirect URL, OAuth state, and authorization-server issuer before it
redeems the code. The SDK does not expose a raw authorization-code completion
method because that form cannot validate state by itself.
CLI
Credentials are resolved in this order: constructor options, environment variables, then the CLI config file at ~/.reelsfarm/config.json. Set REELSFARM_CONFIG_DIR to use a different config directory.
Using ReelsFarm with AI Agents
ReelsFarm is safe for shell-capable agents when invoked in agent mode:
Use --agent or set REELSFARM_AGENT_MODE=1 to receive strict JSON envelopes
on stdout. Agent mode never mixes tables or human narration into command output.
Errors are also JSON on stdout and use a non-zero exit code.
Prepared actions such as generation, scheduling, publishing, updating, and
deleting return a confirmation payload in Review mode. Creator and Autopilot
can execute allowed actions immediately; agent mode only controls output. When
a confirmation is returned, review the summary, then run the nextStep it gives:
reelsfarm confirm <confirmationId> --tool <confirmationTool> --agent. Pass --yes only
when the application should automatically confirm Review-mode actions.
--dry-run is sent to the server and cannot mutate in Review, Creator, or
Autopilot, even when combined with --yes. reelsfarm confirm refuses
--dry-run, because a confirmation always runs the prepared action.
The server connection policy is authoritative for direct writes. Creator may create and edit content but cannot publish or activate automations. Autopilot may publish and manage automations subject to account limits. Credential, connection-mode, webhook-security, and permanent-delete actions are dashboard-only and are not exposed by this package.
Idempotency and operation recovery
The SDK generates one UUID for every logical mutation and reuses it if the
transport response is ambiguous. Supply idempotencyKey on a mutation input,
or --idempotency-key <key> in the CLI, when retries must also survive process
restarts. Never reuse a key with different arguments.
The SDK never automatically re-prepares an action after confirmation. It safely replays the same request once after an ambiguous transport failure and polls the original durable operation when the server returns one:
Structured errors distinguish authentication, insufficient scope, policy
denial, rate limiting, idempotency conflict, operation-in-progress, and plan
limits. An account without a plan or trial can connect and read; anything that
creates, changes, publishes, or deletes throws a ReelsFarmPlanLimitError with
code SUBSCRIPTION_REQUIRED and a dashboardUrl for choosing a plan. A
rejected automation request is a ReelsFarmValidationError with code
INVALID_AUTOMATION. An active video job conflict is a retryable
ReelsFarmToolError with code VIDEO_JOB_IN_PROGRESS. OAuth profiles retain
rotating refresh tokens in the existing protected profile token store until
revoked or a security event requires authorization.
Endpoint
The default MCP endpoint is https://mcp.reelsfarm.com/mcp. Pass serverUrl in
the SDK or --server-url in the CLI to target another deployment. The SDK
rejects non-loopback plaintext HTTP by default. Set allowInsecureHttp: true
or REELSFARM_ALLOW_INSECURE_HTTP=1 only for a trusted private development
endpoint. The CLI also accepts --allow-insecure-http.
Development
The checked-in tool manifest reflects the current discoverable ReelsFarm MCP surface. Dashboard-only credential, webhook, and permanent-delete tools stay out of the public SDK catalog. The manifest check compares the 177 public SDK tools with the app's generated public tool reference, and the release and contract versions with the app MCP server, when both repositories are adjacent. Use npm run generate:tools against an authenticated MCP endpoint when the server adds or removes tools.
Publishing preflight and platform settings
Run preflight before a schedule or publish call. The server repeats preflight before it creates or executes the action.
The CLI accepts simple platform:connectionId pairs. Use --platforms-json
when you need captions or platform settings.
Edit a post before it publishes with rf.posts.update(...). Name each existing
destination by platform and connectionId (accountId in
rf.posts.list(...)); omitted fields keep their saved values, and media and
accounts cannot change. Switching TikTok to DIRECT needs
tiktokPrivacyLevel and, for video, tiktokIsAigc. The edit fails once the
post has started publishing.
On the CLI, use reelsfarm posts update --id <id> --platforms-json <json>.
Automations
Automation tiktokSettings accept the same settings as a TikTok publishing
target, including tiktokPublishMode, tiktokPrivacyLevel, tiktokTitle, the
interaction and disclosure flags, and the cover settings. tiktokPostMode
remains a legacy alias; tiktokPublishMode and tiktokPrivacyLevel take
priority over it.
An ACTIVE automation needs a tiktokTitle of 1 to 90 characters and either
at least one image collection or a fixed image on every slide. Commercial
content needs tiktokBrandOrganic, tiktokBrandedContent, or both, and
branded content cannot use SELF_ONLY privacy. The server checks each request
before approval.
To rotate captions across runs, put each caption in square brackets, for
example [First caption][Second caption]. rf.automations.update(...) keeps
omitted top-level fields, replaces images, and merges publishRules field by
field. A new caption replaces a saved TikTok captionOverride.
来源:README.md,提交 0020b08
工具
0版本历史
1- v2.0.1最新Sep 16, 2026
评分
已满足适用检查项的 85%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通必需25 分
- 已声明认证方式必需10 分
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分