Modisign

io.github.slvDev由 GitHub 帳號 slvDev 發布v0.6.0更新於 Oct 25, 2026

Make animated overlays and edit short videos with Modisign. Everything renders on your computer.

已驗證STDIO僅桌面檔案與儲存媒體與設計

概覽

AI 產生的概覽

Modisign 讓助理尋找、設定並算繪動畫疊加素材,以及在本地剪輯短影音,所有算繪都在使用者電腦上完成。

可以做什麼
依主題、系列或利基瀏覽並檢視動畫疊加預設,包含可編輯欄位、限制與免費或 Pro 狀態,支援游標翻頁與編輯器連結。設定疊加素材的數值、外觀、畫幅、長度與背景,回傳設定連結與版本層級。在本地把疊加素材算繪成 MP4、MOV 或 WebM,或將透明疊加素材合成到一段本地影片的指定起始時間。以兩條軌道的有序片段製作影片,支援裁切、擺放、字幕、標題、快閃片頭、動態關鍵影格與音效。轉錄本地影片中的英語語音,並查詢、輪詢或取消本地算繪工作。查看登入與 Pro 狀態,或發起裝置登入流程。
適用情境
適合希望借助助理製作短影音的創作者與剪輯者:疊加圖形、分割畫面或子母畫面剪輯、字幕、標題、快閃片頭與音效,且不必把素材上傳到服務。
執行需求
透過 npx 以 stdio 在本地執行,需要 Node.js 22 或更新版本。FFmpeg 需在 PATH 中。首次算繪會下載一個私有算繪瀏覽器(約 100 MB);Linux ARM64 需改用 Chromium。字幕功能會下載一次英語語音模型。Pro 功能需要登入 Modisign 帳號。
安裝前請注意
Pro 功能每月 9 美元;自訂疊加素材、Pro 預設、表現型字幕樣式、標題揭示效果與人物後方標題需要 Pro。登入會提供驗證連結與代碼,使用者需以 Google 帳號確認。影片、照片與音訊留在本地,但疊加設定、疊加文字、字幕樣式與幾項是/否資訊會傳送給 Modisign;匿名使用統計可用 MODISIGN_NO_TELEMETRY 關閉。剪輯工具會寫入新的本地檔案,工作在伺服器程序結束後失效。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Modisign,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

Modisign MCP

Make animated overlays and edit short videos from Claude, ChatGPT, Cursor or any MCP assistant. Everything renders on your computer.

Website · Overlays

What you can ask

  • “Make a red subscribe button for 9:16 and save it as a green-screen MP4.”
  • “Put a lower third with my name on ~/Movies/intro.mp4 at 0:03.”
  • “Cut these three clips into one Reel, remove the pauses and add captions.”
  • “Put reference.mp4 on top, muted, me.mp4 on the bottom, crop 5% off the sides, start them together, Clean captions from my voice.”
  • “Make a five-frame rapid intro from grind.mp4, pour.mp4, stir.mp4, steam.mp4 and serve.mp4, then replay them with source timestamps and the labels “Grind beans”, “Pour water”, “Stir”, “Steam milk” and “Serve”, in 9:16.”
  • “Use these five clips in order, add a five-frame rapid intro with these labels, generate captions with a different style and safe position for each short phrase using Scatter seed 58 with free styles, then export a vertical 720p MP4; tell me before rendering if the caption styles need Pro.”
  • “On the first clip, smoothly zoom from 100% at source 0s to 120% at 2s, then slide 15% left by 3s; fade ‘Watch this’ in over its first half-second, in 9:16.”
  • “Add a quiet interface click at 1.2 seconds and a bubble pop when the title “My three tips” appears; keep the clip's speech volume unchanged.”
  • “Add subtle whooshes at my crossfades and clicks at declared overlay taps, using different variants; tell me which overlays have no tap cue.”
  • “Show me hook title overlays for a cooking channel.”
  • “Render the countdown overlay with a transparent background.”

Split-screen example

Pass this to edit_video, using your absolute local paths:

json
{  "clips": [    {"path":"/absolute/me.mp4","track":"v1","in":0,"out":6,"place":{"mode":"bottom"},"crop":{"top":0,"right":5,"bottom":0,"left":5}},    {"path":"/absolute/reference.mp4","track":"v2","start":0,"in":0,"out":6,"place":{"mode":"top"},"crop":{"top":0,"right":5,"bottom":0,"left":5},"mute":true}  ],  "aspect": "9x16",  "captions": {"style":"clean","position":"lower","size":"m"}}

Every clip needs track. V1 plays in list order; V2 needs start in timeline seconds and cannot overlap another V2 clip. Crop removes source-edge percentages; omitted crop/place means zero crop/full picture. Captions and pause detection use V1 only. Pause removal cuts both tracks together; remove any named conflicting V1 transition before retrying. Align starts manually; this does not correct recording drift. Both 1080p and 720p are free under the overlay/caption rules below, up to 180 seconds across both tracks.

Rapid intro and titles example

A rapid intro opens with 5–7 teaser cuts of three to six frames each (default five), then replays the unchanged clips with a label and a timestamp over each. Give the descriptions yourself or tell your assistant what each clip shows: Modisign does not look at pictures. Plain titles are free and stay on your computer. The prompt above is one edit_video call:

json
{  "clips": [    {"path":"/absolute/grind.mp4","track":"v1","in":5,"out":9},    {"path":"/absolute/pour.mp4","track":"v1","in":65,"out":69},    {"path":"/absolute/stir.mp4","track":"v1","in":12,"out":16},    {"path":"/absolute/steam.mp4","track":"v1","in":0,"out":4},    {"path":"/absolute/serve.mp4","track":"v1","in":125,"out":129}  ],  "rapid_intro": {    "clips": [0, 1, 2, 3, 4],    "frames_per_clip": 5,    "timestamp": "source",    "labels": [      {"clip":0,"text":"Grind beans"}, {"clip":1,"text":"Pour water"}, {"clip":2,"text":"Stir"},      {"clip":3,"text":"Steam milk"}, {"clip":4,"text":"Serve"}    ]  },  "texts": [{"text":"Coffee in five steps","start":0,"duration":2,"y":0.2}],  "aspect": "9x16"}

timestamp: "source" stamps each label with the clip's starting time in its source file (timeline uses the output time; none shows only the text). Teasers are muted unless mute_teasers is false. Every time you give for V2 clips, overlays or titles moves later by the intro's length, so give it as for the edit without the intro. The video must keep every clip at least as long as its teaser (3 frames, 0.1 seconds, is the shortest any clip can be).

A title can also take an optional reveal, a rectangular wipe over stationary text: "reveal":{"direction":"right","duration":0.5} shows “Coffee in five steps” growing from its left edge over half a second. Every field is optional and the tool schema lists them. It is drawn on your computer, and a title with a reveal needs Pro to export.

To put a title behind a person, add occlusion: “Put the title ‘Sunday reset’ behind me in this clip from 1 to 4 seconds, near the top, with a soft edge” is "texts":[{"text":"Sunday reset","start":1,"duration":3,"y":0.25,"occlusion":{"clip":0,"feather":2}}]. clip is the index in clips of the clip whose people stand in front; the tool schema has the other fields and rules. People are found on your computer with a small people model that ships inside the package, and nothing about them leaves your computer. A title behind people needs Pro to export.

Caption lines and Scatter example

Speech is cut into short phrases, and each phrase can have its own position, size, rotation and style. captions.grouping sets how speech is cut (max_words, max_characters, max_duration seconds and pause seconds). captions.scatter gives every phrase its own placement, a small rotation and a style from your list, the same for the same seed:

json
"captions": {  "style": "clean", "position": "lower", "size": "m",  "scatter": {"seed": 58, "safe_zone": "social", "intensity": "normal", "styles": ["clean", "boxed", "minimal"]},  "lines": [{"clip": 0, "from": 1.2, "to": 2.8, "x": 0.32, "y": 0.35, "size": 0.055, "rotation": -4, "style": "boxed"}]}

Each lines row names a V1 clip by its index in clips and a range of source seconds. It changes every whole phrase whose middle (the first word's start plus the last word's end, halved) falls in from up to but not including to inside that clip's trim; one range can change several phrases, and overlapping rows apply in order. x and y are the phrase's centre as fractions of the picture, size is the text height as a fraction of the picture's shorter side, rotation is clockwise degrees. A row that matches no spoken phrase, or whose phrases are gone after pause removal or a rapid intro, is an error that names it. Set a V1 clip's captions_enabled to false to keep its speech out of the captions; the rapid intro's teaser cuts show no captions unless rapid_intro.captions_on_teasers is true. Moving, sizing and rotating phrases is free; a style other than Clean, Boxed or Minimal on a line or in the Scatter list, Mixed, or styled words needs Pro.

Motion example

Clips, titles and overlays take optional motion: keyframes for x, y, scale, rotation and opacity that move, scale, rotate or fade the whole layer. The motion prompt above is one edit_video call:

json
{  "clips": [{    "path": "/absolute/clip.mp4", "track": "v1", "in": 0, "out": 4,    "motion": {      "scale": [{"at":0,"value":1,"easing":"ease-in-out"}, {"at":2,"value":1.2,"easing":"linear"}],      "x": [{"at":0,"value":0,"easing":"hold"}, {"at":2,"value":0,"easing":"ease-in-out"}, {"at":3,"value":-0.15,"easing":"linear"}]    }  }],  "texts": [{    "text": "Watch this", "start": 0, "duration": 4,    "motion": {"opacity": [{"at":0,"value":0,"easing":"ease-out"}, {"at":0.5,"value":1,"easing":"linear"}]}  }],  "aspect": "9x16"}

Each key is {at, value, easing}; at is source seconds for footage (photos use the photo's own clock, from its in) and local seconds from its own start for titles and overlays. x and y are fractions of the output width and height (positive right and down), scale is a multiplier, rotation is clockwise degrees and opacity runs 0–1. easing shapes the segment after its key: hold, linear, ease-in, ease-out, ease-in-out or a custom [x1, y1, x2, y2] curve with each number from 0 to 1. Before the first key and after the last, the value holds. zoom stays static framing inside the picture; motion.scale moves the whole placed picture. Up to 60 keys per channel and 1000 per request. Footage and title motion are free; any non-neutral motion key on a catalog overlay, even on a free preset, needs Pro.

Sound effects example

edit_video can add short effects from a free built-in pack of ten sounds (click, typing, whoosh, pop and sparkle, two of each). They play alongside your clips, never change speech volume or the video's length, and cannot be replaced by your own files or links. The first prompt above is one sfx list:

json
{  "clips": [{ "path": "/Users/me/take.mp4", "track": "v1", "out": 8 }],  "texts": [{ "text": "My three tips", "start": 0.8, "duration": 2 }],  "sfx": [    { "asset": "ugc-click-01", "start": 1.2, "gain": 0.25 },    { "asset": "ugc-pop-01", "anchor": { "kind": "title-enter", "text": 0 } }  ],  "aspect": "9x16"}

A sound starts at a time (seconds of the edit as you describe it before pause removal or a rapid intro, which move it along) or follows a title appearing, a transition or an overlay tap. The second prompt is "auto_sfx": {"events": ["transition", "cta-tap"], "intensity": "subtle"}: Modisign places one sound per event on the finished edit and the job result lists what it added and skipped, such as overlays without a declared tap. Sounds are free.

Install

Claude Desktop

Add to claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/claude_desktop_config.json; Windows: %APPDATA%\Claude\claude_desktop_config.json), then restart:

json
{  "mcpServers": {    "modisign": { "command": "npx", "args": ["-y", "@modisign/mcp"] }  }}

Claude Code

Run this in your terminal; see Claude Code MCP setup.

sh
claude mcp add --transport stdio modisign -- npx -y @modisign/mcp

Codex CLI and ChatGPT/Codex desktop

In the desktop app: Settings → MCP servers → Add server → STDIO, command npx, arguments -y @modisign/mcp, then save and restart; or run this in Codex CLI (setup).

sh
codex mcp add modisign -- npx -y @modisign/mcp

Cursor

Put the Claude Desktop JSON above in ~/.cursor/mcp.json (global) or .cursor/mcp.json (project), then enable Modisign in MCP settings. Cursor MCP setup.

VS Code / Copilot

Create .vscode/mcp.json, then start the server and trust it when prompted (setup).

json
{  "servers": {    "modisign": { "type": "stdio", "command": "npx", "args": ["-y", "@modisign/mcp"] }  }}

Requirements

Node.js 22 or newer. FFmpeg on your PATH; your assistant can run this for you:

  • macOS: brew install ffmpeg
  • Windows: winget install Gyan.FFmpeg
  • Linux: sudo apt install ffmpeg

The first render downloads a private render browser once (about 100 MB). Linux ARM64: install Chromium instead (sudo apt install chromium). Run npx -y @modisign/mcp doctor to check your setup.

Free and Pro

One free preset per overlay type renders without an account; format and background changes stay free.
Customised overlays (including overlay motion), Pro presets and expressive caption styles need Pro.
Video edits with no overlays or only unchanged free presets and Clean, Boxed or Minimal captions are free, including footage and title motion, plain titles, the rapid intro, sound effects and caption line and Scatter placement with those styles. A title with a reveal or behind people needs Pro. Pro is $9/month: Pricing. Sign in with npx -y @modisign/mcp login.

Privacy

  • Your videos, photos and audio never leave your computer.
  • Only overlay settings, overlay text, the chosen caption style and three yes/no facts (whether an overlay's motion was customised, whether a title uses a reveal or Behind people, whether captions use expressive line styles or styled words) reach Modisign.
  • Titles, rapid-intro labels, caption line positions, sizes, rotations, Scatter seeds, phrase grouping, sound choices and motion keys never reach Modisign; your assistant sees them in the request.
  • Captions are made on your computer with an English speech model downloaded once from Hugging Face (about 43 MB).
  • Anonymous usage counts have no account link; turn them off with MODISIGN_NO_TELEMETRY=1.

Full details: https://modisign.app/privacy and TECHNICAL.md.

Commands

Run commands with npx -y @modisign/mcp <command>.

CommandWhat it does
loginSign in to Modisign in your browser.
logoutSign out on this computer.
statusCheck your sign-in and Pro access.
doctorCheck your setup.
render <family>/<preset>Save an overlay as MP4, MOV or WebM.

License

MIT © 2026 Viacheslav Sierbov. Third-party notices: NOTICE. Overlay designs fetched from modisign.app are not covered by this licence; see https://modisign.app/terms.

來源:README.md,提交 0693cf7

工具

11

list_overlays

Find animated overlays by topic, family or niche. Returns compact preset choices and editor links. Reuse the same filters and pass the returned next_cursor as cursor for another page.

輸入參數nichequerycursorfamilyfree_only

get_overlay

Inspect an overlay preset's editable fields, types, allowed values and limits, looks, aspects, duration and free status before configuring it. Each field has relevant (the preset's layout and options use it now) and showWhen (the conditions under which it is used; absent means always). cues lists the taps the overlay declares (id, kind, at in overlay seconds, when) for sound placement; most overlays declare none.

輸入參數family必填preset必填

configure_overlay

Configure an animated overlay with editable values, look, aspect, duration or background. Returns its configuration URL, free/Pro tier, relevance (field ids the final configuration uses or does not), activeCues (taps this exact configuration has, usable as sfx overlay-cue ids; empty when it has none) and inactiveEdits (requested values kept but unused by this layout, with a notice). Field errors list allowed inputs so you can correct and retry. Changes to free preset text generally need Pro to render.

輸入參數lookaspectfamily必填preset必填valuesdurationbackground

render_overlay

Start a local animated overlay render and return job_id. MP4 uses green screen by default; MOV is transparent ProRes 4444; WebM is transparent VP9. Needs the user's FFmpeg. Free configurations need no login; others need Pro. Poll job_status for the file.

輸入參數formatoutput_dirconfiguration必填

add_overlay_to_video

Render an overlay transparently and composite it onto one local video (up to 60 seconds) at start_seconds. Automatically selects and reauthorizes the nearest supported aspect, returned as aspect. The start must fit the overlay within the video. Returns job_id; poll job_status. Produces H.264/AAC MP4 with audio, source aspect, long side capped at 1920. Local media never uploads. Use edit_video for longer or multi-clip edits.

輸入參數video_path必填output_pathconfiguration必填start_seconds必填

edit_video

Create a local video with sequential v1 clips and nonoverlapping v2 clips above them. Every clip requires track; v2 requires start seconds, v1 forbids start. Crop uses source-edge percentages; place selects full, halves, corner picture-in-picture or a custom normalized box. Omitted crop/place mean zero crop/full. Supports trims (at least 3 frames (0.1 seconds)), fill/fit, pan (0–1), zoom (1–3), photos (0.1–30 seconds), audio and source-second punch-ins. Up to 300 clips, maximum end 180 seconds. after_clip indexes the request array and must target v1; the incoming neighbor is the next v1, skipping v2. Transitions clamp to adjacent clip limits. Captions and pause detection use v1 only, even when muted. Removing pauses ripples both tracks and overlays; conflicting v1 transitions return an explicit error. Align sources manually; no automatic sync or drift correction. Example: put reference.mp4 on top muted, me.mp4 on the bottom, crop 5% off the sides, start together, Clean captions from my voice. Captions are made on your computer in English; optional corrections replace exact words/phrases. Specify caption style clean/boxed/minimal/karaoke/bold-keyword/word-pop/highlight-box/neon/pop-up/typewriter/outline/editorial/gradient/mixed, position upper/center/lower and size s/m/l. Style mixed gives every word its own font, weight, color and spacing; add captions.mix with a preset (creator or editorial), seed and palette, and captions.word_styles to restyle chosen words by source seconds (font, weight, italic, fill, tracking, leading, underline, highlight). Example: mixed-font Creator trio captions with a cream, yellow and pink palette, underline the words spoken from 2.0 to 2.8 seconds in the first clip. Titles: texts adds up to 100 native titles of up to 120 characters, each either bound to a clip (v1 or v2) by clip (shown for that clip's whole span; optional timestamp source = the clip's source in-point as mm:ss, or timeline) or placed with start and duration timeline secon

輸入參數sfxclips必填textsaspect必填qualityauto_sfxcaptionsoverlaysoutput_pathrapid_introtransitionsremove_silences

get_transcript

Transcribe English speech in one local video (up to 180 seconds) using an English speech model on your computer. Optional in/out trim seconds; returned line times are source seconds. The transcript text is returned to your assistant/provider, so call only when the user wants to review or correct it. Media and transcript are never sent to Modisign. First use downloads the speech model; later calls work offline. Use captions.corrections in edit_video to fix names/phrases.

輸入參數inoutpath必填

job_status

Check a local video job's state and progress (0–1). A done job includes the local artifact path, MIME type, bytes, duration and any history warning. Jobs last for this server process.

輸入參數job_id必填

cancel_job

Cancel a queued or running local video job and clean its temporary files. A completed artifact is retained.

輸入參數job_id必填

account_status

Check whether Modisign is signed in and has current Pro access. Anonymous free overlays work without signing in. Returns sign-in instructions when needed.

無需輸入參數。

login

Start Modisign device sign-in. Show the returned verification URL and code to the user; they sign in with Google and explicitly approve. Polling continues in the background. Use account_status to check completion. This tool never opens a browser or returns credentials.

無需輸入參數。

版本歷史

8
  1. v0.6.0最新Oct 25, 2026
  2. v0.5.1Oct 23, 2026
  3. v0.5.0Oct 22, 2026
  4. v0.4.0Oct 20, 2026
  5. v0.3.0Oct 18, 2026
  6. v0.2.0Oct 16, 2026
  7. v0.1.1Oct 15, 2026
  8. v0.1.0Oct 14, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分