{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_xkwb3fjuema4","handle":"video2gif-mcp","url":"https://wellknown.network/agents/video2gif-mcp","links":{"self":"https://wellknown.network/agents/video2gif-mcp/record.json","html":"https://wellknown.network/agents/video2gif-mcp","markdown":"https://wellknown.network/agents/video2gif-mcp/record.md","api":"https://wellknown.network/api/v1/agents/video2gif-mcp","status":"https://wellknown.network/api/v1/agents/video2gif-mcp/status","claim":"https://wellknown.network/agents/video2gif-mcp/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/video2gif-mcp/claim.json","badge":"https://wellknown.network/agents/video2gif-mcp/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/video2gif-mcp/history","tools":"https://wellknown.network/api/v1/agents/video2gif-mcp/tools"},"ard":{"identifier":"urn:air::server:video2gif-mcp","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"video2gif-mcp","summary":"把视频链接转成 GIF 动图的 MCP 服务 (含 SSRF 防护, 供魔搭/DEAP/Claude 等 MCP 客户端调用)","description":"# video2gif MCP 服务\n\n把「视频链接 → GIF 动图」做成一个标准 MCP 服务，可被**魔搭、钉钉 DEAP、Claude Code / Desktop、Cursor** 等任意支持 MCP 的客户端调用。\n\n- **工具**：`video_to_gif(video_url, size, ...)` —— 下载视频 → ffmpeg 两趟调色板转 GIF → 直接返回 GIF 图片 + 文本摘要。\n- **传输**：`stdio`（魔搭托管 / uvx 默认），可选 `MCP_TRANSPORT=http` 起 Streamable HTTP（自托管）。\n- **安全**：SSRF 防护（默认开，逐跳校验重定向）+ 可选鉴权 token（HTTP 自托管模式）。\n- **资源上限**：输入视频 ≤50MB、fps≤30、宽度≤1280px、单次截取≤60s、输出 GIF≤20MB（防止 serverless 被打爆）。\n\n## 目录结构\n\n```\nvideo2gif-mcp/\n├── pyproject.toml           # 打包配置 + stdio 入口 + 依赖\n├── src/video2gif/\n│   ├── __init__.py\n│   ├── __main__.py          # python -m video2gif\n│   └── server.py            # MCP 服务 (MCPServer + video_to_gif 工具)\n├── test_client.py           # 本地 stdio 测试客户端\n├── deap-config.json         # DEAP 注册模板 (填入 URL 后可用)\n├── Dockerfile               # 备选: 自托管 HTTP\n└── LICENSE / README.md\n```\n\n## 工具参数\n\n| 参数 | 类型 | 默认 | 说明 |\n|------|------|------|------|\n| `video_url` | string | 必填 | 可公开下载的视频直链 (mp4/mov/avi/webm/mkv) |\n| `size` | string | `medium` | 体积预设：`small`(320px/8fps) / `medium`(480px/15fps) / `large`(720px/20fps) |\n| `fps` | int | 0 | 覆盖帧率（上限 30），0=用 size 预设 |\n| `width` | int | 0 | 覆盖宽度（上限 1280），0=用 size 预设 |\n| `start` | float | 0 | 从第几秒开始 |\n| `duration` | float | 0 | 截取时长（上限 60 秒），0=到结尾 |\n| `loop` | int | 0 | 循环次数，0=无限，负值=不循环 |\n\n## 快速开始（本地）\n\n```bash\ncd video2gif-mcp\n\n# 方式一：uvx（无需安装，stdio）\nuvx --from . video2gif-mcp\n\n# 方式二：pip 安装后运行\npip install .\nvideo2gif-mcp            # 或 python -m video2gif\n\n# 本地验证工具调用（自动以 stdio 拉起服务，结果存到 output.gif）\npython test_client.py --url \"https://www.w3schools.com/html/mov_bbb.mp4\" --size small\n```\n\n## 部署到魔搭 ModelScope（免费，供他人使用）\n\n魔搭 MCP 广场的「可托管部署」要求 **PyPI 包 + `uvx` 拉起（stdio 传输）**，平台会帮你包成 HTTP 端点暴露出来。\n\n1. **发布到 PyPI**：\n   ```bash\n   pip install uv\n   uv build                     # 生成 dist/*.whl 和 *.tar.gz\n   uv publish --token <你的PyPI token>\n   ```\n\n2. **魔搭 MCP 广场创建**：打开 <https://modelscope.cn/mcp> →「创建 MCP」→ 选「**可托管部署 / Hosted**」，填入配置 JSON（不要带注释）：\n   ```json\n   {\n     \"mcpServers\": {\n       \"video2…","publisher":{"name":"video2gif-mcp contributors","url":null},"homepage":null,"repository":null,"version":"1.0.0","license":"MIT","protocols":["mcp"],"tags":["ffmpeg","gif","mcp","modelscope","video"],"pricing":null,"endpoints":[{"url":"pypi:video2gif-mcp","type":"package_pypi","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":null,"attribution":{"kind":"pypi","name":"pypi","license":"pypi","summary":"pypi","version":"pypi","description":"pypi","publisherName":"pypi"}},"derived":{"capabilities":[{"slug":"media.video-editing","name":"Video Editing","confidence":1,"provenance":"declared"}],"categories":["media"],"language":"fr"},"observed":{"status":"unknown","statusReason":"Distributed as a package to run locally; no network endpoint to check.","lastOkAt":null,"lastProbedAt":null,"statusComputedAt":null,"reliability30d":null,"latestObservations":[],"tools":null,"package":{"name":"video2gif-mcp","registry":"pypi","observedAt":"2026-11-04T03:28:56.157Z","publishedAt":"2026-09-02T09:07:41.598027Z","latestVersion":"1.0.0"},"toolSurface":null,"endpointFacts":[]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"video2gif-mcp","url":"https://pypi.org/project/video2gif-mcp/","firstSeenAt":"2026-09-10T15:23:31.442Z","fetchedAt":"2026-11-04T03:27:22.769Z","normalizedAt":"2026-11-04T03:27:22.769Z"}]},"firstSeenAt":"2026-09-10T15:23:31.442Z","updatedAt":"2026-11-04T03:28:56.157Z"}