Directory / Media & generation
Shortform Kit
Transcribes public Instagram Reels, TikToks and YouTube videos (also without captions), reads their metadata and captions, and returns sourced creator data such as upload specs and loudness targets; free, no account or API key. Endpoint: https://shortformkit.com/mcp · Docs
Live Answered an MCP handshake without credentials and listed 9 tools.
- Category
- Media & generation
- Transport
http- Source
- https://github.com/shortformkit/shortformkit-mcp
- Endpoint
https://shortformkit.com/mcp- MCP Registry
io.github.diegobruegger-prog/shortformkit- Reports itself as
- shortformkit 1.0.0
- Protocol
- 2025-06-18
- Tools
- 9
- Context cost
- about 2,286 tokens for the tool definitions (estimated at four characters per token)
- Tool definitions last changed
- 2026-10-23
- Handshake time
- 315 ms
- Repository
- 0 stars · last push 2026-10-20 · MIT
- Last checked
- 2026-11-03 10:54:49 UTC
- Listed since
- 2026-10-21
Health and compatibility
| Endpoint reachable | Verified | Responded in 315 ms |
|---|---|---|
| MCP handshake (initialize) | Verified | Completed without credentials |
| Tool discovery (tools/list) | Verified | 9 tools listed |
| Authentication | Verified | None needed to connect |
| Protocol version | Verified | 2025-06-18 |
| Transport | Verified | Streamable HTTP |
| Capabilities declared | Verified | tools |
Last checked . Verified means the check saw it happen; it says nothing about whether the server is safe.
Recent history
100% of the last 9 daily checks reachable; median response 444 ms. Green answered, violet asked for auth, red did not answer.
Set up in your client
Claude Code
Run this in a terminal:
claude mcp add --transport http shortform-kit https://shortformkit.com/mcpClaude Desktop
Open Settings → Connectors → Add custom connector and paste this URL:
https://shortformkit.com/mcpOr bridge it through mcp-remote in claude_desktop_config.json (needs Node.js):
{
"mcpServers": {
"shortform-kit": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://shortformkit.com/mcp"
]
}
}
}Cursor
Or add it to ~/.cursor/mcp.json (or .cursor/mcp.json in a project):
{
"mcpServers": {
"shortform-kit": {
"url": "https://shortformkit.com/mcp"
}
}
}VS Code
Or add it to .vscode/mcp.json:
{
"servers": {
"shortform-kit": {
"type": "http",
"url": "https://shortformkit.com/mcp"
}
}
}Or from a terminal:
code --add-mcp '{"name": "shortform-kit", "type": "http", "url": "https://shortformkit.com/mcp"}'Windsurf
Add it to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"shortform-kit": {
"serverUrl": "https://shortformkit.com/mcp"
}
}
}Other clients
Most clients accept this shape. The endpoint is:
https://shortformkit.com/mcp{
"mcpServers": {
"shortform-kit": {
"type": "http",
"url": "https://shortformkit.com/mcp"
}
}
}If it does not connect
- Restart the client after editing a config file, and keep keys out of files you commit.
- If the tools do not appear, open the client's MCP log: a 401 means the credentials were not accepted, and a timeout means the server did not answer.
Tools 9
Names, descriptions and input schemas exactly as the server returned them on 2026-11-03. This is the server author's own text. Nothing is run from this page. Labels such as read-only are declared by the server and are not verified. Raw JSON
creator_monetizationread-onlyLook up sourced 2026 creator-income data. topic=programs lists monetization programs with eligibility …
Look up sourced 2026 creator-income data. topic=programs lists monetization programs with eligibility (subscribers, watch hours, views) and status; rpm_by_niche and rpm_by_country give earnings per 1,000 views as low, high and median; engagement_benchmarks gives typical engagement rates; sponsorship_rates gives price ranges per post. Every row carries its sources. Use it to answer 'how much does X pay' or 'what do I need to monetize'; for a concrete earnings estimate from a view count use estimate_youtube_earnings instead. Offline data, max 40 rows.
| Parameter | Type | Description | |
|---|---|---|---|
topic | string | optional | Which table to read. One of: programs, rpm_by_niche, rpm_by_country, engagement_benchmarks, sponsorship_rates |
platform | string | optional | Optional platform filter, substring: YouTube, TikTok, Instagram, Facebook, X, Snapchat ... |
niche | string | optional | Optional niche filter for rpm_by_niche and sponsorship_rates, substring: finance, tech, gaming, beauty, education ... |
country | string | optional | Optional country filter for rpm_by_country: ISO code (US, DE, IN) or English name. |
Example call (required arguments only, placeholder values):
{
"method": "tools/call",
"params": {
"name": "creator_monetization",
"arguments": {}
}
}download_mediacan modifyexternal accessCreate a temporary download of a public post. Returns a job object with status and, when done, download_url …
Create a temporary download of a public post. Returns a job object with status and, when done, download_url (valid 15 minutes) plus job_status_url to poll if it is still running after about 100 seconds. Use kind=video for MP4, audio for MP3, image for photo posts and carousels, thumbnail for the cover, frame for a still at one timestamp. For the spoken text use transcribe_video instead. Videos up to 12 hours. Only for content the user made, has permission to use, or that is freely licensed. Music is refused: songs, music videos, YouTube Music and copyrighted sounds return an error, do not try to work around it.
| Parameter | Type | Description | |
|---|---|---|---|
url | string | required | Link to a public post or video, e.g. https://www.instagram.com/reel/..., https://www.tiktok.com/@user/video/..., https://youtu.be/... Private posts and login-only content fail. |
kind | string | optional | What to save: video (MP4), audio (MP3), image (photo/carousel), thumbnail (cover image) or frame (one still, needs 'at'). One of: video, audio, image, thumbnail, frame |
quality | integer | optional | Maximum video height in pixels, e.g. 720, 1080, 2160. Omit for the best available. Only for kind=video. |
start | string | optional | Optional start of a section to cut. Time as '1:05', '0:01:05' or seconds ('65'). |
end | string | optional | Optional end of the section, must be after start. Time as '1:05', '0:01:05' or seconds ('65'). |
at | string | optional | Timestamp of the still for kind=frame. Time as '1:05', '0:01:05' or seconds ('65'). |
Example call (required arguments only, placeholder values):
{
"method": "tools/call",
"params": {
"name": "download_media",
"arguments": {
"url": "..."
}
}
}estimate_youtube_earningsread-onlyEstimate YouTube ad revenue for a channel from its monthly views. Returns the RPM range in USD, monthly and …
Estimate YouTube ad revenue for a channel from its monthly views. Returns the RPM range in USD, monthly and yearly USD ranges, the model used and a link to the interactive calculator. Ads only, no sponsorships or memberships. Use creator_monetization for the underlying RPM tables and program requirements.
| Parameter | Type | Description | |
|---|---|---|---|
monthly_views | number | required | Views per month, e.g. 250000. |
niche | string | optional | Content niche, drives the ad rate. Ignored when shorts=true. One of: beauty, education, finance, gaming, health, music, tech, travel … |
shorts | boolean | optional | true = views are YouTube Shorts views (pooled Shorts revenue, much lower RPM). |
Example call (required arguments only, placeholder values):
{
"method": "tools/call",
"params": {
"name": "estimate_youtube_earnings",
"arguments": {
"monthly_views": 0
}
}
}get_video_inforead-onlyexternal accessRead the metadata of a public Instagram, YouTube, TikTok, X, Facebook or Pinterest post without downloading …
Read the metadata of a public Instagram, YouTube, TikTok, X, Facebook or Pinterest post without downloading it. Returns platform, title, uploader, duration in seconds, available video heights, whether it has video/audio, gallery size, caption, hashtags and thumbnail URL. Use it first to check a link or pick a quality; use download_media to get the file and transcribe_video for the spoken words. Shares the website's limit of 30 requests per minute.
| Parameter | Type | Description | |
|---|---|---|---|
url | string | required | Link to a public post or video, e.g. https://www.instagram.com/reel/..., https://www.tiktok.com/@user/video/..., https://youtu.be/... Private posts and login-only content fail. |
Example call (required arguments only, placeholder values):
{
"method": "tools/call",
"params": {
"name": "get_video_info",
"arguments": {
"url": "..."
}
}
}loudness_and_subtitlesread-onlyLook up delivery standards for audio and captions. topic=loudness_targets gives integrated loudness (LUFS) …
Look up delivery standards for audio and captions. topic=loudness_targets gives integrated loudness (LUFS) and true-peak limits for Spotify, Apple Music, YouTube, Netflix, Prime Video, EBU R128, ATSC A/85, podcasts and social video; subtitle_standards gives characters per line, lines, reading speed and timing rules (Netflix, BBC and others); frame_rates_timecode explains frame rates and drop-frame timecode. Every value sourced. Use it when mixing, exporting or captioning for a platform. Offline data, max 40 rows.
| Parameter | Type | Description | |
|---|---|---|---|
topic | string | optional | Which table to read. One of: loudness_targets, subtitle_standards, frame_rates_timecode |
name | string | optional | Optional filter, case-insensitive substring across the row, e.g. Netflix, Spotify, podcast, 29.97. |
Example call (required arguments only, placeholder values):
{
"method": "tools/call",
"params": {
"name": "loudness_and_subtitles",
"arguments": {}
}
}social_video_specsread-onlyLook up 2026 upload specs for Instagram, TikTok, YouTube, Facebook, X, LinkedIn, Pinterest, Snapchat and …
Look up 2026 upload specs for Instagram, TikTok, YouTube, Facebook, X, LinkedIn, Pinterest, Snapchat and Threads: aspect ratio, resolution, max length, file size, caption and hashtag limits, each row with official source links, plus recent spec changes. Use it before exporting or cropping a video for a platform. Offline data, no network calls; empty filters return every row.
| Parameter | Type | Description | |
|---|---|---|---|
platform | string | optional | Platform name filter, case-insensitive substring: Instagram, TikTok, YouTube, Facebook, X, LinkedIn, Pinterest, Snapchat, Threads. Empty = all platforms. |
format | string | optional | Format filter, substring: Reels, Stories, Feed, Shorts, Long-form, Spotlight ... Empty = all formats of the platform. |
Example call (required arguments only, placeholder values):
{
"method": "tools/call",
"params": {
"name": "social_video_specs",
"arguments": {}
}
}transcribe_videocan modifyexternal accessTranscribe the speech of a public video, Reel, TikTok or Short with Whisper on the server. Returns the plain …
Transcribe the speech of a public video, Reel, TikTok or Short with Whisper on the server. Returns the plain text plus segments with start and end times; waits up to 4 minutes, otherwise returns job_status_url to poll. Use it for captions, quotes, summaries or hooks; use get_video_info if you only need the written caption. Up to 20 minutes of audio per run, one transcription at a time server-wide, so cut long videos with start/end.
| Parameter | Type | Description | |
|---|---|---|---|
url | string | required | Link to a public post or video, e.g. https://www.instagram.com/reel/..., https://www.tiktok.com/@user/video/..., https://youtu.be/... Private posts and login-only content fail. |
language | string | optional | Spoken language as ISO 639-1 code (en, de, es, pt, fr, ja ...). Omit to auto-detect; setting it improves accuracy for short clips. |
translate_to_english | boolean | optional | true returns an English translation instead of the original language. |
start | string | optional | Optional start of the part to transcribe. Time as '1:05', '0:01:05' or seconds ('65'). |
end | string | optional | Optional end of the part to transcribe. Time as '1:05', '0:01:05' or seconds ('65'). |
Example call (required arguments only, placeholder values):
{
"method": "tools/call",
"params": {
"name": "transcribe_video",
"arguments": {
"url": "..."
}
}
}youtube_channel_idread-onlyexternal accessResolve a YouTube channel to its permanent channel ID (UC...). Returns channel ID, name, handle, channel URL …
Resolve a YouTube channel to its permanent channel ID (UC...). Returns channel ID, name, handle, channel URL and the RSS feed URL. Use it when an API, embed, RSS reader or analytics tool needs the UC ID; any video link of the channel works too. Not for statistics like subscriber counts.
| Parameter | Type | Description | |
|---|---|---|---|
query | string | required | @handle (e.g. @mkbhd), channel URL (youtube.com/@name, /c/, /user/) or any video or Shorts URL of the channel. |
Example call (required arguments only, placeholder values):
{
"method": "tools/call",
"params": {
"name": "youtube_channel_id",
"arguments": {
"query": "..."
}
}
}youtube_thumbnail_trendsread-onlyGet this week's measured thumbnail trends of the most-viewed new YouTube videos in 10 niches: share of …
Get this week's measured thumbnail trends of the most-viewed new YouTube videos in 10 niches: share of thumbnails with faces, text and big text, brightness, dominant colours, title length, plus top example videos. Without a niche it returns the overall stats and the list of niches. Use it when designing or reviewing a thumbnail; the data refreshes weekly.
| Parameter | Type | Description | |
|---|---|---|---|
niche | string | optional | One of gaming, vlog, fitness, finance, food, tech, travel, education, podcast, beauty. Empty = overview of all niches. |
Example call (required arguments only, placeholder values):
{
"method": "tools/call",
"params": {
"name": "youtube_thumbnail_trends",
"arguments": {}
}
}Badge
Maintain this server? Put its live status in your README:
[](https://mcp.aianytime.net/s/shortform-kit/)Edit this entry · Report a problem
More in Media & generation
Checks record what a server answered, not whether it is safe. A listing is not a security audit; read a server's source and permissions before you connect it. Add a server · JSON · llms.txt · llms-full.txt
Browse: Agents, IDEs & developer tools · Search & discovery · Knowledge, memory & context · Media & generation · Security · Finance & markets · Marketing, content & social · Cloud, ops & data · Commerce, travel & logistics · Work & productivity · No account needed · Local servers