videoworker

io.github.AzadKurt由 GitHub 账号 AzadKurt 发布v0.1.0更新于 Nov 3, 2026

通过 MCP 使用 FFmpeg 处理视频、音频和图像,支持 OAuth 和共享账户额度。

AI 翻译由 AI 模型根据下方的原文描述翻译,可能有误。

原文描述

FFmpeg processing for video, audio and images via MCP with OAuth and shared account allowance.

已验证Streamable HTTP可网页运行媒体与设计

概览

videoworker 的托管 MCP 服务(videoworker.dev);需要 OAuth 登录;Streamable HTTP。

暂无 AI 概览:以下信息来自注册中心条目和服务本身。

端点
videoworker.dev
最近检查

安装

在 SourceWeft 中

  1. 打开 控制台中的 videoworker,将其添加到工作区。
  2. 连接 所需的 凭据。它们会被私密存储,绝不会在公开页面上展示。
  3. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.github.AzadKurt%2Fvideoworker/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。 客户端会在首次连接时完成 OAuth 登录。

{
  "mcpServers": {
    "videoworker": {
      "type": "http",
      "url": "https://videoworker.dev/mcp/server"
    }
  }
}

README

videoworker MCP

Give your AI agent FFmpeg: upload local media, run a remote job, and save the result.

An MIT-licensed, local stdio MCP connector for the videoworker video, audio and image processing API. Bring standard FFmpeg arguments; our workers run them. No local FFmpeg installation required.

Get started free · Hosted MCP · REST API · Releases · Listed on Glama

Choose your connection

Local connector — this repoHosted MCP
Best forLocal file uploads and downloadsConnecting without installing Python
TransportstdioStreamable HTTP
Sign inScoped API key in a private fileBrowser login and OAuth consent
Local file accessNamed media in your selected foldersNone; upload via web or REST first
SetupQuick start belowHosted setup guide

Both use the same account and allowance. The connector is free software; hosted processing follows the current plans and limits. Free accounts receive a small monthly allowance. Check pricing for the Starter launch offer and its availability; a trial is not required to use Free.

Quick start

1. Install — no checkout or Git needed

Requires Python 3.12 or newer. Install the versioned release wheel:

sh
python -m pip install "https://github.com/AzadKurt/videoworker-mcp/releases/download/v0.1.0/videoworker_mcp-0.1.0-py3-none-any.whl"python -m videoworker_mcp --version

On Windows, use py -3.12 instead of python if needed. On macOS/Linux, your command may be python3. Use that same Python installation in your MCP config. Print its full path with:

sh
python -c "import sys; print(sys.executable)"

Alternative with Git installed:

sh
python -m pip install "git+https://github.com/AzadKurt/[email protected]"

This package is not on PyPI yet. pip install videoworker-mcp is not the command for this release.

2. Create your workspace and private key file

Sign in to your workspace. Under API keys, create a key with usage:read, files:write, jobs:read, jobs:write and outputs:read for all eight tools. Save it as plain text in a file accessible only to your user. On macOS/Linux: chmod 600 /absolute/path/to/key. On Windows, keep it in your user profile and restrict its file permissions to you.

Create uploads and downloads folders. Both must exist and use absolute paths. Keep only authorized media in uploads; keep the key file elsewhere. Never paste the key into a chat or a shared client config.

3. Add your client config

Replace the Python and file/folder paths with your own. Merge the entry into an existing config, preserving other servers. The values are paths, not secrets. Restart or reload your client after saving.

Codex

Add to ~/.codex/config.toml:

toml
[mcp_servers.videoworker]command = "/absolute/path/to/python"args = ["-m", "videoworker_mcp"]startup_timeout_sec = 30tool_timeout_sec = 960
[mcp_servers.videoworker.env]VIDEO_WORKER_API_KEY_FILE = "/absolute/path/to/videoworker.key"VIDEO_WORKER_UPLOAD_ROOT = "/absolute/path/to/uploads"VIDEO_WORKER_DOWNLOAD_ROOT = "/absolute/path/to/downloads"

Windows forward-slash paths work, e.g. C:/Users/YOU/media/uploads. Ready-to-edit: Windows / macOS and Linux. Keep the hosted connection named videoworker_remote if you also use it.

Claude Desktop

Open Settings → Developer → Edit Config and merge:

json
{  "mcpServers": {    "videoworker": {      "command": "/absolute/path/to/python",      "args": ["-m", "videoworker_mcp"],      "env": {        "VIDEO_WORKER_API_KEY_FILE": "/absolute/path/to/videoworker.key",        "VIDEO_WORKER_UPLOAD_ROOT": "/absolute/path/to/uploads",        "VIDEO_WORKER_DOWNLOAD_ROOT": "/absolute/path/to/downloads"      }    }  }}

Ready-to-edit: Windows / macOS and Linux.

Cursor

Use the same JSON structure in ~/.cursor/mcp.json (global), or .cursor/mcp.json (project). Enable the server in Cursor's MCP settings. Ready-to-edit: Windows / macOS and Linux.

Examples follow documented stdio config formats. Real MCP SDK discovery is tested; this does not claim every desktop app/version was manually tested.

4. Try a small job

Put a small clip.mp4 in uploads and ask your agent:

Check my videoworker allowance first. I authorize uploading clip.mp4 from my configured uploads folder. Trim it to its first second and compress it as MP4. Create one job with a 10-second runtime limit. Keep its request_id for any retry, wait at least one second between status checks, and save the successful result as clip-small.mp4 in my downloads folder. Do not delete anything.

Flow: get_usage → upload_file → create_job → get_job → download_result. See example job arguments: replace the input file ID and generate a new UUID for each intended job.

More than one input

Workflow recipes cover joining clips, adding an image/logo, and replacing a soundtrack. Each includes input order, behavior notes and a ready-to-edit MCP JSON file. The same recipes are displayed on the website with copy buttons for REST and MCP.

Tools

ToolPurposeAPI-key scope
get_usageAllowance, reservations and storageusage:read
list_jobsRecent owned jobsjobs:read
upload_fileUpload authorized local mediafiles:write
create_jobFFmpeg job with a stable retry UUIDjobs:write
get_jobJob state and output metadatajobs:read
download_resultSave output to a new local filejobs:read, outputs:read
cancel_jobRequest cancellation; confirm terminationjobs:write
delete_job_outputsDelete results when requestedjobs:write

Configuration and troubleshooting

Environment variableValue
VIDEO_WORKER_API_KEY_FILEAbsolute path to a private plaintext key file
VIDEO_WORKER_UPLOAD_ROOTExisting absolute folder of authorized media
VIDEO_WORKER_DOWNLOAD_ROOTExisting absolute destination folder
VIDEO_WORKER_API_URLOptional; defaults to https://videoworker.dev

VIDEO_WORKER_API_KEY is supported in private process environments and takes precedence over the file. Never put it in a shared config or command line. Custom origins require HTTPS, except explicit loopback HTTP for development.

  • ENOENT / server not found: use the full Python path printed above, not a shell alias. GUI applications can have a different PATH.
  • Configuration error: set the same variables in a terminal and run python -m videoworker_mcp --check. It validates local setup only, without API calls or credential/allowance verification. Help/version need no key.
  • Unauthorized / forbidden: check your key, scopes and account in the dashboard. Never send credentials in a support message.
  • File rejected: pass a flat name, not a path or URL. Local extensions: mp4, mp3, wav, webm, gif, png, jpg, jpeg, mkv, mov, ogg, flac. Linked folders and symlinks/junctions are rejected.
  • Slow transfer: uploads/downloads can take up to 15 minutes per network operation. Configure suitable tool-call timeouts where supported. Closing a tool call does not cancel an accepted processing job.

Data and retries

The service enforces account ownership, allowance, file limits and expiry. The local process runs as your OS user; folder restrictions are application guards, not an operating-system sandbox. No local FFmpeg is bundled or needed.

Downloads never overwrite files or follow agent-supplied output URLs. Declared output sizes are bounded to 1 GiB; legacy metadata without a size has a 50-MiB fallback cap. Transfers stream instead of loading a full video into memory.

Keep one UUID request_id and identical arguments for job retries (48 hours). An uncertain response can still mean success. Uploads are not idempotent. Poll no faster than once per second and download before expiry. Cancellation/deletion are complete only after server confirmation. No billing/admin permissions needed.

Development

sh
python -m pip install '.[dev]'python -m pytest -qpython -m ruff check .python -m ruff format --check .

Tests use tiny controlled HTTP fixtures and actual MCP SDK discovery. See release checks, dependency licenses and security reporting.

License and support

MIT for the connector; hosted processing and the private backend are separate. GitHub issues or [email protected].

Config references: Codex, Claude Desktop, Cursor.

来源:README.md,提交 bb05287

工具

0
该服务器需要登录,因此 SourceWeft 无法在没有账号的情况下读取其工具,也未收录。已连接账号所能看到的内容可能因账号及其权限而异。

版本历史

1
  1. v0.1.0最新Nov 3, 2026

评分

已满足适用检查项的 85%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分