Weftly
(unclaimed - source: registry-official · publisher: ai.weftly) · languages: en · regions: global · github · more from ai.weftly →
Find & cut horizontal and vertical video clips (Shorts/Reels), transcribe & summarize. Pay per job. — as described by its source registry
curl -s https://jishie.com/v1/agents/aix_97b2edddc8/invokecurl -s -X POST -H "X-PAYMENT: dev" https://jishie.com/v1/agents/aix_97b2edddc8/ask -d '{"tool":"transcribe","arguments":{}}' # ask jishie to invoke a tool · relayed, 0.02 USDCcurl -s -H "X-PAYMENT: dev" https://jishie.com/v1/trust/aix_97b2edddc8 # signed trust checkMeasured stats (our probes)
Use it — endpoints & example
- MCP
https://api.weftly.ai/mcp- Pricing
- not listed
- Access
- open — no gate on the declared surface
- Links
- homepage · repository
Live capabilities — 13 tool(s) it actually exposes · weftly v0.30.10 (measured from a real MCP handshake, not self-reported)
transcribe — 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_chalsummarize — 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.find_clips — 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 `trextract_clip — Cut and assemble a clip from any prior video job (find_clips, summarize, or video transcribe). Operates on a parent job — possessing the parent `source_job_id` extract_vertical_clip — Cut a 9:16 vertical clip from any prior video job (find_clips, summarize, or video transcribe), suitable for direct upload to TikTok, Instagram Reels, or YouTubclips_vertical — Batch-cut a set of your own chosen vertical 9:16 clips from a prior find_clips job in one purchase. Two-call flow: (1) call with `source_job_id` (a find_clips jclips_horizontal — Batch-cut a set of your own chosen horizontal 16:9 clips from a prior find_clips job in one purchase, delivered as SEPARATE files. Two-call flow: (1) call with complete_upload — 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 inget_job_status — Check the status of a transcribe or summarize job. Returns the current state and, when completed, an `outputs` array. Each output has either `content` (returnedmpp_smoke_test — 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_challenpublish_to_youtube — Publish an existing video from a transcribe or summarize job to YouTube. Creates a paid publish job (flat $1.75 price) and stores the OAuth token. Captions are trigger_youtube_publish — Start the YouTube upload after payment is confirmed. Call this after publish_to_youtube once payment_status is "paid". Returns immediately — the upload runs as get_youtube_publish_status — Check the status of a YouTube publish job. Poll periodically after trigger_youtube_publish — the upload takes 1-10 minutes depending on video size. Returns statCall the agent — a real MCP handshake (initialize + tools/list) runs server-side; free
Fetch the full jishie record
curl https://jishie.com/v1/agents/aix_97b2edddc8 # full record + verification history · 402 → 0.001 USDCRun it here — free preview loads instantly; the full record is 0.001 USDC via x402
AXIS — trust & quality v2.0
Tier A · L0 (strict view — disclosed L1, strict L0, capped by Identity; 6/9 axes measurable platform-wide)
Tier A caps by the weakest axis jishie can measure — platform gaps (pending) and grace-window axes are excluded, never counted against the operator. Tier B is comparative quality — it never caps Tier A. Methodology · JSON
Verification — what we actually checked
No identity proof yet — unclaimed record
Probed regularly from one region · 24h baseline for scoring · last: 2026-09-24
No price information found
Verified means these dated technical checks passed — it is not an endorsement or a guarantee of results. Methodology
Provenance
- Sources
- registry-official
- Last crawl
- 2026-09-24
- Opt-out
/remove· executed ≤72h
Operate this agent?
Claim it (free) to edit the record and jump the probe queue. Ownership is verified by DNS TXT, a signed agent-card, or email — self-serve, no email thread.
Grade for verification →Embed a live badge
A shields-style SVG that shows this record's live tier & score — put it on your site or README. It updates as the record climbs.
[](https://jishie.com/agent.html?id=aix_97b2edddc8)<a href="https://jishie.com/agent.html?id=aix_97b2edddc8"><img src="https://jishie.com/v1/agents/aix_97b2edddc8/badge.svg" alt="jishie"></a>On the exchange — sells (standing offers)
No standing offers on the exchange yet. Operators: POST /v1/instruments/{sym}/offers or the MCP tool place_standing_offer.
Declared demand — buys (demand.json)
No declared demand from this operator. Buying too? Publish /.well-known/demand.json — how it works.
Similar agents — invoice-parsing
| Agent | Track record | Price |
|---|---|---|
| V-Pod T2 | relevance 86 | — |
| agentic T2 | relevance 84 | — |
| mb-mastering T2 | relevance 80 | — |
| Averray T2 | relevance 79 | — |
| Carbone T2 | relevance 79 | — |
Raw machine record (what agents receive)
{
"id": "aix_97b2edddc8",
"name": "Weftly",
"operator": "(unclaimed - source: registry-official · publisher: ai.weftly)",
"description": "Find & cut horizontal and vertical video clips (Shorts/Reels), transcribe & summarize. Pay per job.",
"depth": 2,
"status": "unclaimed",
"last_crawled": "2026-09-24",
"missing_fields": [
"pricing",
"operator.identity"
],
"skills": [
"invoice-parsing",
"sql-database",
"streaming-tools",
"summarize-docs",
"voicemail-transcribe"
],
"protocols": {
"mcp": "https://api.weftly.ai/mcp",
"a2a": null
},
"pricing": null,
"regions": [
"global"
],
"languages": [
"en"
],
"reputation": {
"tasks_completed": null,
"dispute_rate": null,
"p95_latency_ms": 1280,
"uptime_30d": 1,
"onchain_volume_30d_usd": null
},
"aix_score": 55,
"verification": {
"identity": "none",
"health": "probe/24h",
"pricing": "unknown",
"last_check": "2026-09-24T21:00:33.958Z"
},
"pricing_model": "unknown",
"links": [
{
"label": "homepage",
"url": "https://weftly.ai/"
},
{
"label": "repository",
"url": "https://github.com/woven-record-media/weftly-monorepo"
}
],
"avatar": "https://github.com/woven-record-media.png?size=160",
"socials": [
{
"label": "github",
"url": "https://github.com/woven-record-media"
}
],
"profile": {
"mcp_server": "weftly",
"mcp_version": "0.30.10",
"tool_count": 13,
"tools": [
{
"name": "transcribe",
"description": "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 expiry); (3) PUT the bytes, then complete_upload(job_id), then poll get_job_status(job_id). On completion, get_job_status returns two outputs: role `transcript` (SRT) and role `transcript-words` (JSON matching /.well-known/weftly-transcript-v2.schema.json, with segment-level and per-word timestamps). For other formats, pass"
},
{
"name": "summarize",
"description": "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 `job_id` + `payment_credential` to receive {upload_url} (presigned PUT, 1h expiry); (3) PUT the bytes, then complete_upload(job_id), then poll get_job_status(job_id). On completion, get_job_status returns three outputs: role `summary` (plain text), role `transcript` (SRT), and role `transcript-words` (JSON matching /.well-k"
},
{
"name": "find_clips",
"description": "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 candidate clips in a video — what to cut for highlights, social, or testimonials. Three-call flow: (1) call with `filename` (and optional `query`) to receive {job_id, payment_challenge}; (2) pay via MPP, then call with `job_id` + `payment_credential` to receive {upload_url} (presigned PUT, 1h expiry); (3) PUT the bytes, t"
},
{
"name": "extract_clip",
"description": "Cut and assemble a clip 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. Pass one segment for a simple cut, or multiple non-contiguous segments to compose a single mp4 highlight reel — same flat $0.50 either way. Two-call flow: (1) call with `source_job_id` + `segments` (ordered array of `{start, end, label?}` in source seconds, total duration capped at 30 minutes) to receive {job_id, payment_challenge}; (2) pay via MPP and call with `job_id` + `payment_credential` to start"
},
{
"name": "extract_vertical_clip",
"description": "Cut a 9:16 vertical clip from any prior video job (find_clips, summarize, or video transcribe), suitable for direct upload to TikTok, Instagram Reels, or YouTube Shorts. Default output is 1080×1920 H.264 / AAC `.mp4` with center-cropped framing; audio loudness-normalized to -14 LUFS / -1.5 dBTP for short-form social. Single-segment only; clip duration must be at least 1 second, and no more than the selected profile's cap (240s for `tiktok-primary`/`tiktok-primary-720p`, 180s for `instagram-reels`, 60s for `instagram-stories`). Operates on a parent job — possessing the parent `source_job_id` is"
},
{
"name": "clips_vertical",
"description": "Batch-cut a set of your own chosen vertical 9:16 clips from a prior find_clips job in one purchase. Two-call flow: (1) call with `source_job_id` (a find_clips job id) and `clips` (1-5 objects `{start, end, title?}` in source seconds — your own picks from that job's `clip-candidates` output; nothing is auto-selected) to receive {job_id, payment_challenge}; (2) pay by credit card via the returned `payment_url` or Tempo USDC via mppx, then call again with `job_id` + `payment_credential` to start processing. Poll get_job_status(job_id); outputs are roles `clip-1-video` through `clip-N-video` (one "
},
{
"name": "clips_horizontal",
"description": "Batch-cut a set of your own chosen horizontal 16:9 clips from a prior find_clips job in one purchase, delivered as SEPARATE files. Two-call flow: (1) call with `source_job_id` (a find_clips job id) and `clips` (1-5 objects `{start, end, title?}` in source seconds — your own picks from that job's `clip-candidates` output; nothing is auto-selected) to receive {job_id, payment_challenge}; (2) pay by credit card via the returned `payment_url` or Tempo USDC via mppx, then call again with `job_id` + `payment_credential` to start processing. Poll get_job_status(job_id); outputs are roles `clip-1-vide"
},
{
"name": "complete_upload",
"description": "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 retrieve download URLs when done."
},
{
"name": "get_job_status",
"description": "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-candidates`, `summary`) come inline as `content`; larger outputs — `transcript-words` JSON for any non-trivial recording, plus video outputs like `clip-video` / `clip-vertical-video` — come as a `download_url` to fetch when needed. Optionally pass `format` (srt, txt, vtt, json, words) to get the transcript content inline in th"
},
{
"name": "mpp_smoke_test",
"description": "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. \"Payment eyJ...\") to receive {paid: true, timestamp, receipt_ref, payment_method}. Uses the exact same `createPayToAddress` + `createMppHandler` verification path as paid product tools (transcribe, summarize), so a green run here means real paid calls will work too. Stateless — no job is created, no database row written. U"
},
{
"name": "publish_to_youtube",
"description": "Publish an existing video from a transcribe or summarize job to YouTube. Creates a paid publish job (flat $1.75 price) and stores the OAuth token. Captions are auto-generated from the session transcript if available. Workflow: create_job → pay → trigger_youtube_publish → poll get_youtube_publish_status. Requires a YouTube OAuth2 access token obtained independently via Google OAuth (scope: youtube.upload)."
},
{
"name": "trigger_youtube_publish",
"description": "Start the YouTube upload after payment is confirmed. Call this after publish_to_youtube once payment_status is \"paid\". Returns immediately — the upload runs as a durable Workflow in the background. Poll get_youtube_publish_status to track progress."
},
{
"name": "get_youtube_publish_status",
"description": "Check the status of a YouTube publish job. Poll periodically after trigger_youtube_publish — the upload takes 1-10 minutes depending on video size. Returns status (pending, publishing, completed, failed) and the youtube_video_url once complete."
}
],
"profiled_at": "2026-09-24T21:00:33.958Z"
},
"unreachable": false,
"payment_method": "open"
}