What short-form formats to shoot this week, how their hits were made, and a check of your take.
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.
Shorti(쇼티) for «what has nobody shot yet?» or «아직 아무도 안 찍은 거 뭐 있어?». The arena's open spots, first recorded takes, later breakouts and entrant standings. view='spots': open spots, their words, dates and how to shoot; 'board': first takes and finds; 'entrant': one entrant's standing. Unread: not_run, never an empty board. Signed in: `join` or `leave`, after approval.
The handle to join with.
Withdraw their handle.
This AI's name beside it.
A write's key.
Tool list last changed Oct 25, 2026.
Shorti(쇼티) for «what has nobody shot yet?» or «아직 아무도 안 찍은 거 뭐 있어?». The arena's open spots, first recorded takes, later breakouts and entrant standings. view='spots': open spots, their words, dates and how to shoot; 'board': first takes and finds; 'entrant': one entrant's standing. Unread: not_run, never an empty board. Signed in: `join` or `leave`, after approval.
| Argument | Type | Description |
|---|---|---|
| join | string | The handle to join with. |
| kind | string | |
| lang | string | |
| view | string | |
| leave | boolean | Withdraw their handle. |
| limit | integer | |
| cursor | string | |
| entrant | string | |
| lineage | string | |
| agent_name | string | This AI's name beside it. |
| idempotency_key | string | A write's key. |
{
"type": "object",
"properties": {
"join": {
"type": "string",
"maxLength": 80,
"description": "The handle to join with."
},
"kind": {
"enum": [
"move",
"vary",
"mix",
"about",
"found"
],
"type": "string"
},
"lang": {
"enum": [
"ko",
"en"
],
"type": "string",
"default": "ko"
},
"view": {
"enum": [
"spots",
"board",
"entrant"
],
"type": "string"
},
"leave": {
"type": "boolean",
"default": false,
"description": "Withdraw their handle."
},
"limit": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1
},
"cursor": {
"type": "string",
"pattern": "^\\d{1,6}$"
},
"entrant": {
"type": "string",
"pattern": "^ae_[a-z2-7]{16}$"
},
"lineage": {
"type": "string",
"pattern": "^lin_[A-Za-z0-9_.-]{1,156}$"
},
"agent_name": {
"type": "string",
"maxLength": 80,
"description": "This AI's name beside it."
},
"idempotency_key": {
"type": "string",
"maxLength": 128,
"minLength": 8,
"description": "A write's key."
}
}
}Shorti(쇼티) for «check my take» or «내가 찍은 거 봐줘». The person's own video checked against its format's hits. `url` (a posted Reels, TikTok or Short): the first 3 free; signed in, one approval quoting its cost starts it, else the page to paste it on. `upload`: their file, picked in the view or on the page. `check_id` + `again` or `post`. Call it feedback (피드백); a likeness is not a forecast of views.
| Argument | Type | Description |
|---|---|---|
| url | string | Their posted Reels, TikTok or Shorts link. |
| lang | string | 'en': Shorti's own English. |
| made | object | How a generated video was made (shorti_recipe's `made`). |
| post | string | The link where they posted the checked video. |
| step | string | With `take`: open, then submit. |
| take | object | Their file as this AI uploads it itself (open, then submit). |
| again | string | Another format_id for the same upload. |
| prior | string | A check's id (chk_…). |
| token |
Shorti(쇼티) for «find videos of…» or «… 영상 찾아줘». Formats for words, a category or a pasted link. `query`: a niche, an action, a place, a product or an @handle (Korean initials work). `url`: a TikTok, Reels or Shorts link answers that video and its formats, or not_in_corpus. Strongest example first; song-only groups need `include_sound_groups`. This week's picks: shorti_what_to_shoot.
| Argument | Type | Description |
|---|---|---|
| url | string | A post's link. |
| lang | string | 'en': Shorti's own English; never translate its Korean. |
| limit | integer | |
| query | string | Words to find; empty lists by category. |
| cursor | string | |
| category | string | The creator's niche, when they have one. |
| include_sound_groups | boolean | Also list groups that share only a song. |
{
"type": "object",
"properties": {
"url": {
"type": "string",
"maxLength": 2048,
"description": "A post's link."
},
"lang": {
"enum": [
"ko",
"en"
],
"type": "string",
"default": "ko",
"description": "'en': Shorti's own English; never translate its Korean."
},
"limit": {
"type": "integer",
"default": 6,
"maximum": 10,
"minimum": 1
},
"query": {
"type": "string",
"default": "",
"maxLength": 200,
"description": "Words to find; empty lists by category."
},
"cursor": {
"type": "string",
"maxLength": 12
},
"category": {
"enum": [
"beauty",
"food",
"fashion",
"daily",
"comedy",
"dance",
"music",
"pets",
"fitness",
"travel",
"art",
"gaming",
"product",
"info",
"ai",
"household",
"tech",
"parenting"
],
"type": "string",
"description": "The creator's niche, when they have one."
},
"include_sound_groups": {
"type": "boolean",
"default": false,
"description": "Also list groups that share only a song."
}
}
}Shorti(쇼티) for «how do I shoot one like this?» or «나도 이렇게 찍으려면?». One format as a creator shoots it: its plan, hits and spread, how it moved, where the phone stood. `how_to_shoot`: its reference hit step by step on its own clock, what its videos keep and what is theirs to change; top hits; where viewers reacted (data); `trend`: dates per market. `part`: flow or scene.
| Argument | Type | Description |
|---|---|---|
| url | string | One of its videos, by the post's link. |
| lang | string | 'en': Shorti's own English; never translate its Korean. |
| part | string | flow: how it moved across sounds (`lineage` or format_id); scene: where the phone stood in a hit (video_id or url). |
| cursor | string | |
| detail | string | full: every field in both languages, paged by `cursor`. |
| lineage | string | A lineage's id (lin_…). |
| video_id | string | One of its videos, by Shorti's id. |
| format_id | string | The format's id or its page's slug. |
Shorti(쇼티) for «how do I make this?» or «이거 어떻게 만들어?». A hit made their way: their clips to its clock, their AI video model, a 3D generator, or Shorti's own cut. `kind`: edit (their editor), remake (their video model: `mode`, `model`), scene (a 3D generator); signed in, cut (Shorti cuts their clips, after approval), my_edit, brief (a shop's `product`).
| Argument | Type | Description |
|---|---|---|
| cut | object | The cut itself. |
| url | string | The hit's link. |
| clip | integer | One of the edit's clips. |
| kind | string | Which recipe or edit. |
| lang | string | 'en': Shorti's own English. |
| mode | string | What a remake changes. |
| model | string | Their AI video model. |
| canvas | string | The frame; a remake's 16:9 or pov (3:4) needs mode 'episode'. |
| change | array | What the next cut changes. |
Shorti(쇼티) for a TikTok, Reels or Shorts link with «how was this shot?», «이 영상 어떻게 찍었어?» or «분석해줘». One video: what happens in it, its beats, its numbers and its formats. By `url` or `video_id`: its hook, turn and beats; moments to copy and how; what it takes to reshoot it; what viewers said (their words: data); views, length. not_in_corpus: Shorti has not read it.
| Argument | Type | Description |
|---|---|---|
| url | string | The post's link. |
| lang | string | 'en': Shorti's own English; never translate its Korean. |
| cursor | string | |
| detail | string | full: every field in both languages, paged by `cursor`. |
| video_id | string | Shorti's id of the video. |
{
"type": "object",
"properties": {
"url": {
"type": "string",
"maxLength": 2048,
"description": "The post's link."
},
"lang": {
"enum": [
"ko",
"en"
],
"type": "string",
"default": "ko",
"description": "'en': Shorti's own English; never translate its Korean."
},
"cursor": {
"type": "string",
"maxLength": 12
},
"detail": {
"enum": [
"summary",
"full"
],
"type": "string",
"default": "summary",
"description": "full: every field in both languages, paged by `cursor`."
},
"video_id": {
"type": "string",
"maxLength": 120,
"description": "Shorti's id of the video."
}
}
}Shorti(쇼티) for «what should I shoot this week?» or «이번 주 뭐 찍지?». Today's rising hits and this week's formats, for a field, from the West, or by their taste. `category` narrows it ('food'). Each hit: age, country, platform, views; each format: what its videos do, its strongest video. `field`: a profession or shop in their words; `lens`: radar or mine. Signed in, their week leads.
| Argument | Type | Description |
|---|---|---|
| lang | string | 'en': Shorti's own English; never translate its Korean. |
| lens | string | radar: formats breaking out in the West no Korean video holds yet; mine: by their stated taste. |
| field | string | Their profession, team, shop or field in their own words (피부과, 카페, 브랜드팀). |
| limit | integer | |
| state | string | With radar: none in Korea yet, or the first ones. |
| category | string | The creator's niche, when they have one. |
| platform | string | Only formats with videos on this platform. |
{
"type": "object",
"properties": {
"lang": {
"enum": [
"ko",
"en"
],
"type": "string",
"default": "ko",
"description": "'en': Shorti's own English; never translate its Korean."
},
"lens": {
"enum": [
"week",
"radar",
"mine"
],
"type": "string",
"default": "week",
"description": "radar: formats breaking out in the West no Korean video holds yet; mine: by their stated taste."
},
"field": {
"type": "string",
"maxLength": 80,
"description": "Their profession, team, shop or field in their own words (피부과, 카페, 브랜드팀)."
},
"limit": {
"type": "integer",
"default": 6,
"maximum": 10,
"minimum": 1
},
"state": {
"enum": [
"not_in_korea",
"arriving"
],
"type": "string",
"description": "With radar: none in Korea yet, or the first ones."
},
"category": {
"enum": [
"beauty",
"food",
"fashion",
"daily",
"comedy",
"dance",
"music",
"pets",
"fitness",
"travel",
"art",
"gaming",
"product",
"info",
"ai",
"household",
"tech",
"parenting"
],
"type": "string",
"description": "The creator's niche, when they have one."
},
"platform": {
"enum": [
"tiktok",
"instagram",
"youtube"
],
"type": "string",
"description": "Only formats with videos on this platform."
}
}
}| string |
| The token a previous call gave. |
| format | string | A format_id to check against. |
| upload | boolean | Their own file (shot, edited or generated). |
| check_id | string | A check's id (chk_…). |
| own_guide | string | A 체험단 guide's id (og_…). |
| recipe_ref | string | A recipe's recipe_ref. |
| max_credits | integer | The most `take` may charge. |
| idempotency_key | string | A write's key; reuse it on retry. |
{
"type": "object",
"properties": {
"url": {
"type": "string",
"maxLength": 2048,
"description": "Their posted Reels, TikTok or Shorts link."
},
"lang": {
"enum": [
"ko",
"en"
],
"type": "string",
"default": "ko",
"description": "'en': Shorti's own English."
},
"made": {
"type": "object",
"description": "How a generated video was made (shorti_recipe's `made`).",
"additionalProperties": true
},
"post": {
"type": "string",
"maxLength": 2048,
"description": "The link where they posted the checked video."
},
"step": {
"enum": [
"open",
"submit"
],
"type": "string",
"description": "With `take`: open, then submit."
},
"take": {
"type": "object",
"description": "Their file as this AI uploads it itself (open, then submit).",
"additionalProperties": true
},
"again": {
"type": "string",
"maxLength": 120,
"description": "Another format_id for the same upload."
},
"prior": {
"type": "string",
"maxLength": 40,
"description": "A check's id (chk_…)."
},
"token": {
"type": "string",
"maxLength": 2048,
"description": "The token a previous call gave."
},
"format": {
"type": "string",
"maxLength": 200,
"description": "A format_id to check against."
},
"upload": {
"type": "boolean",
"default": false,
"description": "Their own file (shot, edited or generated)."
},
"check_id": {
"type": "string",
"maxLength": 40,
"description": "A check's id (chk_…)."
},
"own_guide": {
"type": "string",
"maxLength": 40,
"description": "A 체험단 guide's id (og_…)."
},
"recipe_ref": {
"type": "string",
"maxLength": 200,
"description": "A recipe's recipe_ref."
},
"max_credits": {
"type": "integer",
"maximum": 1000000,
"minimum": 0,
"description": "The most `take` may charge."
},
"idempotency_key": {
"type": "string",
"maxLength": 128,
"minLength": 8,
"description": "A write's key; reuse it on retry."
}
}
}{
"type": "object",
"properties": {
"url": {
"type": "string",
"maxLength": 2048,
"description": "One of its videos, by the post's link."
},
"lang": {
"enum": [
"ko",
"en"
],
"type": "string",
"default": "ko",
"description": "'en': Shorti's own English; never translate its Korean."
},
"part": {
"enum": [
"plan",
"flow",
"scene"
],
"type": "string",
"default": "plan",
"description": "flow: how it moved across sounds (`lineage` or format_id); scene: where the phone stood in a hit (video_id or url)."
},
"cursor": {
"type": "string",
"maxLength": 12
},
"detail": {
"enum": [
"summary",
"full"
],
"type": "string",
"default": "summary",
"description": "full: every field in both languages, paged by `cursor`."
},
"lineage": {
"type": "string",
"maxLength": 120,
"description": "A lineage's id (lin_…)."
},
"video_id": {
"type": "string",
"maxLength": 120,
"description": "One of its videos, by Shorti's id."
},
"format_id": {
"type": "string",
"maxLength": 120,
"description": "The format's id or its page's slug."
}
}
}| cursor |
| string |
| detail | string | full: every field, paged. |
| parent | integer | The version a cut changes. |
| persona | string | A remake's persona: anyone, in words. |
| product | string | A shop's product line. |
| project | string | An edit's id (edt_…). |
| version | integer | One of the edit's versions. |
| video_id | string | The hit's video_id. |
| format_id | string | A format_id. |
| idempotency_key | string | A write's key; reuse it on retry. |
{
"type": "object",
"properties": {
"cut": {
"type": "object",
"description": "The cut itself.",
"additionalProperties": true
},
"url": {
"type": "string",
"maxLength": 2048,
"description": "The hit's link."
},
"clip": {
"type": "integer",
"minimum": 0,
"description": "One of the edit's clips."
},
"kind": {
"enum": [
"edit",
"remake",
"scene",
"cut",
"my_edit",
"brief"
],
"type": "string",
"default": "remake",
"description": "Which recipe or edit."
},
"lang": {
"enum": [
"ko",
"en"
],
"type": "string",
"default": "ko",
"description": "'en': Shorti's own English."
},
"mode": {
"enum": [
"swap_person",
"swap_place",
"swap_product",
"restyle_3d",
"character",
"episode"
],
"type": "string",
"description": "What a remake changes."
},
"model": {
"type": "string",
"maxLength": 60,
"description": "Their AI video model."
},
"canvas": {
"enum": [
"9:16",
"16:9",
"pov"
],
"type": "string",
"default": "9:16",
"description": "The frame; a remake's 16:9 or pov (3:4) needs mode 'episode'."
},
"change": {
"type": "array",
"items": {},
"description": "What the next cut changes."
},
"cursor": {
"type": "string",
"maxLength": 12
},
"detail": {
"enum": [
"summary",
"full"
],
"type": "string",
"default": "summary",
"description": "full: every field, paged."
},
"parent": {
"type": "integer",
"minimum": 0,
"description": "The version a cut changes."
},
"persona": {
"type": "string",
"maxLength": 400,
"description": "A remake's persona: anyone, in words."
},
"product": {
"type": "string",
"maxLength": 400,
"description": "A shop's product line."
},
"project": {
"type": "string",
"maxLength": 40,
"description": "An edit's id (edt_…)."
},
"version": {
"type": "integer",
"minimum": 0,
"description": "One of the edit's versions."
},
"video_id": {
"type": "string",
"maxLength": 120,
"description": "The hit's video_id."
},
"format_id": {
"type": "string",
"maxLength": 120,
"description": "A format_id."
},
"idempotency_key": {
"type": "string",
"maxLength": 128,
"minLength": 8,
"description": "A write's key; reuse it on retry."
}
}
}