Skip to main content
Glama

Documentation Wiki

The complete project wiki is available in docs/wiki, including setup, user guidance, MCP reference, architecture, security, troubleshooting, roadmap and contribution standards.

CreatorOS – YouTube Creator Intelligence for Claude

version plugin extension access license

Related MCP server: YouTube MCP Server

Description

CreatorOS connects Claude to your own YouTube channel and turns your analytics into clear, evidence-based answers: how the channel is doing, what is holding each video back, what to replicate, when to publish, and what your audience is asking.

It is a read-only local extension for Claude Desktop. It never uploads, edits, deletes or comments, and your data never passes through any CreatorOS server — only between your computer, Google and Claude.

Every answer is labelled so you know what is fact and what is a suggestion:

Label

Meaning

measured

Read directly from YouTube

derived

Arithmetic on measured data (ratios, % change, medians)

estimated

Pattern inference from your history, with a confidence level

ai_recommendation

A suggested action to test — not a proven cause

Features

  • Channel health check – compares every video with your own same-format baseline (Shorts vs Shorts, long-form vs long-form) and names the real bottleneck: click, discovery, retention or subscriber conversion, then gives one prioritized recommendation.

  • Private analytics – views, watch time, average view %, subscribers gained/lost, traffic sources, countries, subscriber vs non-subscriber viewing, period-over-period change.

  • Video deep dive – audience-retention curve with the biggest drop-off, discovery sources, YouTube search terms.

  • Fair comparisons – each video measured over its own first N days after publishing.

  • Rising & declining videos – momentum versus the previous period.

  • Best time to publish – estimated from how your past uploads performed, with confidence and sample sizes.

  • Audience voice – the questions viewers ask in your comments.

  • Library search – find your videos by topic without using YouTube quota.

  • History – snapshots and past recommendations saved locally so you can check advice against results.

  • Multi-channel – connect several channels and switch the default.

Installation

CreatorOS runs on your computer, so it works in Claude Cowork (desktop app) and Claude Code. It does not run in claude.ai web chat (local servers are not loaded there).

Prerequisites for the plugin: Python 3.10+ on your PATH, and the uv Python runner (one-time, 1 minute). CreatorOS runs with the exact package versions pinned in uv.lock.

  • Windows (PowerShell): powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

  • macOS: curl -LsSf https://astral.sh/uv/install.sh | sh

Option 0 — Claude plugin (Cowork and Claude Code)

  • From the Claude directory (once listed): Customize → Browse plugins, search CreatorOS, click Add.

  • Cowork, before listing: on GitHub click Code → Download ZIP, then in Claude Customize → Plugins → Add → Upload plugin and choose the ZIP.

  • Claude Code: claude --plugin-dir ./youtube-claude-mcp (from a clone of this repo).

The plugin adds the CreatorOS server and a youtube-channel-review skill that teaches Claude which tool to use for each question. Then complete Configuration.

Option A — Claude Desktop extension

  1. Download the .mcpb file from the latest release.

  2. Double-click it (or drag it into Claude Desktop, or Settings → Extensions → Install Extension).

  3. Review the permissions and click Install.

  4. Complete Configuration below.

Claude Desktop installs the Python runtime and dependencies automatically. Once listed in the Anthropic Directory: Settings → Extensions → Browse, search CreatorOS, click Install.

Option B — Manual install (developers)

Requires Python 3.10+.

Windows (Command Prompt):

cd "%USERPROFILE%\Documents"
git clone https://github.com/matteys001/youtube-claude-mcp.git
cd youtube-claude-mcp
python -m venv .venv
.venv\Scripts\python -m pip install --upgrade pip
.venv\Scripts\pip install -e .

macOS (Terminal):

cd ~/Documents && git clone https://github.com/matteys001/youtube-claude-mcp.git
cd youtube-claude-mcp && python3 -m venv .venv
.venv/bin/pip install --upgrade pip && .venv/bin/pip install -e .

If Documents is synced by OneDrive on Windows, the path is %USERPROFILE%\OneDrive\Documents\youtube-claude-mcp.

Then add to Claude Desktop (Settings → Developer → Edit Config), keeping any existing servers:

{
  "mcpServers": {
    "creatoros": {
      "command": "C:\\Users\\YOUR-NAME\\Documents\\youtube-claude-mcp\\.venv\\Scripts\\python.exe",
      "args": ["-m", "creatoros.server"]
    }
  }
}

macOS: "command": "/Users/YOUR-NAME/Documents/youtube-claude-mcp/.venv/bin/python". Fully quit and reopen Claude.

Configuration

CreatorOS uses Google's official APIs. One-time setup (about 15 minutes):

1. Google OAuth client (required)

  1. Open https://console.cloud.google.com → project dropdown → New Project → CreatorOS → Create → select it.

  2. Search and Enable: YouTube Data API v3 and YouTube Analytics API.

  3. Google Auth Platform → Get started: app name CreatorOS, your email → External → contact email → agree → Create.

  4. Audience → Test users → Add users → the Gmail that owns your channel → Save.

  5. Clients → Create client → Desktop app → Create → Download JSON.

  6. Give CreatorOS the client:

    • Plugin (Claude Code and Cowork): save the downloaded JSON as client_secret.json in the .creatoros folder of your user directory (Windows: mkdir "%USERPROFILE%\.creatoros" then move "%USERPROFILE%\Downloads\client_secret_*.json" "%USERPROFILE%\.creatoros\client_secret.json").

    • Extension: Settings → Extensions → CreatorOS → Configure → Google OAuth client file → select the JSON.

    • Manual install: save it as client_secret.json in the .creatoros folder of your user directory (Windows: move "%USERPROFILE%\Downloads\client_secret_*.json" "%USERPROFILE%\.creatoros\client_secret.json" after mkdir "%USERPROFILE%\.creatoros").

While the Google app is in Testing mode, Google asks you to sign in again every 7 days. CreatorOS tells you when.

2. YouTube API key (optional — comments only)

YouTube only allows comment reading through OAuth with a write-capable permission, which CreatorOS deliberately does not request.

  1. APIs & Services → Credentials → + Create credentials → API key, name CreatorOS Comments.

  2. API restrictions: select YouTube Data API v3. Application restrictions: None. Create, copy the key.

  3. Plugin / manual install: save it in .creatoros\api_key.txt. Extension: Configure → YouTube Data API key. Manual: save it in .creatoros\api_key.txt.

3. Connect your channel

Ask Claude: "Connect my YouTube channel with CreatorOS." A Google sign-in tab opens → choose the account/channel → if shown, "Google hasn't verified this app" → Continue → tick both permissions → Continue. (Manual install alternative: run .venv\Scripts\creatoros-connect.)

Examples

Example 1: Channel health check

User prompt: "Use CreatorOS to run a full health check on my YouTube channel for the last 28 days. Tell me the main bottleneck, the evidence, and three things to do this week."

Expected behavior:

  • Calls youtube_analyze_channel_performance (syncs videos, pulls this and the previous 28 days).

  • Returns views, watch time, retention and net subscribers with % change; top traffic sources and countries.

  • Classifies each recent video's bottleneck against your own same-format median, and names a main bottleneck only if it affects ≥30% of recent videos.

  • Gives 3 concrete actions, videos to replicate, a confidence level and the limitations (e.g. ~48h data lag).

Example 2: Compare videos fairly

User prompt: "Compare my two most-viewed videos over their first 28 days after publishing."

Expected behavior:

  • Calls youtube_list_videos (sort: most viewed), then youtube_compare_videos with first_days=28.

  • Shows views, average % viewed, subscribers per 1,000 views and likes per 1,000 views for each video in equal windows.

  • Names the leader per metric and warns if formats differ (Short vs long-form) or a window is partial.

Example 3: Video deep dive

User prompt: "Analyze my most recent video: where do viewers drop off, how did people find it, and what search terms brought them?"

Expected behavior:

  • Calls youtube_get_video_analytics for the video's lifetime.

  • Returns a 20-point retention curve with the biggest drop-off (time in seconds), traffic sources and YouTube search terms.

  • States clearly when YouTube has no data for a report (e.g. too few views for search terms).

Example 4: Best time to publish

User prompt: "When should I publish my next Short? My audience is mostly in India."

Expected behavior:

  • Calls youtube_recommend_publishing_time with timezone_name="Asia/Kolkata", format="short".

  • Returns weekday and 3-hour time-block rankings with sample sizes, the best slot and confidence, your current habit, untested days and how to validate.

  • If no slot has 3+ comparable videos, says so instead of guessing.

Example 5: What the audience is asking

User prompt: "Read the comments on my most-commented video. What questions are viewers asking?"

Expected behavior:

  • Calls youtube_list_videos then youtube_get_comments.

  • Lists the most-liked comments and viewer questions, with the share of comments that are questions.

  • If no API key is configured, returns a [configuration] message explaining how to add one.

More prompts: "Which videos are rising or declining?", "Search my videos about AI", "Run my weekly creator review".

Tools

All tools are annotated for the Anthropic Directory: readOnlyHint (12 tools) or destructiveHint (3 tools that write only local files).

Tool

Annotation

What it does

youtube_connect_channel

destructive (local)

Google sign-in; saves an encrypted token

youtube_list_channels

read-only

Connected channels and default

youtube_set_default_channel

destructive (local)

Choose the default channel

youtube_disconnect_channel

destructive (local)

Revoke Google access + delete token; requires confirm=true

youtube_get_channel_overview

read-only

Profile, stats, format mix, upload cadence

youtube_list_videos

read-only

Videos with filters, sorting, pagination

youtube_search_videos

read-only

Search your own library (no quota)

youtube_get_video_details

read-only

Full metadata + stored stat history

youtube_get_comments

read-only

Comments, viewer questions, most-liked

youtube_get_channel_analytics

read-only

Private analytics vs previous period

youtube_get_video_analytics

read-only

Retention curve, drop-off, traffic, search terms

youtube_compare_videos

read-only

Equal-window comparison

youtube_analyze_channel_performance

read-only

Full health check + one recommendation

youtube_recommend_publishing_time

read-only

Best day/time with confidence

youtube_get_recommendation_history

read-only

Past recommendations and baselines

Prompts: channel_health_assessment, weekly_creator_review, video_performance_analysis. Resources: creatoros://channels, creatoros://channels/{id}/videos, creatoros://channels/{id}/recommendations.

Privacy Policy

CreatorOS runs locally and has no servers or telemetry. Full policy: PRIVACY.md.

Data collection

  • Accessed (read-only, with your Google consent): channel info, video metadata and public counts, private YouTube Analytics for your own channel, and public comments (only with an API key).

  • Use: only to answer your questions in Claude. Never for ads, profiling or training.

  • Storage: on your computer in .creatoros — encrypted Google tokens, a local SQLite history, and logs without secrets.

  • Sharing: with Google (to fetch the data) and with Claude (tool results you request). Not with the publisher or anyone else.

  • Retention: until you delete it. Disconnect with youtube_disconnect_channel or https://myaccount.google.com/permissions; delete the .creatoros folder to erase everything.

CreatorOS's use of information received from Google APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements.

Support

Troubleshooting

Every error starts with a category and a fix:

Message starts with

Meaning

Fix

[configuration] client file not found

OAuth client not set

Configuration → step 1.6

[configuration] API not enabled

APIs not enabled

Enable both YouTube APIs

[configuration] API key

Comments need a key

Configuration → step 2

[authentication]

Sign-in expired (7-day testing limit) or revoked

Ask Claude to connect again

[permission]

Wrong Google account / Brand Account

Reconnect and pick the channel owner

[quota]

Daily Google quota used

Wait until midnight US Pacific time

[unavailable_data]

YouTube has no data for that request

Longer period or another video

[system]

Temporary Google or network error (auto-retried 3×)

Try again shortly

Windows: The system cannot find the path specified

Documents is in OneDrive

Use the OneDrive path

Compatibility

Claude Desktop ≥ 0.10 on Windows, macOS and Linux · Python ≥ 3.10 (managed automatically for the extension). Live-tested on Windows 11 with a real channel; see Verification.


Architecture

flowchart LR
  C[Claude Desktop] -- stdio MCP --> S[server.py<br/>15 tools · 3 resources · 3 prompts<br/>error guard + audit log]
  S --> I[intelligence.py<br/>bottlenecks · momentum · publishing cohorts]
  S --> A[auth.py<br/>OAuth 2.0 + encrypted vault]
  S --> Y[youtube_client.py<br/>Data API v3]
  S --> N[analytics_client.py<br/>Analytics API v2]
  S --> D[(store.py<br/>SQLite snapshots)]
  A --> G[Google OAuth]
  Y --> YT[YouTube Data API]
  N --> YA[YouTube Analytics API]

Layer

Module

Responsibility

MCP interface

creatoros/server.py

Tools, resources, prompts, uniform errors, audit log

Intelligence

creatoros/intelligence.py

Pure, unit-tested analytics engine

YouTube Data

creatoros/youtube_client.py

Channel, uploads, videos, comments (quota-aware)

YouTube Analytics

creatoros/analytics_client.py

Private metrics, optional reports degrade gracefully

Auth

creatoros/auth.py

OAuth (PKCE), encrypted multi-channel vault, revoke

Persistence

creatoros/store.py

Append-only snapshots with provenance

Errors

creatoros/errors.py

Category + fix for every failure

Detailed design: docs/ARCHITECTURE.md (feasibility matrix, scopes, methods, roadmap) · docs/SOLUTION_AND_TECHNICAL_ARCHITECTURE.md (solution & technical diagrams) · docs/SUBMISSION.md (directory checklist).

How the intelligence works

Bottleneck diagnosis — each video vs the median of the same format on your channel:

Pattern

Bottleneck

impressions ≥ 0.8× and CTR < 0.8× (when YouTube provides CTR)

Click

views < 0.6× and retention ≥ 1.0×

Discovery

views < 0.6× and retention < 0.85×

Discovery + consumption

views ≥ 0.8× and retention < 0.8×

Consumption

views ≥ 0.8× and subscribers/1k views < 0.6×

Conversion

views ≥ 1.5× and retention ≥ 0.95×

Winning

Publishing time — each video's views ÷ the median of its 10 nearest same-format uploads by date (controls for growth and age), grouped by weekday and 3-hour block in the audience timezone; a slot needs ≥ 3 videos. YouTube Studio's "when your viewers are on YouTube" chart is not available through the public API, so this is an outcome-based estimate.

Known limitations

  • Shorts are detected by duration (≤ 180 s) because the Data API has no Shorts flag.

  • Impressions/CTR are requested but YouTube rejects them for some report types; the click stage is then skipped and stated.

  • Analytics lag ~48 hours. Per-video analytics cover the top 200 videos per window.

  • Competitor research, content ideas, calendar and publishing are later phases (see roadmap).

Roadmap

Phase

Scope

Status

1

OAuth, library, analytics, diagnosis, publishing time, comments

Released (0.3.0, plugin + extension)

2

Reporting API history, weekly/monthly reports, native Shorts detection

Next

3

Transcripts, topic classification, semantic search

Planned

4

Market & competitor research, SEO, title/thumbnail review, ideation

Planned

5

Content calendar, approved uploads/scheduling, comment replies

Planned

6

Hosted remote MCP server (works in claude.ai chat, submit as MCP connector), web app, RBAC

Planned

Verification status

Check

Result

25 offline tests (engine, errors, vault, annotations, stdout safety, stubbed end-to-end)

Pass

MCPB manifest validation + pack + launch via uv (Claude Desktop method)

Pass

claude plugin validate (Claude Code 2.1.318, directory checks)

Pass — nothing to report

Live run on Windows 11 with a real channel (v0.1.1)

12/15 pass, 2 later-phase, 1 verified offline; the one failure (transient Google 500) fixed in 0.1.2 with retries

macOS clean-machine run

Pending

Development

pip install -e ".[dev]" && pytest -q                 # offline tests
python scripts/acceptance_test.py                    # live acceptance tests on your channel
npm i -g @anthropic-ai/mcpb && mcpb pack . creatoros-youtube.mcpb   # build the extension

Project structure:

youtube-claude-mcp/
├── .claude-plugin/plugin.json  # Claude plugin manifest (directory listing)
├── .mcp.json              # Plugin's local MCP server definition (python launch.py)
├── launch.py              # Starts the server with uv using pinned versions (uv.lock)
├── uv.lock                # Exact dependency versions
├── skills/youtube-channel-review/SKILL.md  # Workflow skill for Claude
├── manifest.json          # Claude Desktop extension manifest (MCPB 0.4, uv runtime)
├── main.py                # Extension entry point
├── icon.png               # 512×512 icon
├── assets/                # repository banner
├── creatoros/             # Server package (see Architecture)
├── scripts/acceptance_test.py
├── tests/test_creatoros.py
├── docs/                  # ARCHITECTURE, SOLUTION_AND_TECHNICAL_ARCHITECTURE, SUBMISSION
├── PRIVACY.md · CHANGELOG.md · LICENSE
└── pyproject.toml

License

MIT © 2026 Sumit Mattey

Available Tools

15 tools
youtube_analyze_channel_performanceAnalyze channel & recommendA
Read-onlyIdempotent

End-to-end health check: syncs videos, pulls analytics for this and the previous period, diagnoses each video's bottleneck (click / discovery / retention / conversion) against the channel's own same-format baseline, finds rising and declining videos, and returns ONE prioritized, evidence-backed recommendation.

NameRequiredDescriptionDefault
daysNoAnalysis window in days (compared with the previous window)
channel_idNoYouTube channel ID (UC...). Omit to use the default connected channel.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint, idempotentHint, non-destructive), yet the description adds real behavioral detail beyond them: it discloses an internal video sync step, a current-vs-previous period comparison, a same-format baseline against the channel's own history, and that output is exactly one recommendation. The undisclosed cost here is that this is a multi-step, potentially slow operation, which the description does not warn about; 'syncs videos' also sits in mild tension with readOnlyHint, though a cache refresh is plausibly non-mutating and idempotent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense sentence, but it is front-loaded with the tool's identity and each clause (sync, period comparison, per-video diagnosis, rising/declining detection, single recommendation) adds distinct information. It borders on being a run-on list, though no clause is pure filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description needn't explain return structure, and it still usefully signals that output is one prioritized recommendation rather than a report dump. What is missing for a genuinely heavy orchestration tool is a note on runtime/cost or side effects of the sync step, which would help an agent decide whether to call it or a cheaper sibling first.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and both parameters are documented in the schema, including the default channel fallback and the 14-180 day bound. The description only echoes the comparison-window semantics for `days` ('this and the previous period') and says nothing about channel_id behavior, so it adds little beyond structured fields – the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb chain and resource: 'End-to-end health check: syncs videos, pulls analytics... diagnoses each video's bottleneck... returns ONE prioritized recommendation.' This is clearly distinguishable from siblings like youtube_get_channel_analytics (raw metrics) and youtube_get_channel_overview (summary), since the description emphasizes diagnosis plus a single actionable recommendation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'End-to-end health check' plus the bottleneck taxonomy gives strong implied context for when to reach for this tool over the narrower analytics siblings. However, it never states when NOT to use it (e.g., for a quick metric pull prefer youtube_get_channel_analytics) nor that it is a heavier multi-step operation, leaving the agent to infer the trade-off.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

youtube_compare_videosCompare videos fairlyB
Read-onlyIdempotent

Compare videos on equal footing: each video is measured over its own first N days after publishing.

NameRequiredDescriptionDefault
video_idsYes2-5 video IDs from this channel
channel_idNoYouTube channel ID (UC...). Omit to use the default connected channel.
first_daysNoCompare each video's first N days after publishing

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is fully covered. The description adds one genuinely useful behavioral detail beyond that: comparisons are aligned by age since publishing rather than by calendar window, so short-lived videos are not penalized. It stops short of disclosing result shape, limits (max 5 IDs, single channel), or what happens when a video is newer than first_days.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence, front-loaded with the resource and the fairness/normalization rule, with zero filler. Nothing in it is redundant with the annotations or schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained. However, for a comparison tool spanning 2-5 videos across multiple possible channels, the definition never says what dimensions are compared or that all IDs must belong to one channel, leaving the agent to infer scope from the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all three parameters, including first_days and the UC... channel ID format. The description reinforces the meaning of first_days ('its own first N days') but adds nothing for video_ids or channel_id; baseline 3 applies when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource (compare videos) and states the core mechanic: each video is measured over its own first N days after publishing. It does not say which metrics are compared or how it differs from the neighboring youtube_get_video_analytics, so sibling differentiation is left to the name alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit statement of when to use this tool versus youtube_get_video_analytics or youtube_get_channel_analytics, and no prerequisites or exclusions. Usage is only inferable from the word 'Compare' and the phrase 'on equal footing', which suggests normalizing across videos of different ages but never says so directly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

youtube_connect_channelConnect a YouTube channelA
Destructive

Connect a YouTube channel via Google sign-in (OAuth 2.0, read-only permissions).

Opens Google's consent screen in a browser on the computer running this server. The user signs in and picks the channel (or Brand Account). Tokens are encrypted locally and never returned here. Call again to connect additional channels.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, it discloses the behaviors an agent could not otherwise infer: that a browser on the server host opens a Google consent screen, that a human must sign in and choose the channel or Brand Account, and that tokens are encrypted at rest and never returned. This makes clear the call is interactive and requires a user present, which matters greatly for a non-idempotent, open-world tool. Note the "read-only permissions" line refers to the granted Google scopes, not to tool behavior, so it does not genuinely contradict destructiveHint=true — though the pairing could briefly confuse a reader.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the action and auth method, then the mechanics, then the repeat-use note; each sentence adds something. Slightly long for a no-parameter tool, but no sentence is filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an interactive OAuth flow, the description covers the essentials: browser requirement, human interaction, token handling, and repeat use; an output schema exists so return values need not be described. It omits failure/cancellation behavior and any indication of whether an already-connected channel is duplicated or skipped, which is the main remaining gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With zero parameters, there is nothing for the schema to describe, and the description usefully explains that channel selection happens inside the browser consent screen rather than through arguments. That is a meaningful clarification, though it does not say what happens if no channel is chosen or if the account is already connected.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Connect a YouTube channel") plus the mechanism (Google sign-in / OAuth 2.0), which cleanly separates it from sibling connect-adjacent tools like youtube_list_channels and youtube_disconnect_channel. It also clarifies that repeat calls add more channels rather than replacing the connection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Call again to connect additional channels" gives explicit guidance on repeated invocation, and the browser/consent flow makes the context of use clear. It never names a sibling alternative (e.g., use youtube_list_channels to see what is already connected, or youtube_disconnect_channel to undo), so the routing guidance stops short of explicit alternatives or when-not-to-use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

youtube_disconnect_channelDisconnect a channelA
DestructiveIdempotent

Revoke CreatorOS's Google access for a channel and delete its local token. Requires explicit confirmation.

NameRequiredDescriptionDefault
confirmNoMust be true. Ask the user to confirm before setting it.
channel_idYesChannel ID to disconnect

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructiveHint=true, idempotentHint=true, and openWorldHint=true, so the safety profile is covered. The description adds real value by naming exactly what is destroyed: the Google OAuth grant is revoked and the local token is deleted, and it warns that explicit confirmation is mandatory. It leaves minor gaps, such as whether revocation affects other channels sharing the same Google account.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tightly constructed sentences with the destructive effect front-loaded and the confirmation constraint second. Every phrase earns its place and nothing is redundant padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the annotations cover idempotency and destructive behavior. The description states both effects of the operation and the confirmation gate, which is sufficient for correct invocation. It could go further on partial-failure behavior or shared-account side effects for a destructive, open-world operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the confirm parameter already carries the instruction 'Must be true. Ask the user to confirm before setting it,' which is the key semantic. The description's 'Requires explicit confirmation' reinforces that gate but adds no new information about channel_id or the confirm flow, so the schema is doing the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb pair and resource: 'Revoke CreatorOS's Google access for a channel and delete its local token.' This clearly identifies it as the inverse of youtube_connect_channel and distinguishes it from read-only siblings like youtube_list_channels. It does not explicitly name the sibling it complements, which keeps it just short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the inverse relationship to connect_channel and by the stated confirmation requirement, but the description never explicitly says when to prefer this over alternatives or what preconditions exist (e.g., channel must currently be connected). 'Requires explicit confirmation' is an invocation instruction rather than tool-selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

youtube_get_channel_analyticsChannel analyticsB
Read-onlyIdempotent

Private channel analytics: totals vs previous period, daily trend, traffic sources, countries, subscriber split.

NameRequiredDescriptionDefault
daysNoWindow length in days (compared with the previous window of the same length)
channel_idNoYouTube channel ID (UC...). Omit to use the default connected channel.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is fully covered by structured fields. The description adds one piece of real context beyond that — 'Private', signalling the data is scoped to the caller's own authenticated channel — plus a low-cost summary of what the payload contains. It says nothing about rate limits, quota cost, or empty-data behavior, so it is value-adding but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence fragment that wastes no words, with the distinguishing qualifier ('Private') placed first and the payload contents listed after. It is efficient, though the colon-list format is clipped enough that it reads as a label rather than an instruction.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation is not required, and annotations cover the safety profile; with only two well-documented parameters the definition is close to sufficient. The remaining gap is selection guidance against four sibling analytics/overview tools, which the description does not address at all.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: the 'days' parameter already documents the window and that it compares against a previous window of equal length, and 'channel_id' documents the UC... format and the omit-to-use-default behavior. The description adds no syntax, defaults, or edge cases on top of that, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource (channel analytics) and enumerates the concrete outputs: period-over-period totals, daily trend, traffic sources, countries, and subscriber split. That is specific enough for an agent to know what data it yields, but it never distinguishes this tool from likely-overlapping siblings such as youtube_get_channel_overview or youtube_analyze_channel_performance.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance at all: no statement about when this beats youtube_get_channel_overview, youtube_get_video_analytics, or youtube_analyze_channel_performance, and no prerequisites such as needing a connected channel. The only hint is the word 'Private', which implies an authenticated/owned channel but does not route the agent between alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

youtube_get_channel_overviewChannel overviewC
Read-onlyIdempotent

Channel profile, public stats, library composition (Shorts vs long-form) and upload cadence.

NameRequiredDescriptionDefault
channel_idNoYouTube channel ID (UC...). Omit to use the default connected channel.

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, destructiveHint=false, so the safety profile is covered. The description adds nothing beyond that: no statement about the time window of stats, whether data is cached or live, or any rate/quota behavior expected of an external YouTube API read. With an output schema present it needn't describe returns, but it still leaves the agent without behavioral context beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single compact fragment with zero filler, but it is under-specified rather than concise: the missing verb and scope statement would cost only a few words and would materially improve selection. Brevity here comes at the expense of clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With one optional parameter, an output schema and full annotations, structural coverage is good, but the description omits the one thing structure cannot convey: how an 'overview' differs from the three analytics/performance siblings in this toolset. For a read tool sitting in a crowded analytics family, that differentiation gap is a real deficiency.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the sole parameter channel_id already documents the UC... format and the omit-for-default behavior, so the description is not required to compensate. It adds no meaning beyond the schema; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a bare noun phrase ('Channel profile, public stats, library composition... upload cadence') with no verb and no stated scope such as whose channel is read. The listed content gives a reasonable sense of what data comes back, but it never distinguishes this 'overview' from sibling tools like youtube_get_channel_analytics or youtube_analyze_channel_performance, which plausibly return overlapping metrics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance at all: no mention of when to pick this over youtube_get_channel_analytics, youtube_analyze_channel_performance, or youtube_list_channels. The only usage hint in the whole definition lives in the schema ('Omit to use the default connected channel'), not the description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

youtube_get_commentsVideo commentsB
Read-onlyIdempotent

Top-level comments on a video, with quick derived signals (questions, most-liked) for audience analysis.

NameRequiredDescriptionDefault
orderNo'relevance' (top) or 'time' (newest)relevance
video_idYesYouTube video ID
channel_idNoYouTube channel ID (UC...). Omit to use the default connected channel.
max_resultsNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, non-destructive, open-world behavior, so the bar is lower. The description does add real scope information beyond annotations: only top-level comments are returned (replies excluded) and extra computed fields (questions, most-liked) are attached. It says nothing about pagination, the 100/300 result cap, or quota behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single well-formed sentence with the most important qualifier ('top-level') front-loaded and no filler. It is efficient, though arguably under-specified rather than tight.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained. However, for a tool with four parameters and a default result order that materially changes what an agent sees, the description offers no guidance on ordering, limits, or channel scoping, leaving gaps the schema does not fill.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 75%: order, video_id and channel_id carry descriptions, while max_results only has bounds and a default. The description adds no parameter meaning at all, so it neither compensates for the coverage gap nor clarifies enum/default behavior. Baseline 3 is appropriate given the schema does most of the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names the resource precisely (top-level comments on a video) and scopes it to non-reply comments, plus flags derived signals (questions, most-liked). The retrieval verb is only implied by the tool name rather than stated, and no sibling tool is named, but the resource is unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage hint is the trailing phrase 'for audience analysis', which implies intent but never states when to call this versus other video/analytics tools or any prerequisites (e.g. needing a video_id from youtube_list_videos). No exclusions or alternatives are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

youtube_get_recommendation_historyPast recommendationsB
Read-onlyIdempotent

Recommendations CreatorOS made earlier (with their baselines) so you can check them against what happened next.

NameRequiredDescriptionDefault
limitNo
channel_idNoYouTube channel ID (UC...). Omit to use the default connected channel.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare that the tool is read-only, idempotent, non-destructive, and open-world, so the safety profile is covered. The description adds useful context that the results are historical records paired with baselines. It does not disclose ordering, whether the history is bounded, or how 'limit' truncates the list, which are behaviors an agent would want to know.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single front-loaded sentence with no filler, and the purpose is stated before the use case. The parenthetical about baselines is efficient. It is slightly terse for a tool that has an undocumented parameter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so the description does not need to explain return values, and the annotations cover safety. The remaining gaps are ordering, limit behavior, and channel scoping. For a simple two-parameter read tool, this is adequate but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 50%: channel_id is documented in the schema, but limit is not documented beyond its numeric bounds. The description adds no meaning to either parameter; it says nothing about what limit counts, what order results come in, or that omitting channel_id falls back to the default connected channel. It therefore fails to compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: retrieving recommendations that were made earlier, together with their baselines. This clearly separates it from the sibling youtube_recommend_publishing_time, which generates new recommendations rather than reading past ones. It does not explicitly name that sibling, but the phrase 'made earlier' makes the distinction clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the purpose of the tool through 'so you can check them against what happened next', which indicates that the tool is meant for retrospective review. However, it does not say when to use it versus alternatives, whether to call it before or after an analytics call, or what it excludes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

youtube_get_video_analyticsVideo analyticsB
Read-onlyIdempotent

Private analytics for one video: totals, impressions/CTR (if available), traffic sources, audience-retention curve with the biggest drop-off, and YouTube search terms that found it.

NameRequiredDescriptionDefault
daysNoWindow in days. Omit for lifetime (since publish).
video_idYesYouTube video ID
channel_idNoYouTube channel ID (UC...). Omit to use the default connected channel.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds two genuinely new behavioral facts: the data is 'private' (implying the caller must be authorized for that channel) and that impressions/CTR are only 'if available', warning the agent that some fields may be absent. It says nothing about latency, quota cost, or data freshness, so it earns a solid but not exceptional score.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence that opens with scope ('one video') before listing contents. Every clause names a distinct metric family, so nothing is filler, though the enumeration is dense and would read better split from the availability caveat.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so the length spent enumerating return values is partly redundant with structured data. The description does cover the authorization-relevant 'private' nature, but with a three-parameter, open-world, authenticated tool it leaves out what happens on missing metrics beyond a parenthetical and any note on how days interacts with retention/CTR data.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% — video_id, channel_id and the days window (with lifetime default) are all documented in the schema itself. The description adds no syntax or format detail beyond that, so the baseline 3 applies; the 'if available' caveat relates to output, not to parameter usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb (retrieve analytics) and a precise scope ('for one video'), then enumerates the metric families returned (totals, impressions/CTR, traffic sources, retention, search terms). This clearly separates it from channel-level analytics, though it never names youtube_get_channel_analytics or youtube_compare_videos as the alternative scopes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied by the phrase 'for one video' — an agent can infer this is the per-video counterpart to channel-level analytics, but there is no explicit statement of when to choose this tool over youtube_get_channel_analytics or youtube_compare_videos, and no prerequisite guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

youtube_get_video_detailsVideo detailsA
Read-onlyIdempotent

Full metadata for one video (title, description, tags, duration, format, stats) plus stored stat history.

NameRequiredDescriptionDefault
video_idYesYouTube video ID, e.g. dQw4w9WgXcQ
channel_idNoYouTube channel ID (UC...). Omit to use the default connected channel.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, openWorld, and non-destructive, so the safety profile needs no restating. The description does add one piece of behavior beyond them — that the response includes stored stat history alongside current metadata — but it says nothing about scope, cost, or what the returned history window covers.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with the resource front-loaded and the returned fields parenthesized; no filler and nothing buried mid-clause.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With only two parameters, one required, full schema coverage, an output schema, and rich annotations, the short description is nearly sufficient. The only real gap is overlap ambiguity with the analytics sibling, which matters for tool selection in this crowded namespace.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both video_id and the optional channel_id (with its default-channel fallback) are already fully documented inline. The description adds only that the tool targets exactly one video, not batch behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States the resource (a single video's full metadata) and enumerates the returned fields (title, description, tags, duration, format, stats) plus stored stat history, which clearly separates it from list/search siblings. It does not, however, draw the line against youtube_get_video_analytics, which overlaps with the 'stats' and 'history' it advertises.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: fetch details once you have a video_id. There is no explicit when-to-use guidance, no mention of when to prefer youtube_get_video_analytics or youtube_compare_videos, and no stated prerequisites (e.g., a connected channel).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

youtube_list_channelsList connected channelsA
Read-onlyIdempotent

List YouTube channels connected to CreatorOS and which one is the default.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds one useful behavioral fact — that the result marks which channel is the default — but says nothing about behavior when no channels are connected or about auth/scope requirements for reading connected accounts.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with no filler, front-loading the core action and appending the default-channel detail. Nothing is redundant with the title or annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no parameters, rich annotations and an output schema, the description only needs to convey scope, which it does. The one gap is the empty-state behavior (what comes back when no channel is connected), which an agent may need when routing after a failed lookup.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is no parameter meaning to convey; baseline for a parameterless schema is 4. The description does not over-promise filtering options that do not exist.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (list) and resource (YouTube channels connected to CreatorOS) and adds a distinguishing detail — that the default channel is identified. It is clearly separable from siblings like youtube_connect_channel or youtube_set_default_channel, though it does not name them explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: an agent can infer this is the discovery call to run before set_default or disconnect, but the description never says when to use it or when another sibling is preferable. No prerequisites or exclusions are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

youtube_list_videosList channel videosA
Read-onlyIdempotent

List the channel's uploaded videos with lifetime public stats (views, likes, comments).

NameRequiredDescriptionDefault
sortNoSort ordernewest
limitNoMax videos to return
formatNoFilter by formatall
offsetNoPagination offset
refreshNoForce a fresh sync from YouTube instead of the 6-hour cache
channel_idNoYouTube channel ID (UC...). Omit to use the default connected channel.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description adds real value by specifying the stats are 'lifetime' and 'public' — distinguishing them from the analytics siblings — but it does not mention caching or the fact that a full sync can be forced, leaving that to the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler; the resource comes first and the returned data is stated immediately. Nothing in it is redundant with the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With annotations, a full output schema, and complete parameter documentation, the description is adequate for calling the tool correctly. It is thin for selection, however: it does not distinguish this list operation from search_videos or explain how public lifetime stats differ from the separate analytics tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and all six parameters (sort, limit, format, offset, refresh, channel_id) carry their own descriptions, including the cache note on 'refresh' and the default-channel fallback on 'channel_id'. The description adds no parameter-level meaning beyond that, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('List') and resource ('channel's uploaded videos') plus what is returned ('lifetime public stats (views, likes, comments)'). It is clear what the tool does, but it never contrasts itself with the nearby youtube_search_videos sibling, so an agent must infer the boundary between listing a channel's uploads and searching videos.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: listing implies you already know the channel, while filtering/searching would suggest another tool. There is no explicit when-to-use or when-not-to-use guidance, and none of the 14 sibling tools (notably youtube_search_videos and youtube_get_video_analytics) are named as alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

youtube_recommend_publishing_timeBest time to publishA
Read-onlyIdempotent

Recommend the best weekday and time block to publish, estimated from how your past uploads performed relative to neighbouring uploads. Includes confidence, sample sizes and how to validate it.

NameRequiredDescriptionDefault
formatNoAnalyze Shorts and long-form separately for best resultsall
channel_idNoYouTube channel ID (UC...). Omit to use the default connected channel.
timezone_nameNoIANA timezone of the main audience, e.g. 'Asia/Kolkata'. Omit to infer from the top audience country.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this a read-only, idempotent, open-world operation, so the safety bar is low; the description goes further by disclosing the derivation method (relative performance against neighbouring uploads) and that the output carries confidence and sample-size caveats. It stops short of stating rate limits or what happens with sparse history, but the methodological disclosure is genuine added context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences with the core capability front-loaded and the caveat trailing. The closing clause about confidence and sample sizes leans on output content that an output schema already exposes, so it earns its place only partially.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description needn't enumerate return fields, and it correctly focuses on methodology and trustworthiness signals. What remains thin is the operational prerequisite — how much upload history is needed before a recommendation is meaningful — which an agent would want before calling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and each parameter (format, channel_id, timezone_name) is documented with defaults and examples, so the baseline applies. The description adds nothing parameter-specific — notably it does not reinforce the schema's hint that analyzing Shorts and long-form separately gives better results.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — 'recommend the best weekday and time block to publish' — plus the inference basis ('how your past uploads performed relative to neighbouring uploads'). This is clearly distinct from the sibling analytics tools (youtube_get_channel_analytics, youtube_get_video_analytics), which report metrics rather than prescribe a scheduling slot.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the use case (planning when to publish) and mentions validation, but never explicitly says when to call this versus the analytics siblings, nor what prerequisites apply (e.g. minimum upload history). Usage is inferable from the name and purpose statement rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

youtube_search_videosSearch my videosA
Read-onlyIdempotent

Search the connected channel's own video library (keyword match; uses no YouTube quota).

NameRequiredDescriptionDefault
limitNo
queryYesWords to find in titles, tags and descriptions, e.g. 'artificial intelligence'
channel_idNoYouTube channel ID (UC...). Omit to use the default connected channel.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent and non-destructive, so the safety profile is covered. The description adds one genuinely useful behavior beyond that – no YouTube quota is consumed – but says nothing about result ordering, truncation by limit, or what happens when the query matches nothing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single compact sentence with the scoping constraint front-loaded and the useful quota note in parentheses. Nothing is wasted, though the parenthetical could have been spent on something an agent cannot get from schema or annotations, such as ordering.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and annotations covering safety, the description only needs to convey scope and cost, which it does. What is missing — result ordering and behavior at the limit boundary — is minor for a read-only search tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67% and the schema already explains query semantics (titles, tags, descriptions) and the default-channel behavior for channel_id. The description adds no meaning beyond that; limit remains undocumented in the prose, which the schema's min/max only partly compensates for.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (search) and resource (connected channel's own video library) plus the match mode (keyword). It implicitly separates itself from youtube_list_videos by being a keyword search rather than an enumeration, but never names that sibling, so an agent must infer the distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'connected channel's own video library' signals when this applies (local search over your own content), and 'uses no YouTube quota' hints it is cheap to call. There is no explicit when-to-use versus youtube_list_videos or youtube_get_video_details, and no stated precondition that a channel must already be connected.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

youtube_set_default_channelSet default channelB
Destructive

Choose which connected channel tools use when channel_id is omitted.

NameRequiredDescriptionDefault
channel_idYesConnected channel ID (UC...)

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, idempotentHint=false, and openWorldHint=true, so the safety profile is covered. The description adds nothing beyond them: it does not say the previous default is replaced, whether the setting persists across sessions or is per-user/per-workspace, or what confirmation is returned. For a mutation of persistent state, that is a real gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence, front-loaded with the verb and zero wasted words. Nothing redundant or padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple (one required param, output schema present, annotations cover safety), so the short description is close to sufficient. What is missing is the effect on existing state (overwriting the prior default) and the precondition that the channel be connected, both of which matter given destructiveHint=true.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and channel_id is documented with its UC... format, so the schema carries the parameter burden. The description does add the semantic link that this parameter becomes the fallback used by other tools, but gives no constraint such as 'must be a connected channel'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific action and resource (set the default channel used by tools) in a single unambiguous sentence. It is clearly distinguishable from connect/disconnect/list siblings, though it never names those siblings to reinforce the contrast.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The clause 'when channel_id is omitted' usefully explains when this setting takes effect, implying you call it to avoid passing channel_id on every later call. It gives no explicit when-not guidance, no prerequisites (e.g. the channel must already be connected), and no named alternative such as passing channel_id explicitly instead.

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.

  1. 15 tool updatesv0.3.5
    • First observedyoutube_analyze_channel_performance
    • First observedyoutube_compare_videos
    • First observedyoutube_connect_channel
    • First observedyoutube_disconnect_channel
    • First observedyoutube_get_channel_analytics
    • First observedyoutube_get_channel_overview
    • First observedyoutube_get_comments
    • First observedyoutube_get_recommendation_history
    • First observedyoutube_get_video_analytics
    • First observedyoutube_get_video_details
    • First observedyoutube_list_channels
    • First observedyoutube_list_videos
    • First observedyoutube_recommend_publishing_time
    • First observedyoutube_search_videos
    • First observedyoutube_set_default_channel

TDQS

A3.5/5.0

Scored across 15 tools

Disambiguation4/5

Tools split cleanly into four groups: connection management, library browsing, analytics, and recommendations. Most boundaries are clear, but the analytics cluster has mild overlap risk — get_channel_analytics vs analyze_channel_performance (the latter is a composite that calls the former) and get_video_analytics vs compare_videos require reading descriptions to pick correctly. list_videos vs search_videos could also be confused at a glance, though the quota note helps.

Naming Consistency5/5

Every tool follows the same youtube_<verb>_<noun> snake_case pattern, with predictable verb families (connect, list, set, get, search, analyze, recommend, compare). No camelCase or style drift anywhere in the set.

Tool Count5/5

15 tools is at the top of the ideal band and each one maps to a distinct user-facing job — connection lifecycle, video browsing, channel/video analytics, and recommendations. Nothing feels padded, and the composite analyze_channel_performance earns its place by tying the others together.

Completeness4/5

The surface covers the full connection lifecycle plus the read-only insight workflows the server explicitly scopes itself to (OAuth read-only), so core jobs have no dead ends. Minor gaps remain: no playlist or subscription inspection, no video metadata update, and no way to drill into comment replies, all of which an agent might reasonably expect from a creator-analytics server.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    A comprehensive MCP server that provides Claude AI with full access to YouTube content, including searchable transcripts, metadata, comments, and playlists. It uniquely supports capturing video screenshots and extracting audio clips for analysis across both local and remote platforms.
    5
    32 npm
    3
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    A local, privacy-first MCP server providing direct access to official YouTube Data, Analytics, Reporting, and Live Streaming APIs for creators, enabling channel analysis, research, and guarded management operations.
    3
    MIT