Video project tools: platform specs, editing briefs, SRT/WebVTT conversion, turnaround times.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Converts caption text between SubRip (.srt) and WebVTT (.vtt), optionally shifting every timestamp by a number of milliseconds, and reports format problems (missing numbers, comma/period timestamps, captions run together). Runs entirely on the server with the open-source subtitle code used by the markstudios.com caption tools; nothing is stored.
The full text of the .srt or .vtt file.
Output format; 'same' keeps the input format (use with shift_ms or to clean up).
Original file name, if known; helps tell .srt from .vtt.
Milliseconds to add to every timestamp (negative moves captions earlier).
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http video-toolkit https://mcp.markstudios.com/mcp
Converts caption text between SubRip (.srt) and WebVTT (.vtt), optionally shifting every timestamp by a number of milliseconds, and reports format problems (missing numbers, comma/period timestamps, captions run together). Runs entirely on the server with the open-source subtitle code used by the markstudios.com caption tools; nothing is stored.
| Argument | Type | Description |
|---|---|---|
| to | string | Output format; 'same' keeps the input format (use with shift_ms or to clean up). |
| captions* | string | The full text of the .srt or .vtt file. |
| filename | string | Original file name, if known; helps tell .srt from .vtt. |
| shift_ms | integer | Milliseconds to add to every timestamp (negative moves captions earlier). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"captions"
],
"properties": {
"to": {
"enum": [
"srt",
"vtt",
"same"
],
"type": "string",
"default": "same",
"description": "Output format; 'same' keeps the input format (use with shift_ms or to clean up)."
},
"captions": {
"type": "string",
"maxLength": 500000,
"minLength": 1,
"description": "The full text of the .srt or .vtt file."
},
"filename": {
"type": "string",
"maxLength": 200,
"description": "Original file name, if known; helps tell .srt from .vtt."
},
"shift_ms": {
"type": "integer",
"default": 0,
"maximum": 86400000,
"minimum": -86400000,
"description": "Milliseconds to add to every timestamp (negative moves captions earlier)."
}
}
}Builds a filled-in 7-section video editing brief (project, audience and goal, references, must-include moments, brand rules, deliverable specs, timeline) from whatever the user already knows, and lists the gaps an editor will ask about. Use when someone is about to hand footage to an editor, freelancer or agency. Pass only fields you know.
| Argument | Type | Description |
|---|---|---|
| copy | string | What to copy: Pacing, captions, color, music, graphics |
| kill | string | KILL: Anything that can't be used |
| must | string | MUST: Timestamps from the raw footage that have to land |
| nice | string | NICE-TO-HAVE: Moments to use if they fit |
| avoid | string | What not to copy: The traps to avoid |
| donts | string | Don'ts: Past mistakes not to repeat |
| music | string | Music rules: Which library or tracks are licensed |
| master | string | Master: Resolution, frame rate, audio level |
| metric |
Given a description of a video project (e.g. 'turn my podcast into weekly Reels'), returns the closest-matching Mark Studios editing services with what each includes, its standard turnaround, the service page, and a link to start an instant quote for that service. Use when the user asks who could edit a video or how to get one edited.
| Argument | Type | Description |
|---|---|---|
| need* | string | What the user wants made or edited, in their words. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"need"
],
"properties": {
"need": {
"type": "string",
"maxLength": 1000,
"minLength": 3,
"description": "What the user wants made or edited, in their words."
}
}
}Standard Mark Studios editing turnaround windows by format (vlog, YouTube, talking head, short-form batch, ad, corporate, course, VSL, wedding, monthly plan), plus when the clock starts, rush speeds and revision timing.
| Argument | Type | Description |
|---|---|---|
| format | string | Format to look up. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"format": {
"enum": [
"all",
"vlog",
"youtube",
"talking-head",
"short-form",
"commercials",
"corporate",
"course",
"vsl",
"wedding",
"monthly"
],
"type": "string",
"default": "all",
"description": "Format to look up."
}
}
}The four Mark Studios monthly video editing plans with price and what each includes (long videos, Shorts, thumbnails), from markstudios.com/pricing. Use when the user asks what ongoing video editing costs.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Maximum length, recommended aspect ratio and resolution for short-form video on YouTube Shorts, Instagram Reels, Facebook Reels, TikTok, Snapchat Spotlight and LinkedIn, read from each platform's own help and developer pages, with the source link for every figure. Use when someone asks how long a Short/Reel/TikTok can be or what size to export.
| Argument | Type | Description |
|---|---|---|
| platform | string | Which platform; 'all' returns every platform. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"platform": {
"enum": [
"all",
"youtube_shorts",
"instagram_reels",
"facebook_reels",
"tiktok",
"snapchat_spotlight",
"linkedin"
],
"type": "string",
"default": "all",
"description": "Which platform; 'all' returns every platform."
}
}
}Returns a link to the Mark Studios instant quote (start.markstudios.com), preselected for the chosen service, and what happens after: questions about the footage, a price on screen, then upload. It only builds a link; it sends nothing and collects no personal data. Use when the user says they want to hire an editor or get a quote.
| Argument | Type | Description |
|---|---|---|
| service | string | Service key from find_video_editing_service; omit if unsure. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"service": {
"enum": [
"youtube",
"short-form",
"podcast",
"talking-head",
"vlog",
"commercials",
"vsl",
"corporate",
"course",
"wedding",
"testimonial",
"faceless-youtube",
"livestream",
"intro-outro",
"white-label",
"monthly-plans",
"thumbnails",
"youtube-strategy",
"videography"
],
"type": "string",
"description": "Service key from find_video_editing_service; omit if unsure."
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 14, 2026.
| string |
| The one metric: What success means for this video |
| channel | string | Channel or brand: Where it will be published |
| feeling | string | How viewers should feel: The reaction you want at the end |
| sponsor | string | Sponsor read: Where it goes, if any |
| approver | string | Approver: Exactly one person |
| audience | string | Who it's for: One sentence |
| captions | string | Captions: Burned in, SRT file, or both |
| delivery | string | Delivery: Where final files go |
| final_due | string | Final due: Date and time |
| sensitive | string | SENSITIVE: Faces to blur, legal or private material |
| references | string | 2–4 reference videos: Links with timestamps |
| brand_files | string | Brand files: Lower-thirds, intro, outro, logo |
| short_clips | string | Short clips: Number, ratio and length |
| fonts_colors | string | Fonts and colors: Font names and HEX codes |
| publish_date | string | Publish date: Date and time, not just a day |
| length_target | string | Length target: A target with a hard floor and ceiling |
| response_time | string | Response time: How fast you reply to a cut |
| rough_cut_due | string | Rough cut due: Date and time |
| working_title | string | Working title: The title you plan to publish, or the top two options |
| revision_rounds | string | Revision rounds: How many, in writing |
| footage_location | string | Footage location: The folder link and what's in it |
| thumbnail_frames | string | Thumbnail frames: Frames to export as stills |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"copy": {
"type": "string",
"maxLength": 2000,
"description": "What to copy: Pacing, captions, color, music, graphics"
},
"kill": {
"type": "string",
"maxLength": 2000,
"description": "KILL: Anything that can't be used"
},
"must": {
"type": "string",
"maxLength": 2000,
"description": "MUST: Timestamps from the raw footage that have to land"
},
"nice": {
"type": "string",
"maxLength": 2000,
"description": "NICE-TO-HAVE: Moments to use if they fit"
},
"avoid": {
"type": "string",
"maxLength": 2000,
"description": "What not to copy: The traps to avoid"
},
"donts": {
"type": "string",
"maxLength": 2000,
"description": "Don'ts: Past mistakes not to repeat"
},
"music": {
"type": "string",
"maxLength": 2000,
"description": "Music rules: Which library or tracks are licensed"
},
"master": {
"type": "string",
"maxLength": 2000,
"description": "Master: Resolution, frame rate, audio level"
},
"metric": {
"type": "string",
"maxLength": 2000,
"description": "The one metric: What success means for this video"
},
"channel": {
"type": "string",
"maxLength": 2000,
"description": "Channel or brand: Where it will be published"
},
"feeling": {
"type": "string",
"maxLength": 2000,
"description": "How viewers should feel: The reaction you want at the end"
},
"sponsor": {
"type": "string",
"maxLength": 2000,
"description": "Sponsor read: Where it goes, if any"
},
"approver": {
"type": "string",
"maxLength": 2000,
"description": "Approver: Exactly one person"
},
"audience": {
"type": "string",
"maxLength": 2000,
"description": "Who it's for: One sentence"
},
"captions": {
"type": "string",
"maxLength": 2000,
"description": "Captions: Burned in, SRT file, or both"
},
"delivery": {
"type": "string",
"maxLength": 2000,
"description": "Delivery: Where final files go"
},
"final_due": {
"type": "string",
"maxLength": 2000,
"description": "Final due: Date and time"
},
"sensitive": {
"type": "string",
"maxLength": 2000,
"description": "SENSITIVE: Faces to blur, legal or private material"
},
"references": {
"type": "string",
"maxLength": 2000,
"description": "2–4 reference videos: Links with timestamps"
},
"brand_files": {
"type": "string",
"maxLength": 2000,
"description": "Brand files: Lower-thirds, intro, outro, logo"
},
"short_clips": {
"type": "string",
"maxLength": 2000,
"description": "Short clips: Number, ratio and length"
},
"fonts_colors": {
"type": "string",
"maxLength": 2000,
"description": "Fonts and colors: Font names and HEX codes"
},
"publish_date": {
"type": "string",
"maxLength": 2000,
"description": "Publish date: Date and time, not just a day"
},
"length_target": {
"type": "string",
"maxLength": 2000,
"description": "Length target: A target with a hard floor and ceiling"
},
"response_time": {
"type": "string",
"maxLength": 2000,
"description": "Response time: How fast you reply to a cut"
},
"rough_cut_due": {
"type": "string",
"maxLength": 2000,
"description": "Rough cut due: Date and time"
},
"working_title": {
"type": "string",
"maxLength": 2000,
"description": "Working title: The title you plan to publish, or the top two options"
},
"revision_rounds": {
"type": "string",
"maxLength": 2000,
"description": "Revision rounds: How many, in writing"
},
"footage_location": {
"type": "string",
"maxLength": 2000,
"description": "Footage location: The folder link and what's in it"
},
"thumbnail_frames": {
"type": "string",
"maxLength": 2000,
"description": "Thumbnail frames: Frames to export as stills"
}
}
}