100+ integrations are ready to connect to your AI.Connect your first MCP

YouTube Reporting MCP server for your AI

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

Which bulk report types can I schedule for my channel, and which jobs already exist?

Supported YouTube Reporting tools

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_demographics

Who is watching, by AGE BRACKET and GENDER.

youtube_reporting_get_audience_retention

The 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_daily

The 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_monthly

Channel-wide metrics per CALENDAR MONTH, oldest first.

youtube_reporting_get_channel_overview

Headline 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_breakdown

Splits performance by FORMAT — long-form video on demand, Shorts, live streams.

youtube_reporting_get_devices

Views and watch time by DEVICE TYPE — mobile, desktop, tablet, TV, games console.

youtube_reporting_get_external_sources

The websites and apps outside YouTube that embedded or linked to the content, most views first.

youtube_reporting_get_geography

Views and watch time by COUNTRY, most views first.

youtube_reporting_get_playback_locations

WHERE 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_summary

How 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_daily

Estimated earnings per DAY, oldest first.

youtube_reporting_get_revenue_summary

Estimated 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_terms

The YouTube SEARCH TERMS that brought viewers to the channel, most views first.

youtube_reporting_get_subscribed_status

How much of the audience was already SUBSCRIBED when they watched, versus not.

youtube_reporting_get_subscriber_change_daily

Subscribers gained and lost per DAY, oldest first — the series behind "when did I gain or lose subscribers?".

youtube_reporting_get_suggesting_videos

Which OTHER videos YouTube suggested yours from, most views first.

youtube_reporting_get_top_earning_videos

Which videos earned the most over a date range, highest estimated revenue first.

youtube_reporting_get_top_playlists

The channel's playlists ranked by views from inside the playlist.

youtube_reporting_get_top_videos

The 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_sources

Where 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_daily

One video's performance per DAY, oldest first.

youtube_reporting_get_video_performance

Headline numbers for ONE video as a single row.

youtube_reporting_run_report

Retrieve your YouTube Analytics reports.

youtube_reporting_create_bulk_report_job

Creates a job and returns it.

youtube_reporting_list_bulk_report_jobs

Lists jobs.

youtube_reporting_list_groups

Returns a collection of groups that match the API request parameters.

youtube_reporting_list_bulk_reports

Lists reports created by a specific job.

youtube_reporting_download_bulk_report

Method for media download.

youtube_reporting_get_channel_details

Retrieves a list of resources, possibly filtered.

youtube_reporting_get_video_details

Retrieves a list of resources, possibly filtered.

youtube_reporting_list_bulk_report_types

Lists report types.

youtube_reporting_list_playlist_videos

Retrieves a list of resources, possibly filtered.

youtube_reporting_list_playlists

Retrieves a list of resources, possibly filtered.

youtube_reporting_search_my_videos

Retrieves 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_performance

Revenue broken down by AD FORMAT — skippable in-stream, bumper, display and so on — highest gross revenue first.

youtube_reporting_get_card_performance

How the interactive CARDS on the content performed: teaser and card impressions, clicks, and click-through rates.

youtube_reporting_get_cities

Views and watch time by CITY, most views first.

youtube_reporting_get_embed_locations

The specific pages that EMBED the content, most views first.

youtube_reporting_get_operating_systems

Views and watch time by OPERATING SYSTEM — Android, iOS, Windows, Macintosh, smart TV platforms and so on.

youtube_reporting_get_regions

Views and watch time by US STATE (ISO 3166-2 codes like US-CA).

youtube_reporting_get_sharing_services

Where viewers SHARED the content using YouTube's own Share button — WhatsApp, copy-link, Facebook, Reddit and so on.

youtube_reporting_get_traffic_source_details

The detail rows behind ONE traffic source: the actual search terms, the specific suggesting videos, the external URLs, the playlists.

youtube_reporting_create_group

Creates a group.

youtube_reporting_delete_bulk_report_job

Deletes a job.

youtube_reporting_delete_group

Deletes a group.

youtube_reporting_get_bulk_report_job

Gets a job.

youtube_reporting_update_group

Modifies a group.

youtube_reporting_add_group_item

Creates a group item.

youtube_reporting_list_group_items

Returns a collection of group items that match the API request parameters.

youtube_reporting_remove_group_item

Removes an item from a group.

youtube_reporting_get_bulk_report_metadata

Gets the metadata of a specific report.

Connect YouTube Reporting to Claude, ChatGPT and Claude Code

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.

OAuth Client ID1234567890-abc.apps.googleusercontent.com
OAuth Client Secret••••••••••••3f7a
Authorize PopMCP on YouTube ReportingAuthorize

Then just ask for the work

  • “Which bulk report types can I schedule for my channel, and which jobs already exist?”

    • list_bulk_report_types
    • list_bulk_report_jobs
  • “Set up a daily export of my channel's basic stats so we keep a full archive”

    • list_bulk_report_types
    • list_bulk_report_jobs
    • create_bulk_report_job
  • “Open the most recent file from my channel stats job and tell me which videos led”

    • list_bulk_report_jobs
    • list_bulk_reports
    • download_bulk_report
  • “How much did the channel earn each day last month, and which videos earned the most?”

    • get_revenue_daily
    • get_top_earning_videos

Use YouTube Reporting from the assistant you already open

One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.

Claude DesktopCustom connector

Add the PopMCP URL under Customize → Connectors and the tools appear in every chat.

Claude WebCustom connector

The same endpoint, registered in the browser. Nothing to install on the machine you are working from.

ChatGPTCustom connector

Register PopMCP as a custom connector, then let ChatGPT read and update the account.

CodexDesktop & CLI

Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.

OpenCodeCoding agent

Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.

ZCodeDesktop app

Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.

YouTube Reporting MCP server questions

What teams ask before putting YouTube Reporting behind an AI client.

How is YouTube Reporting different from YouTube Analytics?

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.

Why is my new YouTube reporting job still empty?

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.

How large a bulk report can the AI read?

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.

Why did the connection authorize but return no reports?

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.

Does it report YouTube revenue?

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.

Which YouTube Reporting events can PopMCP watch?

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.

Do I have to run or host the YouTube Reporting MCP server myself?

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.

Which AI clients can use this MCP server?

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.

How do I connect YouTube Reporting to Claude Code?

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.

Why do only 35 of the 52 tools load by default?

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.

What is the difference between a tool and a trigger?

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.

Connect YouTube Reporting to your AI in minutes

Launch a hosted MCP endpoint for YouTube Reporting, keep tool access under control, and start testing real workflow prompts right away.

Connect your first MCP