Introduction
TubeMagic runs a Model Context Protocol (MCP) server. Any AI app that supports MCP can use your TubeMagic account to research, create, and plan YouTube videos, with the same plan, limits, and credits as the app.
https://tubemagic.com/api/mcp85
tools available
OAuth
or MCP keys
HTTP
Streamable transport
Quick start
Three steps, no installs.
- 01
Add TubeMagic
Paste the MCP URL as a custom connector in ChatGPT, Claude, Cursor, or any MCP client.
- 02
Sign in
Approve access with your TubeMagic account. Prefer keys? Create one in Settings → Developers.
- 03
Just ask
Your AI picks the right TubeMagic tool and follows your plan, limits, and credits.
Connect a client
Pick your AI app. Clients that support OAuth open a TubeMagic sign-in the first time you connect.
- 1Open Claude and go to Settings → Connectors.
- 2Choose Add custom connector, name it TubeMagic, and paste the MCP URL.
- 3Click Connect, sign in to TubeMagic, and approve access.
Works on claude.ai and the Claude desktop app on plans that support custom connectors.
Authentication
Choose OAuth for apps like ChatGPT and Claude, or an MCP key for scripts and clients without OAuth.
OAuth
RecommendedOAuth 2.1 with PKCE and dynamic client registration. Clients discover sign-in from the protected resource metadata, so you only paste the MCP URL.
Access tokens last 60 minutes and refresh automatically for 30 days.
MCP keys
Create up to 10 keys in Settings → Developers. Keys start with tubemagic_mcp_ and are shown only once.
Send the key as a bearer token on every request.
Authorization: Bearer tubemagic_mcp_your_keyDiscovery: https://tubemagic.com/.well-known/oauth-protected-resource/api/mcp
Plans, limits & credits
MCP follows the exact same rules as the TubeMagic app.
Paid plan
Most tools need a paid TubeMagic plan, the same as in the app. Account tools like usage, logs, and sessions work on every plan.
Daily limits
Free models share the app’s daily limits, usually 100 generations per tool every 24 hours. Ask your AI to run get_usage_limits to see what’s left.
Credits
Premium models and credit tools spend credits: thumbnails cost 20 credits, chat replies cost 2 to 16. Failed generations are refunded.
Same account
Everything your AI creates is saved to your TubeMagic account, so you can open it in the app anytime.
Tools reference
Every tool your AI can call, grouped like the TubeMagic app. Open a tool to see its parameters.
Tools
Video Ideas
generate_video_ideaWritesGenerate YouTube video idea
generate_video_ideaWritesGenerate YouTube video idea
Generate a new video idea for a YouTube channel, based on its latest videos and matching the channel's style and language. Returns a title and why it should work for the channel's audience. Needs a paid TubeMagic plan. Free models allow 100 ideas per 24 hours; premium models spend credits instead.
channelrequiredstring
The YouTube channel: a handle like @mkbhd, a channel URL, or a channel ID
modelenum · default "anthropic/claude-sonnet-5.5"
AI model to use. Defaults to anthropic/claude-sonnet-5.5 (Sonnet 5.5). anthropic/claude-sonnet-5.5 = Sonnet 5.5 (free, 100 per 24 hours) google/gemini-3-flash-preview = Gemini 3 Flash (free, 100 per 24 hours) anthropic/claude-opus-5.5 = Opus 5.5 (premium, 5 credits per generation) anthropic/claude-fable-5.1 = Fable 5.1 (premium, 10 credits per generation) openai/gpt-6-astra = GPT-6 Astra (premium, 10 credits per generation)
avoidIdeasstring[]
Up to 5 titles of ideas already suggested, so the new idea is different from them
Community Posts
generate_community_postWritesGenerate YouTube community post
generate_community_postWritesGenerate YouTube community post
Write a YouTube community tab post (a text post or a poll) for a channel, in the channel owner's voice, based on its recent videos. Posts for non-English channels are written in the channel's language. Needs a paid TubeMagic plan. Free models allow 100 posts per 24 hours; premium models spend credits instead.
channelrequiredstring
The YouTube channel: a handle like @mkbhd, a channel URL, or a channel ID
typeenum · default "post"
post for a text post, poll for a poll with one question and several options
modelenum · default "anthropic/claude-sonnet-5.5"
AI model to use. Defaults to anthropic/claude-sonnet-5.5 (Sonnet 5.5). anthropic/claude-sonnet-5.5 = Sonnet 5.5 (free, 100 per 24 hours) google/gemini-3-flash-preview = Gemini 3 Flash (free, 100 per 24 hours) anthropic/claude-opus-5.5 = Opus 5.5 (premium, 5 credits per generation) anthropic/claude-fable-5.1 = Fable 5.1 (premium, 10 credits per generation) openai/gpt-6-astra = GPT-6 Astra (premium, 10 credits per generation)
Keyword Research
research_keywordWritesResearch YouTube keyword
research_keywordWritesResearch YouTube keyword
Research a YouTube keyword: monthly search volume, difficulty, and Magic Score for the exact keyword and related keywords. Magic Score runs from 1 to 10, and higher means less competition, so a better opportunity. Needs a paid TubeMagic plan. Allows 100 searches per 24 hours.
keywordrequiredstring
The keyword or search phrase to research, like "home workout"
Niche Explorer
search_nichesRead onlySearch YouTube niches
search_nichesRead onlySearch YouTube niches
Search the TubeMagic Niche Explorer: YouTube niche categories with their score, demand, competition, and monetization (0 to 100), and the niches in each with approximate RPM and an example channel. Matches the search text against niche and category names, like the Niche Explorer page. Needs a paid TubeMagic plan. Returns up to 25 niches per category by default; use page to see more of each category.
searchstring
Text to match in niche or category names. Leave empty for every niche
categorystring
Only this category, by ID or name (like "wealth")
sortByenum · default "rpm"
Sort niches by: rpm = RPM (Approx.), name = Niche, exampleChannelUrl = Example Channel
sortDirectionenum · default "asc"
ascdesclimitinteger · default 25
Niches to return per category, up to 100
pageinteger · default 1
Page of niches within each category, starting at 1
generate_sub_nichesWritesGenerate YouTube sub-niches
generate_sub_nichesWritesGenerate YouTube sub-niches
Generate 5 fresh sub-niche ideas inside a Niche Explorer category, each with a search keyword, estimated RPM, score (0 to 100), and competition. Costs 5 credits per generation, refunded if it fails. Ideas are saved to the user's My Niches and never repeat earlier ones. Needs a paid TubeMagic plan.
categoryrequiredstring
The category to generate in, by ID or name (like "wealth"). Use search_niches to see the categories
seedKeywordstring
Optional direction for the ideas, like "AI", "for men", or "under 5 minutes"
audienceenum · default "beginners"
Audience: beginners = Beginners, intermediate = Intermediate, pros = Pros
styleenum · default "faceless"
Channel style: faceless = Faceless, personal = Personal, documentary = Docu
list_my_nichesRead onlyList my generated niches
list_my_nichesRead onlyList my generated niches
List the sub-niches the user has generated (My Niches), newest first by default, with search, category filter, and sorting. Results are paged: pass nextCursor back as cursor to get the next page. Needs a paid TubeMagic plan.
searchstring
Text to match in the niche title or keyword
categorystring
Only niches from this category, by ID or name
sortByenum · default "createdAt"
Sort by: createdAt = Generated, score = Score, rpm = Est. RPM, title = Niche
sortDirectionenum · default "desc"
ascdesccursorstring
nextCursor from the previous page
Warp Upload
generate_upload_packageWritesGenerate YouTube upload package
generate_upload_packageWritesGenerate YouTube upload package
Warp Upload: generate everything needed to upload a YouTube video in one call: 3 title options, an SEO description, and tags. Give either a YouTube video or Shorts URL (it reads the transcript and matches the channel style) or a written description of the video, not both. Saved to the user's TubeMagic projects. Needs a paid TubeMagic plan. Free models allow 100 uploads per 24 hours; premium models spend credits instead.
videoUrlstring
A YouTube video or Shorts URL, like https://youtu.be/VIDEO_ID
videoDescriptionstring
What the video is about, if there is no URL. Written in the video's language
modelenum · default "anthropic/claude-sonnet-5.5"
AI model to use. Defaults to anthropic/claude-sonnet-5.5 (Sonnet 5.5). anthropic/claude-sonnet-5.5 = Sonnet 5.5 (free, 100 per 24 hours) google/gemini-3-flash-preview = Gemini 3 Flash (free, 100 per 24 hours) anthropic/claude-opus-5.5 = Opus 5.5 (premium, 10 credits per generation) anthropic/claude-fable-5.1 = Fable 5.1 (premium, 20 credits per generation) openai/gpt-6-astra = GPT-6 Astra (premium, 20 credits per generation)
Video Titles
generate_video_titlesWritesGenerate YouTube video titles
generate_video_titlesWritesGenerate YouTube video titles
Generate 3 click-worthy YouTube title options for a video, in its language and in the channel’s title style. Give either a YouTube video or Shorts URL (it reads the transcript and matches the channel style) or a written description of the video, not both. Needs a paid TubeMagic plan. Free models allow 100 per 24 hours; premium models spend credits instead.
videoUrlstring
A YouTube video or Shorts URL, like https://youtu.be/VIDEO_ID
videoDescriptionstring
What the video is about, if there is no URL. Written in the video's language
modelenum · default "anthropic/claude-sonnet-5.5"
AI model to use. Defaults to anthropic/claude-sonnet-5.5 (Sonnet 5.5). anthropic/claude-sonnet-5.5 = Sonnet 5.5 (free, 100 per 24 hours) google/gemini-3-flash-preview = Gemini 3 Flash (free, 100 per 24 hours) anthropic/claude-opus-5.5 = Opus 5.5 (premium, 5 credits per generation) anthropic/claude-fable-5.1 = Fable 5.1 (premium, 10 credits per generation) openai/gpt-6-astra = GPT-6 Astra (premium, 10 credits per generation)
Video Description
generate_video_descriptionWritesGenerate YouTube video description
generate_video_descriptionWritesGenerate YouTube video description
Write an SEO-optimized YouTube video description ending with two hashtags, in the video’s language. Give either a YouTube video or Shorts URL (it reads the transcript and matches the channel style) or a written description of the video, not both. Needs a paid TubeMagic plan. Free models allow 100 per 24 hours; premium models spend credits instead.
videoUrlstring
A YouTube video or Shorts URL, like https://youtu.be/VIDEO_ID
videoDescriptionstring
What the video is about, if there is no URL. Written in the video's language
wordCountinteger · default 100
Description length in words, 50 to 200
modelenum · default "anthropic/claude-sonnet-5.5"
AI model to use. Defaults to anthropic/claude-sonnet-5.5 (Sonnet 5.5). anthropic/claude-sonnet-5.5 = Sonnet 5.5 (free, 100 per 24 hours) google/gemini-3-flash-preview = Gemini 3 Flash (free, 100 per 24 hours) anthropic/claude-opus-5.5 = Opus 5.5 (premium, 5 credits per generation) anthropic/claude-fable-5.1 = Fable 5.1 (premium, 10 credits per generation) openai/gpt-6-astra = GPT-6 Astra (premium, 10 credits per generation)
Video Tags
generate_video_tagsWritesGenerate YouTube video tags
generate_video_tagsWritesGenerate YouTube video tags
Generate about 30 SEO-friendly YouTube tags for a video, in its language, within YouTube’s tag length. Give either a YouTube video or Shorts URL (it reads the transcript and matches the channel style) or a written description of the video, not both. Needs a paid TubeMagic plan. Free models allow 100 per 24 hours; premium models spend credits instead.
videoUrlstring
A YouTube video or Shorts URL, like https://youtu.be/VIDEO_ID
videoDescriptionstring
What the video is about, if there is no URL. Written in the video's language
modelenum · default "anthropic/claude-sonnet-5.5"
AI model to use. Defaults to anthropic/claude-sonnet-5.5 (Sonnet 5.5). anthropic/claude-sonnet-5.5 = Sonnet 5.5 (free, 100 per 24 hours) google/gemini-3-flash-preview = Gemini 3 Flash (free, 100 per 24 hours) anthropic/claude-opus-5.5 = Opus 5.5 (premium, 5 credits per generation) anthropic/claude-fable-5.1 = Fable 5.1 (premium, 10 credits per generation) openai/gpt-6-astra = GPT-6 Astra (premium, 10 credits per generation)
Video Research
search_youtube_videosRead onlySearch YouTube videos
search_youtube_videosRead onlySearch YouTube videos
Video Research: search YouTube videos with views, views per hour, engagement rate, and Outlier Score (views compared to the channel average; above 1x beat the average). Filter by type, duration, upload date, features, region, and language. Use nextPageToken for more results. Without a query, or when nothing matches, it returns videos from the user's saved videos and tracked channels instead (fromYourLibrary is true). Needs a paid TubeMagic plan. Uses the shared Video Research limit of 500 operations per 24 hours.
querystring
What to search for, at least 2 characters
typeenum
Only regular videos or only Shorts
durationenum
short = under 4 minutes, medium = 4 to 20 minutes, long = over 20 minutes
sortByenum
Sort results (default relevance)
uploadDateenum
Only videos uploaded within this period
hourtodayweekmonthyearfeaturesenum[]
Only videos with all of these features
HDsubtitlesCCommons3DLivePurchased4K360LocationHDRVR180regionstring
Two-letter country code, like US or IN
languagestring
Language code, like en or hi
localOnlyboolean
Prefer results local to the region
pageTokenstring
nextPageToken from the previous results, with the same query and filters
autocomplete_video_searchRead onlyAutocomplete YouTube search
autocomplete_video_searchRead onlyAutocomplete YouTube search
Get YouTube search suggestions for a partial query, to find popular search phrases. Uses the shared Video Research limit of 500 operations per 24 hours.
queryrequiredstring
The partial search text
limitinteger · default 8
Suggestions to return, up to 12
get_related_videosRead onlyGet related video suggestions
get_related_videosRead onlyGet related video suggestions
Suggest new videos related to the videos saved in one of the user's Video Research folders, excluding ones already in it. Seeds are picked at random from the folder, so each call can return different videos. Uses the shared Video Research limit of 500 operations per 24 hours.
folderIdrequiredstring
The saved-videos folder id. Use list_video_folders to find it
typeenum
Only regular videos or only Shorts
durationenum
short = under 4 minutes, medium = 4 to 20 minutes, long = over 20 minutes
sortByenum
Sort results (default relevance)
uploadDateenum
Only videos uploaded within this period
hourtodayweekmonthyearfeaturesenum[]
Only videos with all of these features
HDsubtitlesCCommons3DLivePurchased4K360LocationHDRVR180regionstring
Two-letter country code, like US or IN
languagestring
Language code, like en or hi
localOnlyboolean
Prefer results local to the region
limitinteger · default 12
Videos to return, up to 30
search_channels_to_trackRead onlySearch channels to track
search_channels_to_trackRead onlySearch channels to track
Search YouTube channels by name or handle, to add to a tracking database. Pass trackingId to mark channels already in that database. Uses the shared Video Research limit of 500 operations per 24 hours.
queryrequiredstring
Channel name or handle
trackingIdstring
Optional tracking database id
limitinteger · default 12
Channels to return, up to 12
list_saved_videosRead onlyList saved videos
list_saved_videosRead onlyList saved videos
List the user's saved Video Research videos with their note, tags, folders, views, engagement, and Outlier Score. Search matches titles, channels, notes, tags, and folder names. Filter by folder, tags, likes, Outlier Score, subscribers, duration, and publish date. Uses the shared Video Research limit of 500 operations per 24 hours.
searchstring
Text to search for
folderIdstring
Only videos in this folder
tagIdsstring[]
Only videos with any of these tags
minLikesnumber
Minimum likes
maxLikesnumber
Maximum likes
minOutlierScorenumber
Minimum Outlier Score, like 2 for 2x the channel average
maxOutlierScorenumber
Maximum Outlier Score
minSubscribersnumber
Minimum channel subscribers
maxSubscribersnumber
Maximum channel subscribers
minDurationSecondsnumber
Minimum duration in seconds
maxDurationSecondsnumber
Maximum duration in seconds
durationBucketenum · default "any"
short = under 4 minutes, medium = 4 to 20, long = over 20
anyshortmediumlongpublishedRangeenum · default "any"
Only videos published within this period
anyhourtodayweekmonthyearsortByenum · default "updatedAt"
updatedAtlikesoutliersubscribersdurationpublishedviewssortDirectionenum · default "desc"
ascdescpageinteger · default 1
Page number, starting at 1
limitinteger · default 20
Results per page, up to 50
save_videoWritesSave a video
save_videoWritesSave a video
Save a YouTube video to Video Research, or update a saved one, with an optional note, folders, and tags. By default folders and tags are added to the existing ones and the note is kept unless given; set replace to true to overwrite them all. Uses the shared Video Research limit of 500 operations per 24 hours.
videorequiredstring
A YouTube video ID or URL
notestring | null
A note about the video; null clears it
folderIdsstring[]
Folders to put the video in
tagIdsstring[]
Tags to add to the video
replaceboolean · default false
Replace the note, folders, and tags instead of adding to them
remove_saved_videoDestructiveRemove a saved video
remove_saved_videoDestructiveRemove a saved video
Remove a video from the user's saved Video Research videos. Uses the shared Video Research limit of 500 operations per 24 hours.
videorequiredstring
A YouTube video ID or URL
list_video_foldersRead onlyList saved-video folders
list_video_foldersRead onlyList saved-video folders
List the user's Video Research folders for saved videos. Search matches folder names and keywords. Uses the shared Video Research limit of 500 operations per 24 hours.
searchstring
Text to match in folder names
pageinteger · default 1
Page number, starting at 1
limitinteger · default 20
Results per page, up to 50
create_video_folderWritesCreate a saved-video folder
create_video_folderWritesCreate a saved-video folder
Create a folder for saved Video Research videos. Give a video to seed the folder with its channel's keywords. Uses the shared Video Research limit of 500 operations per 24 hours.
namerequiredstring
Folder name
videostring
A YouTube video ID or URL
list_video_tagsRead onlyList saved-video tags
list_video_tagsRead onlyList saved-video tags
List the user's Video Research tags for saved videos. Uses the shared Video Research limit of 500 operations per 24 hours.
searchstring
Text to match in tag names
pageinteger · default 1
Page number, starting at 1
limitinteger · default 20
Results per page, up to 50
create_video_tagWritesCreate a saved-video tag
create_video_tagWritesCreate a saved-video tag
Create a Video Research tag for saved videos. If a tag with the same name exists, it is returned instead. Uses the shared Video Research limit of 500 operations per 24 hours.
namerequiredstring
Tag name
list_tracking_databasesRead onlyList tracking databases
list_tracking_databasesRead onlyList tracking databases
List the user's Video Research tracking databases: named groups of YouTube channels whose videos TubeMagic tracks. Pinned ones come first. Uses the shared Video Research limit of 500 operations per 24 hours.
searchstring
Text to match in database names
isPinnedboolean
Only pinned or only unpinned databases
pageinteger · default 1
Page number, starting at 1
limitinteger · default 20
Results per page, up to 50
create_tracking_databaseWritesCreate a tracking database
create_tracking_databaseWritesCreate a tracking database
Create a Video Research tracking database. If one with the same name exists (even a deleted one), it is reused. Uses the shared Video Research limit of 500 operations per 24 hours.
namerequiredstring
Database name
isPinnedboolean · default false
Pin it to the top
update_tracking_databaseWritesRename or pin a tracking database
update_tracking_databaseWritesRename or pin a tracking database
Rename a tracking database or pin/unpin it. Uses the shared Video Research limit of 500 operations per 24 hours.
trackingIdrequiredstring
The tracking database id. Use list_tracking_databases to find it
namestring
New name
isPinnedboolean
Pin or unpin it
delete_tracking_databaseDestructiveDelete a tracking database
delete_tracking_databaseDestructiveDelete a tracking database
Delete a tracking database and hide its video formats. Confirm with the user first. Uses the shared Video Research limit of 500 operations per 24 hours.
trackingIdrequiredstring
The tracking database id. Use list_tracking_databases to find it
list_tracked_channelsRead onlyList tracked channels
list_tracked_channelsRead onlyList tracked channels
List the channels in a tracking database with subscribers, videos, average and total views, and durations, with filters and sorting. Uses the shared Video Research limit of 500 operations per 24 hours.
trackingIdrequiredstring
The tracking database id. Use list_tracking_databases to find it
searchstring
Text to match in channel name, handle, or id
minSubscribersnumber
Minimum subscribers
maxSubscribersnumber
Maximum subscribers
minVideosnumber
Minimum videos
maxVideosnumber
Maximum videos
minAvgViewsnumber
Minimum average views
maxAvgViewsnumber
Maximum average views
minTotalViewsnumber
Minimum total views
maxTotalViewsnumber
Maximum total views
minAvgDurationSecondsnumber
Minimum average video duration in seconds
maxAvgDurationSecondsnumber
Maximum average video duration in seconds
durationBucketenum · default "any"
By average video duration: short = under 4 minutes, medium = 4 to 20, long = over 20
anyshortmediumlongsortByenum · default "videos"
namesubscribersvideosavgViewstotalViewsavgDurationtotalDurationsortDirectionenum · default "desc"
ascdescpageinteger · default 1
Page number, starting at 1
limitinteger · default 20
Results per page, up to 50
add_tracked_channelWritesAdd a channel to a tracking database
add_tracked_channelWritesAdd a channel to a tracking database
Add a YouTube channel to a tracking database. TubeMagic first syncs all of its videos, which can take a minute for big channels. Channels with more than 2000 videos are not supported. Uses the shared Video Research limit of 500 operations per 24 hours.
trackingIdrequiredstring
The tracking database id. Use list_tracking_databases to find it
channelrequiredstring
Channel ID (UC...), handle like @mkbhd, channel URL, or name
remove_tracked_channelDestructiveRemove a channel from a tracking database
remove_tracked_channelDestructiveRemove a channel from a tracking database
Remove a channel from a tracking database. Its videos stop appearing in the database. Uses the shared Video Research limit of 500 operations per 24 hours.
trackingIdrequiredstring
The tracking database id. Use list_tracking_databases to find it
channelIdrequiredstring
The channel ID (UC...) as listed by list_tracked_channels
list_tracked_videosRead onlyList tracked videos
list_tracked_videosRead onlyList tracked videos
List videos from all channels in a tracking database with views, engagement, and Outlier Score, plus whether each is saved. Filter by views, Outlier Score, duration, and publish date; sort and page through results. Uses the shared Video Research limit of 500 operations per 24 hours.
trackingIdrequiredstring
The tracking database id. Use list_tracking_databases to find it
searchstring
Text to match in titles, descriptions, and channel names
minViewsnumber
Minimum views
maxViewsnumber
Maximum views
minOutlierScorenumber
Minimum Outlier Score, like 2 for 2x the channel average
maxOutlierScorenumber
Maximum Outlier Score
minDurationSecondsnumber
Minimum duration in seconds
maxDurationSecondsnumber
Maximum duration in seconds
durationBucketenum · default "any"
short = under 4 minutes, medium = 4 to 20, long = over 20
anyshortmediumlongpublishedRangeenum · default "any"
Only videos published within this period
anyhourtodayweekmonthyeardetailsModeenum · default "any"
full = only videos with description, thumbnail, and duration
anyfullsortByenum · default "published"
updatedAtviewspublisheddurationoutlierlikessortDirectionenum · default "desc"
ascdescpageinteger · default 1
Page number, starting at 1
limitinteger · default 20
Results per page, up to 50
suggest_channels_to_trackRead onlySuggest channels to track
suggest_channels_to_trackRead onlySuggest channels to track
Suggest new YouTube channels similar to the ones in a tracking database, found from videos related to its channels. Results are cached for 30 minutes unless refresh is true. Uses the shared Video Research limit of 500 operations per 24 hours.
trackingIdrequiredstring
The tracking database id. Use list_tracking_databases to find it
limitinteger · default 10
Suggestions to return, up to 10
refreshboolean · default false
Ignore cached suggestions
list_video_formatsRead onlyList video formats
list_video_formatsRead onlyList video formats
List generated video formats: reusable title templates like "I Tried [THING] for [TIME]" with their variables, why they work, example titles, and the source video stats. Formats belong to a tracking database or to the user's general feed. Up to 100 formats, a page at a time. Uses the shared Video Research limit of 500 operations per 24 hours.
trackingIdstring
Optional tracking database id. Without it, formats come from the user's general search feed
searchstring
Text to match in formats, titles, channels, and notes
sortByenum · default "updatedAt"
Sort by: updatedAt = Recently updated, outlierScore = Outlier score, views = Video views, subscribers = Channel subscribers, averageViews = Average channel views, publishedAt = Video publish date, channelName = Channel name
sortDirectionenum · default "desc"
ascdescpageinteger · default 1
Page number, starting at 1
limitinteger · default 20
Results per page, up to 50
update_video_format_notesWritesUpdate video format notes
update_video_format_notesWritesUpdate video format notes
Save the user's notes on a video format. Notes are kept per tracking database or general feed. Uses the shared Video Research limit of 500 operations per 24 hours.
formatIdrequiredstring
The format id from list_video_formats
notesrequiredstring | null
The notes, up to 2000 characters; null clears them
trackingIdstring
Optional tracking database id. Without it, formats come from the user's general search feed
list_video_format_channelsRead onlyList channels for format generation
list_video_format_channelsRead onlyList channels for format generation
List the channels that can be picked for advanced format generation, a page at a time: the channels in a tracking database, or a sample of up to 50 channels from the user's general search feed (returned as one page). Uses the shared Video Research limit of 500 operations per 24 hours.
trackingIdstring
Optional tracking database id. Without it, formats come from the user's general search feed
pageinteger · default 1
Page number, starting at 1
limitinteger · default 20
Results per page, up to 50
generate_video_formatsWritesGenerate video formats
generate_video_formatsWritesGenerate video formats
Generate video formats (reusable title templates) from high-performing videos, for a tracking database or the user's general search feed. Default mode picks 10 source videos automatically and reserves 10 credits. Advanced mode: pass channels with how many formats each (up to 50 in total); use list_video_format_channels to pick them. Charges 1 credit per format actually saved, refunds the rest, and refunds everything if it fails. Needs a paid TubeMagic plan.
trackingIdstring
Optional tracking database id. Without it, formats come from the user's general search feed
channelsobject[]
Advanced mode: the channels to use. Leave empty for default mode
Script Writer
get_script_writer_optionsRead onlyGet Script Writer options
get_script_writer_optionsRead onlyGet Script Writer options
List the Script Writer frameworks, script lengths, reference limits, and exact credit costs for a given length and number of references, plus free scripts left today.
wordsinteger · default 1000
Script length to price
referenceCountinteger · default 0
Number of references to price
write_scriptWritesWrite a YouTube script
write_scriptWritesWrite a YouTube script
Write a full YouTube video script from a topic or brief, using viral scriptwriting frameworks, at a chosen length. Optionally give up to 3 references (YouTube videos up to 30 minutes with captions, or PDF URLs) for the script to draw on without copying. The script is saved to My Scripts and its scriptId can be used to edit it. Long scripts take a minute or two. Needs a paid TubeMagic plan; free models allow 100 scripts per 24 hours, premium models spend credits (see get_script_writer_options).
topicrequiredstring
What the video is about: a topic, brief, or outline, at least 5 words
wordsinteger · default 1000
Script length in words, one of 100, 150, 200, 250, 300, 500, 750, 1000, 1250, 1500, 1750, 2000, 2250, 2500, 2750, 3000. Up to 300 is a Short
frameworksenum[] · default all
Scriptwriting frameworks to apply. Defaults to all of them
Viral Hook DatabaseIntro FrameworksValue Loop StructureStrategic OrderingTension and PacingEmotional WavesPayoff StructuringAdvanced PsychologyOutro StrategyAlgorithm Optimizationreferencesobject[] · default []
Up to 3 references: youtube video URLs or pdf URLs
modelenum · default "anthropic/claude-sonnet-5.5"
AI model to use. Defaults to anthropic/claude-sonnet-5.5 (Sonnet 5.5). anthropic/claude-sonnet-5.5 = Sonnet 5.5 (free, 100 per 24 hours) google/gemini-3-flash-preview = Gemini 3 Flash (free, 100 per 24 hours) anthropic/claude-opus-5.5 = Opus 5.5 (premium, 20 credits for 1000 words without references; more for longer scripts and references) anthropic/claude-fable-5.1 = Fable 5.1 (premium, 40 credits for 1000 words without references; more for longer scripts and references) openai/gpt-6-astra = GPT-6 Astra (premium, 40 credits for 1000 words without references; more for longer scripts and references)
list_my_scriptsRead onlyList my scripts
list_my_scriptsRead onlyList my scripts
List the user's saved scripts (My Scripts), newest first, with a preview of each.
pageinteger · default 1
limitinteger · default 20
Scripts per page, up to 50
get_scriptRead onlyGet a script
get_scriptRead onlyGet a script
Get a saved script in full, with its topic, length, frameworks, model, references, and paragraphs numbered for rewrite_script_paragraph.
scriptIdrequiredstring
The script id from write_script or list_my_scripts
update_scriptWritesUpdate a script
update_scriptWritesUpdate a script
Replace the text of a saved script, for example after the user edits it. Paragraphs are separated by blank lines.
scriptIdrequiredstring
The script id from write_script or list_my_scripts
scriptrequiredstring
The full new script text
delete_scriptDestructiveDelete a script
delete_scriptDestructiveDelete a script
Delete a script from My Scripts. Confirm with the user first.
scriptIdrequiredstring
The script id from write_script or list_my_scripts
generate_script_hooksWritesGenerate alternative script hooks
generate_script_hooksWritesGenerate alternative script hooks
Write alternative opening hooks (first lines) for a saved script, each using a different angle. Use replace_script_hook to swap one in. No credits; needs a paid TubeMagic plan and is blocked once the free daily script limit is reached.
scriptIdrequiredstring
The script id from write_script or list_my_scripts
replace_script_hookWritesReplace a script hook
replace_script_hookWritesReplace a script hook
Replace a saved script's opening hook (its first paragraph) with new text, such as one from generate_script_hooks.
scriptIdrequiredstring
The script id from write_script or list_my_scripts
hookrequiredstring
The new opening hook
rewrite_script_paragraphWritesRewrite a script paragraph
rewrite_script_paragraphWritesRewrite a script paragraph
Rewrite one paragraph of a saved script following an instruction (like "make it funnier" or "add a statistic"), keeping its length and the script's tone, and save it. Get paragraph numbers from get_script. No credits; needs a paid TubeMagic plan.
scriptIdrequiredstring
The script id from write_script or list_my_scripts
paragraphNumberrequiredinteger
The paragraph to rewrite, starting at 1
instructionrequiredstring
How to rewrite it
Thumbnail Generator
get_thumbnail_generator_optionsRead onlyGet Thumbnail Generator options
get_thumbnail_generator_optionsRead onlyGet Thumbnail Generator options
List the thumbnail formats, the credit cost per thumbnail, the user's credits, the connected YouTube channels that can be used as a style reference, and the face image limits.
No parameters
list_thumbnail_projectsRead onlyList thumbnail projects
list_thumbnail_projectsRead onlyList thumbnail projects
List the user's thumbnail projects, most recently updated first, with the latest thumbnail of each. Search matches project names.
searchstring
Text to match in project names
pageinteger · default 1
limitinteger · default 12
Projects per page, up to 50
get_thumbnail_projectRead onlyGet a thumbnail project
get_thumbnail_projectRead onlyGet a thumbnail project
Get a thumbnail project and its thumbnails, oldest first, a page at a time, including image URLs and the prompt used for each. latestImageId is always the newest thumbnail.
projectIdrequiredstring
The thumbnail project id
pageinteger · default 1
Page number, starting at 1
limitinteger · default 20
Thumbnails per page, up to 50
generate_thumbnailWritesGenerate a YouTube thumbnail
generate_thumbnailWritesGenerate a YouTube thumbnail
Create a new thumbnail project and generate its first YouTube thumbnail from an idea. Optionally use a YouTube video for context, a connected channel's latest thumbnails as the style reference, and a face image URL so the person in it appears in the thumbnail. Use edit_thumbnail for changes after that. Takes up to a couple of minutes. Costs 20 credits per thumbnail (refunded if it fails) and needs a paid TubeMagic plan.
promptrequiredstring
The thumbnail idea: subject, text, mood, and anything it must show
formatenum · default "youtube-video"
Thumbnail format: youtube-video = YouTube video (16:9), youtube-shorts = YouTube Shorts (9:16)
youtubeVideoUrlstring
Optional YouTube video URL. Its title, description, and transcript are used to make the thumbnail fit the video
channelIdstring
Optional connected channel ID (from get_thumbnail_generator_options) whose latest thumbnails set the style
faceImageUrlstring
Optional public URL of a face photo (image/jpeg, image/png, image/webp, up to 5 MB) of the person to feature
edit_thumbnailWritesEdit a thumbnail
edit_thumbnailWritesEdit a thumbnail
Generate a new version of a thumbnail in a project by describing the change, like "make the text bigger" or "use a red background". Edits the latest thumbnail in the project unless imageId is given, keeps everything else, and adds the result to the project. Costs 20 credits (refunded if it fails) and needs a paid TubeMagic plan.
projectIdrequiredstring
The thumbnail project id
instructionrequiredstring
The change to make
imageIdstring
The thumbnail to edit (from get_thumbnail_project). Defaults to the latest one
formatenum
Thumbnail format: youtube-video = YouTube video (16:9), youtube-shorts = YouTube Shorts (9:16). Defaults to the edited thumbnail's format
youtubeVideoUrlstring
Optional YouTube video URL. Its title, description, and transcript are used to make the thumbnail fit the video
rename_thumbnail_projectWritesRename a thumbnail project
rename_thumbnail_projectWritesRename a thumbnail project
Rename a thumbnail project.
projectIdrequiredstring
The thumbnail project id
titlerequiredstring
The new project name
delete_thumbnail_projectDestructiveDelete a thumbnail project
delete_thumbnail_projectDestructiveDelete a thumbnail project
Delete a thumbnail project and all its thumbnails. Confirm with the user first.
projectIdrequiredstring
The thumbnail project id
TubeMagic Chat
get_chat_optionsRead onlyGet TubeMagic Chat options
get_chat_optionsRead onlyGet TubeMagic Chat options
List the TubeMagic Chat models with their credit cost per reply, the user's credits, the connected YouTube channels the chat can focus on, and suggested prompts.
No parameters
send_chat_messageWritesSend a TubeMagic Chat message
send_chat_messageWritesSend a TubeMagic Chat message
Ask TubeMagic Chat, a YouTube assistant that can read the user's connected channels and videos, and get its reply. Leave chatId empty to start a new chat, or pass one to continue it with its history. It only answers YouTube questions (channels, videos, ideas, titles, thumbnails, SEO, analytics, growth). Every reply spends credits based on the model (see get_chat_options) and needs a paid TubeMagic plan; failed replies are refunded.
messagerequiredstring
The message to send
chatIdstring
Chat to continue. Leave empty to start a new chat
modelenum · default "anthropic/claude-sonnet-5.5"
AI model for the reply. Defaults to anthropic/claude-sonnet-5.5. Every reply spends credits: ~deepseek/deepseek-v4-flash-latest = DeepSeek V4 Flash (Low, 2 credits per reply) anthropic/claude-sonnet-5.5 = Claude Sonnet 5.5 (Medium, 5 credits per reply) anthropic/claude-opus-5.5 = Claude Opus 5.5 (High, 8 credits per reply) anthropic/claude-fable-5.1 = Claude Fable 5.1 (Extra High, 16 credits per reply) openai/gpt-6-astra = GPT-6 Astra (Extra High, 16 credits per reply)
channelIdstring
Optional connected channel ID (from get_chat_options) to focus the answer on
retry_chat_replyWritesRetry a TubeMagic Chat reply
retry_chat_replyWritesRetry a TubeMagic Chat reply
Get a reply to the last message of a chat when it has none yet, for example after a failed reply. Spends credits like send_chat_message.
chatIdrequiredstring
The chat id
modelenum · default "anthropic/claude-sonnet-5.5"
AI model for the reply. Defaults to anthropic/claude-sonnet-5.5. Every reply spends credits: ~deepseek/deepseek-v4-flash-latest = DeepSeek V4 Flash (Low, 2 credits per reply) anthropic/claude-sonnet-5.5 = Claude Sonnet 5.5 (Medium, 5 credits per reply) anthropic/claude-opus-5.5 = Claude Opus 5.5 (High, 8 credits per reply) anthropic/claude-fable-5.1 = Claude Fable 5.1 (Extra High, 16 credits per reply) openai/gpt-6-astra = GPT-6 Astra (Extra High, 16 credits per reply)
channelIdstring
Optional connected channel ID (from get_chat_options) to focus the answer on
list_chatsRead onlyList TubeMagic chats
list_chatsRead onlyList TubeMagic chats
List the user's TubeMagic chats, most recently updated first, with the latest message of each. Search matches titles and messages.
searchstring
Text to match in chat titles and messages
pageinteger · default 1
limitinteger · default 10
Chats per page, up to 50
get_chatRead onlyGet a TubeMagic chat
get_chatRead onlyGet a TubeMagic chat
Get a TubeMagic chat and its messages, oldest first, a page at a time. Use pagination.totalPages to jump to the latest messages.
chatIdrequiredstring
The chat id
pageinteger · default 1
Page number, starting at 1
limitinteger · default 20
Messages per page, up to 50
rename_chatWritesRename a TubeMagic chat
rename_chatWritesRename a TubeMagic chat
Rename a TubeMagic chat.
chatIdrequiredstring
The chat id
titlerequiredstring
The new chat title
delete_chatDestructiveDelete a TubeMagic chat
delete_chatDestructiveDelete a TubeMagic chat
Delete a TubeMagic chat and its messages. Confirm with the user first.
chatIdrequiredstring
The chat id
Ideas Manager
list_idea_channelsRead onlyList Ideas Manager channels
list_idea_channelsRead onlyList Ideas Manager channels
List the user's Ideas Manager channels (boards that hold video ideas), with how many active ideas each has. Up to 10 channels.
No parameters
create_idea_channelWritesCreate an Ideas Manager channel
create_idea_channelWritesCreate an Ideas Manager channel
Create an Ideas Manager channel to collect video ideas in. Up to 10 channels.
namerequiredstring
The channel name
rename_idea_channelWritesRename an Ideas Manager channel
rename_idea_channelWritesRename an Ideas Manager channel
Rename an Ideas Manager channel.
channelIdrequiredstring
The idea channel ID from list_idea_channels
namerequiredstring
The new channel name
list_ideasRead onlyList ideas
list_ideasRead onlyList ideas
List the ideas in an Ideas Manager channel in board order, filtered like its tabs: active, completed, or archived. Each idea has its progress (scripted, recorded, edited), scheduled date, and thumbnail.
channelIdrequiredstring
The idea channel ID from list_idea_channels
statusenum · default "active"
active, completed, archived, or all
searchstring
Text to match in idea titles and descriptions
pageinteger · default 1
Page number, starting at 1
limitinteger · default 20
Ideas per page, up to 50
add_ideaWritesAdd an idea
add_ideaWritesAdd an idea
Add a video idea to the end of an Ideas Manager channel, for example one from generate_video_idea.
channelIdrequiredstring
The idea channel ID from list_idea_channels
titlerequiredstring
The idea title
descriptionstring
Notes about the idea
thumbnailUrlstring
Optional image URL to show as the idea thumbnail
scheduledDatestring
Optional date to make the video, like 2026-10-15
import_youtube_ideaWritesImport a YouTube video as an idea
import_youtube_ideaWritesImport a YouTube video as an idea
Add a YouTube video to an Ideas Manager channel as an idea, with its title, thumbnail, and views, to use as inspiration.
channelIdrequiredstring
The idea channel ID from list_idea_channels
videoUrlrequiredstring
A YouTube video or Shorts URL
update_ideaWritesUpdate an idea
update_ideaWritesUpdate an idea
Update an idea: title, description, scheduled date, thumbnail URL, progress (scripted, recorded, edited), completed, or archived. Only the fields given change.
channelIdrequiredstring
The idea channel ID from list_idea_channels
ideaIdrequiredstring
The idea ID from list_ideas
titlestring
descriptionstring
scheduledDatestring | null
A date like 2026-10-15, or null to clear it
thumbnailUrlstring | null
Image URL, or null to remove the thumbnail
progressenum[]
The steps done so far, from: SCRIPTED, RECORDED, EDITED
completedboolean
Mark the idea completed or active again
archivedboolean
Archive or un-archive the idea
reorder_ideasWritesReorder ideas
reorder_ideasWritesReorder ideas
Change the order of ideas on an Ideas Manager channel board. The ideas given move to the top in that order; the rest keep their order after them.
channelIdrequiredstring
The idea channel ID from list_idea_channels
ideaIdsrequiredstring[]
Idea IDs in the order they should appear
upload_idea_thumbnailWritesUpload an idea thumbnail
upload_idea_thumbnailWritesUpload an idea thumbnail
Upload an image from a public URL (image/jpeg, image/png, image/webp, up to 10 MB) as an idea's thumbnail, hosted by TubeMagic. Needs the Premium plan, like the website.
channelIdrequiredstring
The idea channel ID from list_idea_channels
ideaIdrequiredstring
The idea ID from list_ideas
imageUrlrequiredstring
Public URL of the image
Repurpose Idea
repurpose_ideaWritesRepurpose a video idea
repurpose_ideaWritesRepurpose a video idea
Turn an existing video idea or community post idea into a new one: a different angle, a Short, a series, a hot take, a beginner version, or a collab. Returns a new title and why it works. Use it on results from generate_video_idea or generate_community_post. Needs a paid TubeMagic plan. Allows 100 repurposes per 24 hours for each source.
titlerequiredstring
The original idea title
descriptionstring
Why the original idea works, if known
typeenum · default "different-angle"
different-angle = Different Angle (Fresh perspective on same topic), make-short = Make it a Short (Adapt for YouTube Shorts), series = Series Expansion (Turn into a multi-part series), controversial = Hot Take (Add a provocative spin), beginner = Beginner Friendly (Reframe for newcomers), collab = Collab Concept (Reimagine as a collab)
channelNamestring
Optional channel name or handle the idea is for
fromenum · default "video-idea"
Where the idea came from: video-idea or community-post
Video Timestamps
generate_video_timestampsWritesGenerate YouTube video timestamps
generate_video_timestampsWritesGenerate YouTube video timestamps
Generate chapter timestamps (like "00:00 - Introduction") for a YouTube video from its transcript, ready to paste into the description. Works for videos up to 60 minutes long that have captions. Needs a paid TubeMagic plan. Allows 100 per 24 hours.
videoUrlrequiredstring
A YouTube video URL, like https://youtu.be/VIDEO_ID
Micro Tools
Channel Name Generator
generate_channel_namesWritesGenerate YouTube channel names
generate_channel_namesWritesGenerate YouTube channel names
Generate 3 catchy YouTube channel name ideas from a short description of what the channel is about. Needs a paid TubeMagic plan. Allows 100 generations per 24 hours.
descriptionrequiredstring
What the channel is about, in 4 to 50 words
Formatted Transcript
get_formatted_transcriptWritesGet a formatted YouTube transcript
get_formatted_transcriptWritesGet a formatted YouTube transcript
Get the transcript of a YouTube video, cleaned up with punctuation, casing, and paragraphs without changing the words. Works for videos up to 1 hour long that have captions. Can leave out sponsor segments. Needs a paid TubeMagic plan. Allows 100 transcripts per 24 hours.
videoUrlrequiredstring
A YouTube video or Shorts URL, like https://youtu.be/VIDEO_ID
skipSponsorsboolean · default false
Leave out sponsor and promotion segments
My Channels
Channels
list_my_channelsRead onlyList my YouTube channels
list_my_channelsRead onlyList my YouTube channels
List the YouTube channels connected to the user's TubeMagic account (My Channels), with subscribers, video count, and average views. Up to 10 channels can be connected.
No parameters
search_youtube_channelsRead onlySearch YouTube channels
search_youtube_channelsRead onlySearch YouTube channels
Search YouTube for channels by name or handle, to find one to connect. Each result says whether it is already connected.
queryrequiredstring
Channel name or handle to search for
connect_youtube_channelWritesConnect a YouTube channel
connect_youtube_channelWritesConnect a YouTube channel
Connect a YouTube channel to the user's My Channels so TubeMagic tracks its videos and stats. Up to 10 channels. A connected channel can only be disconnected after 90 days, so confirm with the user first. Connecting a channel that is already connected does nothing.
channelrequiredstring
The channel ID (UC...), a handle like @mkbhd, or a channel URL
disconnect_youtube_channelDestructiveDisconnect a YouTube channel
disconnect_youtube_channelDestructiveDisconnect a YouTube channel
Disconnect a YouTube channel from the user's My Channels. Only possible 90 days after it was connected. Confirm with the user first.
channelrequiredstring
A connected channel: its channel ID, handle like @mkbhd, or name
Videos and Analytics
list_my_channel_videosRead onlyList my channel videos
list_my_channel_videosRead onlyList my channel videos
List videos of a connected channel with views and Outlier Score (views divided by the channel average; above 1 means it beat the average). Supports search, time range, sorting, and pages.
channelrequiredstring
A connected channel: its channel ID, handle like @mkbhd, or name
searchstring
Text to match in video titles
timeRangeenum · default "all"
Published within: all = All time, 7d = Last 7 Days, 30d = Last 30 Days, year = Last Year
sortenum · default "latest"
Sort by: latest = Latest, oldest = Oldest, most_views = Most views, least_views = Least views, outlier = Outlier Score
pageinteger · default 1
limitinteger · default 12
Videos per page, up to 24
get_my_channels_overviewRead onlyGet my channels overview
get_my_channels_overviewRead onlyGet my channels overview
Totals across all of the user's connected channels: subscribers, views, indexed videos, average views and likes per video, and the latest upload date.
No parameters
get_my_videoRead onlyGet one of my videos
get_my_videoRead onlyGet one of my videos
Get full details of a video from one of the user's connected channels: views, likes, duration, publish date, and description.
videorequiredstring
A YouTube video ID or URL
Dashboard
Recent Projects
get_recent_projectsRead onlyGet recent projects
get_recent_projectsRead onlyGet recent projects
Get the user's most recent TubeMagic work, like the dashboard: chats, saved videos, scripts, and thumbnail projects, newest first, with links to open each in TubeMagic.
limitinteger · default 10
Items per type, up to 25
Settings
Profile
get_userRead onlyGet TubeMagic user
get_userRead onlyGet TubeMagic user
Get the signed-in TubeMagic user: name, email, plan, and remaining credits.
No parameters
Sessions
list_sessionsRead onlyList signed-in sessions
list_sessionsRead onlyList signed-in sessions
List the devices and browsers currently signed in to the user's TubeMagic account, newest first.
No parameters
log_out_sessionDestructiveLog out a session
log_out_sessionDestructiveLog out a session
Sign out one device or browser from the user's TubeMagic account, using a sessionId from list_sessions. Confirm with the user first.
sessionIdrequiredstring
The sessionId from list_sessions
Logs
list_usage_logsRead onlyList usage logs
list_usage_logsRead onlyList usage logs
List everything the user generated with TubeMagic tools (the Logs page), newest first, with the input and a preview of the output. Filter by tool (see list_usage_log_tools) and date range.
toolstring
Only this tool, by name from list_usage_log_tools
dateFromstring
Only logs on or after this date or time
dateTostring
Only logs on or before this date or time
pageinteger · default 1
Page number, starting at 1
limitinteger · default 20
Logs per page, up to 50
list_usage_log_toolsRead onlyList usage log tools
list_usage_log_toolsRead onlyList usage log tools
List the tool names the user has logs for, to filter list_usage_logs.
No parameters
Credit Logs
list_credit_logsRead onlyList credit logs
list_credit_logsRead onlyList credit logs
List the user's credit history, newest first: credits spent on tools, added by payments, refunded, or changed by an admin. Also returns the current balance.
sourceenum
Only this source: PAYMENT = purchases, PROJECT = tool usage and refunds, ADMIN = admin changes
dateFromstring
Only logs on or after this date or time
dateTostring
Only logs on or before this date or time
pageinteger · default 1
Page number, starting at 1
limitinteger · default 10
Credit logs per page, up to 50
Usage
get_usage_limitsRead onlyGet daily usage limits
get_usage_limitsRead onlyGet daily usage limits
Show how much of each TubeMagic tool's daily free allowance the user has used in the last 24 hours and how much is left, like Settings > Usage, plus the credit balance. Premium models and credit-based tools (thumbnails, chat, sub-niches, video formats) spend credits instead.
No parameters
FAQ
What is MCP?+
The Model Context Protocol is an open standard that lets AI apps use outside tools. TubeMagic’s MCP server gives your AI the same tools you use in the app.
Which AI apps work with TubeMagic?+
ChatGPT, Claude, Claude Code, Cursor, VS Code, Windsurf, and any other client that supports remote MCP servers over Streamable HTTP.
Do I need a paid plan?+
Most tools need a paid TubeMagic plan, just like in the app. Account tools like usage, logs, and sessions work on every plan.
Does it cost extra?+
No. MCP uses the same daily limits and credits as the app. Free models count toward your daily limits; premium models, thumbnails, and chat spend credits.
How do I disconnect an app?+
Open Settings → Developers in TubeMagic and revoke the OAuth client or MCP key. Access stops right away.