Skip to main content
Glama

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

  1. Install uv, if you do not have it. On macOS or Linux:

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

    On Windows, in PowerShell:

    powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
  2. Install worthwatch:

    uv tool install git+https://github.com/mokshtheverma-max/worthwatch

    If uv warns that its tool folder is not on your PATH, run this once, then open a new terminal so that the worthwatch command is found:

    uv tool update-shell
  3. Make your folders and starter files, and choose the brain that judges the videos:

    worthwatch init
  4. Check that everything is ready. It says in plain words what is missing and how to fix it:

    worthwatch doctor
  5. Judge one video:

    worthwatch https://www.youtube.com/watch?v=VIDEO_ID

    This needs a brain worthwatch can call (claude, codex, api or ollama). In agent mode, ask your agent instead (see below).

  6. Make it yours: open context.md in your config folder and replace the example person with yourself, put the channels you follow in channels.txt, one link a line, and run worthwatch --channels once a day.

Your files live in three folders, which worthwatch init prints:

config (your settings)

data (records and transcripts)

output (digests you read)

Windows

%APPDATA%\worthwatch

%LOCALAPPDATA%\worthwatch

Documents\worthwatch

macOS

~/Library/Application Support/worthwatch

the same folder, data

~/Documents/worthwatch

Linux

~/.config/worthwatch

~/.local/share/worthwatch

~/Documents/worthwatch

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

agent

Nothing extra: worthwatch calls no model, and your own AI agent does the judging

Connect your agent (next section)

ollama

Nothing: the model runs on your computer

Install Ollama, then ollama pull qwen3.5:9b

api with Gemini

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 GEMINI_API_KEY

claude

Uses the Claude Code plan you already have (claude -p)

Install Claude Code

codex

Uses the Codex plan you already have (codex exec)

Install the Codex CLI

api with OpenRouter, OpenAI or Groq

That service's own prices

Put the key in OPENROUTER_API_KEY, OPENAI_API_KEY or GROQ_API_KEY

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/worthwatch

Or add only the server:

claude mcp add worthwatch -- worthwatch mcp

For 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 status shows 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 --bin prints the folder it is in.

More

Available Tools

8 tools
add_ideaC

Put an idea of your own on the idea board.

NameRequiredDescriptionDefault
ideaYes
why_nowNo
how_muchNo
who_paysNo
first_stepNo

TDQS

C2.7/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

NameRequiredDescriptionDefault
daysNo
max_channelsNo

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

NameRequiredDescriptionDefault
videoYes

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

NameRequiredDescriptionDefault
videoYes

TDQS

B3.2/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

NameRequiredDescriptionDefault
reasonYes
idea_idYes

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

NameRequiredDescriptionDefault
include_killedNo

TDQS

A3.9/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

NameRequiredDescriptionDefault
videoYes
verdictYes
write_upYes

TDQS

B3.4/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

NameRequiredDescriptionDefault
dayNo

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

  1. 8 tool updatesv0.1.0
    • First observedadd_idea
    • First observedcheck_channels
    • First observedget_transcript
    • First observedjudge_video
    • First observedkill_idea
    • First observedlist_ideas
    • First observedsave_verdict
    • First observedtodays_digest

TDQS

A3.6/5.0

Scored across 8 tools

Disambiguation5/5

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.

Naming Consistency4/5

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.

Tool Count5/5

Eight tools is well scoped for a YouTube monitoring, judging, and idea-tracking workflow. Each tool covers a meaningful operation without apparent redundancy.

Completeness4/5

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

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers