mcp-registry/ai.weftly/weftly · v0.35.3
As of 2026-10-26 20:40 UTC, the Weftly MCP server is up with a Glimind reliability score of 100/100 (grade A). Over the last 30 days it answered 100% of Glimind's liveness checks.
Find & cut horizontal and vertical video clips (Shorts/Reels), transcribe & summarize. Pay per job.
Point your MCP client at this streamable-http endpoint: https://api.weftly.ai/mcp
9 of 9 tool(s) carry no readOnlyHint/destructiveHint annotations.
Annotate read-only tools with {"readOnlyHint": true}. Agents and gateways can then run them without a confirmation prompt, and route around destructive ones. How to fix →
23 parameter(s) across 3 tool(s) have no description.
Add a "description" to each parameter with its format and an example ("ISO 8601 date, e.g. 2026-10-17"). This is the commonest cause of wrong arguments on the first call. How to fix →
In the last 30 days: 1 tool(s) removed and 2 schema change(s).
Add new tools or optional parameters instead of renaming or removing; deprecate first (say so in the description) and remove later. Agents cache tool contracts. How to fix →
No tool declares an outputSchema.
Declare outputSchema and return structuredContent (MCP 2025-06-18+). Agents can then parse results without guessing, and chain tools reliably. How to fix →
Paste-ready definitions with the problems above fixed. Changes marked verify need a human look. 3 tool(s) still need parameter descriptions written by someone who knows the API. All of them as JSON: /v1/readiness/mcp-registry%2Fai.weftly%2Fweftly/fixes
{
"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.",
"inputSchema": {
"type": "object",
"required": [
"job_id"
],
"properties": {
"job_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "The job_id returned from a previous transcribe or summarize call."
}
},
"additionalProperties": false
},
"annotations": {
"readOnlyHint": false,
"destructiveHint": false,
"idempotentHint": false
}
}{
"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",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"maxLength": 500,
"minLength": 1,
"description": "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 either way; the `mode` field in clip-candidates.json tells consumers how to interpret per-candidate scoring."
},
"job_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "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 original response was lost."
},
"filename": {
"type": "string",
"description": "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, webm, mkv."
},
"payment_credential": {
"type": "string",
"description": "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 upload URL."
}
},
"additionalProperties": false
},
"annotations": {
"readOnlyHint": true
}
}{
"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 need",
"inputSchema": {
"type": "object",
"required": [
"job_id"
],
"properties": {
"format": {
"enum": [
"srt",
"txt",
"vtt",
"json",
"words",
"edit"
],
"type": "string",
"description": "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), \"json\" (v1, segments only), \"words\" (v2, segments + per-word timestamps matching /.well-known/weftly-transcript-v2.schema.json), \"edit\" (plain text, one \"[NNNN] words...\" line per paragraph — edit it and send it to edit_from_transcript to cut a re-timed video from it). Omit for download URLs only."
},
"job_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "The job_id returned from a previous transcribe or summarize call."
}
},
"additionalProperties": false
},
"annotations": {
"readOnlyHint": true
}
}Get an email or webhook when this server's readiness drops by 10+ points, tool-poisoning text appears, or a tool breaks:
curl -X POST https://glimind.com/v1/subscriptions -H 'content-type: application/json' -d '{"tools":["mcp-registry/ai.weftly/weftly"],"email":"[email protected]"}'Agents: watch_tool({"toolId": "mcp-registry/ai.weftly/weftly"}) over MCP.
find_clips ~549 tokensclips_from_job ~489 tokenssummarize ~444 tokenstranscribe ~444 tokensget_job_status ~430 tokensStatic checks of the advertised tools/list (schema, descriptions, annotations, tool-poisoning patterns, names, size) plus observed protocol, uptime, latency and contract changes. Read-only: no tool is ever called. Weights: schema 15, docs 20, safety 15, efficiency 15, compatibility 15, protocol 5, reliability 10, stability 5. Token counts are estimates (~3.6 characters per token).
Operator? Fix these, then re-check live. Embed the readiness badge:
[](https://glimind.com/server/mcp-registry%2Fai.weftly%2Fweftly?ref=badge)
<a href="https://glimind.com/server/mcp-registry%2Fai.weftly%2Fweftly?ref=badge"><img src="https://glimind.com/v1/readiness/badge/mcp-registry%2Fai.weftly%2Fweftly.svg" alt="MCP agent-readiness"></a>
.. image:: https://glimind.com/v1/readiness/badge/mcp-registry%2Fai.weftly%2Fweftly.svg :target: https://glimind.com/server/mcp-registry%2Fai.weftly%2Fweftly?ref=badge :alt: MCP agent-readiness
Glimind records every version of this server's tool definitions in a signed, append-only transparency log. Current manifest sha256:7d2a0415246fbfc8…, first seen 2026-10-17, included at leaf 798 of 75,339. Version history · verify what your client received.
Compare: most reliable media servers · most reliable files servers · most reliable devops servers · most reliable payments servers
Glimind tells agents whether a server is up right now and how to call it, then fails over to a live alternative when it isn't.
Claude Code
claude mcp add --transport http glimind https://glimind.com/mcp
Claude Desktop · Windsurf · Cline (mcpServers JSON)
{
"mcpServers": {
"glimind": {
"type": "http",
"url": "https://glimind.com/mcp"
}
}
}
As of 2026-10-26 20:40 UTC, the Weftly MCP server is up with a Glimind reliability score of 100/100 (grade A). Over the last 30 days it answered 100% of Glimind's liveness checks.
Weftly MCP server advertises 9 tools, including clips_from_job, clips_from_video, complete_upload, edit_from_transcript, find_clips.
Point your MCP client at this streamable-http endpoint: https://api.weftly.ai/mcp
Glimind scanned all 9 tool definitions for tool-poisoning patterns — hidden or invisible characters, instructions that override the model, concealment from the user, requests to read credential or MCP config files, conversation exfiltration and cross-tool shadowing — and found none. This checks what the server tells the model, not what its code does; review the source before granting access to sensitive data.
Status page: 90-day uptime, every outage and how long it lasted.
Claim this listing to get the Verified operator marker, a remediation checklist and owner analytics, or embed the live badge from any of the tool pages above. Maintainers: alerts, deploy attestation and monthly reports.
Status is an automated estimate from Glimind's liveness checks (handshake and tool listing only; no tool is ever called) and may lag or differ from your network. Glimind is not affiliated with this server or its operator. Operator? Request a correction or opt out at https://glimind.com/opt-out.