youtube-analytics-mcp
youtube-analytics-mcp
ローカルで動作する読み取り専用のMCPサーバーで、ClaudeにあなたのYouTubeチャンネルの非公開Analyticsデータ(再生回数、再生時間、維持率、登録者数、トラフィックソース、視聴者層、収益、サムネイル表示回数/CTR)へのアクセスを提供します。公開APIキーだけで見られるものではありません。
このサーバーは、チャンネル上の何かを編集・アップロード・公開・削除することは一切できません。完全なセキュリティレビューは SECURITY.md を参照してください。
必要条件
Node.js 22+
データを取得したいYouTubeチャンネルを所有(または管理)しているGoogleアカウント
macOS、Linux、またはWSL(
npm run authのブラウザフローはopenコマンドを使用)
Related MCP server: youtube-mcp-server
セットアップ手順
以下の順序で実行してください。手順1〜4はGoogle Cloud Consoleで、手順5〜8はお使いのマシンで行います。
1. Google Cloudプロジェクトを作成する
console.cloud.google.com にアクセスし、新しいプロジェクトを作成します(または既存の使い慣れたプロジェクトを選択)。
2. 3つのAPIを有効にする
プロジェクトで、APIとサービス → ライブラリ に移動し、以下をそれぞれ有効にします:
YouTube Data API v3
YouTube Analytics API
YouTube Reporting API(サムネイルのインプレッション/CTRにのみ必要 — 下記 を参照)
3. OAuth同意画面を設定する
APIとサービス → OAuth同意画面 に移動します。
ユーザーの種類: 外部(Google Workspace アカウントをお持ちの場合は内部も可)
必要なアプリ名・サポートメールアドレス欄を入力
求められたらスコープを追加(アプリが直接要求するため、この画面は存在すれば十分です)
アプリを公開(本番)に設定する。 ここでつまずく人が多いステップです。テストモードのアプリは、明示的にテストユーザーとして追加したアカウントからのみサインインでき、さらにリフレッシュトークンは7日で失効するため、毎週ステップ6をやり直すことになります。本番公開(Googleの審査提出なし)は個人ツールには問題ありません — サインイン時に「未確認アプリ」の警告が表示されますが、詳細 → [アプリ名] に移動(安全ではない) をクリックして続行してください。これは自分のアプリでは想定どおりで安全です。
4. OAuth認証情報を作成する
APIとサービス → 認証情報 → 認証情報を作成 → OAuthクライアントID に移動します。
アプリケーションの種類: デスクトップアプリ
任意の名前を付ける
クライアントID と クライアントシークレット をコピー — 手順5で必要になります
ここでリダイレクトURIを登録する必要はありません。このサーバーは認証時に一時的なローカルポートをバインドし、Googleはデスクトップ型クライアントに対して任意のloopbackアドレスを受け入れます。
5. インストールとビルド
git clone <this-repo-url>
cd youtube-analytics-mcp
npm install
npm run build6. 認証情報の設定
cp .env.example .env.env を編集し、手順4で取得したClient ID / Client Secretを貼り付けます:
GOOGLE_CLIENT_ID=your-client-id.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=your-client-secret.env はgitignoreされているため、コミットされることはありません。オプション設定:
GOOGLE_API_KEY— 現在のツールでは不要です。サーバーを自分で拡張しない限り設定は不要です。REVENUE_CURRENCY— デフォルトはUSD。AdSenseの通貨(例:BRL)で表示したい場合は設定してください。Google側でサーバーサイド変換されます。
7. 認証
npm run authブラウザが開いてGoogleアカウントでログインし、リフレッシュトークンが ~/.youtube-analytics-mcp/token.json に保存されます(アクセス権限はユーザーのみに制限され、リポジトリには保存されません)。この操作は一度だけでOKです。以降はサーバーが自動的にアクセストークンを更新します。
動作確認:
npm run auth:statusAuthenticated とチャンネル名が表示されれば成功です。
8. Claude Codeに設定する
MCP設定ファイルに、このプロジェクトの dist/index.js への絶対パスを指定して追加します:
{
"mcpServers": {
"youtube-analytics-channel": {
"command": "node",
"args": ["/absolute/path/to/youtube-analytics-mcp/dist/index.js"]
}
}
}Claudeを再起動(またはMCPサーバーをリロード)すると、以下のツールが使えるようになります。
利用可能なツール
ツール | 説明 |
| サーバーが起動しているか確認します。 |
| 指定期間( |
| アップロード済み動画の一覧。公開日範囲と縦型/ショート動画でフィルタリング可能。 |
| 1本の動画の詳細な分析データ。 |
| 任意の指標(視聴回数、再生時間、保持率、登録者数、収益、インプレッション、CTR)で動画をランキング。 |
| 日別のパフォーマンスデータ。 |
| トラフィックソース(検索、Shortsフィード、外部サイトなど)別の視聴回数・再生時間。チャンネル全体または動画単位で取得可能。 |
| 国、年齢層、性別ごとの視聴者構成。 |
| 収益の合計または動画・日別の内訳。収益データにアクセスできない場合は、値を捏造せず |
| 2つの期間を比較し、絶対値と変化率で表示します。 |
| サムネイルインプレッション数とクリック率。非同期 — 下記参照。 |
| アドホックなクエリ用の逃げ口。許可されたディメンションと指標の組み合わせに制限されます。 |
インプレッションとCTRに関する注意
サムネイルのインプレッション数とCTR(クリック率)は、インタラクティブAPI(reports.query)ではどのディメンション/フィルターの組み合わせでも公開されていません。これはドキュメントからの推測ではなく、実際に検証済みです。このデータはYouTubeのバルク「リーチレポート」という別の非同期ジョブAPIでのみ取得できます:
get_impressions_and_ctrを初回呼び出しすると、Googleにリーチレポートのジョブが登録されます。Googleが最初のレポートを生成するまでに24〜48時間かかり、その後はほぼ毎日新しいレポートが生成されます。
以降、
get_impressions_and_ctr(またはインプレッション/CTRでの並び替えを含むget_top_videos)を呼び出すたびに、新しいレポートをローカルキャッシュ(~/.youtube-analytics-mcp/reach-cache.json)に同期してから、そのキャッシュから回答します。
最初のレポートが生成されるまでは、impressions: 0、impressionsCtr: null、およびその理由を説明する note が返されます。これは想定どおりの動作であり、バグではありません。
トラブルシューティング
npm run authで「アクセスがブロックされました」: OAuth同意画面がまだ「テスト」モードです。手順3に戻り、アカウントをテストユーザーに追加するか、本番環境に公開してください。NotAuthenticatedErrorが発生:npm run authを実行してください。収益が常に
0: チャンネルが収益化されていないか、その期間の数値が本当にゼロの可能性があります。このツールは収益を捏造しません — 実際の権限/アクセスエラーかどうかはget_revenue_analyticsのavailableフィールドで確認してください。get_impressions_and_ctr/ インプレッション/CTRでソートしたget_top_videosが何も返さない: レスポンスのdataCoverageを確認してください。earliestDateがnullの場合、レポートジョブがまだ最初のレポートを生成していません(初回呼び出しから最大24〜48時間かかります)。
テスト
npm testセキュリティ
SECURITY.md に完全なセキュリティレビュー(OWASP Top 10含む)があります。要約:すべてのシークレットはあなたのマシン上、リポジトリ外にのみ保存され、Google APIへのリクエストはすべて検証済みです。
ライセンス
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceThis read-only MCP Server allows you to connect to YouTube Analytics data from Claude Desktop through CData JDBC Drivers. Free (beta) read/write servers available at https://www.cdata.com/solutions/mcp1MIT
- AlicenseAqualityCmaintenanceA local stdio MCP server that gives Claude (or any MCP client) full programmatic control over a single YouTube channel, including video upload, channel management, comments, analytics, and more.4633MIT
- AlicenseNot gradedqualityCmaintenanceA local MCP server that connects Claude to your YouTube channel, enabling video analysis, performance tracking, comment reading, and niche suggestions.20MIT
- AlicenseAqualityCmaintenanceA local-first MCP server for inspecting and managing a creator-owned YouTube channel, using Google's official YouTube Data API v3 and Analytics API.1013MIT
Related MCP Connectors
Hosted Amazon Seller and Vendor MCP server for Claude, ChatGPT, Cursor, Codex, Gemini, Copilot.
MCP server giving Claude AI access to 22+ NYC public-record databases for real estate due diligence
MCP server for Google Veo AI video generation
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/adilsonicjunior/youtube-analytics-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server