woven-record-media avatar

Weftly

woven-record-media/weftly-monorepo

A pay-per-job video workflow server that exposes transcription, summarization, clip detection, and video cutting operations through MCP. You point it at MP3, MP4, MOV, or WebM files and get back timestamped transcripts, episode recaps, or ranked highlight candidates for short-form cuts. The vertical clip tool outputs 9:16 center-cropped video ready for TikTok and Reels. No account setup, just Stripe checkout on first paid call. Pricing runs $0.50 for audio transcripts up to $2.00 for AI clip discovery. Files auto-delete after 24 hours. Useful when you need to script podcast show notes, pull quotes from interviews, or batch-cut social clips without opening an editor.

tools
9
transport
HTTP
last updated
Nov 8, 2026

Install

From registry metadata
$ npx add-mcp https://api.weftly.ai/mcp --name weftly

Run in your terminal. add-mcp asks which agents to add it to (Claude Code, Codex, Cursor and more). Add -g to install it for every project.

Review the command, arguments and environment values before installing. MCP servers run with your local permissions.

Other ways

Claude Code

$ claude mcp add --transport http weftly https://api.weftly.ai/mcp

Run in your terminal. Add --scope user to make it available in every project.

Tools

Verified live · 9 tools

Verified live against the running server on Nov 6, 2026.

transcribeTranscribe audio or video to text, including per-word timestamps for precise editing. Three-call flow: (1) call with `filename` to receive {job_id, payment_challenge}; (2) pay via MPP, then call with `job_id` + `payment_credential` to receive {upload_url} (presigned PUT, 1h ex...3 params

Transcribe audio or video to text, including per-word timestamps for precise editing. Three-call flow: (1) call with `filename` to receive {job_id, payment_challenge}; (2) pay via MPP, then call with `job_id` + `payment_credential` to receive {upload_url} (presigned PUT, 1h ex...

Parameters* required
filenamestring
Filename with extension (e.g. "podcast.mp3"). Required on the first call — used to infer media type (audio vs video) and label outputs. Supported extensions: mp3, wav, m4a, ogg, flac, mp4, mov, web...
job_idstring
Job ID returned from a previous call. Include along with payment_credential to confirm payment and receive the presigned upload URL. Also include alone to recover the current challenge/state if the...
payment_credentialstring
MPP payment credential (full Authorization header value, e.g. "Payment eyJ...") obtained by paying the challenge returned from the first call. Include with job_id to verify payment and receive the...
summarizeSummarize an audio or video file — returns both a text summary AND the full transcript (with per-word timestamps). Do not also call transcribe on the same file. Three-call flow: (1) call with `filename` to receive {job_id, payment_challenge}; (2) pay via MPP, then call with `j...3 params

Summarize an audio or video file — returns both a text summary AND the full transcript (with per-word timestamps). Do not also call transcribe on the same file. Three-call flow: (1) call with `filename` to receive {job_id, payment_challenge}; (2) pay via MPP, then call with `j...

Parameters* required
filenamestring
Filename with extension (e.g. "podcast.mp3"). Required on the first call — used to infer media type (audio vs video) and label outputs. Supported extensions: mp3, wav, m4a, ogg, flac, mp4, mov, web...
job_idstring
Job ID returned from a previous call. Include along with payment_credential to confirm payment and receive the presigned upload URL. Also include alone to recover the current challenge/state if the...
payment_credentialstring
MPP payment credential (full Authorization header value, e.g. "Payment eyJ...") obtained by paying the challenge returned from the first call. Include with job_id to verify payment and receive the...
find_clipsSTART HERE for any clip workflow on a video — `find_clips` is the canonical entry point and includes a full transcription as a free byproduct. **Do not call `transcribe` first**: doing so doubles the upload, doubles the spend, and produces the same transcript. Identify ranked...4 params

START HERE for any clip workflow on a video — `find_clips` is the canonical entry point and includes a full transcription as a free byproduct. **Do not call `transcribe` first**: doing so doubles the upload, doubles the spend, and produces the same transcript. Identify ranked...

Parameters* required
filenamestring
Filename with extension (e.g. "podcast.mp3"). Required on the first call — used to infer media type (audio vs video) and label outputs. Supported extensions: mp3, wav, m4a, ogg, flac, mp4, mov, web...
job_idstring
Job ID returned from a previous call. Include along with payment_credential to confirm payment and receive the presigned upload URL. Also include alone to recover the current challenge/state if the...
payment_credentialstring
MPP payment credential (full Authorization header value, e.g. "Payment eyJ...") obtained by paying the challenge returned from the first call. Include with job_id to verify payment and receive the...
querystring
Optional. Switches the analyzer from "best clips" discovery mode to query mode — finds segments matching this content (e.g., "they discuss pricing", "the part about hiring"). Same output shape eith...
clips_from_jobCut one or more clips from any prior video job (find_clips, summarize, or video transcribe). Operates on a parent job — possessing the parent `source_job_id` is the capability, no upload step. Contrast with `clips_from_video`, which takes a local `filename` and uploads a video...10 params

Cut one or more clips from any prior video job (find_clips, summarize, or video transcribe). Operates on a parent job — possessing the parent `source_job_id` is the capability, no upload step. Contrast with `clips_from_video`, which takes a local `filename` and uploads a video...

Parameters* required
captionsboolean
clipsarray
include_transcriptboolean
job_idstring
orientationstring
one of vertical · horizontal
outputstring
one of files · reel
payment_credentialstring
profilestring
one of tiktok-primary · tiktok-primary-720p · instagram-reels · instagram-stories
source_job_idstring
subjectstring
one of center · manual · auto · subject_id · follow
edit_from_transcriptCut and re-assemble a video from an edited copy of its own word-level transcript — the text-editing counterpart to clips_from_job's timestamp-based cutting. Operates on a parent job (find_clips, summarize, or video transcribe) that has a word-level transcript; possessing the p...5 params

Cut and re-assemble a video from an edited copy of its own word-level transcript — the text-editing counterpart to clips_from_job's timestamp-based cutting. Operates on a parent job (find_clips, summarize, or video transcribe) that has a word-level transcript; possessing the p...

Parameters* required
edited_transcriptstring
job_idstring
payment_credentialstring
source_job_idstring
titlestring
complete_uploadConfirm that the file has been uploaded (via HTTP PUT to the upload_url from transcribe or summarize) and start processing. Verifies that the file is present in storage and that the job has been paid. Returns status "processing". Poll get_job_status to track progress and retri...1 params

Confirm that the file has been uploaded (via HTTP PUT to the upload_url from transcribe or summarize) and start processing. Verifies that the file is present in storage and that the job has been paid. Returns status "processing". Poll get_job_status to track progress and retri...

Parameters* required
job_id*string
The job_id returned from a previous transcribe or summarize call.
get_job_statusCheck the status of a transcribe or summarize job. Returns the current state and, when completed, an `outputs` array. Each output has either `content` (returned inline) or a presigned, time-limited (1 hour) `download_url`. Small text outputs (e.g. `transcript` SRT, `clip-candi...2 params

Check the status of a transcribe or summarize job. Returns the current state and, when completed, an `outputs` array. Each output has either `content` (returned inline) or a presigned, time-limited (1 hour) `download_url`. Small text outputs (e.g. `transcript` SRT, `clip-candi...

Parameters* required
formatstring
When the job is completed, return the transcript inline in this format instead of only a download URL. Options: "srt" (SubRip with timestamps), "txt" (plain text — no timestamps), "vtt" (WebVTT), "...one of srt · txt · vtt · json · words · edit
job_id*string
The job_id returned from a previous transcribe or summarize call.
mpp_smoke_testSmoke-test the MPP payment plumbing end-to-end via this MCP server, for $0.01 USDC. Two-call flow: (1) call with no arguments to receive an MPP `payment_challenge`; (2) pay via MPP and call again with `payment_credential` set to the resulting Authorization header value (e.g. "...1 params

Smoke-test the MPP payment plumbing end-to-end via this MCP server, for $0.01 USDC. Two-call flow: (1) call with no arguments to receive an MPP `payment_challenge`; (2) pay via MPP and call again with `payment_credential` set to the resulting Authorization header value (e.g. "...

Parameters* required
payment_credentialstring
MPP payment credential (full Authorization header value, e.g. "Payment eyJ...") obtained by paying the challenge returned from the first call. Include to verify payment and receive {paid: true}. Om...
clips_from_videoFind clips in a video AND cut up to 5 of them, under ONE payment. This is the alternative to calling find_clips and then clips_from_job yourself — prefer it whenever the user wants clips delivered end-to-end from a video they have not yet uploaded. CARD PAYMENT ONLY — this cha...8 params

Find clips in a video AND cut up to 5 of them, under ONE payment. This is the alternative to calling find_clips and then clips_from_job yourself — prefer it whenever the user wants clips delivered end-to-end from a video they have not yet uploaded. CARD PAYMENT ONLY — this cha...

Parameters* required
captionsboolean
content_typestring
filenamestring
job_idstring
job_type*string
one of clips_from_video · clips_youtube
orientationstring
one of vertical · horizontal
querystring
thread_idstring

Sponsors

Readme

Details

Repository
github.com/woven-record-media/weftly-monorepo
Website
weftly.ai
Category
Media & Entertainment
Transport
HTTP
Registry
MCP registry, active
Resources
2
Tools verified
Nov 6, 2026

Related Media & Entertainment MCP servers

View all
1totalaudiopromo avatarTap Mcptotalaudiopromo/total-audio-platformMusic PR campaign management -- contacts, pitches, campaigns, and outcomes.0stars
2u2n4 avatarVEO 3.1u2n4/gemini-media-mcp4K video generation via Google VEO 3.1: text-to-video, image-to-video, video extension0stars
3mutonby avatarOpenshortsmutonby/openshortsTurn long videos into viral vertical shorts and publish them to TikTok, Instagram and YouTube.7.5Kstars
4minimax-ai avatarMinimaxminimax-ai/minimax-mcpOfficial MiniMax Model Context Protocol (MCP) server that enables interaction with powerful Text to Speech, image generation and video generation APIs.1.5Kstars
5mbailey avatarVoicemodembailey/voicemodeNatural voice conversations for AI assistants - STT/TTS via MCP1.4Kstars
6sylphxai avataranymdsylphxai/anymdAny file → clean Markdown for AI agents: PDF, Office, EPUB, HTML, images, audio/video. Local MCP.1.1Kstars