worthwatch
Checks YouTube channels for new videos, reads video transcripts/captions, and provides tools for judging and managing video digests based on user context and rules.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@worthwatchcheck my followed YouTube channels and show today's digest"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
worthwatch
worthwatch checks the YouTube channels you follow and tells you which new videos are worth your time.
It judges every video against a short file you write about your own projects, so the answer is about you.
What a day looks like
Here is part of one day's digest for Mara Quinn, who sells bookkeeping software to bakeries and writes a newsletter for indie game makers. She and these videos are invented, but the digest is worthwatch's own output (the whole file):
# Digest 2026-03-02
Context file last updated 1 day ago.
- **YES** Ledgerleaf: Email the three bakeries that churned last month and ask which report they missed. [We Got 40 Paying Bakeries Without Ads](https://www.youtube.com/watch?v=SampleVid01)
- **YES** Tidepool: Rewrite the Tidepool welcome email so it links the three most-read issues. [The Welcome Email Every Newsletter Gets Wrong](https://www.youtube.com/watch?v=SampleVid02)
2 kept, 2 read and skipped, 0 read but not written, 1 not read, 0 waiting.
| Verdict | Channel | Title | Reason |
|---|---|---|---|
| YES | Small Software Show | We Got 40 Paying Bakeries Without Ads | |
| YES | Inbox Craft | The Welcome Email Every Newsletter Gets Wrong | |
| MAYBE | Hype Daily | Growth Hacks for 2026 (Number 7 Will Shock You) | |
| MAYBE | Ad Lab | Boost Your Posts: The Paid Ads Playbook | [demoted from YES: it contradicts a standing decision (no paid ads)] |The fourth video was judged YES, then turned into a MAYBE by one of Mara's own rules: she has decided never to pay for ads. worthwatch checks every write-up against rules like that in code, after the model has written it.
Related MCP server: tldw-mcp
Why it exists
I built worthwatch for myself, to keep up with the YouTube channels I follow without watching every video. It reads each new one and tells me which are worth my time for what I'm building right now. I'm giving it away free because anyone exploring a new niche has the same problem, and you don't need a GPU to run it.
What makes it different
It judges for you. Every verdict is about your projects, read from your own context file, not a generic summary.
Your rules are code. Decisions you have made ("no paid ads", "never a free plan") are checked after the model writes. A YES that breaks one becomes a MAYBE, and the digest says why.
No made-up quotes. A quote in a write-up has to match one stretch of the transcript, word for word or within a few words, or it is cut.
Polite to YouTube. Captions first, small daily limits and a gap between requests. When YouTube says stop, worthwatch stops and waits. It never pretends to be a browser, never uses your cookies, and never tries another way in.
Any brain, free ones first. Your own AI agent, a local model, Gemini's free API tier, or the AI tools you already use.
An idea board. Every business idea a video contains, checked and kept in one place.
Made for AI agents. An MCP server and a skill, so Claude Code, Codex, Cursor and others can use it.
No GPU needed.
Quickstart
Install uv, if you do not have it. On macOS or Linux:
curl -LsSf https://astral.sh/uv/install.sh | shOn Windows, in PowerShell:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"Install worthwatch:
uv tool install git+https://github.com/mokshtheverma-max/worthwatchIf uv warns that its tool folder is not on your PATH, run this once, then open a new terminal so that the
worthwatchcommand is found:uv tool update-shellMake your folders and starter files, and choose the brain that judges the videos:
worthwatch initCheck that everything is ready. It says in plain words what is missing and how to fix it:
worthwatch doctorJudge one video:
worthwatch https://www.youtube.com/watch?v=VIDEO_IDThis needs a brain worthwatch can call (claude, codex, api or ollama). In agent mode, ask your agent instead (see below).
Make it yours: open
context.mdin your config folder and replace the example person with yourself, put the channels you follow inchannels.txt, one link a line, and runworthwatch --channelsonce a day.
Your files live in three folders, which worthwatch init prints:
config (your settings) | data (records and transcripts) | output (digests you read) | |
Windows |
|
|
|
macOS |
| the same folder, |
|
Linux |
|
|
|
Set WORTHWATCH_HOME to keep all three in one folder instead.
Pick your brain
worthwatch init asks; worthwatch init --brain NAME changes it later. Free ones first:
Brain | What it costs you | Setup |
| Nothing extra: worthwatch calls no model, and your own AI agent does the judging | Connect your agent (next section) |
| Nothing: the model runs on your computer | Install Ollama, then |
| Gemini's API has a free tier: Google's pricing page says "Start building free of charge with generous limits" (ai.google.dev/gemini-api/docs/pricing) | Put your key in |
| Uses the Claude Code plan you already have ( | Install Claude Code |
| Uses the Codex plan you already have ( | Install the Codex CLI |
| That service's own prices | Put the key in |
You can also give the quick jobs (sorting a listing, a first look at a transcript) to a different
brain from the write-ups, for example a free local model for the quick jobs and claude to write:
set quick = "ollama" under [brain] in settings.toml.
Use it from your AI agent
worthwatch mcp is an MCP server with eight tools: check your channels for new videos, read a
transcript, hand your agent everything it needs to judge a video, save the verdict after your
rules have checked it, show today's digest, and list, add or kill ideas.
In Claude Code, one line installs the plugin (the MCP server and a skill that teaches Claude to use it), on Claude Code 2.1.275 or later:
/plugin install worthwatch --marketplace mokshtheverma-max/worthwatchOr add only the server:
claude mcp add worthwatch -- worthwatch mcpFor Claude Desktop, Codex CLI, Cursor and others, see docs/agents.md, which also says which setups were tested.
Privacy
Your context file, channels, transcripts, records and digests stay in your folders, on your computer.
What leaves your computer: requests to YouTube, to read channel listings and captions; and the transcript and your context file, to the brain you chose. With Ollama they stay on your computer; with claude, codex or an API they go to that company; in agent mode they go to your agent.
Jev, an optional paid screen for business ideas, is off unless you switch it on, and is only ever sent public video text, never your context file.
There are no accounts and no telemetry. API keys come from your environment, and worthwatch never writes them to a file.
Responsible use
worthwatch reads public videos for your own use. Respect YouTube's Terms of Service and the people who made the videos.
It reads captions. It can also download a video's audio and transcribe it, but downloading may break YouTube's terms, so that is off unless you switch it on (
[transcripts] audio = true, and the whisper extra:uv tool install --reinstall "worthwatch[whisper] @ git+https://github.com/mokshtheverma-max/worthwatch").Its limits are polite and on by default. If YouTube refuses, it waits and says so; there is no setting to get around a refusal, on purpose.
Do not republish transcripts or write-ups as your own work.
Troubleshooting
Something is not working: run
worthwatch doctor. Every line that needs fixing says how."YouTube refused the request for now (HTTP 429)": your network is being told to slow down. Wait;
worthwatch statusshows when the next try is."Your brain is agent mode": worthwatch calls no model in agent mode. Ask your agent, or run
worthwatch init --brain claude(or codex, api, ollama).A video has no captions: it cannot be read without the audio path (see Responsible use).
"JavaScript runtime" in the doctor: reinstall worthwatch, which brings Deno with it:
uv tool install --reinstall git+https://github.com/mokshtheverma-max/worthwatch.Claude Desktop cannot find
worthwatch: use the full path;uv tool dir --binprints the folder it is in.
More
Settings:
settings.tomlandrules.tomlin your config folder, made byworthwatch init, explain themselves line by line. The example person's files are in src/worthwatch/examples.License: Apache-2.0.
Available Tools
8 toolsadd_ideaC
Put an idea of your own on the idea board.
| Name | Required | Description | Default |
|---|---|---|---|
| idea | Yes | ||
| why_now | No | ||
| how_much | No | ||
| who_pays | No | ||
| first_step | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full burden. It implies a write ('Put an idea'), but says nothing about persistence, whether the idea can later be removed (kill_idea exists), whether fields are editable, or any auth/rate constraints — critical gaps for an unannotated 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?
A single short sentence with no filler, and the core action is front-loaded. It is efficient but borders on under-specification for a five-parameter tool.
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?
With five parameters, 0% schema coverage, no annotations, and no output schema, the description should explain the pitch-style field set and what creating an idea yields. It explains neither, leaving the agent to guess at the semantic intent of four of the five fields.
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 0% and the parameters use non-obvious pitch-template names (why_now, how_much, who_pays, first_step) that the description never mentions. Only the required 'idea' field is loosely reflected in the wording; the four optional fields are entirely unexplained in both schema and description.
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?
States a specific verb and resource ('Put an idea... on the idea board') that an agent can distinguish from list_ideas and kill_idea by name alone. The phrase 'of your own' signals authorship, though it does not explicitly name the siblings it differs from.
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 when-to-use or when-not-to-use guidance and no alternatives named. The agent must infer from sibling names (list_ideas, kill_idea) that this is the creation path, and gets no hint about whether check_channels or judge_video should precede it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_channelsA
List new videos from the channels in your channels.txt, priority channels first. It fetches no transcript and calls no model. Each channel listed is one polite YouTube request, so at most max_channels are listed per call; call again to go on through the rest.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | ||
| max_channels | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden, and it does substantial work: no transcript fetch, no model invocation, and a cost disclosure ("one polite YouTube request" per channel, capped at max_channels). It does not say what happens if channels.txt is missing or what the returned items look like.
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 short sentences, zero filler, with the core action first and the cost/pagination constraints following. Every sentence adds a fact the agent needs.
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?
Covers purpose, cost, and pagination adequately for a no-output-schema tool, but leaves the days parameter undefined and gives no indication of what fields each listed video carries. For a 2-param tool with no annotations and no output schema, that is adequate but not 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 0%, so the description must define both parameters. It explains max_channels well ("at most max_channels are listed per call") but never mentions days at all — the recency window is left entirely implicit, which is a meaningful gap for a 'new videos' 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?
States a specific verb and resource ("List new videos from the channels in your channels.txt") plus the ordering rule ("priority channels first"). The clause "fetches no transcript and calls no model" implicitly separates it from get_transcript and judge_video, so an agent can route correctly without opening schemas.
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?
Gives clear operational context: it only reads channels listed in channels.txt, caps work at max_channels per call, and explicitly says "call again to go on through the rest," which is real pagination guidance. It stops short of naming when to prefer a sibling such as todays_digest instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_transcriptA
The transcript of one YouTube video (a video link or its 11-character id): from this machine if worthwatch already has it, otherwise from YouTube's captions, politely. A refusal means wait.
| Name | Required | Description | Default |
|---|---|---|---|
| video | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description does add useful behavioral context: it discloses the local-first fallback to YouTube captions and that refusal should be handled by waiting. It still omits details about permissions, rate limits, or what a transcript response looks like, leaving gaps for a no-annotation 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 compact sentence with the core resource information front-loaded. The phrasing 'politely' and 'A refusal means wait' is slightly informal but still communicates operational guidance without bloat.
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 one-parameter tool with no output schema or annotations, the description covers input format, retrieval fallback, and refusal handling. It is mostly complete, though it could explicitly note that the return value is the transcript text.
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 0%, so the description carries the burden of explaining the single parameter. It does so meaningfully by stating that the video input can be a video link or an 11-character ID, which adds format guidance beyond the bare schema.
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 as one YouTube video's transcript and specifies accepted input forms (link or 11-character ID). It is distinguishable from siblings like judge_video or check_channels, though it phrases the purpose as a noun phrase rather than an explicit verb.
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 indicates the source fallback behavior (local cache first, then YouTube captions) and notes that a refusal means to wait. However, it does not state when an agent should call this tool versus alternatives or whether there are prerequisites like authentication.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
judge_videoB
Everything an agent needs to judge one video for the user: step 1, the rules that decide the verdict (YES, OPPORTUNITY, MAYBE or NO) with the user's context; step 2, the write-up's exact format with the full transcript; step 3, how to save it. worthwatch calls no model here: you do the judging.
| Name | Required | Description | Default |
|---|---|---|---|
| video | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does add one genuinely useful trait: 'worthwatch calls no model here: you do the judging', which tells the agent this returns instruction material rather than a computed verdict. However, it never clarifies side effects — whether step 3 saves anything itself or merely instructs, and whether the call is read-only — which matters for a tool with a save_verdict sibling.
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?
Front-loaded with the core purpose and structured as a numbered breakdown, with no filler sentences. The nested colon-list is slightly dense but every clause carries information.
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?
Because there is no output schema, the description usefully tells the agent roughly what comes back (decision rules, write-up format, save instructions), which is strong. But it leaves the single input's format unspecified and the save behavior ambiguous, so it is not fully complete for a no-annotation tool.
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 single required parameter 'video' has 0% schema description coverage and the description adds nothing: it does not say whether the value is a URL, video ID, or title. This is the one field the agent must supply, and its format is undocumented in both places.
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?
States a specific verb and resource ('judge one video for the user') and enumerates the verdict outputs (YES, OPPORTUNITY, MAYBE, NO), so the agent knows exactly what the call produces. Sibling differentiation is partial: step 3 ('how to save it') overlaps with the save_verdict sibling, leaving it unclear which tool actually persists the result.
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 step 1/2/3 framing implies a workflow (judge, then write up, then save) and step 2's 'with the full transcript' hints the transcript should already exist, but no sibling is named and there is no explicit when-not or 'call get_transcript first' routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kill_ideaA
Kill an idea on the board, with the reason, so it stops being suggested.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | Yes | ||
| idea_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden and does clarify the key effect: the idea stops being suggested rather than necessarily being deleted. However, it omits permissions, reversibility, and whether the kill can be undone.
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 with no wasted clauses. The resource, required reason, and outcome are all stated compactly.
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 two-parameter mutation tool with no annotations or output schema, the description covers the core operation and reason parameter. It remains incomplete on permissions, permanence, and idea_id semantics.
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 0%, so the description must compensate. It explains that a reason is supplied, but adds no detail about idea_id, identifier format, or constraints on the reason string.
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 gives a specific verb and resource ("Kill an idea on the board") and states the resulting effect ("so it stops being suggested"). That is enough to distinguish it from siblings like add_idea and list_ideas without needing to name them.
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?
Usage is implied by the stated outcome: use this when an idea should stop being suggested. There are no explicit when-not conditions or named alternatives, so it is only minimum-viable guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_ideasA
The idea board: every idea worthwatch has found in the videos or you added, with who pays, how much, a first step and how many videos back it. Killed ideas only when asked for.
| Name | Required | Description | Default |
|---|---|---|---|
| include_killed | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden and does well by disclosing the returned idea fields and the default exclusion of killed ideas. It does not explicitly state read-only behavior, ordering, or pagination, but for a listing tool it provides substantial useful context.
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 compact, front-loaded sentence that immediately establishes the resource and then summarizes contents and filtering. There is no wasted text.
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 listing tool with no output schema, the description explains the returned idea contents and the killed-idea filter. It omits minor details like ordering or pagination, but is sufficiently complete for correct invocation.
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 0%, so the description must explain the only parameter. The phrase "Killed ideas only when asked for" directly clarifies the include_killed behavior and implies the default exclusion, though it does not name the parameter explicitly.
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 identifies the specific resource as the idea board and scopes it to ideas found in videos or added by the user. It also lists the core idea metadata and notes that killed ideas are excluded by default, which distinguishes it from add_idea and kill_idea without naming those siblings directly.
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 gives a clear condition for including killed ideas: only when asked for. However, it does not explicitly say when to use this tool versus siblings like todays_digest, add_idea, or kill_idea, so usage is mostly implied by the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_verdictB
Store your verdict and write-up for one video. worthwatch first checks them against the user's own rules in code, exactly as it checks a model's: quotes must be in the transcript, a YES needs a live project and an action, and nothing may break a standing decision. The verdict that comes back is the one the digest will show.
| Name | Required | Description | Default |
|---|---|---|---|
| video | Yes | ||
| verdict | Yes | ||
| write_up | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does real work: it discloses that verdicts are validated in code against the user's own rules — quotes must be in the transcript, a YES requires a live project and an action, standing decisions cannot be broken — and that the returned verdict may be normalized before the digest shows it. The gap is failure semantics: it does not say whether a rejected verdict raises an error, returns a corrected one, or is silently dropped.
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, front-loaded with the action, then validation rules, then return behavior. Dense and mostly free of waste, though the clause about 'exactly as it checks a model's' is atmosphere more than guidance.
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?
No output schema exists, and the description does partially cover the return ('the verdict that comes back is the one the digest will show'). But for a three-required-parameter mutation with no annotations and no schema documentation, the missing parameter formats and failure behavior leave it only adequate.
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 0%, so the description must explain all three parameters and does not. It hints that write_up contains transcript quotes and that verdict can be 'YES', but the allowed verdict vocabulary is never enumerated and the 'video' parameter is entirely opaque — no indication whether it is an ID, URL, or title.
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?
States a specific verb and resource: store a verdict plus write-up for one video. That is clearly a persistence operation distinct from judge_video or get_transcript. It stops short of naming the sibling it complements (judge_video), so the split of responsibility is inferred rather than stated.
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 this is the step where a judgment is committed, and it enumerates the rules that must hold before a save succeeds. But it never says explicitly 'call this after judge_video' or what to do if validation fails, leaving sequencing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
todays_digestA
The digest of one day (today unless day is given as YYYY-MM-DD): every video read that day, its verdict, and the day's ideas.
| Name | Required | Description | Default |
|---|---|---|---|
| day | No |
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 does disclose the return contents (videos, verdicts, ideas), which implies a read-only aggregate, but it never explicitly states that the tool is non-mutating, nor anything about ordering, empty days, or error behavior.
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 sentence with the default behavior and format in parentheses, zero filler, and the core identity of the tool front-loaded before the qualifier.
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?
With no output schema and no annotations, the description does the essential work: it enumerates the digest's components and pins down the only parameter's format. Minor gaps remain around output shape/ordering and what an empty or future day yields, but an agent has enough to call it correctly.
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 0% and the schema's default is the opaque empty string, so the description must compensate — and it does, defining the parameter's format (YYYY-MM-DD) and its default semantics (today when omitted). It stops short of stating accepted range or validation rules.
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 resource (a one-day digest) and enumerates its contents: every video read that day, its verdict, and the day's ideas. That distinguishes it from siblings like list_ideas or get_transcript, though it never uses an explicit verb such as 'returns' or 'retrieves'.
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 parenthetical 'today unless day is given as YYYY-MM-DD' conveys the default/override condition, which is useful context. However, there is no guidance on when to prefer this aggregate over the sibling primitives it summarizes (list_ideas, get_transcript, judge_video), and no exclusions are stated.
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.
8 tool updates
v0.1.0- First observed
add_idea - First observed
check_channels - First observed
get_transcript - First observed
judge_video - First observed
kill_idea - First observed
list_ideas - First observed
save_verdict - First observed
todays_digest
TDQS
Scored across 8 tools
Each tool targets a distinct stage or resource: channel polling, transcript retrieval, judging guidance, verdict persistence, daily digest, and idea-board CRUD. Although judge_video includes transcript context, its purpose is clearly separated from get_transcript by the judging rules and output format.
Most tools follow a predictable verb_noun or verb_object pattern: check_channels, get_transcript, judge_video, save_verdict, list_ideas, add_idea, kill_idea. todays_digest is the main deviation, but the set remains easy to read and understand.
Eight tools is well scoped for a YouTube monitoring, judging, and idea-tracking workflow. Each tool covers a meaningful operation without apparent redundancy.
The surface covers the core lifecycle: discover videos, fetch transcripts, judge, save verdicts, review digests, and manage ideas. Minor gaps exist around channel configuration or verdict revision, but agents can likely work around them through the file-backed channels.txt and repeated saves.
Maintenance
Related MCP Connectors
An MCP server that gives any LLM or agent clean YouTube transcripts on demand: a single video, a whole channel, or a playlist, plus AI cleanup of auto-generated captions. API-key auth, credit-based, same backend as the public v1 API. Get a free API key with 25 free credits at youtubetranscriptdownload.com/account.
Hosted YouTube MCP server for Claude, ChatGPT and Cursor, with each action switched per account.
MCP server for generating rough-draft project plans from natural-language prompts.
An MCP server that gives your AI access to the source code and docs of all public github repos
Related MCP Servers
- AlicenseBqualityDmaintenanceAn MCP server designed to fetch transcripts for YouTube videos. It enables AI tools to access video text content for tasks like summarization, analysis, and key takeaway extraction.174MIT
- AlicenseNot gradedqualityDmaintenanceMCP server that extracts YouTube video transcripts (including metadata) as Markdown, enabling AI to summarize and discuss video content without watching it.MIT
- AlicenseNot gradedqualityDmaintenanceA local MCP server that connects Claude to your YouTube channel, enabling video analysis, performance tracking, comment reading, and niche suggestions.18 npmMIT
- AlicenseAqualityDmaintenanceMCP server that lets AI agents search YouTube and fetch transcripts.234 PyPI3MIT