MCP YouTube Transcript
An MCP server retrieving transcripts of YouTube videos
Description from the maker (original English)
The complete open-source SEO data stack for AI agents: 7 sources, 86 tools, one MCP server
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
GOOGLE_APPLICATION_CREDENTIALS, SEO_STACK_OAUTH_CLIENT, GA4_PROPERTY_ID, GSC_SITE_URL, ADSENSE_ACCOUNT_ID, ADSENSE_CURRENCY, BING_WEBMASTER_API_KEY, BING_SITE_URL, CLARITY_API_TOKEN, GOOGLE_ADS_DEVELOPER_TOKEN, GOOGLE_ADS_CLIENT_ID, GOOGLE_ADS_CLIENT_SECRET, GOOGLE_ADS_REFRESH_TOKEN, GOOGLE_ADS_CUSTOMER_ID, GOOGLE_ADS_LOGIN_CUSTOMER_ID, OPENPAGERANK_API_KEYValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"seo-stack": {
"command": "uvx",
"args": [
"seo-stack-mcp"
],
"env": {
"GOOGLE_APPLICATION_CREDENTIALS": "your-value",
"SEO_STACK_OAUTH_CLIENT": "your-value",
"GA4_PROPERTY_ID": "your-value",
"GSC_SITE_URL": "your-value",
"ADSENSE_ACCOUNT_ID": "your-value",
"ADSENSE_CURRENCY": "your-value",
"BING_WEBMASTER_API_KEY": "your-value",
"BING_SITE_URL": "your-value",
"CLARITY_API_TOKEN": "your-value",
"GOOGLE_ADS_DEVELOPER_TOKEN": "your-value",
"GOOGLE_ADS_CLIENT_ID": "your-value",
"GOOGLE_ADS_CLIENT_SECRET": "your-value",
"GOOGLE_ADS_REFRESH_TOKEN": "your-value",
"GOOGLE_ADS_CUSTOMER_ID": "your-value",
"GOOGLE_ADS_LOGIN_CUSTOMER_ID": "your-value",
"OPENPAGERANK_API_KEY": "your-value"
}
}
}
}Run this in your terminal
claude mcp add seo-stack --env GOOGLE_APPLICATION_CREDENTIALS=your-value --env SEO_STACK_OAUTH_CLIENT=your-value --env GA4_PROPERTY_ID=your-value --env GSC_SITE_URL=your-value --env ADSENSE_ACCOUNT_ID=your-value --env ADSENSE_CURRENCY=your-value --env BING_WEBMASTER_API_KEY=your-value --env BING_SITE_URL=your-value --env CLARITY_API_TOKEN=your-value --env GOOGLE_ADS_DEVELOPER_TOKEN=your-value --env GOOGLE_ADS_CLIENT_ID=your-value --env GOOGLE_ADS_CLIENT_SECRET=your-value --env GOOGLE_ADS_REFRESH_TOKEN=your-value --env GOOGLE_ADS_CUSTOMER_ID=your-value --env GOOGLE_ADS_LOGIN_CUSTOMER_ID=your-value --env OPENPAGERANK_API_KEY=your-value -- uvx seo-stack-mcpFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"seo-stack": {
"command": "uvx",
"args": [
"seo-stack-mcp"
],
"env": {
"GOOGLE_APPLICATION_CREDENTIALS": "your-value",
"SEO_STACK_OAUTH_CLIENT": "your-value",
"GA4_PROPERTY_ID": "your-value",
"GSC_SITE_URL": "your-value",
"ADSENSE_ACCOUNT_ID": "your-value",
"ADSENSE_CURRENCY": "your-value",
"BING_WEBMASTER_API_KEY": "your-value",
"BING_SITE_URL": "your-value",
"CLARITY_API_TOKEN": "your-value",
"GOOGLE_ADS_DEVELOPER_TOKEN": "your-value",
"GOOGLE_ADS_CLIENT_ID": "your-value",
"GOOGLE_ADS_CLIENT_SECRET": "your-value",
"GOOGLE_ADS_REFRESH_TOKEN": "your-value",
"GOOGLE_ADS_CUSTOMER_ID": "your-value",
"GOOGLE_ADS_LOGIN_CUSTOMER_ID": "your-value",
"OPENPAGERANK_API_KEY": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"seo-stack": {
"type": "stdio",
"command": "uvx",
"args": [
"seo-stack-mcp"
],
"env": {
"GOOGLE_APPLICATION_CREDENTIALS": "your-value",
"SEO_STACK_OAUTH_CLIENT": "your-value",
"GA4_PROPERTY_ID": "your-value",
"GSC_SITE_URL": "your-value",
"ADSENSE_ACCOUNT_ID": "your-value",
"ADSENSE_CURRENCY": "your-value",
"BING_WEBMASTER_API_KEY": "your-value",
"BING_SITE_URL": "your-value",
"CLARITY_API_TOKEN": "your-value",
"GOOGLE_ADS_DEVELOPER_TOKEN": "your-value",
"GOOGLE_ADS_CLIENT_ID": "your-value",
"GOOGLE_ADS_CLIENT_SECRET": "your-value",
"GOOGLE_ADS_REFRESH_TOKEN": "your-value",
"GOOGLE_ADS_CUSTOMER_ID": "your-value",
"GOOGLE_ADS_LOGIN_CUSTOMER_ID": "your-value",
"OPENPAGERANK_API_KEY": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
GOOGLE_APPLICATION_CREDENTIALS envSEO_STACK_OAUTH_CLIENT envGA4_PROPERTY_ID envGSC_SITE_URL envADSENSE_ACCOUNT_ID envADSENSE_CURRENCY envBING_SITE_URL envGOOGLE_ADS_CLIENT_ID envGOOGLE_ADS_CUSTOMER_ID envGOOGLE_ADS_LOGIN_CUSTOMER_ID envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified with the GitHub account Raffaele86, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: BING_WEBMASTER_API_KEY, CLARITY_API_TOKEN, GOOGLE_ADS_DEVELOPER_TOKEN, GOOGLE_ADS_CLIENT_SECRET, GOOGLE_ADS_REFRESH_TOKEN, OPENPAGERANK_API_KEY
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.2.0) reached the registry 4 months ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Python (uv) on your computer.
In the same category: MCP YouTube Transcript, Google Analytics MCP, BibiGPT YouTube Video Summarizer
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
An MCP server retrieving transcripts of YouTube videos
GA4 MCP server for AI agents: schema discovery, server-side aggregation, analysis-ready defaults.
AI video summarizer: summarize and transcribe YouTube, Bilibili, TikTok and podcast videos.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
The complete open-source SEO data stack for AI agents. Google Search Console, Google Analytics 4, Bing Webmaster Tools, Microsoft Clarity, Google AdSense, Google Keyword Planner and Open PageRank in a single MCP server — with built-in analyst tools (cannibalization check, low-hanging fruit, content gap, weekly report), not just raw API wrappers.
Self-hosted, free, MIT. Works with Claude Desktop, Claude Code, Cursor, and any MCP client.
Add to your MCP client config (Claude Desktop claude_desktop_config.json, Cursor mcp.json, or claude mcp add):
{
"mcpServers": { "seo-stack": { "command": "uvx", "args": ["seo-stack-mcp"], "env": { "GOOGLE_APPLICATION_CREDENTIALS": "/path/to/service-account.json", "GA4_PROPERTY_ID": "123456789", "BING_WEBMASTER_API_KEY": "your-key", "CLARITY_API_TOKEN": "your-token" } } } }
Every env var is optional — set only the sources you want. That's it: restart your client and ask *"what are my top queries this week?"*.
To run the latest development version straight from GitHub, use "args": ["--from", "git+https://github.com/Raffaele86/seo-stack-mcp", "seo-stack-mcp"] instead.
| Source | What you need | Where to get it |
|---|---|---|
| GSC + GA4 | Service account JSON (recommended) → GOOGLE_APPLICATION_CREDENTIALS | Google Cloud Console → create service account → enable Search Console API + Analytics Data API → add the SA email as a user in GSC / GA4 |
| GSC + GA4 (alt) | OAuth desktop client JSON → SEO_STACK_OAUTH_CLIENT | First run opens a browser for consent; refresh token cached in ~/.config/seo-stack-mcp/ |
| Bing | BING_WEBMASTER_API_KEY | Bing Webmaster Tools → Settings → API access |
| Clarity | CLARITY_API_TOKEN | Microsoft Clarity → project → Settings → Data Export API |
| AdSense | Google credentials above + ADSENSE_ACCOUNT_ID (accounts/pub-XXXX...) | AdSense → Account → Settings → Account information. Enable the AdSense Management API in Google Cloud. If you use OAuth and enable AdSense later, delete the cached token in ~/.config/seo-stack-mcp/ to re-consent with the new scope |
| Keyword Planner | GOOGLE_ADS_DEVELOPER_TOKEN, GOOGLE_ADS_CLIENT_ID, GOOGLE_ADS_CLIENT_SECRET, GOOGLE_ADS_REFRESH_TOKEN, GOOGLE_ADS_CUSTOMER_ID (+ GOOGLE_ADS_LOGIN_CUSTOMER_ID under an MCC) | Google Ads API Center → developer token (Basic access is enough; API calls are free). Also needs the google-ads extra: uvx --with google-ads seo-stack-mcp or pip install seo-stack-mcp[ads] |
| Open PageRank | OPENPAGERANK_API_KEY | Open PageRank — free API key, 10,000 calls/hour |
Optional defaults: GSC_SITE_URL, BING_SITE_URL (so you don't repeat the site on every question), ADSENSE_CURRENCY (default USD), GOOGLE_ADS_LOCATION_ID / GOOGLE_ADS_LANGUAGE_ID (Keyword Planner geo/language defaults, default US / English).
| Tool | Description |
|---|---|
gsc_bulk_inspect_urls | Inspect multiple URLs in batch via the URL Inspection API. Max 50 URLs per call. |
gsc_bulk_request_indexing | Request indexing for multiple URLs via the Google Indexing API. Max 50 URLs. |
gsc_cannibalization_check | Find queries where multiple pages compete (keyword cannibalization). Shows queries with 2+ ranking pages. |
gsc_compare_periods | Compare two periods: shows deltas of clicks, impressions, CTR and position per item. |
gsc_content_gap_analysis | Content gap analysis: queries where the competitor ranks but you don't (or you are far behind). |
gsc_country_performance | Performance by country: clicks, impressions, CTR and average position. Default: last 28 days. |
gsc_daily_stats | Aggregated daily site statistics: clicks, impressions, CTR and average position per day. |
gsc_declining_queries | Queries losing clicks/positions: compares last N days vs the equivalent previous period. |
gsc_delete_sitemap | Remove a sitemap from Google Search Console. Requires write scope on the credentials. |
gsc_device_performance | Compare performance across MOBILE vs DESKTOP vs TABLET. Default: last 28 days. |
gsc_indexing_status_summary | Indexing status summary for multiple URLs: how many indexed, not indexed, and errored. |
gsc_inspect_url | Inspect a URL via the Google Search Console URL Inspection API. |
gsc_keyword_opportunities | Queries with high impressions but low CTR in position 5-20: optimization opportunities. |
gsc_list_sitemaps | List all sitemaps of a site in Google Search Console. |
gsc_list_sites | List all Google Search Console properties available to the configured credentials. |
gsc_low_hanging_fruit | Queries in position 3-10 with high impression volume: small optimizations can push them into the top 3. |
gsc_page_trend | Daily trend for a specific page over the last N days (default 90). |
gsc_pages_for_query | Which pages rank for a specific query? Shows all pages with performance data. |
gsc_queries_for_page | Which queries drive traffic to a specific page? Shows all keywords with performance data. |
gsc_query_trend | Daily trend for a specific query over the last N days (default 90). |
gsc_request_indexing | Request indexing of a URL via the Google Indexing API. |
gsc_rising_queries | Rising queries: compares last N days vs the equivalent previous period. |
gsc_search_analytics | Query Search Analytics: clicks, impressions, CTR and position for the requested dimensions. |
gsc_search_analytics_filtered | Search Analytics with advanced filters. Filters: query_contains, query_regex, page_contains, page_regex, country (e.g. 'ita'), device (MOBILE/DESKTOP/TABLET). |
gsc_search_appearance | Performance by SERP result type (rich snippet, video, FAQ, etc.). Default: last 28 days. |
gsc_submit_sitemap | Submit a sitemap to Google Search Console. Requires write scope on the credentials. |
gsc_top_pages | Top pages by clicks or impressions. order_by: clicks, impressions, ctr, position. Default: last 28 days. |
gsc_top_queries | Top queries by clicks or impressions. order_by: clicks, impressions, ctr, position. Default: last 28 days. |
gsc_weekly_report | Automatic weekly report: last 7 days vs previous 7 days metrics with deltas and top queries/pages. |
| Tool | Description |
|---|---|
ga4_compare_periods | Compare two periods with percentage delta on key metrics. |
ga4_conversion_paths | User paths: acquisition source → landing page with sessions and users. |
ga4_events | Top GA4 events with count and number of users. |
ga4_landing_pages | Entry pages (landing pages) with sessions, users and bounce rate. |
ga4_overview | Site overview: users, sessions, pageviews, bounce rate, average session duration. |
ga4_page_performance | Detailed performance of a single page with device and source breakdown. |
ga4_realtime | Realtime report: pages currently being viewed and active users. |
ga4_top_pages | Top pages by traffic with full metrics (pageviews, users, duration, bounce rate). |
ga4_traffic_sources | Traffic breakdown by source/medium (e.g. google/organic, direct/none). |
ga4_user_demographics | User demographics breakdown: country, device, browser, language. |
| Tool | Description |
|---|---|
bing_crawl_issues | URLs with crawl problems (4xx/5xx errors, redirects, etc.). |
bing_crawl_stats | Bing crawl statistics: crawled pages, errors, redirects, etc. |
bing_keyword | Bing impression volume for an exact query (impressions + broad). |
bing_keyword_stats | Historical statistics for a keyword on Bing: impressions and trend. |
bing_link_counts | Pages with the highest number of backlinks according to Bing. |
bing_pages_for_query | Pages that rank for a specific query on Bing. |
bing_queries_for_page | Search queries that drive traffic to a specific page. |
bing_query_page_detail | Detailed statistics for a specific query + page combination. |
bing_query_traffic | Daily traffic trend for a specific query on Bing. |
bing_related_keywords | Keywords related to a search term on Bing, with impression data. |
bing_sitemaps | List all sitemaps/feeds submitted to Bing. |
bing_sites | List all sites verified in the Bing Webmaster Tools account. |
bing_submission_quota | Check the URL submission quota for Bing. |
bing_submit_sitemap | Submit a new sitemap/feed to Bing. |
bing_submit_url | Submit a URL to Bing for indexing. |
bing_submit_urls_batch | Submit a batch of URLs to Bing for indexing (max 500). |
bing_top_pages | Top pages on Bing with clicks, impressions and average position. |
bing_top_queries | Top Bing search queries with clicks, impressions and average position. |
bing_traffic_stats | Daily Bing traffic statistics: clicks and impressions over time. |
bing_url_info | Indexing status of a specific URL on Bing. |
bing_url_links | Inbound backlinks to a specific URL according to Bing. |
bing_url_traffic | Traffic data for a specific URL on Bing. |
| Tool | Description |
|---|---|
clarity_breakdown | Free-form raw breakdown (1-3 dimensions). Power-user — costs 1 quota unit if not already cached. |
clarity_dead_clicks | Top URLs with dead clicks (clicks on non-interactive elements — a UX problem signal). |
clarity_engagement | Engagement Time + Scroll Depth per URL (or another dimension). |
clarity_excessive_scroll | Top URLs with excessive scrolling (users hunting for info they can't easily find). |
clarity_popular_pages | Top URLs by visits over the last days (Popular Pages metric, dimension=URL). |
clarity_quickback_clicks | Top URLs with quickback clicks (user goes back immediately — page not relevant). |
clarity_quota_status | Daily quota status (local counter, does not call the API). |
clarity_rage_clicks | Top URLs with rage clicks (fast repeated clicks — user frustration). |
clarity_script_errors | Top URLs with JS errors + error clicks (technical problems on the page). |
clarity_traffic | Traffic breakdown from Microsoft Clarity (sessions, bot %, pages per session). |
| Tool | Description |
|---|---|
adsense_alerts | Active alerts on the AdSense account (severity, type, message). |
adsense_by_ad_unit | Performance per ad unit: earnings, impressions, clicks, CTR, eCPM. |
adsense_by_country | Revenue breakdown by country, sorted by earnings. |
adsense_by_platform | Revenue breakdown by device platform (Desktop, Mobile, Tablet). |
adsense_compare_periods | Compare two periods with percentage deltas on key metrics. |
adsense_earnings_by_date | Daily earnings with total, average and trend. |
adsense_earnings_overview | Earnings overview: estimated earnings, page views, impressions, clicks, RPM, CTR. |
adsense_payments | Recent payments on the AdSense account. |
| adsense_sites | Sites link
Only the beginning is shown; read the rest in the repo