youtube-analytics-mcp
youtube-analytics-mcp
AI 어시스턴트에게 전체 YouTube Analytics, Data v3 및 Reporting API 표면을 제공하는 MCP 서버로, 소유한 채널(여러 채널 동시 포함)을 대상으로 합니다.
대부분의 YouTube MCP 서버는 소수의 메트릭 문자열을 하드코딩하므로, 사전 설정 목록에 없는 질문은 서버를 포크하지 않고서는 답할 수 없습니다. 이 서버는 반대 방식으로 구축되었습니다: youtube_analytics_query는 reports.query가 받는 모든 매개변수를 받고, youtube_data_call / youtube_reporting_call은 다른 두 API에 대해 동일하게 작동합니다. 사전 설정은 그 위의 편의 기능일 뿐, 유일한 경로가 아닙니다.
자체 Google Cloud OAuth 클라이언트를 가져와야 합니다. 이 패키지에는 아무것도 포함되어 배포되지 않으며, 어떤 자격 증명도 제3자를 통과하지 않고, 모든 것이 stdio를 통해 로컬에서 실행됩니다.
도구
도구 | 기능 |
| 승인된 채널, 기본 채널, 구성 파일 위치 나열 |
| 채널 추가 시작; 동의 URL을 즉시 반환 |
| 진행 중인 동의 흐름이 어떻게 종료되었는지 |
| 진행 중인 동의 흐름 중단 |
| 자격 없는 호출이 사용할 채널 선택 |
| 저장된 리프레시 토큰 삭제 |
| 모든 권한을 실행하고 수명 보고 |
| 제한 없는 |
| 제한 없는 Data API v3 |
| 제한 없는 Reporting API |
| 하나의 동영상 또는 스트림: 요약 + 트래픽 소스 분할 |
| 종료된 스트림 하나의 동시 시청자 수, 분 단위 |
| 이 API들이 답할 수 있는 것과 없는 것 |
모든 데이터 도구는 선택적 account를 받으므로, 한 대화에서 두 채널을 비교할 수 있습니다.
대용량 결과는 모델을 통하지 않고 파일로
youtube_analytics_query, youtube_data_call 및 youtube_reporting_call은 outputPath(및 선택적 format: csv 또는 json, 그 외에는 확장자에서 추론)를 받습니다. 이 옵션을 사용하면 전체 결과가 디스크에 기록되고 요약(행 수, 열, 바이트 크기, 처음 세 행)만 반환됩니다. 이 옵션 없이 100행이 넘는 결과는 잘리고 해당 옵션을 가리키는 포인터가 함께 반환됩니다. 인라인으로 반환되는 1,000행 보고서는 호출자의 컨텍스트 창을 소모하고 도착했을 때 읽을 수 없기 때문입니다.
진정한 대량 작업(모든 동영상의 모든 날짜, 수개월 분량)에는 youtube_reporting_call을 통해 Reporting API를 사용하세요: reports.query가 단일 호출로 반환하지 못하는 차원 조합으로 다운로드 가능한 일별 CSV 보고서를 생성합니다.
Related MCP server: YouTube Studio MCP Server
설정
1. Google Cloud OAuth 클라이언트, 한 번만
프로젝트를 만들거나 선택합니다.
API 및 서비스 → 라이브러리: YouTube Analytics API, YouTube Data API v3 및 YouTube Reporting API를 사용 설정합니다.
OAuth 동의 화면 → 사용자 유형: 사용자 유형을 외부로 설정합니다(내부는 Workspace 조직이 연결된 경우에만 제공됨). 동일한 사용자 유형 페이지의 테스트 사용자 아래에서 + 사용자 추가를 클릭하고 모든 채널 소유자의 Google 계정을 추가합니다 — 자신의 계정도 포함.
이 단계를 놓치면 동의가 "…이(가) Google 확인 절차를 완료하지 않았습니다. 앱이 현재 테스트 중이며 개발자가 승인한 테스터만 액세스할 수 있습니다." 오류로 실패합니다. 프로젝트 소유자라고 해서 테스트 사용자가 되는 것은 아닙니다. 직접 자신을 추가해야 합니다.
**게시 상태를 운영으로 설정합니다.** 이는 보기보다 중요합니다. Google:
외부 사용자 유형과 "테스트" 게시 상태로 구성된 OAuth 동의 화면이 있는 Google Cloud Platform 프로젝트는 요청된 OAuth 범위가 이름, 이메일 주소 및 사용자 프로필의 하위 집합인 경우를 제외하고 7일 후 만료되는 리프레시 토큰이 발급됩니다.
모든 YouTube 범위는 민감하므로 테스트 앱은 매주 재인증해야 합니다.
게시가 단순히 스위치가 아님을 경고합니다: 콘솔은 데모 동영상을 요구하고 YouTube API 검증 검토를 거쳐야 Testing을 벗어날 수 있습니다. 개인 도구로서는 실제 작업이며, 주간 재동의가 종종 더 나은 선택입니다. 대안은 아래 7일 권한 부여 제한을 참조하세요.
사용자 인증 정보 → 사용자 인증 정보 만들기 → OAuth 클라이언트 ID → 데스크톱 앱. 웹 애플리케이션이 아닙니다: 이 서버는 실행할 때마다 임의의 사용 가능한 루프백 포트에서 수신하며, 웹 클라이언트는 모든 리디렉션 URI(포트 포함)를 사전에 등록해야 합니다.
JSON을 다운로드합니다.
2. 서버에 클라이언트 위치 알리기
구성 파일에 넣습니다(config.example.json 참조):
// %APPDATA%\youtube-analytics-mcp\config.json (Windows)
// ~/Library/Application Support/youtube-analytics-mcp/ (macOS)
// ~/.config/youtube-analytics-mcp/config.json (Linux)
{
"client": { "client_id": "...", "client_secret": "..." }
}youtube-analytics-mcp --where를 실행하여 해당 디렉터리를 출력합니다. 환경 변수도 작동하며 우선합니다 — YTMCP_CLIENT_ID + YTMCP_CLIENT_SECRET, 또는 Google의 다운로드를 그대로 가리키는 YTMCP_CLIENT_FILE({"installed": …} 래퍼는 자동으로 풀립니다). YTMCP_CONFIG_DIR은 전체 디렉터리를 이동합니다.
3. 각 채널 승인
bun run auth # or: youtube-analytics-mcp --authorize
bun run auth -- --alias second # name it yourself브라우저가 동의 페이지에서 자동으로 열립니다. URL도 출력되므로 브라우저를 열 수 없는 경우(SSH, 컨테이너, CI)에 대비합니다. 채널을 소유한 Google 계정을 선택하고 승인합니다. 각 채널에 대해 반복합니다 — 브라우저에서 매번 다른 계정을 선택하세요. 계정은 --alias를 전달하지 않는 한 @handle로 이름이 지정됩니다.
YTMCP_NO_BROWSER=1을 설정하여 브라우저를 실행하지 않거나, 단일 호출에 대해 youtube_authorize 도구에 openBrowser: false를 전달합니다.
리프레시 토큰은 직접 편집하는 config.json과 분리된 동일한 디렉터리의 accounts.json에 기록되므로, 버그 보고서에 붙여넣을 수 있는 파일에는 토큰이 절대 포함되지 않습니다. 두 파일 모두 플랫폼이 지원하는 곳에서 0600 권한으로 기록됩니다.
어시스턴트도 이 작업을 수행할 수 있습니다. youtube_authorize는 동의 URL을 즉시 반환하고 백그라운드에서 계속 수신합니다. youtube_authorize_status는 종료 방식을 보고합니다. 동의는 사람이 걸리는 시간만큼 걸리고 MCP 클라이언트는 그보다 훨씬 전에 도구 호출을 포기하므로 차단하지 않습니다. URL은 대부분의 클라이언트가 서버의 stderr를 버리고 아무도 읽을 수 없는 URL은 쓸모가 없으므로 구성 디렉터리의 pending-auth.txt에도 기록됩니다.
4. MCP 클라이언트에 등록
Claude Code:
claude mcp add youtube-analytics --scope user -- bunx youtube-analytics-mcp또는 수동으로, 모든 클라이언트의 mcpServers 맵에:
{
"mcpServers": {
"youtube-analytics": { "command": "bunx", "args": ["youtube-analytics-mcp"] }
}
}기본적으로 읽기 전용
동영상 업데이트, 댓글 게시 또는 중재, 썸네일 업로드는 라이브 채널에서 되돌릴 수 없으므로 쓰기 범위는 요청되지 않으며 비-GET 호출은 거부됩니다. 활성화하려면 YTMCP_ALLOW_WRITE=1을 설정하고 재인증해야 합니다 — 플래그만으로는 아무 효과가 없습니다. 저장된 토큰에 해당 범위가 없기 때문입니다.
동시 시청자 수, 그리고 아무도 추측하지 못하는 쿼리 형태
averageConcurrentViewers 및 peakConcurrentViewers는 종료된 스트림에서 작동하며, Studio 자체 수치와 정확히 일치합니다. API가 한 가지 형태를 제외한 모든 형태에서 거부하기 때문에 존재하지 않는 것으로 널리 알려져 있습니다: 필터가 단일 동영상을 고정해야 하고 그리고 dimensions가 livestreamPosition이어야 합니다.
쿼리 | 결과 |
| 400 |
| 500 내부 오류 |
| 400 — 추가 필터가 거부됨 |
| 스트림의 분당 한 행 |
어떤 오류도 누락된 차원을 지목하지 않으며, 특히 500은 요청이 잘못된 것이 아니라 메트릭이 고장난 것처럼 읽힙니다. youtube_concurrent_curve가 이를 조합하여 최고값, 평균값, 전체 분 단위 곡선을 반환합니다.
진정으로 제공할 수 없는 것
youtube_capabilities가 현재 목록을 반환합니다. 둘 다 메트릭을 요청하고 Unknown identifier를 받아 확인했으며, 이는 API가 들어본 적 없는 이름과 알고 있지만 여기서 제공할 수 없는 이름을 구분하는 방식입니다:
라이브 채팅 메시지 및 반응 합계. Studio 전용.
liveChatMessages는 채팅을 실시간으로 읽으며 종료된 채팅을 복구할 수 없습니다.노출 수 및 노출 클릭률. Studio 전용, 도달 탭에 있음.
알아두면 좋은 두 가지
"게시 이후" 기간은 없습니다. Analytics API는 순수 날짜 범위이므로 스트림 날짜를 포함하는 기간은 정의상 해당 스트림의 라이브 시청자를 반환합니다. Studio의 기본 동영상별 기간은 전체 라이브 기간을 제외하므로, 라이브 스트림을 분석할 때 쉽고 비용이 큰 함정입니다. 이 API는 그 함정에 빠질 수 없습니다.
Analytics 할당량은 별개입니다. Analytics 및 Reporting API는 Data API v3의 일일 단위 예산과 독립적으로 측정되므로, 여기서 쿼리해도 라이브 채팅 폴링이 경쟁하는 할당량을 소비하지 않습니다. 자체 콘솔 할당량 페이지가 있는 별개의 API라는 강한 추론 — 측정된 것은 아님.
개발
bun install
bun run dev # start on stdio
bunx tsc --noEmit # typecheck
bun run inspector # MCP InspectorMIT.
API는 며칠 지연됩니다
확정된 Analytics 데이터는 즉시 사용할 수 없습니다. 2026-08-25에 측정한 결과, 일별 차원 행은 08-22까지 실행되고 중단되었습니다: 이전 3일의 세션은 0행이 아니라 행을 전혀 반환하지 않았습니다. 몇 시간 전에 종료된 스트림에 대한 쿼리는 트래픽이 없는 채널처럼 보입니다.
Studio 웹 UI에는 API가 노출하지 않는 실시간 경로가 있으므로 당일 보고는 여전히 Studio에서 해야 합니다. 이 서버는 대략 3일보다 오래된 모든 것에 사용하세요. Studio를 동영상 하나씩 클릭하는 것보다 훨씬 낫습니다.
7일 권한 부여 제한, 그리고 어떤 코드로도 해결할 수 없는 이유
Cloud 프로젝트의 게시 상태가 외부 사용자 유형으로 테스트인 동안, Google은 요청된 범위가 이름, 이메일 및 프로필뿐인 경우를 제외하고 7일 후 리프레시 토큰을 취소합니다. 모든 YouTube 범위는 민감하므로 예외는 여기서 적용되지 않습니다.
이것은 자동화로 해결할 수 없습니다. 7일은 리프레시 토큰에 대한 것입니다. 새 토큰을 발급하려면 사람이 브라우저에서 동의 화면을 승인해야 합니다 — 그것이 동의의 의미이며, 우회할 간격이 아닙니다. 액세스 토큰을 더 자주 새로 고치는 것은 이와 무관합니다.
이 서버가 대신 하는 일:
youtube_accounts는 각 권한의ageDays를 보고하고 5일부터 경고합니다.만료된 권한은 원인과 해결책을 명명하는 메시지로 실패하며, 단순한
invalid_grant가 아닙니다.youtube_refresh_tokens(또는 CLI에서--refresh)는 모든 권한을 상태 점검으로 실행합니다. 이는 헤지이기도 합니다: 7일 시계가 발급 시점부터 절대적인지 사용 시 연장되는지는 확립되지 않았습니다. 연장된다면 스케줄러에서 매일 실행하면 권한을 무기한 유지합니다. 그렇지 않다면 호출 비용은 거의 없습니다. 어느 쪽이든 실행할 가치가 있습니다.재동의는
youtube_authorize에 대한 한 번의 호출로, 브라우저를 직접 엽니다 — 약 15초.
실제 해결책, 비용 순서대로:
게시 상태 → 프로덕션. 무료이며 권한 부여가 만료되지 않습니다. 민감한 YouTube 범위의 경우 Google은 게시를 허용하기 전에 데모 동영상과 검증 검토를 요구할 수 있으며, 개인 도구로서는 상당한 작업량입니다.
내부 사용자 유형. 7일 제한도 없고 검증도 필요 없지만, 이 옵션은 프로젝트가 Google Workspace 조직 — 유료 구독 — 에 속한 경우에만 존재합니다.
주간 재동의와 함께 라이브. 단일 사용자 도구의 경우 이 방법이 종종 정답입니다.
Available Tools
13 toolsyoutube_accountsA
List authorized channels, which one is the default, and where configuration lives. Start here when unsure what this server can see.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It explicitly states the tool 'Lists' information, which indicates a read-only, non-destructive operation. It also adds the location of configuration as extra context. It does not mention error cases, authentication requirements, or side effects, but for a simple listing tool these are unlikely to be significant. The description is transparent about what the tool does and returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with zero waste. The primary function is stated first, and the usage hint is appended after. Every word contributes to either explaining what the tool does or when to use it. It is appropriately short and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, parameterless listing tool with no output schema, the description fully covers what the tool returns (authorized channels, default, configuration location) and its role as an entry point. Nothing critical is missing. An agent can invoke this tool correctly without further clarification.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is no schema to supplement. The description itself adds no parameter information (there is none). Per the guideline, 0 params baseline is 4 because there is nothing to describe. The description is sufficient and does not need to compensate for any gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and names the resource ('authorized channels') and additional outputs (default channel, configuration location). It clearly distinguishes itself from siblings like youtube_capabilities by focusing on channel authorization state rather than general platform capabilities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Start here when unsure what this server can see' provides explicit guidance on when to use this tool as a discovery entry point. It does not name specific alternatives or exclusions, but the context strongly implies that for targeted operations (e.g., authorizing, setting default), the user should use other tools. This is clear enough for an agent to select it appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_analytics_queryB
Unrestricted YouTube Analytics reports.query — any metrics/dimensions/filters/sort the API accepts. This API has no "since published" window, so a date range covering a live stream returns its live audience by construction.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | No | defaults to channel==MINE | |
| raw | No | return the response verbatim instead of named rows | |
| sort | No | ||
| format | No | ||
| account | No | alias or channel id; defaults to the configured default, or the only account | |
| endDate | No | defaults to today | |
| filters | No | e.g. video==ID or insightTrafficSourceType==YT_SEARCH | |
| metrics | Yes | comma-separated, e.g. views,estimatedMinutesWatched,averageViewDuration | |
| currency | No | ||
| startDate | Yes | ||
| dimensions | No | e.g. day, video, insightTrafficSourceType, ageGroup,gender | |
| maxResults | No | ||
| outputPath | No | write the full result here instead of returning it inline; strongly preferred for anything large. Extension picks the format unless format is given. | |
| startIndex | No | ||
| includeHistoricalChannelData | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry behavioral disclosure. It discloses the live audience behavior for live streams, which is a specific behavioral trait. However, it omits broader behaviors such as authentication requirements, rate limits, or the fact that it is a read-only operation, leaving significant gaps in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no redundancy. It front-loads 'Unrestricted,' which immediately signals the tool's core value, and the second sentence adds a relevant behavioral nuance. Every word earns its place, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a high-complexity tool with 15 parameters, no output schema, and no annotations. The description is too sparse to guide an agent through constructing valid queries or understanding result formats. It lacks information about return types, handling large outputs (though outputPath is in the schema), or common pitfalls, making it incomplete for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 53%, which is moderate, so the baseline is 3. The description adds marginal value by indicating the tool accepts 'any metrics/dimensions/filters/sort,' which relates to several parameters, but it does not elaborate on syntax or formats. It does not compensate for the undocumented parameters that lack schema-level descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as 'Unrestricted YouTube Analytics reports.query' with 'any metrics/dimensions/filters/sort the API accepts,' which precisely defines its function. It distinguishes itself from siblings only by the term 'unrestricted' but does not explicitly name the restricted alternatives, so it is clear but not fully differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to choose this tool over its siblings. It mentions the 'since published' window nuance but does not state criteria like 'use this for arbitrary queries or when you need full flexibility.' Without this, an agent lacks direction on optimal selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_authorizeA
Start authorizing a channel. Returns the consent URL immediately — give it to the owner to open in a browser, then poll youtube_authorize_status. Run it again, picking a different Google account in the browser, to add another channel.
| Name | Required | Description | Default |
|---|---|---|---|
| alias | No | name for this channel; defaults to its @handle | |
| setDefault | No | make this the default account | |
| openBrowser | No | open the consent page automatically (default true) | |
| timeoutSeconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility. It discloses the asynchronous nature (returns URL immediately, then must poll) and the ability to authorize multiple channels by re-running. It does not mention potential failure states or permissions, but the core behavior is transparent enough for correct invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences front-load the primary action and immediately provide the follow-up step. Every word adds value; no redundancy or fluff. The structure is optimal for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the essential flow: start, get URL, poll status, add more channels. It does not detail cancellation or edge cases, but those are handled by sibling tools (youtube_authorize_cancel). For a tool that merely initiates an asynchronous process, this is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%, and the description adds no direct parameter explanations. The mention of opening in a browser aligns with openBrowser, but it does not elaborate on alias, setDefault, or timeoutSeconds. Since the schema already documents these, baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Start authorizing'), a specific resource ('a channel'), and the immediate action ('Returns the consent URL immediately'). It also distinguishes itself from siblings by mentioning polling youtube_authorize_status, making its role in the authorization flow clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly gives the workflow: 'give it to the owner to open in a browser, then poll youtube_authorize_status.' It also explains how to add another channel by re-running with a different Google account. This is concrete, actionable guidance that separates initialization from status polling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_authorize_cancelA
Abandon an in-flight consent flow so a new one can be started.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It clearly states the action (abandoning a flow) and its purpose. While it doesn't detail side effects or reversibility, for a zero-parameter cancel operation the core behavior is sufficiently disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that conveys the exact purpose with zero waste. It is as concise as possible while remaining informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters and no output schema, the description fully covers what the tool does and why. Nothing an agent needs to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no properties, so there are no parameters to explain. The description doesn't need to add parameter info, and the baseline for 0 parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('abandon') and resource ('in-flight consent flow'), and distinguishes this from siblings like youtube_authorize and youtube_authorize_status. It clearly conveys this is the cancellation operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context for when to use it ('so a new one can be started'), implying it should be used to reset a pending authorization. It doesn't explicitly list alternatives, but the purpose is self-evident given the sibling set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_authorize_statusA
Check an in-flight consent flow started by youtube_authorize: still waiting, finished, or failed. Also re-prints the consent URL.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description uses 'Check' which strongly implies a read-only operation, and it does disclose the three possible outcomes and the consent URL re-print. However, it does not explicitly state that the operation has no side effects, whether it is idempotent, or if repeated polling is safe.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the action ('Check') and the resource, then concisely lists the possible states and the URL re-print. Every word earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For such a simple tool (no parameters, no output schema, no annotations), the description covers the core purpose and outcomes. However, it does not specify the exact return format or behavior when no consent flow is in progress, which is a minor but relevant gap for an agent invoking it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the input schema is empty. Per the baseline for zero-parameter tools, the description is not required to add parameter semantics, and it does not attempt to do so. This is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Check' with the resource 'in-flight consent flow started by youtube_authorize', clearly distinguishing it from related tools like youtube_authorize (start) and youtube_authorize_cancel (cancel). The purpose is unambiguous and properly scoped.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies it is used after starting a consent flow with youtube_authorize, but it does not explicitly state when to use this tool versus alternatives, nor does it mention when not to use it or point to other tools for cancellation or re-authorization.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_capabilitiesA
What these APIs can and cannot answer. Read this before concluding a metric is missing.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations provided, so the description carries the full burden. It implies a read-only informational nature but does not explicitly state the tool performs no side effects or is safe to invoke. However, given its nature as a capability descriptor, the implication is strong enough for a 3.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, tightly scoped sentence that is front-loaded with the core purpose and ends with a direct call to action. Every word earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters and no output schema, the description is sufficiently complete. It conveys the purpose and when to use it. Could mention what type of output it returns, but since it's a probe of capabilities, that is less critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, matching the baseline of 4. The description doesn't need to explain parameters, and it adds value by clarifying the purpose without any ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states exactly what the tool provides: an explanation of what the APIs can and cannot answer. It clearly distinguishes itself from sibling tools that perform specific API operations, positioning this as a meta-tool for capability understanding.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs when to use it: 'Read this before concluding a metric is missing,' giving a clear trigger condition. It doesn't need alternatives since it's a standalone informational tool, and the context signals reinforce this by having zero parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_concurrent_curveC
Peak and average concurrent viewers for one ended live stream, minute by minute. These metrics are real but only answer in one exact query shape, which this builds.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | ||
| account | No | alias or channel id; defaults to the configured default, or the only account | |
| endDate | No | ||
| videoId | Yes | ||
| startDate | Yes | a date on or before the stream day | |
| outputPath | No | write the full result here instead of returning it inline; strongly preferred for anything large. Extension picks the format unless format is given. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It mentions the constraint 'for one ended live stream' and says metrics are 'real but only answer in one exact query shape', but this is cryptic and does not clarify side effects, authorization requirements, rate limits, or what happens with invalid inputs. The lack of any behavioral detail beyond a vague limitation is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise, but the second clause 'which this builds' is confusing and unexplained. It front-loads the main purpose but then introduces a cryptic notion of a query shape without elaboration. Overall, it is brief but not optimally structured for clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 6 parameters, no output schema, and no annotations, the description is drastically incomplete. It does not explain required inputs (videoId, startDate), response format, or any operational details. An agent cannot determine how to call this tool correctly based solely on the description and schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no information about parameters. The schema already documents startDate, account, and outputPath, but there is no compensation for the undocumented videoId, endDate, and format. With schema description coverage at 50%, the description should help clarify the other half, but it does not. It adds zero value beyond the schema for parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns peak and average concurrent viewers for one ended live stream, minute by minute. It specifies a concrete resource and metrics, and the phrase 'only answer in one exact query shape' hints at specialization, though it doesn't explicitly differentiate from sibling analytics tools. It is not a tautology and conveys a distinct function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like youtube_analytics_query or youtube_reporting_call. There are no conditions, exclusions, or context that help an agent choose this over siblings. The description merely states what it does without any usage criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_data_callB
Unrestricted call against the YouTube Data API v3 (e.g. /videos, /channels, /liveBroadcasts, /search). Read-only unless YTMCP_ALLOW_WRITE=1.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| path | Yes | endpoint path, e.g. /videos | |
| query | No | ||
| format | No | ||
| method | No | ||
| account | No | alias or channel id; defaults to the configured default, or the only account | |
| outputPath | No | write the full result here instead of returning it inline; strongly preferred for anything large. Extension picks the format unless format is given. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explicitly states 'Read-only unless YTMCP_ALLOW_WRITE=1', which is a critical safety trait. However, it omits other behavioral aspects such as authentication requirements, error handling behavior, or that outputPath is recommended for large responses. The read-only/write condition is useful, but the description is thin overall.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with the tool's purpose and examples, followed by the read-only condition. Every word contributes value; there is no redundancy or fluff. It is an excellent example of concise, structured writing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a generic wrapper with 7 parameters, no output schema, and no annotations, the description is inadequate. It does not mention that the agent needs to know YouTube Data API v3 endpoint syntax, nor does it point to any documentation. It also fails to mention authentication prerequisites (though sibling auth tools exist) or that outputPath is strongly preferred for large results. The agent cannot safely and correctly invoke this tool based solely on the given description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter semantics beyond what the input schema already provides. Schema coverage is only 43% (3 of 7 parameters have descriptions: path, account, outputPath), leaving body, query, format, and method undocumented. The description does not compensate for this gap; it merely gives endpoint examples, so the agent must guess at parameter usage for the undocumented fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('call') and resource ('YouTube Data API v3') with concrete endpoint examples (/videos, /channels, /liveBroadcasts, /search). It is obvious this is a raw API wrapper, but it doesn't explicitly distinguish it from sibling tools like youtube_analytics_query or youtube_reporting_call, leaving some ambiguity about when to use this vs. a specialized tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus its siblings. It does not say 'use this for arbitrary endpoints not covered by specialized tools' or mention any prerequisites like authentication or authorization. The agent must infer usage from the name and examples, which is insufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_forget_accountA
Remove a stored refresh token. This does not revoke the grant — do that at https://myaccount.google.com/permissions.
| Name | Required | Description | Default |
|---|---|---|---|
| alias | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility. It transparently states that the action removes a stored token and clarifies the important limitation that it does not revoke the grant. The mutating nature is evident, and the non-revocation caveat is a valuable behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no filler. The primary action is front-loaded, and the clarifying limitation follows immediately, making it efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool, the description covers the core action and its non-revocation limitation, which is sufficient for basic usage. However, it omits any explanation of the 'alias' parameter and does not mention prerequisites (e.g., prior authorization) or return behavior, leaving minor gaps that an agent might need.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one required parameter 'alias' with no description, and the tool description does not explain what 'alias' refers to. With 0% schema description coverage, the description was expected to provide this meaning but does not, leaving the agent to infer from the parameter name alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Remove a stored refresh token') on a clear resource (stored refresh token), and explicitly notes it does not revoke the grant, distinguishing it from authorization-related siblings. This leaves no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly explains what the tool does not do (revoke the grant) and directs the user to an external URL for that purpose, providing when-not-to-use guidance. However, it does not explicitly name sibling alternatives, so the guidance is implicit rather than comparative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_refresh_tokensA
Exercise every stored grant and report its age. Use as a health check, or on a daily schedule: it is not established whether the 7-day Testing clock is absolute or slides on use, and if it slides this keeps grants alive. Cannot create a new grant — only consent does that.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses that it exercises grants, reports age, and cannot create new grants. It also reveals the uncertainty about the Testing clock and the potential sliding behavior, which is valuable context. It does not explicitly state whether token refresh modifies stored state, but 'exercise' implies action; still, the key limitations are clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no wasted words. The core function and primary usage are front-loaded, and the limitation is stated clearly at the end. It is both concise and informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters, no output schema, and no annotations, the description covers everything an agent needs: what it does, when to use it, why, and its key limitation. It even explains the underlying reasoning about the clock, making the tool fully self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema describes nothing. Per the rubric, a 0-parameter tool gets a baseline of 4. The description adds no parameter information since there are none, which is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('exercise') and clearly identifies the resource ('every stored grant') and the output ('report its age'). It distinguishes itself from sibling tools by explicitly stating it cannot create new grants, which only consent can do. This makes its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly prescribes usage as a health check or on a daily schedule, explains the reasoning about the 7-day Testing clock, and states what it does not do (cannot create a grant). This gives clear when-to-use guidance and differentiates from authorization tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_reporting_callA
Unrestricted call against the YouTube Reporting API (e.g. /jobs, /reportTypes, /media). Read-only unless YTMCP_ALLOW_WRITE=1.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| path | Yes | endpoint path, e.g. /videos | |
| query | No | ||
| format | No | ||
| method | No | ||
| account | No | alias or channel id; defaults to the configured default, or the only account | |
| outputPath | No | write the full result here instead of returning it inline; strongly preferred for anything large. Extension picks the format unless format is given. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explicitly discloses the read-only default and the YTMCP_ALLOW_WRITE=1 escape hatch, which is critical safety information. It does not detail auth prerequisites or write-path side effects, but the core risk behavior is surfaced.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no fluff. It front-loads the API name and examples before the read-only caveat, making the most important information immediately visible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is minimally viable: it names the API, gives endpoint examples, and includes a key safety guard. However, it omits auth/account prerequisites, does not clarify how YTMCP_ALLOW_WRITE influences method handling, and provides little context for the many undocumented parameters, leaving the agent to infer too much.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 43%, and the description adds little parameter-level meaning beyond path examples like /jobs and /reportTypes. Parameters such as body, query, method, and format are not explained in the description, leaving significant semantic gaps for a 7-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource (YouTube Reporting API) and the action (unrestricted call), with concrete endpoint examples like /jobs and /reportTypes. It is specific enough to distinguish from sibling tools like youtube_data_call or youtube_analytics_query, though it does not explicitly state that distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context about when to use the tool: for low-level calls to the YouTube Reporting API endpoints. It provides concrete examples, but it does not explicitly mention when not to use it or point to alternatives such as dedicated analytics tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_session_reportA
Summary plus traffic-source split for one video or live stream, over a window wide enough to include the live audience. A convenience over youtube_analytics_query.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | alias or channel id; defaults to the configured default, or the only account | |
| endDate | No | ||
| videoId | Yes | ||
| startDate | Yes | a date on or before the stream day |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It adds a useful detail: the tool automatically uses a window that includes the live audience, implying it adjusts dates around the stream. It also indicates the output includes a summary and traffic-source split. However, it does not disclose any side effects, permission requirements, rate limits, or the exact return structure. This is partial transparency but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. The first sentence front-loads the core purpose and the window behavior, and the second sentence immediately identifies the relationship to a sibling tool. Every word contributes value, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 4 parameters, no output schema, and no annotations, the description is insufficient. It fails to explain the meaning of endDate and account, and does not describe the format or structure of the returned summary and traffic-source split. While an agent might infer some behavior, it lacks the specifics needed to invoke the tool correctly or interpret results without additional context. The hint about the window is helpful but not enough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (only startDate and account have descriptions; videoId and endDate lack them). The description does not compensate for the missing parameters. It implicitly ties videoId to the video/live stream and startDate to the window start, but it does not clarify endDate (whether it is used or overridden) or account (its default behavior). Since coverage is low, the description needed to explain all parameters but only partially addresses them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: providing a summary and traffic-source split for a single video or live stream. It also explicitly names youtube_analytics_query as the tool it simplifies, which differentiates it from that sibling. The verb 'provide' is implied through 'Summary plus traffic-source split', and the resource is specific (one video or live stream).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says it is 'A convenience over youtube_analytics_query', which implies that for a typical summary of a single video, this tool is preferable to writing a raw query. It also mentions the window being 'wide enough to include the live audience', hinting at a use case for live streams. However, it does not explicitly state when not to use it or contrast with other siblings like youtube_data_call or youtube_reporting_call, so it falls short of full exclusions but still gives clear context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_set_default_accountB
Choose which authorized channel calls use when none is named.
| Name | Required | Description | Default |
|---|---|---|---|
| alias | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It states that a default is chosen, implying persistence and effect on subsequent calls, but it does not mention prerequisites (e.g., accounts must already be authorized), whether this overwrites an existing default, or if changes are reversible. Such gaps are critical for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that fronts the verb and the core concept. There is no fluff or repetition; every word earns its place, achieving maximum conciseness while preserving clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one parameter, no output schema), but the description is still incomplete. It fails to specify how the agent should obtain a valid alias, whether the alias must correspond to an already-authorized account, or any side effects of making a call without setting a default. An agent cannot reliably call this tool correctly based solely on this description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at 0%, the description must explain the 'alias' parameter. It only implies that alias is the name of an authorized channel ('which authorized channel calls use... when none is named'), but it does not define what an alias is, how to obtain one, or the expected format. This is insufficient for an agent to correctly supply the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (choose) and the resource (default authorized channel) and the conditional context (when none is named). It distinguishes this tool from siblings like youtube_accounts (lists accounts) and youtube_authorize (adds accounts), leaving no ambiguity about what it does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'when none is named' implies a usage context but does not explicitly contrast with per-call account naming or mention when you would need to set a default. It offers no guidance on when to use this tool versus naming an account directly in other calls, leaving the agent to infer the intended workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
13 tool updates
v0.2.0- First observed
youtube_accounts - First observed
youtube_analytics_query - First observed
youtube_authorize - First observed
youtube_authorize_cancel - First observed
youtube_authorize_status - First observed
youtube_capabilities - First observed
youtube_concurrent_curve - First observed
youtube_data_call - First observed
youtube_forget_account - First observed
youtube_refresh_tokens - First observed
youtube_reporting_call - First observed
youtube_session_report - First observed
youtube_set_default_account
TDQS
Scored across 13 tools
Each tool has a clearly distinct purpose: authorization flow (authorize, status, cancel), account management (accounts, set default, forget, refresh), raw API access (analytics_query, data_call, reporting_call), convenience wrappers (session_report, concurrent_curve), and capability explanation. The only slight overlap among the three unrestricted calls is mitigated by descriptions pointing to different YouTube APIs.
All tools share the consistent 'youtube_' prefix and use snake_case. However, the naming pattern mixes nouns (youtube_accounts, youtube_capabilities) with verb phrases (youtube_set_default_account, youtube_refresh_tokens) and compound nouns (youtube_analytics_query, youtube_concurrent_curve). Still, the names are readable and predictable after a moment.
At 13 tools, the server has a well-scoped surface covering authentication, account management, and multiple API query methods without redundancy. Each tool contributes a distinct capability, and none feel superfluous.
The surface covers the full lifecycle: authorization, account state, raw access to all three YouTube APIs, convenience queries for typical needs, and a capabilities tool to explain limitations. No obvious missing operations; even token revocation is addressed with a pointer to Google's page.
Maintenance
Related MCP Connectors
YouTube transcripts, search, channel/playlist listings and upload tracking for AI agents.
YouTube discovery, transcripts, library search, and monitors with API keys or OAuth.
YouTube search, whole channels, video stats, comments and full transcripts with timestamps.
1YouTube transcripts, video details, search, channels and playlists. OAuth sign-in or API key.
61
Related MCP Servers
- FlicenseAqualityDmaintenanceEnables AI assistants to analyze YouTube channels, videos, transcripts, and content strategy through structured tool calls.1712 npm-
- FlicenseNot gradedqualityBmaintenanceEnables AI-powered automation of YouTube Studio tasks, including retrieving channel stats, fetching unanswered comments, and posting replies, using Google Gemini and MCP over SSE or stdio.-
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to manage YouTube channels directly, including video publishing, SEO optimization, playlist curation, community interaction, and traffic analytics, all through local OAuth.1MIT
- AlicenseAqualityCmaintenanceEnables AI assistants to retrieve YouTube channel overviews, Studio analytics, video performance, traffic source breakdowns, and comments for sentiment analysis using natural language prompts.81MIT