Find video editing techniques by the result you want, with prompts, sound effects and templates.
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.
Get one sound effect with its download links and checksum. github_download_url is the same file on GitHub, for sandboxes that cannot reach download_url. guide says where to put it on the frame and at what level, read from this sound's own waveform and loudness.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http editatlas https://edit.trysometh.ing/mcp
Get one sound effect with its download links and checksum. github_download_url is the same file on GitHub, for sandboxes that cannot reach download_url. guide says where to put it on the frame and at what level, read from this sound's own waveform and loudness.
| Argument | Type | Description |
|---|---|---|
| id* | string |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"maxLength": 256,
"minLength": 1
}
},
"additionalProperties": false
}List the EditAtlas skills, or get one. A skill is a folder of instructions and scripts that runs a whole step on the user's machine, for example sound-design places library sounds on a finished video and checks sync and loudness, and transcribe makes a checked word-level transcript with Whisper for captions and cuts. Without name you get every skill, or only those for one library. With name you get its install steps for Claude Code, Claude apps and other agents, links pinned to the released version, and, with include_instructions, its SKILL.md text.
| Argument | Type | Description |
|---|---|---|
| name | string | Skill name from the list, such as sound-design |
| library | string | Only skills that use this EditAtlas library |
| include_instructions | boolean | Also return the SKILL.md body. Use it when you cannot install the skill and will follow it by hand |
{
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 64,
"minLength": 1,
"description": "Skill name from the list, such as sound-design"
},
"library": {
"enum": [
"techniques",
"templates",
"styles",
"sfx"
],
"type": "string",
"description": "Only skills that use this EditAtlas library"
},
"include_instructions": {
"type": "boolean",
"description": "Also return the SKILL.md body. Use it when you cannot install the skill and will follow it by hand"
}
},
"additionalProperties": false
}Read a versioned creative style and its compatibility constraints. User instructions and template hard constraints take precedence.
| Argument | Type | Description |
|---|---|---|
| id* | string | |
| version | string |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"maxLength": 128,
"minLength": 1
},
"version": {
"type": "string",
"maxLength": 32,
"minLength": 5
}
},
"additionalProperties": false
}Get the full prompt for one technique and its parameters. has_tested_ffmpeg is true when the prompt's FFmpeg command has been run by EditAtlas, and false when it has no command or the command wasn't run. guide, when present, says what the technique needs first, such as a word-level transcript.
| Argument | Type | Description |
|---|---|---|
| slug* | string |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"maxLength": 256,
"minLength": 1
}
},
"additionalProperties": false
}Read a versioned editing template with inputs, conditional beats, referenced techniques and acceptance checks. This is reference data, not an executed edit. guide, when present, says how to get an input such as a verified transcript.
| Argument | Type | Description |
|---|---|---|
| id* | string | |
| version | string |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"maxLength": 128,
"minLength": 1
},
"version": {
"type": "string",
"maxLength": 32,
"minLength": 5
}
},
"additionalProperties": false
}Resolve a template and an optional compatible style, with deduplicated techniques and public SFX. Compact by default; full includes technique prompts. Bounded to 40 dependencies and 96 KiB; sound queries remain suggestions.
| Argument | Type | Description |
|---|---|---|
| id* | string | |
| detail | string | |
| version | string | |
| style_id | string | |
| style_version | string |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"maxLength": 128,
"minLength": 1
},
"detail": {
"enum": [
"compact",
"full"
],
"type": "string"
},
"version": {
"type": "string",
"maxLength": 32,
"minLength": 5
},
"style_id": {
"type": "string",
"maxLength": 128,
"minLength": 1
},
"style_version": {
"type": "string",
"maxLength": 32,
"minLength": 5
}
},
"additionalProperties": false
}Get how to run a whole edit, from inspecting files to delivery. Pass video_type for the structure, pacing, first techniques and the templates, music or stock media worth searching for that kind of video. If a job is two kinds at once, call it again for the second kind with include_workflow set to false. guide lists the next calls for that kind of video, including skills that do a whole step.
| Argument | Type | Description |
|---|---|---|
| video_type | string | |
| include_workflow | boolean | Set to false if you already have the workflow text |
{
"type": "object",
"properties": {
"video_type": {
"enum": [
"talking_head",
"short_vertical",
"product_ad",
"explainer",
"tutorial",
"vlog_travel",
"podcast_clip",
"story_short_film",
"event_recap"
],
"type": "string",
"maxLength": 256,
"minLength": 1
},
"include_workflow": {
"type": "boolean",
"description": "Set to false if you already have the workflow text"
}
},
"additionalProperties": false
}Find reusable creative constraints across typography, color, rhythm, motion and sound. Styles do not include assets or rendering services.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| query | string | |
| offset | integer |
{
"type": "object",
"required": [],
"properties": {
"limit": {
"type": "integer",
"maximum": 20,
"minimum": 1
},
"query": {
"type": "string",
"maxLength": 2048
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
}
},
"additionalProperties": false
}Search background music tracks. Write query in English, such as "calm piano" or "upbeat corporate"; Vietnamese and other languages give poor matches, so translate first. genre narrows the search, for example "intro outro", and can be used without a query. duration is one of the length ranges 0-30, 30-120, 120-240 or 240-480 seconds; pick the one that holds the length the edit needs. Each result has a direct mp3_url, the author, duration_seconds and two flags from the source: has_youtube_content_id (a YouTube upload may get a Content ID claim; tell the user) and is_ai_generated. 20 results per page; raise page for more.
| Argument | Type | Description |
|---|---|---|
| page | integer | |
| genre | string | Optional genre, such as intro outro |
| query | string | English words for the mood, style or use |
| duration | string | Length range in seconds: 0-30, 30-120, 120-240 or 240-480 |
{
"type": "object",
"properties": {
"page": {
"type": "integer",
"maximum": 100,
"minimum": 1
},
"genre": {
"type": "string",
"maxLength": 64,
"description": "Optional genre, such as intro outro"
},
"query": {
"type": "string",
"maxLength": 200,
"description": "English words for the mood, style or use"
},
"duration": {
"enum": [
"0-30",
"30-120",
"120-240",
"240-480"
],
"type": "string",
"description": "Length range in seconds: 0-30, 30-120, 120-240 or 240-480"
}
},
"additionalProperties": false
}Search stock photos on Pexels (default) or Pixabay. Write query in English, such as "coffee shop" or "city night"; translate other languages first. orientation is all, landscape, portrait or square; Pixabay photos take no square. Each result has width, height, a full-size image_url, a smaller preview_url, the author and credit_url. Tell the user who made what you use. Page with pages from the answer: Pixabay drops photos of the wrong shape, so a page can hold fewer than per_page.
| Argument | Type | Description |
|---|---|---|
| page | integer | |
| query* | string | English words for the subject or scene |
| source | string | pexels (default) or pixabay |
| per_page | integer | Results per page, 12 by default |
| orientation | string | Frame shape; all by default |
{
"type": "object",
"required": [
"query"
],
"properties": {
"page": {
"type": "integer",
"maximum": 480,
"minimum": 1
},
"query": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "English words for the subject or scene"
},
"source": {
"enum": [
"pexels",
"pixabay"
],
"type": "string",
"description": "pexels (default) or pixabay"
},
"per_page": {
"type": "integer",
"maximum": 24,
"minimum": 1,
"description": "Results per page, 12 by default"
},
"orientation": {
"enum": [
"all",
"landscape",
"portrait",
"square"
],
"type": "string",
"description": "Frame shape; all by default"
}
},
"additionalProperties": false
}Search sound effects in English or Vietnamese by source and measured traits, such as sharp attack, long tail or wide stereo. Each result has a description, a preview and download links. Use get_sfx for the checksum and file details. For a hit under speech, pass duration tick or short. lufs is null when a sound is too short to measure. guide says how to choose among these results and what to call next.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| query* | string | |
| offset | integer | Skip this many results to see the next page |
| category | string | |
| duration | string | tick is under 0.5 s, short 0.5 to 2 s, medium 2 to 5 s, long 5 s and over |
{
"type": "object",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 20,
"minimum": 1
},
"query": {
"type": "string",
"maxLength": 2048
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Skip this many results to see the next page"
},
"category": {
"enum": [
"ambience",
"bell",
"cartoon",
"foley",
"glitch",
"impact",
"magic",
"music",
"nature",
"riser",
"scifi",
"ui",
"voice",
"whoosh"
],
"type": "string",
"maxLength": 256,
"minLength": 1
},
"duration": {
"enum": [
"long",
"medium",
"short",
"tick"
],
"type": "string",
"maxLength": 256,
"minLength": 1,
"description": "tick is under 0.5 s, short 0.5 to 2 s, medium 2 to 5 s, long 5 s and over"
}
},
"additionalProperties": false
}Search editing techniques by the result you want or by name. Returns about 10 candidates with short descriptions, for you to choose from. Words are matched all together first, then any of them.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| query* | string | What the result should look or sound like, or the name of a technique |
| offset | integer | Skip this many results to see the next page |
| category | string |
{
"type": "object",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 20,
"minimum": 1
},
"query": {
"type": "string",
"maxLength": 2048,
"description": "What the result should look or sound like, or the name of a technique"
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Skip this many results to see the next page"
},
"category": {
"enum": [
"audio",
"broll",
"captions",
"color",
"delivery",
"editing",
"footage",
"motion",
"story",
"transition",
"vfx"
],
"type": "string",
"maxLength": 256,
"minLength": 1
}
},
"additionalProperties": false
}Find composed editing blueprints by intent. Returns compact constraints; use get_template or get_template_bundle after choosing. Your agent performs all editing locally.
| Argument | Type | Description |
|---|---|---|
| tag | string | |
| limit | integer | |
| query* | string | |
| offset | integer | |
| category | string | |
| technique | string | |
| difficulty | string | |
| duration_s | integer | |
| aspect_ratio | string | |
| template_type | string |
Search stock video clips (B-roll) on Pexels (default) or Pixabay. Write query in English, such as "pouring coffee" or "drone city"; translate other languages first. orientation is all, landscape, portrait (for 9:16) or square; Pixabay videos cannot be filtered by orientation. Each result has width, height, duration_seconds, an mp4_url at the largest size, video_files at every size (pick the one that matches the edit), a thumbnail, the author and credit_url. Page with pages from the answer.
| Argument | Type | Description |
|---|---|---|
| page | integer | |
| query* | string | English words for the shot or scene |
| source | string | pexels (default) or pixabay |
| per_page | integer | Results per page, 12 by default |
| orientation | string | Frame shape; all by default |
{
"type": "object",
"required": [
"query"
],
"properties": {
"page": {
"type": "integer",
"maximum": 480,
"minimum": 1
},
"query": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "English words for the shot or scene"
},
"source": {
"enum": [
"pexels",
"pixabay"
],
"type": "string",
"description": "pexels (default) or pixabay"
},
"per_page": {
"type": "integer",
"maximum": 24,
"minimum": 1,
"description": "Results per page, 12 by default"
},
"orientation": {
"enum": [
"all",
"landscape",
"portrait",
"square"
],
"type": "string",
"description": "Frame shape; all by default"
}
},
"additionalProperties": false
}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 8, 2026.
{
"type": "object",
"required": [
"query"
],
"properties": {
"tag": {
"type": "string",
"maxLength": 128,
"minLength": 1
},
"limit": {
"type": "integer",
"maximum": 20,
"minimum": 1
},
"query": {
"type": "string",
"maxLength": 2048
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
},
"category": {
"enum": [
"social",
"dialogue",
"product",
"motion",
"rhythm",
"cinematic",
"audio"
],
"type": "string",
"maxLength": 128,
"minLength": 1
},
"technique": {
"type": "string",
"maxLength": 128,
"minLength": 1
},
"difficulty": {
"enum": [
"beginner",
"intermediate",
"advanced"
],
"type": "string",
"maxLength": 128,
"minLength": 1
},
"duration_s": {
"type": "integer",
"maximum": 86400,
"minimum": 1
},
"aspect_ratio": {
"enum": [
"9:16",
"16:9",
"1:1",
"4:5"
],
"type": "string",
"maxLength": 128,
"minLength": 1
},
"template_type": {
"enum": [
"video_structure",
"workflow",
"motion_pack",
"audio_chain"
],
"type": "string",
"maxLength": 128,
"minLength": 1
}
},
"additionalProperties": false
}