youtube_reporting_ get_ audience_ demographicsWho is watching, by AGE BRACKET and GENDER.
Schedule a daily export job, list the CSV files it has produced and read one day's rows, or ask for last month's top videos, earnings by day and traffic sources without writing a query.
PopMCPYouTube Reporting
Every bulk reporting job, report download, analytics report and channel lookup tool on the connection, plus the threshold triggers PopMCP can watch for you.
52 tools in the full catalog: 45 read and 7 write. 35 load by default, and the rest are found with tool search.
youtube_reporting_ get_ audience_ demographicsWho is watching, by AGE BRACKET and GENDER.
youtube_reporting_ get_ audience_ retentionThe retention curve for ONE video: at each 1% of its duration, what fraction of viewers were still watching (audienceWatchRatio) and how that compares with similar YouTube videos of the same length (relativeRetentionPerformance).
youtube_reporting_ get_ channel_ dailyThe same channel-wide metrics as get_channel_overview but broken out per DAY, oldest first — the series to use for a trend, a chart, or a week-over-week comparison.
youtube_reporting_ get_ channel_ monthlyChannel-wide metrics per CALENDAR MONTH, oldest first.
youtube_reporting_ get_ channel_ overviewHeadline numbers for the whole channel over a date range, as a SINGLE row: views, watch time, average view duration and percentage, subscribers gained and lost, likes, dislikes, comments, shares, and playlist adds/removes.
youtube_reporting_ get_ content_ type_ breakdownSplits performance by FORMAT — long-form video on demand, Shorts, live streams.
youtube_reporting_ get_ devicesViews and watch time by DEVICE TYPE — mobile, desktop, tablet, TV, games console.
youtube_reporting_ get_ external_ sourcesThe websites and apps outside YouTube that embedded or linked to the content, most views first.
youtube_reporting_ get_ geographyViews and watch time by COUNTRY, most views first.
youtube_reporting_ get_ playback_ locationsWHERE the video was played: on its own watch page, embedded on another site, on the channel page, in search results, or in a browse feed.
youtube_reporting_ get_ playlist_ summaryHow ONE playlist performed: how often it was started, views and watch time from inside it, average time spent in it, and views per start.
youtube_reporting_ get_ revenue_ dailyEstimated earnings per DAY, oldest first.
youtube_reporting_ get_ revenue_ summaryEstimated earnings for the channel over a date range as a single row: total estimated revenue, ad revenue, YouTube Premium revenue, gross revenue, ad impressions, CPM and playback-based CPM, and monetized playbacks.
youtube_reporting_ get_ search_ termsThe YouTube SEARCH TERMS that brought viewers to the channel, most views first.
youtube_reporting_ get_ subscribed_ statusHow much of the audience was already SUBSCRIBED when they watched, versus not.
youtube_reporting_ get_ subscriber_ change_ dailySubscribers gained and lost per DAY, oldest first — the series behind "when did I gain or lose subscribers?".
youtube_reporting_ get_ suggesting_ videosWhich OTHER videos YouTube suggested yours from, most views first.
youtube_reporting_ get_ top_ earning_ videosWhich videos earned the most over a date range, highest estimated revenue first.
youtube_reporting_ get_ top_ playlistsThe channel's playlists ranked by views from inside the playlist.
youtube_reporting_ get_ top_ videosThe channel's best-performing videos over a date range, most-viewed first, with watch time, average view duration and percentage, subscribers gained, likes, comments and shares for each.
youtube_reporting_ get_ traffic_ sourcesWhere views came FROM, grouped by source type — YouTube search, suggested/related videos, browse features, subscriptions, external sites, playlists, notifications, Shorts feed, end screens and so on.
youtube_reporting_ get_ video_ dailyOne video's performance per DAY, oldest first.
youtube_reporting_ get_ video_ performanceHeadline numbers for ONE video as a single row.
youtube_reporting_ run_ reportRetrieve your YouTube Analytics reports.
youtube_reporting_ create_ bulk_ report_ jobCreates a job and returns it.
youtube_reporting_ list_ bulk_ report_ jobsLists jobs.
youtube_reporting_ list_ groupsReturns a collection of groups that match the API request parameters.
youtube_reporting_ list_ bulk_ reportsLists reports created by a specific job.
youtube_reporting_ download_ bulk_ reportMethod for media download.
youtube_reporting_ get_ channel_ detailsRetrieves a list of resources, possibly filtered.
youtube_reporting_ get_ video_ detailsRetrieves a list of resources, possibly filtered.
youtube_reporting_ list_ bulk_ report_ typesLists report types.
youtube_reporting_ list_ playlist_ videosRetrieves a list of resources, possibly filtered.
youtube_reporting_ list_ playlistsRetrieves a list of resources, possibly filtered.
youtube_reporting_ search_ my_ videosRetrieves a list of search resources Costs 100 units of the Data API's 10,000/day quota per call (100x a normal read) — use list_playlist_videos on the uploads playlist when you just want a channel's videos, and keep this for genuine keyword search.
youtube_reporting_ get_ ad_ performanceRevenue broken down by AD FORMAT — skippable in-stream, bumper, display and so on — highest gross revenue first.
youtube_reporting_ get_ card_ performanceHow the interactive CARDS on the content performed: teaser and card impressions, clicks, and click-through rates.
youtube_reporting_ get_ citiesViews and watch time by CITY, most views first.
youtube_reporting_ get_ embed_ locationsThe specific pages that EMBED the content, most views first.
youtube_reporting_ get_ operating_ systemsViews and watch time by OPERATING SYSTEM — Android, iOS, Windows, Macintosh, smart TV platforms and so on.
youtube_reporting_ get_ regionsViews and watch time by US STATE (ISO 3166-2 codes like US-CA).
youtube_reporting_ get_ sharing_ servicesWhere viewers SHARED the content using YouTube's own Share button — WhatsApp, copy-link, Facebook, Reddit and so on.
youtube_reporting_ get_ traffic_ source_ detailsThe detail rows behind ONE traffic source: the actual search terms, the specific suggesting videos, the external URLs, the playlists.
youtube_reporting_ create_ groupCreates a group.
youtube_reporting_ delete_ bulk_ report_ jobDeletes a job.
youtube_reporting_ delete_ groupDeletes a group.
youtube_reporting_ get_ bulk_ report_ jobGets a job.
youtube_reporting_ update_ groupModifies a group.
youtube_reporting_ add_ group_ itemCreates a group item.
youtube_reporting_ list_ group_ itemsReturns a collection of group items that match the API request parameters.
youtube_reporting_ remove_ group_ itemRemoves an item from a group.
youtube_reporting_ get_ bulk_ report_ metadataGets the metadata of a specific report.
Authorize once, then an endpoint your client signs into. Nothing to deploy, and nothing to install on the YouTube Reporting side.
Enable the YouTube Analytics API, YouTube Reporting API and YouTube Data API v3 in one Google Cloud project, create a Web application OAuth client with PopMCP's callback URL, paste its Client ID and Secret, and leave both Google boxes ticked.
1234567890-abc.apps.googleusercontent.com••••••••••••3f7acreate_bulk_report_job and delete_bulk_report_job change your scheduled exports, and create_group and delete_group edit analytics groups, as soon as the AI calls them. New connections are read-only, and only clients ticked on the PopMCP consent screen get in.
Drop the PopMCP URL into Claude, ChatGPT, Claude Code, Codex or any other supported client. It signs in through PopMCP with OAuth, so your YouTube Reporting credential never leaves the server.
app.popmcp.com/mcpAsk for something harmless before the agent changes anything. Writes run as soon as it calls them, so confirm it reads the right account first.
Which bulk report types can I schedule for my channel, and which jobs already exist?
youtube_reporting_list_bulk_report_typesok
Then just ask for the work
“Which bulk report types can I schedule for my channel, and which jobs already exist?”
“Set up a daily export of my channel's basic stats so we keep a full archive”
“Open the most recent file from my channel stats job and tell me which videos led”
“How much did the channel earn each day last month, and which videos earned the most?”
One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.
Add the PopMCP URL under Customize → Connectors and the tools appear in every chat.
The same endpoint, registered in the browser. Nothing to install on the machine you are working from.
Register PopMCP as a custom connector, then let ChatGPT read and update the account.
Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.
Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.
Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.
FAQ
What teams ask before putting YouTube Reporting behind an AI client.
The Reporting API is bulk. You create a reporting job for a report type, and YouTube then generates one CSV file per day covering every video, which suits an archive or a data warehouse. This connector pairs those jobs with ready-made report tools such as get_channel_overview, get_top_videos and get_traffic_sources for questions you want answered now. PopMCP's YouTube Analytics connector is the lighter on-demand option, and YouTube Data manages videos and comments.
Because a new job produces nothing for roughly 48 hours, then backfills only about 30 days. Create jobs before you need the numbers, and check list_bulk_report_jobs first, since a job that already exists has history behind it. A 409 from create_bulk_report_job means a job for that report type exists already, which counts as success. YouTube regenerates a day's file when it revises data, so the newest createTime wins.
download_bulk_report parses the CSV and returns the first 500 rows along with the file's real row count, because these files often run to hundreds of thousands of lines. A file over 10 MB is refused with "Upstream response too large", so filter list_bulk_reports with createdAfter and pick a single day. If a question would mean paging through a whole export, a get_ report tool such as get_channel_daily usually answers it directly.
Google shows one checkbox per permission on this consent screen, yt-analytics-monetary.readonly and youtube.readonly, and lets you untick either. YouTube needs both before it returns any report, so PopMCP refuses a connection missing one and names the box to tick; reconnect and leave both ticked. Separately, if your project's Audience says Testing, publish the app first, or Google expires the connection after 7 days and scheduled downloads stop.
Yes, for monetized channels. get_revenue_summary, get_revenue_daily and get_top_earning_videos return estimated revenue, ad revenue and YouTube Premium revenue, but they need the channel in the YouTube Partner Program. A channel that is not monetized returns zeros or a 403, which is an answer about the channel rather than a fault. The figures are estimates, and the last few weeks keep moving until YouTube finalises the month.
Nine thresholds, measured against the channel's own recent levels. They fire when daily views drop or spike against the previous week, watch time falls below your usual day, subscriber losses or gains spike, estimated daily earnings drop, one video's views climb far above the rest, a big share of views moves between search, browse and suggested, or a video's average view percentage falls under your target.
No. PopMCP hosts it and gives you a Streamable HTTP MCP URL. There is nothing to deploy, no callback URL to register, and no infrastructure to keep running or patch.
Any client that supports a remote Streamable HTTP MCP server: Claude Desktop, Claude Web, Claude Code, ChatGPT custom connectors, Codex and the Codex CLI, OpenCode and Z.ai's ZCode, as well as editors such as Cursor, Windsurf and Zed. Your client signs in to PopMCP with OAuth; the provider credential never leaves the server.
Connect YouTube Reporting in PopMCP first, then run claude mcp add --transport http popmcp https://app.popmcp.com/mcp in a terminal. Inside Claude Code, run /mcp and sign in to PopMCP in the browser window it opens, ticking YouTube Reporting on the consent screen. The YouTube Reporting tools are then available in that session, and no YouTube Reporting credential is stored on your machine.
Loading 52 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 35-tool set covering the everyday workflows and keeps the rest searchable, so your AI pulls a specialist tool only when a task needs it. Every tool stays searchable, and on Scale the owner can load the full catalog for a teammate's connection.
A tool is something your AI calls, and there are 52 here. A trigger is something PopMCP watches for you: 9 YouTube Reporting events that can start work on the PopMCP side. Triggers never enter your AI client's context, and none of them ask you to paste a callback URL into YouTube Reporting.
Launch a hosted MCP endpoint for YouTube Reporting, keep tool access under control, and start testing real workflow prompts right away.