Shorti
REMOTE · SHORTI.AI · SCANNED OCT 4
What short-form formats to shoot this week, how their hits were made, and a check of your take.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security83
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one. See how to fix → View diagnostics → Partial
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC is configured correctly; the domain's records validate against the full chain to the root. View diagnostics → Pass
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability75
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 5293 tokens (~240/item across 22 items; 15 tools + 7 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management20
- Stability observed for 6 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage95
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 81% of tool parameters carry a description.Partial
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 15 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 17 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
- Supports UI / widget rendering.Pass
How do I install the Shorti MCP server?
Shorti is a hosted endpoint at https://shorti.ai/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · shorti.ai
claude mcp add --transport http ai-shorti-shorti 'https://shorti.ai/mcp'
{
"mcpServers": {
"ai-shorti-shorti": {
"url": "https://shorti.ai/mcp"
}
}
} {
"servers": {
"ai-shorti-shorti": {
"type": "http",
"url": "https://shorti.ai/mcp"
}
}
} [mcp_servers.ai-shorti-shorti] url = "https://shorti.ai/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"ai-shorti-shorti": {
"type": "remote",
"url": "https://shorti.ai/mcp",
"enabled": true
}
}
} openclaw mcp add ai-shorti-shorti --url 'https://shorti.ai/mcp' --transport streamable-http
mcp_servers:
ai-shorti-shorti:
url: "https://shorti.ai/mcp" {
"McpServers": {
"ai-shorti-shorti": {
"Transport": "http",
"Url": "https://shorti.ai/mcp"
}
}
} assistant mcp add ai-shorti-shorti -t streamable-http -u 'https://shorti.ai/mcp'
{
"mcpServers": {
"ai-shorti-shorti": {
"type": "http",
"url": "https://shorti.ai/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 4 Oct 26 0
- The server rewrote its instructions, which are the text every model session reads security
- Tool coverage: 89% → 81% ▼ functional
- Schema quality: 281 → 240 ▲ functional
- New resource “approve” functional
- New resource “check” functional
- New resource “take” functional
- Server version: e71525b90ef0119f105cdb8c18aaf749d2084a46 → d3c50401d450fdce0f0769027d17bf3f8ead5285 functional
- New tool “shorti_arena” functional
- “shorti_find” reworded the description of “category” cosmetic
- “shorti_trend_radar” reworded the description of “category” cosmetic
- “shorti_what_to_shoot” reworded the description of “category” cosmetic
- 3 Oct 26 +1
- The server rewrote its instructions, which are the text every model session reads security
- Tool “shorti_edit_recipe” rewrote its description, which is the text the model reads security
- Tool “shorti_format” rewrote its description, which is the text the model reads security
- Tool “shorti_video” rewrote its description, which is the text the model reads security
- Schema quality: 4350 → 5067 ▼ functional
- New resource “coach” functional
- New resource “flow” functional
- Server version: 01e18498ef2e09d1c2ae8b2e2938ff25c8cf5829 → e71525b90ef0119f105cdb8c18aaf749d2084a46 functional
- New tool “shorti_flow” functional
- 2 Oct 26 0
- The server rewrote its instructions, which are the text every model session reads security
- Tool “shorti_campaign_board” rewrote its description, which is the text the model reads security
- Tool “shorti_campaign_draft” rewrote its description, which is the text the model reads security
- Tool “shorti_campaigns_for_me” rewrote its description, which is the text the model reads security
- Tool “shorti_check_link” rewrote its description, which is the text the model reads security
- Tool “shorti_format” rewrote its description, which is the text the model reads security
- Tool “shorti_my_field” rewrote its description, which is the text the model reads security
- Tool “shorti_remake_recipe” rewrote its description, which is the text the model reads security
- Tool “shorti_video” rewrote its description, which is the text the model reads security
- Schema quality: 3838 → 4350 ▼ functional
- Server version: d73dd180b23275cc85ee3fcb0a43633b363b2d32 → 01e18498ef2e09d1c2ae8b2e2938ff25c8cf5829 functional
- New tool “shorti_scene_kit” functional
- “shorti_campaign_draft” added an optional parameter “visit” cosmetic
- “shorti_format” added an optional parameter “detail” cosmetic
- “shorti_remake_recipe” added an optional parameter “detail” cosmetic
- “shorti_my_field” reworded the description of “field” cosmetic
- “shorti_video” reworded the description of “detail” cosmetic
- 1 Oct 26 0
- The server rewrote its instructions, which are the text every model session reads security
- Server version: 57f8c123ad054b6fb281f7af320e2a82cac14e5f → d73dd180b23275cc85ee3fcb0a43633b363b2d32 functional
- 30 Sept 26 +1
- Server version: 26fbcc45f69a7b563e58707c17fb3a72f85734fc → 57f8c123ad054b6fb281f7af320e2a82cac14e5f functional
- 29 Sept 26 0
- The server rewrote its instructions, which are the text every model session reads security
- Tool “shorti_what_to_shoot” rewrote its description, which is the text the model reads security
- Schema quality: 2740 → 3758 ▼ functional
- Stability: unverified → 0.03 ▲ functional
- MCP protocol: Implements a current MCP spec version (2026-07-28). functional
- New prompt “before_it_reaches_korea” functional
- New prompt “my_field_this_week” functional
- New prompt “remake_a_hit_with_ai” functional
- MCP protocol version: 2025-11-25 → 2026-07-28 functional
- Server version: d1491abd4ec9c292f46362dd323381dcac8f4b4f → 26fbcc45f69a7b563e58707c17fb3a72f85734fc functional
- New tool “shorti_my_field” functional
- New tool “shorti_remake_recipe” functional
- New tool “shorti_trend_radar” functional
- Tool “shorti_campaign_board” changed its title: Shorti Campaign Board cosmetic
- Tool “shorti_campaign_draft” changed its title: Shorti Campaign Draft cosmetic
- Tool “shorti_campaigns_for_me” changed its title: Shorti Campaigns For Me cosmetic
- 28 Sept 26 75
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 4 Oct 2026 · Probed https://shorti.ai/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=shorti.ai | CN=YR1,O=Let's Encrypt,C=US | 17 Sept 2026 | 16 Dec 2026 | RSA 2048 | SHA256-RSA | 6a7affb23bd8c80e0aefa10390d675cbc15 |
| SANs: shorti.ai | ||||||
| CN=YR1,O=Let's Encrypt,C=US (CA) | CN=Root YR,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | RSA 2048 | SHA256-RSA | a20253f15f2691c05dc1ce13b9bcca4e |
| CN=Root YR,O=ISRG,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | RSA 4096 | SHA256-RSA | f24b6d17f9d9ad7cb1c9fea78782699f |
Background: What to check on a remote MCP endpoint →
DNSSEC secure
Validation of shorti.ai. — Secure
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| ai. | present | 3799 | 8 | Verified |
| shorti.ai. | present | 7692 | 13 | Verified |
| shorti.ai. | Verified address RRset verified with the apex keys |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
| Header | Value |
|---|---|
| strict-transport-security | max-age=63072000 |
| content-security-policy | frame-ancestors 'self' |
| x-content-type-options | nosniff |
| x-frame-options | SAMEORIGIN |
| referrer-policy | strict-origin-when-cross-origin |
| permissions-policy | camera=(), microphone=(), geolocation=() |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://shorti.ai/mcp | Verified | 200 | |
| http (plaintext) | http://shorti.ai/mcp | HTTPS enforced | 308 | https://shorti.ai/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
shorti_arena Read Shorti's arena ~131
The arena's open spots, first recorded takes, later breakouts and entrant standings. Read spots with their words, dates and how to shoot; the board of first recorded takes and finds; or one currently opted-in entrant's standing. Filter kind by move, vary, mix, about or found. Counts keep their denominators before the first-50 keyless cap. Names are read live. Missing or unread publication answers not_run, never an empty board.
| Name | Type | Req | Description |
|---|---|---|---|
| entrant | – | – | – |
| kind | – | – | – |
| lang | string | – | – |
| lineage | – | – | – |
| view | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
shorti_campaign_board Shorti Campaign Board ~33
Legacy campaign board reads are unavailable under C39. Open the owner-authenticated campaign page.
| Name | Type | Req | Description |
|---|---|---|---|
| token | – | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
shorti_campaign_draft Shorti Campaign Draft ~162
Requires the authenticated /mcp/me connection. Start a campaign from a product or store-visit brief. draft.v1 ranks observed league product presence, product nouns, place/screen evidence, category, cached Gemini Embedding 2 text cosine and keywords. Hits precede members and slotted precedes thin. It abstains when evidence does not fit and never pads. Optional visit carries place_type, area and radius_km; area/radius are campaign constraints, not measured reference distances. index_size is the whole index, eligible_candidates are fits. compose opens the signed-in composer with up to three formats. No model call or campaign write in this request.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | – |
| product | string | yes | – |
| visit | – | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
shorti_campaigns_for_me Shorti Campaigns For Me ~41
Read published campaign.offer.v1 summaries. This reads no personal matches or private brief. Legacy handoff tokens are refused.
| Name | Type | Req | Description |
|---|---|---|---|
| token | – | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
shorti_check_link Check a take ~519
A check link for a person's own video, and the summary they send back. No argument, or `format` (a format_id): a link at once — `check_link` (`check_link_en` for the English page), `token`, `expires_at` (24 h) and `says` — that the person opens on their phone to upload their own video and check it against that format. Nothing is read of theirs, written or queued, and you never see their video. Then call again with the `token` alone: `waiting` (ask again after `poll_after_s`) until the person taps «Send this result to the AI chat» («이 결과를 AI 대화에 보내기» on the Korean page) on their result, then `shared` with the summary they sent: fidelity with its interval and how many axes were measured (`measured` of `of`, `weighted`) — its value stays null with reason `not_validated` until its registered validity look passes, with `followed` (k of n directions repeated across formats that the video follows) in its place — up to three fixes at their moment (`at_s`, `what_ko`, `how_ko`, the hit video's public still; where a fix was drawn, its `layers`: the hits' still at `still_url`, its shapes and zone, the take's own shapes, each drawn value's evidence — hosts that draw show them in the check's view), what they broke and kept, «기본기» where the check measured it (`craft`: `kept` of `of` craft ranges the field's breakouts keep, and what it misses; never a forecast of views), and their result's link (`link`, `link_en`); each line in English beside the Korean where Shorti wrote one (`what_en`, `how_en`, `broken_en`, `kept_en`). A token this door did not sign, or one past its 24 h with nothing sent, is refused as `handoff_invalid`; a summary sent after the 24 h is still read. 증거가 붙은 관찰로 말하고, 원인은 검증된 것만. 닮은 정도는 조회수 예측이 아니다. — Speak in observations that carry their evidence, and name a cause only where one was verified; fidelity is not a forecast of views.
| Name | Type | Req | Description |
|---|---|---|---|
| format | – | – | A format_id to check against. |
| token | – | – | The token a previous call gave. |
Structured output declared, but exposes no named fields.
No examples provided.
shorti_edit_recipe Edit recipe ~501
A format's edit for an agent's editor: slots, cuts on the beat, captions, the check. `format_id` (from shorti_what_to_shoot, shorti_find or shorti_format): the format's compiled plan as the creator's editing agent takes it, for any editing tool or MCP it calls (trim, split, reorder, speed, captions, export). `recipe` is `shorti.edit_recipe.v1`: `canvas` (9:16) and `length_ms`; `slots` in order on the reference hit's own clock — what each `shows` (`ko` and `en`) and its `frame` where the plan carries one — one way the format was cut, not a timeline to copy to the frame; `anchors`, the reference's hook, rhythm, sound and framing values its format's members do not vary on, each with the `band` inside which a viewer cannot tell the edit from it (`never`: the reference never reaches it, e.g. one continuous take); `free`, what the format's own members vary on, with their usual span; `cuts`, each with the `rule` that binds it (`first_cut`, `drop`, `beat` with its `window_ms`, else `free`); `beats`, `captions`, `hook`, `keep`, `vary`, `sound` (its clock, a measured `drop`), `limits` (how much faster speech and motion may run before a viewer notices), `withheld` and `apply`, the steps to fit the creator's own pacing: cut where their action or phrase ends, hold the anchors, let the free cuts move. Beside it `formula`, where the format has a counted one: what its breakouts do alike (`cue`, `do` and `share` in `ko` and `en`, a breakout and its moment) and what its makers vary: the check the edit goes back to is held to these cues. Then send the edit to `check` (the person uploads and confirms on Shorti) or call shorti_check_link with `format` for a result this chat can read back — several edits can each be checked. What the hit did, never why it spread, and not a forecast of views.
| Name | Type | Req | Description |
|---|---|---|---|
| family_id | – | – | The same id, by its older name. |
| format_id | – | – | The format's id. |
Structured output declared, but exposes no named fields.
No examples provided.
shorti_find Find formats ~278
Formats for words, a category or a pasted link. Search by words — a niche, an action, a place, a creator's @handle (Korean initials work) — by `category`, or by a pasted TikTok, Instagram or YouTube link (the video and its formats, or `not_in_corpus` for a video Shorti has not read). Strongest example first; groups whose videos share only a song are left out unless `include_sound_groups`. With no match the answer lists the categories that have formats. For a brand's product line, shorti_campaign_draft finds the formats a product fits.
| Name | Type | Req | Description |
|---|---|---|---|
| category | – | – | The creator's niche, when they have one: beauty, food, fashion, daily, comedy, dance, music, pets, fitness, travel, art, gaming, product, info, ai, household, tech, parenting. |
| cursor | – | – | A previous answer's next_cursor. |
| include_sound_groups | boolean | – | Also list groups that share only a song. |
| lang | string | – | The creator's language. 'en' answers in the English Shorti wrote: never translate its Korean yourself. |
| limit | integer | – | How many formats a page. |
| query | string | – | Words to find; empty lists by category. |
| url | – | – | A post's link. |
| Name | Type | Req | Description |
|---|---|---|---|
| as_of | – | – | when the data was compiled |
| campaign | – | – | present while Shorti's own 체험단 is open: its mission and what it pays (the sign-ups a video brings), for each format's `links.mission` |
| field | – | – | the profession or team the words name: shorti_my_field answers its week |
| formats | – | – | – |
| hint | – | – | – |
| matches | – | – | how many formats matched |
| next_cursor | – | – | pass it back as `cursor` for the next page |
| none | – | – | – |
| note | – | – | – |
| product_fits | – | – | with no match on a format's own words: the formats whose videos carry a product like the words (a brand's line) |
| query | – | – | – |
| refusal | – | – | why nothing was answered, by name |
| state | – | – | 'not_in_corpus': Shorti has not read this video |
| video | – | – | the video a pasted link names |
No examples provided.
shorti_flow Flow across sounds ~335
One way of shooting across sounds: the trends it ran under, its milestones, its ladder of changes, the worlds it moved into, the ways of shooting it meets and the spots nobody has taken. By `id` (a lineage: `flow.lineage.id` from shorti_format, or the slug of its page) or by `format` (a format_id: the lineage its way of shooting belongs to, else that format's own flow). `line` is the way of shooting; `sources` the trends it ran under, in the order it reached them (`since`, and `format_id` for shorti_format); `rail` its milestones oldest first, each video with its rung of the ladder (`kind`), the world it moved into, the change's name (`label`), what it did (`twist`) and its link; `ladder` how many videos took each rung, in words; `worlds` where it moved; `meets` the ways of shooting it splits into or meets in one video (`id` for shorti_flow); `open` up to three changes nobody has made yet, each with how to shoot it, as advice. Counts are words, never numbers or shares. It says what videos did, never what will get views or why one spread.
| Name | Type | Req | Description |
|---|---|---|---|
| format | – | – | A format_id or its page's slug. |
| id | – | – | A lineage's id (lin_…) or its page's slug. |
| lang | string | – | The creator's language. 'en' answers in the English Shorti wrote: never translate its Korean yourself. |
| Name | Type | Req | Description |
|---|---|---|---|
| as_of | – | – | when the data was compiled |
| campaign | – | – | present while Shorti's own 체험단 is open: its mission and what it pays (the sign-ups a video brings), for each format's `links.mission` |
| flow_view | object | – | The site flow section in an MCP App. Words are in lang; the host locale changes chrome only. Clips are the 720p rendition or null. Unknown ladder counts keep key and count null and draw no count labe… |
| hint | – | – | – |
| id | – | – | the lineage answered (or the format, where its way of shooting has none) |
| ladder | – | – | – |
| line | – | – | the way of shooting |
| link | – | – | where the person sees this flow on Shorti |
| meets | – | – | the other ways of shooting it splits into or meets |
| note | – | – | – |
| now | – | – | – |
| open | – | – | up to three changes nobody has made yet |
| rail | – | – | its milestones, oldest first |
| refusal | – | – | why nothing was answered, by name |
| sources | – | – | the trends it ran under, in the order it reached them |
| worlds | – | – | – |
No examples provided.
shorti_format How to shoot a format ~442
One format as a creator shoots it: its plan, its hits, its spread. What its videos do; `how_to_shoot` — its reference hit step by step on that video's own clock, its length, what the format's videos keep and what a creator may make their own (where the format has a counted formula, `formula` lists what its breakouts do alike: each cue, how to do it, how widely in Shorti's words, and a breakout that shows it at a moment); `idea_card`, the format's own hook, turn and how a brand's product sits in it; its strongest hits with links and views (`why`: Shorti's line on a hit the format names as its own example); `moments`, what viewers reacted to and where; `flow`, how its way of shooting moved: what its newest breakouts did (`now`), its ladder of changes with how many took each rung in words, the worlds it moved into, up to three spots nobody has taken yet (`open`) and the same way of shooting under other sounds (`lineage`: its `id` for shorti_flow); how it has spread; its page and the check with it filled. Address it by `format_id` (from shorti_what_to_shoot or shorti_find, or the slug of its page), or by `video_id` or `url` of one of its videos. The default summary keeps the shoot clock and keep/change, with three hits; detail='full' returns the unchanged legacy answer.
| Name | Type | Req | Description |
|---|---|---|---|
| detail | string | – | summary: compact agent answer, Korean person-facing text with lang=ko; model prompts are marked for_model=true. full: the unchanged legacy answer, including its original bilingual/model text. |
| format_id | – | – | The format's id or its page's slug. |
| lang | string | – | The creator's language. 'en' answers in the English Shorti wrote: never translate its Korean yourself. |
| url | – | – | One of its videos, by the post's link. |
| video_id | – | – | One of its videos, by Shorti's id. |
| Name | Type | Req | Description |
|---|---|---|---|
| as_of | – | – | when the data was compiled |
| campaign | – | – | present while Shorti's own 체험단 is open: its mission and what it pays (the sign-ups a video brings), for each format's `links.mission` |
| flow | – | – | how its way of shooting moved: the line about now, the ladder of changes, the worlds it moved into, the spots nobody has taken |
| format | – | – | – |
| hint | – | – | – |
| hits | – | – | the format's strongest hits |
| how_to_shoot | – | – | – |
| idea_card | – | – | the format's own idea card (Shorti's reading) |
| moments | – | – | the moments viewers reacted to, each where it shows |
| next | – | – | – |
| note | – | – | – |
| refusal | – | – | why nothing was answered, by name |
No examples provided.
shorti_my_field Short-form for my field ~427
A profession's or a brand team's short-form week: ideas, how its breakouts are made, what to check before posting. For doctors (피부과, 성형외과 …), dentists, Korean medicine, pharmacists, lawyers, tax accountants, labor attorneys, accountants, realtors and brand teams: this week's ideas (a title, the way, the first line, how to shoot it); the ways the field's breakout videos are made, with their links and views; what its breakouts share; one creator's breakout beside their own usual video; memes, and this week's formats with the field's twist (`format_id` for shorti_format); what to check before posting, each line with the Korean statute behind it; for brand teams a week's posting plan. Also for creators by field (뷰티, 패션, 리빙, 푸드, 밈·코미디, 일상, 반려동물, 운동, 여행, 댄스), 체험단 reviewers (뷰티 · 맛집 · 생활용품 체험단), shop owners (식당·카페, 미용실·네일, 운동 센터) and actors: the persona's breakouts with their links and views, the formats many in it shoot and, in Korean, the formats rising in the West near it with no Korean video yet. `field` in the person's own words; one Shorti does not read answers the fields and personas it does. lang='en' reads the English-speaking market's videos.
| Name | Type | Req | Description |
|---|---|---|---|
| field | string | yes | The person's profession, team or field in their own words: 피부과, 치과, 약사, 변호사, 세무사, 공인중개사, 브랜드 담당자, 뷰티, 맛집 체험단, 카페 사장, 미용실, 배우, dermatologist, lawyer, realtor, brand team, salon … |
| lang | string | – | The creator's language. 'en' answers in the English Shorti wrote: never translate its Korean yourself. |
| Name | Type | Req | Description |
|---|---|---|---|
| as_of | – | – | – |
| asked | – | – | – |
| before_you_post | – | – | what to check before posting |
| breakouts | – | – | the persona's breakouts in the league, by views (the Korean market's first on ko) |
| campaign | – | – | present while Shorti's own 체험단 is open: its mission and what it pays (the sign-ups a video brings), for each format's `links.mission` |
| creator_reviews | – | – | a shop owner or a brand team: breakouts review creators made about places or products like theirs |
| field | – | – | – |
| fields | – | – | the fields Shorti reads, when `field` named none |
| formats_many_are_shooting | – | – | – |
| formats_many_creators | – | – | moves several of the field's creators broke out with |
| hint | – | – | – |
| market | – | – | 'ko' the Korean market's videos, 'en' the English-speaking market's |
| memes | – | – | – |
| most_watched | – | – | – |
| name | – | – | – |
| note | – | – | – |
| page | – | – | the field's page on Shorti |
| persona | – | – | a creator's field, a 체험단 reviewer's, a shop owner's or an actor's (`creator.beauty`, `owner.salon` …) when `field` named one |
| personas | – | – | the personas Shorti serves, when `field` named none |
| refusal | – | – | why nothing was answered, by name |
| rising_abroad_not_in_korea | – | – | ko: formats breaking out in the West near this persona with no or few Korean videos |
| role | – | – | – |
| same_person | – | – | one creator's breakout beside their own usual video |
| state | – | – | 'ok'; 'unknown_field' lists the fields in `fields`; 'not_ready' |
| this_week | – | – | this week's ideas to shoot |
| trend_twists | – | – | this week's formats with the field's twist |
| ways | – | – | – |
| week_plan | – | – | brand teams: a week's posting slots |
| what_breakouts_share | – | – | – |
No examples provided.
shorti_remake_recipe Remake recipe ~449
A hit's remake for the AI video model an agent holds: keep, per-model prompts, the check. `video_id` or `url` of a hit, or `format_id` (its reference hit): `recipe` is `shorti.remake_recipe.v1`, the hit's own clock (cuts, beats, hook, turn) written as AI video models take it, for the creator's own generation tool (a Higgsfield, fal or gateway MCP). `mode`: swap_person (the creator in the hit's own shot), swap_place, swap_product, restyle_3d (a 3D animated version), character (every performer becomes one character), episode (a new episode of an AI-made format). `prompts` holds one plan per model — Seedance 2.5, MiniMax H3, Kling 3.0 Motion Control, Wan 3.0 — with its references in order and what each needs prepared, its requests cut at the hit's own cuts inside the model's limits (each with a timestamped prompt and parameters) and its list price; then `keep`, `fit`, `steps`, the `sound` to post with and the `check` the result goes back to. Nothing here generates or spends. What the hit did, never why it spread; not a forecast of views. The default summary keeps the source clock, keep, links and each model's segment_count and first request (for_model=true). Read detail='full' for all requests: it preserves the unchanged legacy answer.
| Name | Type | Req | Description |
|---|---|---|---|
| detail | string | – | summary: compact agent answer, Korean person-facing text with lang=ko; model prompts are marked for_model=true. full: the unchanged legacy answer, including its original bilingual/model text. |
| format_id | – | – | A format: its reference hit. |
| lang | string | – | The creator's language. 'en' answers in the English Shorti wrote: never translate its Korean yourself. |
| mode | string | – | What the remake changes. |
| url | – | – | The hit, by the post's link. |
| video_id | – | – | The hit, by Shorti's id. |
Structured output declared, but exposes no named fields.
No examples provided.
shorti_scene_kit Scene kit ~266
A served league video's generator scene kit: JSON, clay glTF, camera, light, beats, ledger buckets and C35 model adapters. A served league video's id or post link: reads its precompiled scene kit. The default summary keeps every source shot clock, keep/lift/free with evidence, export links, and each model's segment_count and first request (for_model=true). Read detail='full' for the unchanged complete legacy kit and all model requests. The full scene_kit.v0 has versioned OpenCV cameras, lens, trajectories, depth, light, beats, cuts and ledger buckets, a clay glTF export and four C35 adapters. Public identity is nr; the private twin joint uses only the owner's own likeness-consented assets, never league likeness. No analysis, generation, identity IO or spending runs in this request.
| Name | Type | Req | Description |
|---|---|---|---|
| detail | string | – | summary: compact agent answer, Korean person-facing text with lang=ko; model prompts are marked for_model=true. full: the unchanged legacy answer, including its original bilingual/model text. |
| lang | string | – | The creator's language. 'en' answers in the English Shorti wrote: never translate its Korean yourself. |
| video | string | yes | A league video's id or post link. |
Structured output declared, but exposes no named fields.
No examples provided.
shorti_trend_radar Trend radar ~293
Formats breaking out in the West that no Korean video holds yet, and those arriving. Formats breaking out in the West (the US, Europe, other English-speaking countries) that no Korean video holds yet, then those just reaching Korea, in Shorti's radar order. Each says what its videos do, its strongest video (link, views), how many Western videos and creators broke out with it and when last, how many Korean videos it has, and how much of it needs no language (`language_light`). `to_korea` is the measured time from a Western hit to the first Korean video across this release's formats. Use it when a creator asks what to shoot before it reaches Korea; narrow by `category` or `state`; then shorti_format(format_id) for how to shoot one.
| Name | Type | Req | Description |
|---|---|---|---|
| category | – | – | The creator's niche, when they have one: beauty, food, fashion, daily, comedy, dance, music, pets, fitness, travel, art, gaming, product, info, ai, household, tech, parenting. |
| lang | string | – | The creator's language. 'en' answers in the English Shorti wrote: never translate its Korean yourself. |
| limit | integer | – | How many formats. |
| state | – | – | 'not_in_korea': no Korean video yet; 'arriving': the first ones; 'entered': already made in Korea. |
| Name | Type | Req | Description |
|---|---|---|---|
| as_of | – | – | when the data was compiled |
| campaign | – | – | present while Shorti's own 체험단 is open: its mission and what it pays (the sign-ups a video brings), for each format's `links.mission` |
| counts | – | – | how many formats the radar holds in each state |
| formats | – | – | – |
| hint | – | – | – |
| none | – | – | – |
| note | – | – | – |
| refusal | – | – | why nothing was answered, by name |
| to_korea | – | – | the measured time from a Western hit to the first Korean video |
No examples provided.
shorti_video One video ~232
One video: what happens in it, its beats, its numbers and its formats. By a post's link or Shorti's video_id: what happens in it, its hook, turn and beats (Shorti's reading), its `cues` where a director read it (the moments worth copying, each with what to do), views and views per day, length, its page and the formats it belongs to. A video Shorti has not read answers `not_in_corpus`. The default detail='summary' is the compact reading; detail='full' answers every compiled field (large). The previous detail='brief' remains accepted.
| Name | Type | Req | Description |
|---|---|---|---|
| detail | string | – | summary: compact agent answer, Korean person-facing text with lang=ko; model prompts are marked for_model=true. full: the unchanged legacy answer, including its original bilingual/model text. |
| lang | string | – | The creator's language. 'en' answers in the English Shorti wrote: never translate its Korean yourself. |
| url | – | – | The post's link. |
| video_id | – | – | Shorti's id of the video. |
| Name | Type | Req | Description |
|---|---|---|---|
| as_of | – | – | when the data was compiled |
| campaign | – | – | present while Shorti's own 체험단 is open: its mission and what it pays (the sign-ups a video brings), for each format's `links.mission` |
| coach_view | object | – | The MCP coaching player. Text is reduced to lang. Legacy answer fields may accompany the view; the player consumes only these named fields. |
| formats | – | – | the formats it belongs to |
| full | – | – | with detail='full': the compiled video, every field |
| hint | – | – | – |
| note | – | – | – |
| refusal | – | – | why nothing was answered, by name |
| state | – | – | 'not_in_corpus': Shorti has not read this video |
| video | – | – | – |
No examples provided.
shorti_what_to_shoot What to shoot this week ~286
The formats to shoot this week: the week's picks, then the week's feed. The short-form formats breaking out now (TikTok, Reels, Shorts): this week's picks first — each with Shorti's line on the hit that broke out this week (`this_week.why`) and that hit's link — then the rest of the week's feed, in the order Shorti's home shows it. Each format says what its videos do, its strongest video (link, views, poster), how it has spread, its page and the check with it filled. Narrow by `category` (the creator's niche) and `platform`. Signed in, the person's own week leads (`for_you`: why each came to them). Use it when a creator or a brand asks what to make now; then shorti_format(format_id) for how to shoot one.
| Name | Type | Req | Description |
|---|---|---|---|
| category | – | – | The creator's niche, when they have one: beauty, food, fashion, daily, comedy, dance, music, pets, fitness, travel, art, gaming, product, info, ai, household, tech, parenting. |
| lang | string | – | The creator's language. 'en' answers in the English Shorti wrote: never translate its Korean yourself. |
| limit | integer | – | How many formats. |
| platform | – | – | Only formats with videos on this platform. |
| Name | Type | Req | Description |
|---|---|---|---|
| as_of | – | – | when the data was compiled |
| campaign | – | – | present while Shorti's own 체험단 is open: its mission and what it pays (the sign-ups a video brings), for each format's `links.mission` |
| for_you | – | – | true when a signed-in reader's own week leads the list |
| formats | – | – | – |
| hint | – | – | – |
| none | – | – | – |
| note | – | – | – |
| refusal | – | – | why nothing was answered, by name |
| week | – | – | the Monday (KST) the week's picks are fixed on |
No examples provided.
What is the Shorti MCP server?
Shorti is an MCP server listed in the public MCP registry as ai.shorti/shorti. What short-form formats to shoot this week, how their hits were made, and a check of your take. This page covers its hosted endpoint (https://shorti.ai/mcp).
Is the Shorti MCP server safe to use?
Shorti scores 77 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Shorti MCP server expose?
Shorti exposes 15 tools: shorti_what_to_shoot, shorti_trend_radar, shorti_my_field, shorti_find, shorti_format, and 10 more. Their descriptions and schemas cost roughly 4,395 tokens of context every time the server is loaded.
Does the Shorti MCP server require authentication?
No. We connected to Shorti without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the Shorti MCP server still maintained?
Shorti is still listed as active in the MCP registry. We last reached this channel on 4 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.