video-research-mcp
This server exposes 120 MCP tools for video, audio, image, document, web/academic research, and saved-knowledge workflows.
Analyze videos from YouTube or local files, including custom instructions, structured schemas, batches, multi-turn sessions, and windowed long-video analysis.
Inspect and export media: metadata, frames, contact sheets, filmstrips, scenes, keyframes, storyboards, clips, audio clips, crops, and deduplicated frames/audio.
Transcribe audio, analyze DSP/music, compare audio, and export captions/transcripts with provenance.
Process images and vision: read, edit, crop, OCR, segment, vision chat, grounding, manifest verification, and reverse image search.
Analyze documents and content: extract structured data, compare files, batch analyze, and ingest PDFs, DOCX, Markdown, HTML, text, or audio.
Run research workflows: deep synthesis, research planning, evidence assessment, document-grounded research, web Deep Research, academic paper search/details/citations/recommendations/authors, and source-preserving execution.
Search and extract web content, use optional search providers, and inspect provider capabilities.
Store and retrieve knowledge in Weaviate-style collections: search, related objects, stats, fetch, ingest, ask, schema, and deprecated query.
Manage infrastructure: runtime configuration, cache, job status/cancel, session memory, source ingestion, and media asset storage.
Call optional providers such as TwelveLabs, MHS simulated devices, and generic text generation backends.
Supports direct analysis of academic papers from arXiv to extract entities, relationships, and key arguments.
Integrates with ElevenLabs to provide a media production toolkit for generating audio and cinematic video content.
Uses FFmpeg for extracting frames from local video files to facilitate visual analysis and timestamped screenshotting.
Provides web search capabilities with source citations through Gemini's search grounding features.
Serves as the core engine for video understanding, deep research, context caching, and document synthesis.
Provides tools for querying, debugging, and evaluating MLflow traces generated during research and analysis workflows.
Enables comprehensive analysis of YouTube content, including metadata extraction, comment sentiment analysis, and playlist processing.
video-research-mcp
Ask questions across recordings and documents, then inspect the source frames, transcripts and clips behind the answer. The server exposes 120 MCP tools for video, audio and image operations, document analysis, web and academic research, and saved knowledge. Agent workflows connect those tools into a research or production task.
Use it in Codex, Claude Code, or any client that supports stdio Model Context Protocol. Gemini handles the main analysis and research routes; local tools inspect and transform source files. Optional providers and runtimes extend that core.
Open the interactive user guide (Dutch): from your problem to an approach. Search the function map or choose a task to see its tools, prerequisites and steps. The English user documentation also covers setup problems and examples. Describe your problem in your MCP client in ordinary language to begin.
Release candidate: 0.8.0-rc.6 (PyPI 0.8.0rc6). The links above
identify the exact packages and immutable source tag. Check the release notes
and each route's prerequisites before installing. The npm prerelease channel
is next. Local-model qualification is outside this API-first release.
Stable 0.7.1 predates the native Codex plugin and expanded media surface.
From source material to a useful result
Work | Tools to start with | What to inspect |
Question a recording |
| Source timestamps, the answer and supporting material |
Analyze a long recording in stages |
| Requested intervals, dry-run plan, execution limits and retained outcomes |
Prepare audio or transcripts |
| Caption or model provenance, source timing and exported audio |
Inspect images or export media |
| Source bytes, selected region or interval, output files and manifests |
Compare documents or investigate a topic |
| Citations, contradictions, missing evidence and job status |
Generate images or short video | Separate explainer image and video APIs | Pinned sources, a current operator quote, explicit operations and saved decoded files; provider quality remains unqualified |
Search previous work |
| Stored records and retrieval provenance; requires Weaviate |
For example, ask your client:
Compare ~/recordings/design-review.mp4 with ~/docs/requirements.pdf.
Identify decisions that change a requirement. Cite recording timestamps and
relevant document pages, distinguish explicit decisions from interpretation,
and flag anything the sources do not establish.Workflows combine tools; individual MCP calls return their own results. Source hashes identify bytes, and export manifests retain how an artifact was produced. Model timestamps, citations and interpretations still need checking against the original material. Sampling a recording does not establish complete coverage.
Related MCP server: media-mcp
Install
You need Python 3.11+, uv
with uvx on your client's PATH, and a Gemini API key
for Gemini requests. Plugin installation also needs Node.js 22+ and npm.
Install FFmpeg/FFprobe for local media inspection, frame extraction and clip
exports. Other operations may need an optional dependency or configured backend.
By default, the server reads process environment variables first, then
~/.config/video-research-mcp/.env, then defaults. Project installations can select
a separate credential file. Add your key to the shared file for the routes below,
keeping any existing settings:
GEMINI_API_KEY=your-gemini-api-keyKeep the file private (chmod 600 ~/.config/video-research-mcp/.env). Codex plugin
servers receive a filtered environment, so this file is the reliable credential
route there. Provider analysis sends source material to the configured service
and can incur usage charges. A selected analysis interval does not necessarily
limit the uploaded file.
Codex: native plugin
The plugin supplies 26 skills and the version-pinned research server. Historical RC3 observation: on 2026-10-06, the selected Codex 0.160.1 RC3 installation and fresh-session restart loaded the research tools and packaged skills. This is historical RC3 evidence. Follow the verification steps below for the version you install. The native route does not run the Claude workflow installer.
For a new installation, save this catalog as
~/.local/share/video-research-mcp/.agents/plugins/marketplace.json, creating its
parent directories if needed:
{
"name": "video-research",
"interface": { "displayName": "Video Research" },
"plugins": [
{
"name": "video-research",
"source": {
"source": "npm",
"package": "video-research-mcp",
"version": "0.8.0-rc.6"
},
"policy": { "installation": "AVAILABLE", "authentication": "ON_INSTALL" },
"category": "Productivity"
}
]
}codex plugin marketplace add ~/.local/share/video-research-mcp
codex plugin add video-research@video-research
codex plugin list --jsonStart a fresh Codex session. Check that video-research@video-research is enabled,
its source is npm at 0.8.0-rc.6, and the server's tools are available.
For an existing installation, use the
native plugin and migration guide.
Back up local plugin edits before reinstalling: Codex replaces its managed cache.
A manual mcp_servers.video-research entry can hide the plugin server. In the
historical RC1 check on Codex 0.160.0, this also occurred when the entry was
disabled; the guide describes the specific configuration to remove.
Claude Code: workflow installer
npx video-research-mcp@0.8.0-rc.6 --globalThis installs slash commands, skills and agents into ~/.claude/, registers the
research server in ~/.claude.json, and creates a credential template if needed.
Set the key, restart Claude Code and inspect /mcp. Use /gr:advisor to select a
workflow, or /gr:video, /gr:research and /gr:analyze to start directly.
Use --local for project scope and set the key in
./.config/video-research-mcp/.env; this replaces the shared credential-file route.
Use --global --check to inspect the global installation. Updates preserve modified
workflow files and custom configuration. See
installer options and recovery
for scope, checkpoints and rollback.
Other MCP clients: server only
Use your client's stdio registration format. A typical JSON entry is:
{
"mcpServers": {
"video-research": {
"command": "uvx",
"args": ["video-research-mcp==0.8.0-rc.6"]
}
}
}This connects the same tools; agent workflows are installed separately. Python
package filenames use the normalized spelling 0.8.0rc6.
Verify your first connection
Ask the client to call infra_configure with no arguments. It returns the
running configuration without making an analysis request. Then try a tool on
material you can inspect yourself. A successful connection verifies setup;
checking the returned evidence verifies the particular result.
Configure only what the task needs
Setting or addition | Use it for |
| Select supported primary and auxiliary models |
| YouTube metadata, comments and playlists; otherwise uses the Gemini key |
| Persist video sessions in SQLite; unset means in-memory sessions |
| Store and retrieve research across sessions |
| Trace tool execution; |
| Restrict supported local-file operations to a directory |
Research works without Weaviate. When storage is configured, write-through errors
are non-fatal; verify the stored record when persistence matters. The
knowledge-store guide
covers embeddings, collections and optional query dependencies. For a manually
configured server, retain the version pin when adding extras, for example
uvx 'video-research-mcp[tracing,agents]==0.8.0-rc.6'. The full runtime configuration lives in
ServerConfig.
Image edits, OCR, speech inference, Blender, FreeCAD and local model services have additional runtime or backend requirements. Installing the plugin does not install those runtimes, model weights or provider accounts. Inspect the relevant skill and its prerequisites before using an optional integration.
For video production, the separate explainer companion exposes 39 tools, including direct HTTP image and text/frame-video generation and an optional external CLI/rendering pipeline; the scene-agent companion exposes two tools for scene-code generation. Neither is required for research. Production skills also provide workflows for narration, image generation, clip generation and assembly.
Generate an image or a short video
Connect the explainer companion separately. Its RC4 candidate (0.2.2rc4 on PyPI)
adds direct HTTP routes for text-to-image, image editing, image translation and
video from text, a first frame, or first plus last frames. These routes need the
companion's generation extra, an existing project with pinned script/scene
files, explicit regional DashScope configuration and current pinned price/access
and quote declarations. Video output checks also need FFmpeg/ffprobe.
They run without the upstream video_explainer CLI.
Follow the image lifecycle
or video lifecycle.
Obtain actual human authority for source submission and spending before setting
spend_authorized=true; that field records an input acknowledgement and does not
authenticate anyone or impose a provider billing cap. Keep the returned job ID.
Use explainer_image_generation_finalize for captured synchronous images,
explainer_image_generation_poll for translation and explicit image recovery,
or explainer_generation_poll for video, each with a bounded authorized
operation. Core job_status rejects both generated-media job kinds.
Saved hashes and complete decode checks qualify the selected file bytes. Live provider access, image identity/style fidelity, creative quality and full security review remain open. S2V/HappyHorse successor modes are optional and await separate source acceptance; the disabled raw Qwen process integration is a separate route. Stock search, local ASR intake timing and the retained renderer timing failure remain limits.
Inspect and extend
Tool implementations: exact parameters and behavior. Your client's discovered MCP schemas describe the running version.
Windowed video analysis: dry-run budgets, continuation, upload limits and retained partial results.
Contributing: source setup and checks.
Security policy: local access, provider boundaries and reporting.
Changelog: changes in this candidate.
The selected RC3 native check covered the installed baseline and restart, with 124 cache files. Fresh npm network acquisition versus reuse of the same-version cache remains unknown. Earlier RC1 native and RC2 archive/installer checks remain historical results. Tool discovery does not qualify every optional runtime; live-provider quality and complete comparative acceptance remain open.
Created by Fausto Albers · Wonder Why. Built with Google Gemini, FastMCP and Pydantic, with optional knowledge and tracing integrations. Project code is MIT licensed; third-party notices cover bundled components with their own terms.
Available Tools
90 toolsaudio_clip_exportAudio Clip ExportA
Export a whole or one-sided audio selection to a unique private 16kHz mono WAV.
Originals and prior exports remain unchanged. Caller-selected output paths and overwriting are rejected. Use image_manifest_read for verified restart.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes | Exact local audio/video source; omitted endpoints select whole track within 240-second/8MiB WAV limits |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds real context beyond the annotations: originals and prior exports remain unchanged, caller-chosen output paths and overwrites are rejected, output is always a new unique 16kHz mono WAV. This coheres with destructiveHint=false and idempotentHint=false and explains why repeated calls are non-idempotent, though it says nothing about failure modes or the 240s/8MiB bounds beyond what the schema already carries.
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?
Four short, front-loaded sentences with no filler; the output artifact and immutability guarantee lead. The final sentence about image_manifest_read is slightly cryptic without more context, keeping it from a 5.
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 an output schema present, return values need no explanation, and the annotations plus description together cover safety, idempotency and mutation scope for a single nested request object. Nothing essential to invoking it correctly appears missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so file_path, expected_source_sha256, start_seconds and end_seconds are already documented, including the omitted-endpoints behavior. The description's phrase 'whole or one-sided' merely restates what the schema says and adds no format or semantics for the SHA-256 requirement.
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 (export) and resource (whole or one-sided audio selection) plus the exact output artifact: a unique private 16kHz mono WAV. An agent can distinguish this from sibling media tools like video_clip_export or audio_transcribe immediately.
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 clarifies scope (whole selection when endpoints are omitted, one-sided otherwise) and points to image_manifest_read for a verified restart, which gives some routing value. But it never states when to prefer this over audio_transcribe, media_edit_footage, or video_clip_export, nor any prerequisite like needing a prior manifest/source ingest.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audio_deduplicateAudio DeduplicateA
Compare local audio candidates while retaining silence, errors and uncertainty.
Requires the optional audio extra and local FFmpeg. Similarity does not establish equal speech, speaker identity or permission to delete evidence.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes | All explicit source audio intervals, up to120 seconds aggregate, and lossy MFCC cosine threshold |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (non-destructive, non-idempotent, closed-world), and the description adds real value on top: an environment dependency (optional audio extra + local FFmpeg) and a semantic limitation ('Similarity does not establish equal speech, speaker identity or permission to delete evidence'). It does not clarify the readOnlyHint=false behavior (what, if anything, is written), leaving a minor gap.
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 compact sentences, front-loaded with the core action before the dependency and caveat. Every sentence earns its place; no redundancy with the schema or annotations.
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?
Output schema exists so return values needn't be described, parameters are fully covered by the schema, and annotations carry the safety profile. The description completes the picture with the environment prerequisite and the key semantic caveat, so an agent has what it needs 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 100% and the nested request, segments, threshold and SHA-256 fields are all documented in the schema. The description adds no syntax, format, or constraint detail beyond what the schema already provides, so baseline 3 applies.
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 ('Compare local audio candidates') and is clearly distinct from the sibling video_deduplicate_frames. However, 'candidates' and 'retaining silence, errors and uncertainty' are somewhat abstract, leaving the exact operation slightly fuzzy, and no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a prerequisite ('Requires the optional audio extra and local FFmpeg') and a scope caveat, which implicitly signals when it applies. But there is no explicit when-to-use guidance or routing versus alternatives such as video_deduplicate_frames or audio_dsp_analyze.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audio_dsp_analyzeAudio Dsp AnalyzeC
Measure audio or invoke one separately installed operator-pinned native DSP workflow.
Local analysis preserves stereo, finite silence/abstentions and absolute clipping intervals. A/B uses reference-minus-primary differences with units. Optional Juzzy modes preserve harmonic/rhythm/masking/section observations; Ferrous receives an explicit mono derivation and retains heuristic quality, content and fingerprint output. Standards and semantic claims are unverified. Reusing an exact job_id reads its attested artifacts without launching again. Use job_status for durable status, including interrupted/failed work.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes | Exact local source SHA and windows, optional reference and fixed DSP operation;30-second aggregate audio and8MiB artifact limits | |
| include_image | No | Include verified bounded waveform/spectrogram PNG blocks; text keeps exact artifact identities |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, idempotentHint=false, destructiveHint=false, openWorldHint=false, so the agent knows this is a non-read-only, non-idempotent, non-destructive, closed-world operation. The description adds behavioral context about artifact reuse ('Reusing an exact job_id reads its attested artifacts without launching again') and limitations ('Standards and semantic claims are unverified,' explicit mono derivation for Ferrous, 30-second/8MiB limits). This is useful supplemental behavior, but much of it is scattered and some claims are vague. With annotations already carrying the safety profile, a 3 reflects the added value without over-crediting.
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 dense, multi-clause paragraph with obscure terminology ('operator-pinned native DSP workflow,' 'attested artifacts,' 'finite silence/abstentions,' 'Juzzy modes'). It is not front-loaded with a simple statement of purpose, and several sentences feel like internal notes patched together rather than a crafted tool definition, making it hard for an agent to parse quickly.
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?
An output schema and 100% schema description coverage exist, so return values need not be explained, and annotations cover the safety profile. However, because this is a complex tool with many modes and a nested request object, the description should more clearly explain mode selection, job_id reuse semantics, and the difference from sibling audio tools. As written it gestures at these topics without giving a complete picture, so it is just 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 description coverage is 100%, so the schema already documents parameters like file_path, expected_source_sha256, operation enum, start/end_seconds, reference, and native_return_format. The description adds only indirect meaning: it clarifies that A/B uses reference-minus-primary, that Juzzy modes preserve certain observations, and that Ferrous receives an explicit mono derivation. These are behavioral notes rather than parameter syntax, and the operation enum contents are not explained in the description, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states the tool 'measures audio or invokes one separately installed operator-pinned native DSP workflow,' which gives a verb and resource, but 'one separately installed operator-pinned native DSP workflow' is obscure jargon that doesn't tell an agent concretely what happens. The body discusses outputs and modes rather than clarifying the core operation, and it doesn't distinguish itself clearly from siblings like media_analyze_music or audio_transcribe.
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 never states when to choose this tool over alternatives such as media_analyze_music, audio_transcribe, or media_perceive. It mentions 'Use job_status for durable status,' which is a follow-up routing hint, but there is no guidance on when-not-to-use or what conditions select this tool versus its many siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audio_transcribeAudio TranscribeA
Extract exact caption intervals or infer speech through an explicit backend.
Supplied cue and word times remain source assertions. Model-derived words and speaker labels remain inference. Caption selection precedes ASR; local-only selection forbids cloud requests. Readback requires the retained receipt digest and exact source identity. No local model is installed.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes | Exact local source, associated captions, source range and absent output directory; optional ASR requires explicit backend and submission authority |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it non-read-only, non-destructive, open-world, and non-idempotent, so the safety bar is partly covered. The description adds real behavioral context beyond that: provenance rules (source cue/word times are assertions, model output is inference), the constraint that local-only forbids cloud, the readback receipt requirement, and the crucial operational fact that no local model is installed.
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?
Purpose is front-loaded and every sentence carries information with no filler. The telegraphic, clause-heavy style ('Supplied cue and word times remain source assertions') is dense and slightly cryptic, which marginally reduces readability.
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?
Given a complex nested request object and an existing output schema, the description covers the key operational facts an agent needs (no local model, backend selection, local-only restriction, receipt-gated readback) and does not need to restate return values. It leaves the request structure itself to the schema, which is acceptable.
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 100%, so the baseline would be 3. The description still adds meaning by tying concepts to fields: caption selection ordering, 'explicit backend' for ASR, local-only forbidding cloud requests, and the receipt-digest/source-identity requirement for readback, which map to backend, local_only, and expected_receipt_sha256.
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+resource: extracting caption intervals or inferring speech from audio via an explicit backend. It is clear what the tool does, but it never names or distinguishes itself from close siblings like media_caption_events, audio_dsp_analyze, or media_perceive, so the agent must infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives ordering/constraint cues ('Caption selection precedes ASR; local-only selection forbids cloud requests; Readback requires the retained receipt digest') which imply when each path applies. However, it never states when to use this tool versus alternative transcription/caption siblings, so guidance remains implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
content_analyzeContent AnalyzeARead-only
Analyze content (file, URL, or text) with any instruction.
Provide exactly one of file_path, url, or text. Uses Gemini's structured output for reliable JSON responses. Pass a custom output_schema to control the response shape, or use the default ContentResult schema.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | URL to analyze | |
| text | No | Raw text content | |
| file_path | No | Local file path (PDF or text) | |
| instruction | No | What to analyze — e.g. 'summarize key findings', 'extract methodology', 'list all citations' | Provide a comprehensive analysis of this content. |
| output_schema | No | Optional JSON Schema for the response. If omitted, uses default ContentResult schema. | |
| thinking_level | No | Gemini thinking depth. | medium |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds real behavioral context on top: it names the underlying model (Gemini), states that structured output is used for reliable JSON, and discloses the default response schema. It does not cover failure modes, rate limits, or size limits, keeping it short of a 5.
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 core action and the hard input constraint before the implementation detail about Gemini and output_schema. No filler, though the model-name detail is the least load-bearing sentence.
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?
An output schema exists, so return values need not be explained. For a 6-parameter, zero-required tool, the description covers the input-exclusivity rule, the default schema, and how to override it. It omits practical limits (file size, supported PDF scope, URL fetch failures) but is otherwise sufficient to call the tool 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 100%, so the baseline is 3, and the description adds meaning the schema cannot express: the mutual-exclusion rule among file_path/url/text (all three are independently optional with null defaults in the schema). It also clarifies that output_schema overrides the default ContentResult shape, and that instruction drives what gets analyzed.
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 (analyze) and enumerates the accepted resource types (file, URL, text), which is more precise than a bare name restatement. However, it never differentiates itself from near siblings such as content_extract, content_batch_analyze, or video_analyze, so an agent must infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives one real operational rule — 'Provide exactly one of file_path, url, or text' — which is genuinely useful invocation guidance. It stops there: no when-to-use conditions, no guidance on choosing this over content_extract/content_batch_analyze, and no mention of when to supply a custom output_schema versus accepting the default.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
content_batch_analyzeContent Batch AnalyzeARead-only
Analyze multiple content files from a directory or explicit file list.
Rejects discovery over 5,000 entry visits and compare payloads over DOC_MAX_DOWNLOAD_BYTES. Supports two modes: 'compare' sends files in a single call for cross-document analysis, 'individual' analyzes each file separately with bounded concurrency (3 parallel calls).
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | 'compare' for cross-document analysis in one call, 'individual' for separate per-file analysis | compare |
| directory | No | Directory to scan for content files | |
| max_files | No | Maximum files to process | |
| file_paths | No | Explicit list of file paths to analyze | |
| instruction | No | What to analyze — e.g. 'compare methodologies', 'summarize each document', 'extract key findings' | Provide a comprehensive analysis of these documents. |
| glob_pattern | No | Glob pattern to filter files within directory | * |
| output_schema | No | Optional JSON Schema for each result | |
| thinking_level | No | Gemini thinking depth. | high |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint, and the description goes beyond them by disclosing concrete limits: rejection over 5,000 discovery entry visits, compare payloads over DOC_MAX_DOWNLOAD_BYTES, and 3-way bounded concurrency in individual mode. These operational constraints are genuinely useful and not derivable from 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core action, then constraints, then the two modes. Tight and readable with little waste, though the mid-sentence line break in the source text is a minor formatting blemish.
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 an output schema present, return values need no explanation, and the description covers the mode selection and payload limits for this 8-param tool. It is nearly complete, missing only sibling-tool disambiguation to be fully self-sufficient.
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 100%, so the schema already documents all 8 parameters, establishing a baseline of 3. The description reinforces mode semantics and adds the concurrency/limit context but supplies no syntax or format detail beyond what the schema provides.
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 (analyze) and resource (multiple content files), with the batch scope made explicit via 'multiple content files from a directory or explicit file list'. This implicitly separates it from the single-file content_analyze sibling, though it never names that sibling or video_batch_analyze to fully disambiguate.
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 solid intra-tool guidance by explaining when to pick 'compare' (cross-document, single call) versus 'individual' (per-file, bounded concurrency). However it offers no guidance on when to use this tool versus alternatives like content_analyze or video_batch_analyze, so tool-level selection is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
content_extractContent ExtractARead-only
Extract structured data from content using a JSON Schema.
Uses Gemini's response_json_schema for guaranteed structured output.
| Name | Required | Description | Default |
|---|---|---|---|
| schema | Yes | JSON Schema defining the extraction structure | |
| content | Yes | Text content to extract from |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds meaningful behavioral context by stating it uses Gemini's response_json_schema for guaranteed structured output, which tells the agent the output reliability and mechanism.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences front-load the core action and then add the key implementation detail. There is no filler or repetition, and the structure makes the tool's purpose immediately clear.
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 a fully described input schema and an output schema, the description does not need to explain return values or parameter formats. It provides enough context for an agent to know this is a read-only structured extraction tool, though it could mention practical limits or content-type applicability.
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 100%, so both parameters are already documented in the input schema. The description does not add syntax, format, or constraint details beyond what the schema provides, making the baseline of 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: extract structured data from content using a JSON Schema. This clearly distinguishes it from generic content analysis or media tools, though it does not explicitly name the closest sibling alternatives like content_analyze or web_extract.
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 usage when structured extraction is needed, but it gives no explicit when-to-use, when-not-to-use, or alternative-tool guidance. An agent must infer from the presence of the required schema parameter that this is the right choice over content_analyze.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
image_cropImage CropA
Crop local PNG pixels without model inference or provider uploads.
Requires an independently installed FFmpeg and respects LOCAL_FILE_ACCESS_ROOT. A source hash binds the crop to bytes; it does not establish factual support or whether the input was synthetic. Large outputs retain metadata/path only.
| Name | Required | Description | Default |
|---|---|---|---|
| crop_box | Yes | Integer x, y, width, height in original image pixels | |
| file_path | Yes | Local 8-bit RGB/RGBA noninterlaced PNG | |
| output_path | Yes | Fresh local PNG output path; never overwrites | |
| include_image | No | Include a native PNG block up to 1 MiB; false returns identical text metadata |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (readOnly=false, openWorld=false, destructive=false), and the description adds real context beyond them: the external FFmpeg dependency, the LOCAL_FILE_ACCESS_ROOT scoping, the hash-to-bytes binding caveat, and that large outputs retain metadata/path only. It stops short of detailing failure modes or rate 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?
Four tight sentences with the purpose front-loaded and the constraints following in priority order. The final sentence's caveat about factual support/synthetic inputs is somewhat tangential but still earns its place as a scope limiter.
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?
An output schema exists, so return values need not be explained, and the description covers prerequisites, path scoping, and caveats. It is nearly complete; only explicit sibling routing is absent.
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 100%, so all four parameters (crop_box, file_path, output_path, include_image) are already documented in the schema. The description adds no syntax or format detail beyond it, so baseline 3 is correct.
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 ('Crop local PNG pixels') and immediately scopes it against inference-based siblings with 'without model inference or provider uploads,' so an agent can distinguish it from image_edit/image_segment without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'without model inference or provider uploads' signals the deterministic-local use case, and 'Requires an independently installed FFmpeg' plus the LOCAL_FILE_ACCESS_ROOT reference give prerequisites. However, it never names an alternative tool or states when-not-to-use it, so routing still requires inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
image_editImage EditA
Edit a source image or decoded video frame and persist its exact manifest.
Coordinates use the oriented source grid before crop and resize. Requires the optional images extra; frame selection also requires local FFmpeg. Source-derived edits and annotations retain explicit provenance.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes | Bounded preparation, crop, resize, five annotation kinds, polygon/flood cutout and PNG/JPEG/WebP/BMP/GIF conversion | |
| include_image | No | Emit actual native image blocks up to 1 MiB each; text retains identical provenance |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (readOnly=false, destructive=false, non-idempotent), so the bar is lower. The description still adds real behavioral context: the tool persists a manifest, dependency requirements (images extra, local FFmpeg for frame selection), and that source-derived edits keep explicit provenance. It does not clarify whether the original file is ever overwritten, which is the main remaining ambiguity.
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?
Every sentence carries information and the core purpose plus the manifest persistence is front-loaded. The remaining sentences are tightly packed (grid semantics, dependencies, provenance) with no filler. Slightly dense, but nothing is wasted.
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?
An output schema exists, so return-value explanation is unnecessary, and the 100% schema coverage documents all nested parameters. Given that support, the description supplies what structured data cannot: dependency requirements, coordinate-grid semantics, and provenance guarantees. An agent has enough to invoke 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 100%, so the nested crop/cutout/resize/annotation parameters are already documented, making 3 the baseline. The description adds only one semantic detail beyond the schema: coordinates are resolved on the oriented source grid before crop and resize, which clarifies ordering but not formats. It does not explain output_format/quality tradeoffs or the expected_source_sha256 guard.
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 names a concrete verb and resource ('Edit a source image or decoded video frame') plus the persistence side effect ('persist its exact manifest'). It clearly differs from read-only siblings like image_read or media_info. It never names or contrasts with the closest sibling, image_crop, so sibling differentiation is left to inference.
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 prerequisites for use ('Requires the optional images extra; frame selection also requires local FFmpeg'), which is genuinely actionable. However, it offers no when-to-use/when-not guidance and never points to image_crop or media_edit_footage as alternatives for simpler cases. Usage is implied by the capability list rather than explained.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
image_manifest_readImage Manifest ReadARead-onlyIdempotent
Read an exact manifest after restart and verify its source and artifact bytes.
| Name | Required | Description | Default |
|---|---|---|---|
| include_image | No | Include verified native image artifacts where bounded | |
| manifest_path | Yes | Owned export manifest within the configured local fence | |
| expected_sha256 | Yes | Required previously recorded full manifest digest |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and a closed-world scope, so the safety profile is covered. The description adds that this verifies source and artifact bytes, which is useful behavioral context, but it omits what happens on a digest mismatch (error vs. partial result) and how 'bounded' artifact inclusion behaves.
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 naming the action first, with no filler. It is efficient, though the trailing verification clause packs two distinct behaviors into one unpunctuated phrase.
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?
An output schema exists, so return values need not be described, and annotations carry the safety profile. The description covers the core action and verification intent, leaving only edge-case behavior (digest mismatch, 'where bounded' artifacts) unstated.
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 100%, so all three parameters (manifest_path, expected_sha256, include_image) are already documented in the schema, setting a baseline of 3. The description's 'verify its source and artifact bytes' loosely gestures at expected_sha256 and include_image but adds no format or constraint detail beyond the 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?
States a specific verb+resource (read a manifest) and adds verification of source and artifact bytes, which is more than a tautology. However, it does not differentiate itself from adjacent siblings such as image_read, media_info, or source_ingest_read, and the phrase 'exact manifest' is jargon that isn't explained.
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 clause 'after restart' implies a usage context (post-restart integrity verification), which is a weak but real hint at when to invoke it. No alternatives are named and no explicit when-not condition is given, so guidance is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
image_ocrImage OcrA
Observe text and geometry using an explicitly selected local OCR engine.
Source OCR and detected geometry do not establish semantic table structure or factual support. Missing local runtimes return an explicit limitation.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes | Explicit optional local Tesseract or Apple Vision observations; source and prepared coordinate mappings retained |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already fix the safety profile (destructive=false, openWorld=false), and the description adds two real behavioral facts beyond them: OCR text and geometry do not establish table structure or factual support, and missing local runtimes yield an explicit limitation instead of a silent failure. There is mild tension between "Observe" and readOnlyHint=false, but the tool plausibly writes prepared-image artifacts, so this is not a hard contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, purpose front-loaded, with the limitation caveats following. Every clause carries information; nothing is padding or restated from the schema.
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?
An output schema exists, so return values need not be described, and all parameters are documented in the schema. The description covers engine locality and failure/unreliability semantics, but omits when to prefer this over vision_ocr and does not clarify what is written given readOnlyHint=false.
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 100%, so the schema already documents file_path, engine, crop, resize, languages, and the rest; baseline 3 applies. The description adds only that the engine is local and explicitly chosen, a small increment over the enum values in the 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 names a specific verb+resource ("Observe text and geometry") and scopes it to "an explicitly selected local OCR engine," which separates it from the sibling vision_ocr (likely the cloud path). It is clear what the tool does, though it never names the sibling it is not, so differentiation requires inference.
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 only implied: the caller is told the engine must be selected explicitly and is local, but there is no explicit statement of when to choose this over vision_ocr or image_read. The second sentence reads as an interpretation caveat rather than selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
image_readImage ReadB
Return a bounded local still image as inspectable PNG and exact source metadata.
Animated inputs expose one still with an explicit limitation. Native output may be processed by the host's model; this server invokes no model or upload.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | Regular local media path within LOCAL_FILE_ACCESS_ROOT | |
| max_pixels | No | Maximum output pixels per frame | |
| include_image | No | Include bounded native PNG blocks; false returns text metadata |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description frames a purely passive read ('Return ... as inspectable PNG', 'this server invokes no model or upload'), yet readOnlyHint=false declares the operation is not read-only. An agent that trusts the description will treat this as a safe read while the annotation says state may change, which is the contradiction pattern. The genuinely useful disclosures (bounded output, one-still limitation for animated inputs, no model/upload) are undermined by this mismatch.
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 tight sentences with the core purpose front-loaded and no filler; the animated-input caveat and the model/upload note are compact. It is slightly abstract in phrasing but earns its length.
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?
An output schema exists so return values need not be explained, and the description covers purpose, the animated-input limitation, and the no-model/no-upload behavior. Only the missing sibling-routing guidance and the annotation mismatch leave a gap.
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 100%, so file_path, max_pixels, and include_image are already fully documented. The description only echoes the bounding concept via 'bounded local still image' and adds nothing about max_pixels semantics or the include_image toggle, so the schema carries the load.
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 concrete verb and resource ('Return a bounded local still image') plus the output form (inspectable PNG and exact source metadata), so the agent knows what it gets back. It does not explicitly differentiate itself from close siblings such as image_crop, image_ocr, or media_info, which keeps it below a 5.
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 usage by describing behavior on animated inputs, but never states when to reach for this tool versus image_crop, image_edit, video_frame, or media_info, and gives no when-not conditions. Context is implied rather than prescribed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
image_segmentImage SegmentA
Plan or submit one image and preserve actual mask and overlay artifacts.
Scores and masks are unverified proposals. Service selection and checkpoint declarations do not attest a loaded model or establish redistribution rights.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes | Exact original still-image digest, prompt and operator-configured service; submission requires an explicit workflow grant | |
| include_image | No | Emit bounded verified native PNGs; text retains the same artifact identities |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare the generic profile (write, open-world, non-idempotent, non-destructive). The description adds substantive context the annotations cannot: outputs are 'unverified proposals', and service/checkpoint declarations 'do not attest a loaded model or establish redistribution rights' — real trust and licensing caveats for an external-service call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short paragraphs with the action front-loaded and no filler sentences. The prose is dense and slightly abstract ('checkpoint declarations'), but every sentence carries distinct 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?
With an output schema present, return values need not be described, and annotations cover the safety profile. The description supplies the missing behavioral caveats (unverified outputs, service/provenance limits), leaving only minor gaps such as the async/job nature of a submission.
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 100%, so the baseline is 3. The description goes slightly beyond it by mapping 'plan' to the dry-run path and by framing service_id as a 'service selection' whose declaration carries no model-provenance guarantee, and by tying 'preserve artifacts' to include_image.
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 names a specific verb pair ('plan or submit') and resource ('one image') and states the deliverable ('mask and overlay artifacts'), which identifies it as a segmentation tool. It does not, however, contrast itself against nearby siblings like image_crop, image_edit, or vision_grounding, so differentiation is left to the tool name.
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 'plan or submit' framing implies a two-phase workflow (dry_run first, then authorized submission), and the caveat that submission requires an explicit grant hints at a prerequisite. But there is no explicit statement of when to choose this over image_crop/image_edit or any exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
infra_cacheInfra CacheADestructiveIdempotent
Manage the analysis cache — stats, list, clear, or inspect context cache state.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | Cache operation — "stats", "list", "clear", or "context". | stats |
| auth_token | No | Optional infra auth token (required when INFRA_ADMIN_TOKEN is configured) | |
| content_id | No | Scope clear to a specific content ID |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true, readOnlyHint=false and openWorldHint=false, so the safety profile is carried by structured data. The description adds little beyond restating the action enum and does not flag which action (clear) is the destructive one, but since annotations cover this the minimum viable 3 applies.
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 filler; the resource is stated before the operations. It is efficiently sized, though it leans on the enum rather than explaining intent.
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 a full output schema and complete annotations carrying the safety and return semantics, and 100% parameter coverage, the description is adequate for calling the tool. It stops short of explaining operation selection, which is the only notable gap.
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 100%, so action, auth_token and content_id are already documented in the schema (including the INFRA_ADMIN_TOKEN note). The description 'Scope clear to a specific content ID' adds nothing the schema does not already state, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource ('the analysis cache') and enumerates the four operations (stats, list, clear, inspect context), which maps cleanly to the action enum. It is distinguishable from most siblings, though it never explicitly positions itself against the nearby infra_configure tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied through the action list; there is no statement of when to choose stats vs list vs context, nor any exclusion or prerequisite guidance (e.g., that clear is the mutating path). An agent must infer operation selection from the enum alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
infra_configureInfra ConfigureAIdempotent
Reconfigure the server at runtime — preset, model, thinking level, or temperature.
Changes take effect immediately for all subsequent tool calls.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Gemini model ID override (takes precedence over preset) | |
| preset | No | Named model preset: "best" (Pro preview), "stable" (Flash), or "budget" (Flash-Lite) | |
| auth_token | No | Optional infra auth token (required when INFRA_ADMIN_TOKEN is configured) | |
| temperature | No | Sampling temperature for models that support it (not 3.6+ Flash) | |
| thinking_level | No | Thinking depth — "minimal", "low", "medium", or "high". |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds genuinely useful behavioral context beyond them: the change is a live, in-process mutation that takes effect immediately and persists only for subsequent tool calls. It does not clarify scope (session vs. all users) or what happens to fields left unset, which is why it falls short of 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero filler, with the core action and its field set front-loaded before the side-effect note. Every clause earns its place.
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?
An output schema exists, so return values need not be explained, and annotations cover the mutation safety profile. The description supplies the key runtime-effect context, but a reconfiguration tool would benefit from stating whether omitted parameters leave existing settings unchanged and whether the change is scoped to the session or the whole server.
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 100%, and the schema itself is richer than the description (model precedence over preset, temperature unsupported on certain Flash models, conditional auth token). The description merely lists the four configurable aspects, adding no semantics the schema does not already carry.
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?
Specific verb ('Reconfigure') plus resource ('the server at runtime') and an enumeration of exactly what can be changed (preset, model, thinking level, temperature). No sibling in the tool list performs runtime configuration, so the tool is unambiguous even without naming an alternative.
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?
There is no explicit when-to-use/when-not or comparison to an alternative, but with no sibling config tool the usage is reasonably implied. The note that changes apply to all subsequent tool calls gives context about consequences rather than guidance on choosing this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
job_cancelJob CancelA
Cancel queued video work or request its owner stop at the next checkpoint.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | Durable video batch or window-run ID |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false and openWorldHint=false, so the description carries the real behavioral burden, and it does so well by disclosing that cancellation is not always immediate: queued work is cancelled outright, while active work only receives a cooperative stop request honored at the next checkpoint. It stops short of covering idempotency, error behavior for unknown/finished jobs, or permission requirements.
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 filler; the immediate-cancel case is stated first and the cooperative-stop nuance second, which is the correct priority order.
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?
An output schema exists, so return values need no explanation, and the annotations cover the safety profile. The description supplies the key operational nuance an agent needs. Minor gaps remain around what happens if the job is already finished or the ID is invalid, but the definition is broadly complete for a one-parameter cancel 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?
Schema description coverage is 100% and the single job_id parameter is already documented as a 'Durable video batch or window-run ID'. The description adds no format, scoping, or lookup detail beyond that, so the baseline 3 applies.
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 (cancel) and resource (queued video work / jobs), and it distinguishes two operating modes: immediate cancellation of queued work versus a cooperative stop request for running work. It does not name or differentiate itself from siblings like job_status or source_ingest_cancel, so it falls 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use statement, and no alternative tool is named. However, the description does implicitly scope usage by job state (queued vs. running) and by the fact that a running job is only asked to stop at the next checkpoint, which is meaningful routing information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
job_statusJob StatusBRead-only
Read retained job identity, outcomes and current byte attestation.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | Recorded durable job ID |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description adds the useful notion that results are 'retained' and that the byte count is a 'current' attestation (implying repeated polling), but says nothing about behavior when the job_id is unknown or expired.
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 tight sentence with the verb and payload front-loaded; nothing is wasted. It is slightly undermined by the unexplained term 'byte attestation'.
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 an output schema present, the description needn't enumerate return values, and the sole parameter is fully documented. However, for a status tool tied into a job lifecycle with many sibling producers, it omits when the tool is applicable and how to interpret a missing/expired job.
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 100% and the single job_id parameter is documented in-schema as 'Recorded durable job ID'. The description adds no format, origin, or lookup guidance beyond that, so the baseline 3 applies.
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 clear verb ('Read') and resource ('job'), plus the fields returned (identity, outcomes, byte attestation). It does not distinguish itself from the sibling job_cancel or from the ingestion tools that create jobs, and 'byte attestation' is opaque jargon, keeping it below a 5.
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?
There is no statement of when to call this versus job_cancel, or when a job_id becomes available (e.g. after source_ingest or research_web). The agent must infer that this is a polling/status lookup from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
knowledge_askKnowledge AskARead-onlyIdempotent
Ask a question and get an AI-generated answer grounded in stored knowledge.
Uses Weaviate AsyncQueryAgent in ask mode to synthesize an answer from objects across knowledge collections, with source citations.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Question to answer from stored knowledge | |
| collections | No | Collections to search (all if omitted) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so safety is covered. The description adds genuinely useful behavior beyond that: the answer is synthesized rather than raw, it is grounded in stored objects, and it returns source citations, which tells the agent what to expect in the response.
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 action in the first sentence and kept to two short sentences. 'Uses Weaviate AsyncQueryAgent in ask mode' is mildly implementation-flavored, but it does convey synthesis behavior, so it mostly earns its place.
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 an output schema present and annotations covering the safety profile, the description only needs to convey the synthesis/citation behavior, which it does. It omits any note about latency or async semantics despite 'AsyncQueryAgent', a minor gap for a grounded-generation 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?
Schema description coverage is 100%, so both the query and collections parameters are already documented in the schema. The phrase 'across knowledge collections' loosely reinforces the collections parameter's scope but adds no format or syntax detail, so the baseline 3 applies.
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 (ask a question) and resource (stored knowledge), and the phrase 'AI-generated answer' distinguishes it from retrieval siblings like knowledge_search or knowledge_query. However, it never names those siblings, so the agent must infer the distinction itself.
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 Q&A synthesis rather than raw retrieval, but gives no explicit when-to-use or when-not-to-use guidance against the many knowledge_* siblings. The agent has to infer that this is the synthesis path and knowledge_query/search are the lookup paths.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
knowledge_fetchKnowledge FetchARead-onlyIdempotent
Fetch a single object by UUID from a knowledge collection.
| Name | Required | Description | Default |
|---|---|---|---|
| object_id | Yes | Weaviate object UUID | |
| collection | Yes | Collection the object belongs to. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, covering the safety profile. The description adds only that the lookup is single-object scoped, and says nothing about behavior on a missing UUID or invalid collection. With annotations carrying the load, this is adequate but thin.
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 filler; the key qualifiers (single, by UUID, from a collection) are all present and nothing is wasted.
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 an output schema present and annotations covering safety semantics, the description needn't explain return values. The only real gap is the absence of any note on error/not-found behavior, which is minor for such a simple retrieval 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?
Schema description coverage is 100%, with object_id documented as a Weaviate UUID and collection as a fully enumerated set, so the schema does the heavy lifting. The description adds no syntax or format details beyond that, which is the expected baseline.
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+resource+scope: 'Fetch a single object by UUID from a knowledge collection.' The 'by UUID' and 'single object' phrasing implicitly distinguishes it from search/query siblings like knowledge_search and knowledge_query, but it never names them or draws the contrast explicitly.
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 only implied: 'by UUID' suggests the caller already holds the identifier and doesn't need a search. There is no explicit when-to-use, when-not, or named alternative for cases where only a name/filter is known.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
knowledge_ingestKnowledge IngestA
Manually insert data into a knowledge collection.
Properties are validated against the collection schema — unknown keys are rejected with allowed name:type pairs.
Tip: call knowledge_schema(collection=...) first to see expected properties.
| Name | Required | Description | Default |
|---|---|---|---|
| collection | Yes | Target collection name. | |
| properties | Yes | Object properties to insert |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a write (readOnlyHint=false, destructiveHint=false, idempotentHint=false), so the safety profile is covered. The description adds real behavioral context beyond that: properties are validated against the collection schema and unknown keys are rejected with allowed name:type pairs — useful failure-mode disclosure. It doesn't mention duplicate handling despite idempotentHint=false.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences plus a tip: the action is front-loaded, the validation rule follows, and the prerequisite call is last as a distinct actionable note. No filler.
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?
An output schema exists, so return values need no explanation, and the write/validation semantics are covered. For a mutation tool with idempotentHint=false, the only notable omission is whether re-inserting the same data creates duplicates.
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 100%, so baseline is 3, but the description goes further by explaining that 'properties' must conform to the collection schema and listing the rejection behavior for unknown keys, which is meaningful for an open additionalProperties object. It does not enumerate expected property shapes (delegated to knowledge_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?
States a specific verb and resource: 'Manually insert data into a knowledge collection.' The word 'manually' implicitly separates it from automated ingestion siblings (source_ingest), and the required 'collection' enum makes the target unambiguous. It doesn't explicitly name a sibling, but the operation is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a concrete prerequisite/alternative route: 'call knowledge_schema(collection=...) first to see expected properties.' That is actionable guidance for how to use the tool successfully. It stops short of stating when NOT to use it (e.g. use knowledge_query/knowledge_search for reads instead).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
knowledge_queryKnowledge QueryARead-onlyIdempotent
[DEPRECATED] Search knowledge store using natural language.
Deprecated: Use knowledge_search instead, which now includes Cohere reranking and Flash summarization for better results with lower token usage.
Uses Weaviate AsyncQueryAgent in search mode for intelligent object retrieval.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| query | Yes | Natural language search query | |
| collections | No | Collections to search (all if omitted) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), so the bar is lower. The description adds genuinely useful behavioral context beyond the annotations: the deprecation status and the underlying Weaviate AsyncQueryAgent search mechanism. It does not describe result format, but an output schema exists, so this is minor.
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 deprecation warning is front-loaded in the first token of the description, followed by three tight sentences with no filler. Every sentence earns its place by routing the agent away from a stale 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?
An output schema exists, so return values need not be explained. The description fully covers what an agent needs: what the tool does, that it is deprecated, and where to go instead.
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 100%, so all three parameters (query, limit, collections) are already documented in the schema. The description adds no parameter syntax or format details beyond that, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource ('Search knowledge store using natural language') and explicitly distinguishes itself from the sibling knowledge_search by naming it as the recommended replacement. An agent can route correctly without opening any schema.
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 states an explicit when-to-use-this-vs-alternative rule: it is deprecated and the agent should use knowledge_search instead, with the concrete reason (Cohere reranking and Flash summarization, lower token usage). Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
knowledge_schemaKnowledge SchemaARead-onlyIdempotent
Return property schemas for knowledge collections.
Reads from local CollectionDef objects — no Weaviate connection needed. Use this before knowledge_ingest to discover expected property names and types.
| Name | Required | Description | Default |
|---|---|---|---|
| collection | No | Collection to inspect (omit for all) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world behavior, so the safety profile is covered. The description adds genuinely new context beyond that: it reads from local CollectionDef objects and requires no Weaviate connection, which tells the agent this is a fast, offline-safe call.
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, and the core action is stated first. The implementation note and the usage hint each earn their place.
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, read-only introspection tool with a full output schema and rich annotations, nothing an agent needs in order to call it correctly is missing. Return-value shape is covered by the output schema, so the description need not describe it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single `collection` parameter is already documented as 'Collection to inspect (omit for all).' The description's plural 'collections' loosely implies the omit-for-all default, but adds no syntax or semantics beyond the schema. Baseline 3 applies.
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: 'Return property schemas for knowledge collections.' An agent can immediately tell this is a schema-introspection tool, distinct from write tools like knowledge_ingest. It does not explicitly contrast itself with near-neighbors such as knowledge_stats or knowledge_query, so sibling differentiation is only partial.
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 a concrete when-to-use rule: 'Use this before knowledge_ingest to discover expected property names and types.' That ties the tool to a workflow step. It stops short of stating when NOT to use it or naming alternative introspection paths.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
knowledge_searchKnowledge SearchARead-onlyIdempotent
Search across knowledge collections using hybrid, semantic, or keyword mode.
Searches specified or all collections. Results are merged and sorted by score. Filters are collection-aware: conditions are skipped for collections that lack the relevant property.
| Name | Required | Description | Default |
|---|---|---|---|
| alpha | No | Hybrid balance: 0=BM25, 1=vector | |
| limit | No | Maximum total results to return | |
| query | Yes | Search query | |
| date_to | No | Filter created_at <= ISO date | |
| category | No | Filter VideoMetadata by category | |
| video_id | No | Filter by video_id | |
| date_from | No | Filter created_at >= ISO date | |
| collections | No | Collections to search (all if omitted) | |
| search_type | No | Search mode: hybrid (BM25+vector), semantic (vector only), keyword (BM25 only) | hybrid |
| source_tool | No | Filter by originating tool name | |
| evidence_tier | No | Filter by evidence tier (e.g. CONFIRMED) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the description earns credit for adding non-obvious behavior: results are merged and sorted by score, and filters are collection-aware with conditions skipped for collections lacking the property. This is exactly the kind of semantic that annotations cannot convey, though no rate limits or result-shape caveats are given.
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, front-loaded with the core action and mode, then the collection-scope and merge/sort behavior. No filler, no repetition of schema content.
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 an output schema present, return values need no explanation, and the description adequately covers scope, modes, and filter semantics for an 11-parameter search tool. The missing piece is routing guidance among the many knowledge_* siblings, which leaves the agent to infer tool choice.
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 100%, so the schema already documents all 11 parameters including the alpha and search_type semantics. The description's mention of hybrid/semantic/keyword modes mirrors the search_type schema description rather than extending it, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Search across knowledge collections') and names the three retrieval modes, which is more than a restatement of the name. However, it does nothing to distinguish itself from close siblings such as knowledge_query and knowledge_ask, which an agent could easily confuse with it.
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 never says when to pick this tool over knowledge_query, knowledge_ask, or knowledge_related, nor does it state any prerequisites or exclusions. The only usage-adjacent hint is that omitted collections means 'all', which is schema-level information rather than guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
knowledge_statsKnowledge StatsBRead-onlyIdempotent
Get object counts per collection, optionally grouped by a property.
| Name | Required | Description | Default |
|---|---|---|---|
| group_by | No | Group counts by a text property (e.g. evidence_tier, source_tool) | |
| collection | No | Collection to count (all if omitted) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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 safe-read profile is fully covered. The description adds useful context about the output shape (per-collection counts, optional property grouping) but says nothing about cost, limits, or behavior when a collection is omitted. With annotations carrying the safety burden, a 3 is appropriate.
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 zero filler. The core action leads and the optional modifier follows, and every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (2 optional params) and has an output schema, so return values need not be explained here. Annotations cover the safety profile and the schema fully documents parameters. The only gap is the absence of routing guidance against siblings, but for a low-complexity stats tool this is close to 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 description coverage is 100%, so both parameters (group_by, collection) are already documented in the schema with examples and the enum of collections. The description restates 'per collection' and 'grouped by a property' but adds no syntax or semantics beyond the schema, which is the baseline-3 case.
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 ('Get object counts per collection') plus the grouping capability, so the agent knows exactly what statistic is returned. It does not, however, name or distinguish itself from siblings like knowledge_query or knowledge_ask, so the differentiation must be inferred from the name.
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?
There is no explicit when-to-use or when-not-to-use guidance and no named alternative. An agent must infer that this is the counting/aggregation tool versus knowledge_query (data retrieval) or knowledge_schema (structural metadata). Usage is implied by the name only.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
media_acquireMedia AcquireC
Acquire bounded media into private owned storage with exact byte identity.
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | Local video path, YouTube/Loom URL, or HTTPS direct video/HLS URL |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false, and openWorldHint=true, so the agent knows this is a non-idempotent write pulling from the open world. The description adds 'bounded' (implying size limits) and 'exact byte identity' (implying verification), which are useful. But it omits auth requirements, where storage lives, and what a re-run over the same source does – notable gaps for a non-idempotent mutation.
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 filler. It is efficient, though its terseness borders on under-specification rather than true economy.
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?
An output schema exists, so return values need no explanation, and there is only one well-documented parameter. Still, for a non-idempotent open-world write the description omits re-run behavior, storage semantics, and failure modes, leaving it thinner than the operation warrants.
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 100% and the single `source` parameter is fully documented with its accepted forms (local path, YouTube/Loom URL, HTTPS/HLS URL). 'Bounded' loosely hints at size constraints on the source but adds no syntax or format detail beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
It names a verb ('Acquire') and resource ('media') and states the destination ('private owned storage'), so the general intent lands. However, qualifiers like 'bounded' and 'exact byte identity' are jargon that doesn't sharpen what actually happens, and it never distinguishes this from close siblings such as source_ingest or media_source_inspect.
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?
There is no when-to-use guidance, no prerequisites, and no reference to any alternative. With siblings like source_ingest and source_ingest_read in the set, an agent gets no signal for choosing this tool over them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
media_analyze_musicMedia Analyze MusicA
Infer timed musical sections and properties from actual decoded audio.
Instruments, mood, tags, tempo, key and meter remain model interpretations. Submitted PCM clocks and hashes identify the evidence for each section.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes | Audio-only analysis of an exact local source; timed structure and inferred musical properties |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes beyond the annotations by disclosing that instruments/mood/tags/tempo/key/meter are 'model interpretations' (non-deterministic, consistent with idempotentHint=false) and that PCM clocks and hashes tie each section to evidence. This is real behavioral context the structured fields don't convey.
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 tight sentences, front-loaded with the purpose before the interpretive caveat and evidence note. Every sentence earns its place, though the caveat could be integrated more crisply.
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 an output schema present, return values need not be explained, and annotations cover the safety profile. The description supplies the interpretive caveat and evidence model, leaving only explicit routing/prerequisite guidance unaddressed.
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 100% and the nested request object is fully documented, so the schema carries the parameter burden. The description adds no syntax or format detail beyond it, making the baseline 3 correct.
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: 'Infer timed musical sections and properties from actual decoded audio.' An agent can tell this apart from generic siblings like audio_dsp_analyze or audio_transcribe, though it never explicitly names or contrasts with 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?
The phrase 'from actual decoded audio' implies a decoded-source precondition, but there is no explicit when-to-use guidance, no mention of alternatives (audio_dsp_analyze, audio_transcribe, media_perceive), and no exclusions or prerequisites such as authorization for submission.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
media_asset_removeMedia Asset RemoveADestructive
Remove one verified owned asset and invalidate its source-dependent caches.
| Name | Required | Description | Default |
|---|---|---|---|
| asset_id | Yes | Full SHA-256 asset identity returned by media_acquire; paths are forbidden |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=false, so the safety profile is partly covered. The description adds genuinely new behavioral context beyond the annotations: the removal cascades into invalidation of source-dependent caches. It still does not state that the operation is permanent/irrecoverable.
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?
One sentence, front-loaded with the primary action and the scope, with the side effect tacked on efficiently. Zero wasted words.
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 destructive tool, the description plus annotations (destructive) and the existing output schema cover most of what an agent needs. The remaining gap is that permanence/irreversibility and the recommended way to obtain a valid asset_id are never stated.
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 100% with a single fully documented asset_id parameter (SHA-256 pattern, 'paths are forbidden'), so the schema carries the load. The description's 'verified owned asset' adds a mild ownership/verification nuance but no format or sourcing detail beyond the schema. Baseline 3 applies.
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?
Names a specific verb (remove) and resource (verified owned media asset), and the qualifier 'verified owned' narrows it against the many sibling media/image/audio tools. It does not explicitly contrast with siblings like media_assets_list or media_info, but the intent is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to use this versus alternatives, no prerequisite that asset_id comes from media_acquire or media_assets_list, and no warning about when removal is inappropriate or irreversible. The agent must infer all routing from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
media_assets_listMedia Assets ListBRead-onlyIdempotent
List a bounded page with fresh byte checks and explicit unhealthy states.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum asset records returned | |
| offset | No | Offset into SHA-256 ordered owned assets |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive), and the description adds genuine behavioral context beyond them: it discloses that listing triggers 'fresh byte checks' and can surface 'explicit unhealthy states'. This tells the agent the call is not a pure cached read and that results may include error states.
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 filler, economy that gets the read-only, paginated nature across quickly. It borders on cryptic (
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 an output schema covering return values and annotations covering safety, the description need not explain results. What remains missing is sibling routing and any hint of cost/latency implied by the fresh byte checks, but the structured metadata supplies most of what an agent needs.
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 100%, so limit and offset (including the SHA-256 ordering) are already fully documented. The description's 'bounded page' phrasing only echoes the pagination concept without adding format or ordering detail, so the baseline 3 applies.
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 verb 'List' is clear and the name supplies the resource ('media_assets'), but the description itself never names what is listed and never distinguishes it from siblings like media_info, media_metadata, or media_source_inspect. 'List a bounded page' is a vague purpose statement that leans on the title to be understood.
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 guidance is given, no exclusions, and no alternative sibling is named. An agent cannot infer from the text whether this should be preferred over media_info or media_metadata for inspecting owned assets.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
media_caption_eventsMedia Caption EventsC
Caption timed audio, visual and combined occurrences with submitted support.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes | Exact local AV selection and source-supported event captions; dry preparation by default |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal non-read-only, open-world, non-idempotent, non-destructive behavior. The description adds only the vague phrase 'with submitted support' and does not disclose the dry_run default (true), the authorize_submission gate, or that a local file with a verified hash is required. For a submission-oriented tool these are material omissions.
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?
It is a single front-loaded sentence with no redundancy, but the phrasing is vague filler ('with submitted support') rather than information-dense, so brevity comes at the cost of substance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a complex tool with a nested request object, many defaulted limits, an authorization flag, and hash verification, plus an output schema. The one-line description omits the dry-run default, the submission authorization requirement, and the local-source constraint, leaving the agent under-informed about how to invoke it safely.
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 100%, so the nested request object, limits, dry_run, and sha256 pattern are already documented structurally. The description contributes no additional parameter meaning, which is the baseline-3 case 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The verb 'caption' and the objects 'timed audio, visual and combined occurrences' give a rough sense that this generates event captions over media, but the trailing phrase 'with submitted support' is cryptic and no sibling (media_count_events, media_ground_events, media_perceive) is distinguished. An agent can guess the domain but not the precise operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of prerequisites (local file, sha256), and no routing to or away from the closely related event tools. The agent must infer usage entirely from the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
media_count_eventsMedia Count EventsB
Count retained inferred occurrences of a target in bounded source windows.
Counts concern admitted records in submitted evidence. Overlapping records remain distinct, and sampled frames leave gaps where events may be missed.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes | Target event and exact local selection; count is derived from retained supported occurrence records |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose readOnlyHint=false, openWorldHint=true, idempotentHint=false, and destructiveHint=false, so the safety profile is partly covered. The description adds real context beyond that: counts derive only from 'admitted records in submitted evidence,' overlapping records are counted distinctly, and frame sampling leaves gaps where events may be missed. These are meaningful behavioral disclosures not present in 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short paragraphs, front-loaded with the core action, and the second paragraph adds distinct caveats rather than padding. The dense jargon costs a little clarity, but nothing is redundant or wasted.
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?
An output schema exists and annotations cover safety, so the description needn't explain return values. But for a tool with a 17-property nested request, it never explains the dry_run-default-true / authorize_submission submission workflow or when this is preferable to the many sibling event tools, leaving a real gap.
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 100% and the single nested 'request' object carries its own description, so the schema does the heavy lifting. The description adds no syntax or semantics for parameters like dry_run, authorize_submission, or the limits block. Baseline 3 applies when the schema already documents everything.
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 first sentence gives a specific verb and resource: 'Count ... occurrences of a target in bounded source windows.' An agent can grasp that this counts target events within windowed media. However, the phrasing is jargon-heavy ('retained inferred occurrences') and it makes no attempt to distinguish itself from near-siblings like media_caption_events or media_ground_events.
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?
There is no when-to-use guidance, no prerequisites, and no alternatives named despite many overlapping event/analysis siblings. The second paragraph states counting caveats rather than selection conditions, so an agent gets no help deciding between this and media_ground_events or media_caption_events.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
media_edit_footageMedia Edit FootageA
Edit bounded local footage through a measured prepare and approval workflow.
Prepare retains source intervals, actual frame clocks, grade/audio decisions and scene previews. Assemble requires the exact prepared manifest and every scene artifact approval, then gates full decoding, timeline, black spans and required audio loudness before delivery. Declared beat grids and approvals remain caller assertions; technical checks do not establish visual semantics. FFmpeg and Pillow must already be installed. No provider is invoked.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes | Prepare exact local source scenes or assemble a digest-bound ledger with complete scene approvals | |
| include_image | No | Include bounded verified scene/timeline PNGs; text retains the same artifact identities |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations covering safety flags, the description still adds meaningful behavior: prepare retains source intervals, frame clocks, grade/audio decisions and previews; assemble gates decoding, timeline, black spans and audio loudness; beat grids and approvals are only caller assertions, not verified semantics. It also discloses prerequisites (FFmpeg and Pillow must be installed) and that no provider is invoked, which the annotations do not convey.
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 tight sentences, front-loaded with the phase model, then the prepare behavior, then assemble requirements and caveats. Dense jargon such as 'measured prepare and approval workflow' costs a little clarity, but every sentence carries information with no filler.
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?
An output schema exists so return values need not be described. Given two top-level parameters with 100% schema coverage, the description supplies the missing workflow context, prerequisites and the assertion-versus-verification boundary, leaving little an agent would need but cannot find.
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 100%, so the schema already documents the request union, beats, grade, approvals and include_image. The description reinforces the prepare/assemble split and clarifies that beat grids are declared, not detected, but does not add format or syntax detail beyond the schema. Baseline 3 applies.
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 specific verbs (prepare, assemble) and the resource (bounded local footage) with a two-phase workflow, and explains what each phase produces. It does not name sibling tools such as video_clip_export or image_edit, so an agent must infer differentiation, but the purpose itself is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through the workflow itself (prepare first, then assemble with the exact manifest and approvals), which is a real sequencing constraint. However it never states when to choose this over alternatives like video_clip_export, nor any when-not condition, so guidance beyond the ordering is inferred rather than given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
media_ground_eventsMedia Ground EventsC
Ground a query in source-supported intervals with uncalibrated scores.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes | Query with positive top_k; retain all admitted records and disclose selected and truncated matches |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, openWorldHint=true, and idempotentHint=false. The description adds the useful caveat that returned scores are uncalibrated, but it omits behavioral details such as dry-run defaulting, authorization requirements, expected source hash verification, and external-call limits.
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 front-loaded sentence with no wasted words. For a tool with a deeply nested request object and many behavioral controls, however, it is too terse to be considered appropriately sized.
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?
An output schema exists, so return values need not be explained, and annotations cover some safety traits. Still, the description is incomplete for a complex media-grounding tool: it does not explain dry-run behavior, submission authorization, source-hash verification, or how to choose this tool over related media event tools.
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 100%, so the schema itself documents all parameters, including nested limits and required fields. The description adds no additional parameter meaning beyond the schema, which establishes the baseline of 3.
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 has a verb and resource: 'Ground a query in source-supported intervals.' However, 'source-supported intervals' and 'uncalibrated scores' are abstract and do not clarify the media modality or distinguish this tool from siblings such as media_caption_events or media_count_events.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use context, no alternatives, and no preconditions for selecting this tool. An agent has no guidance beyond the name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
media_infoMedia InfoA
Inspect exact local media bytes, stream metadata, rotation, audio and chapters.
Uses independently installed FFprobe and a bounded private stable snapshot. This performs no provider upload and does not establish watched coverage.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | Regular local media path within LOCAL_FILE_ACCESS_ROOT |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations carry the safety profile, and the description adds real context beyond them: the FFprobe dependency, the bounded private stable snapshot, and the explicit statement that no provider upload occurs and no watched coverage is established. The 'snapshot' phrasing also explains why readOnlyHint is false for an inspect-style 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?
Three short sentences, front-loaded with the verb and resource list, then constraints. No filler or repetition; every sentence earns its place.
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 an output schema present, return values need not be described, and the description covers the operation's scope, side-effect posture, and external dependency. Minor gap: no explicit guidance on selecting this over the near-name-collision siblings like media_metadata or media_source_inspect.
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?
Only one parameter, fully documented in the schema (LOCAL_FILE_ACCESS_ROOT constraint, 1-4096 chars). The description reinforces 'local media bytes' but adds no format or path-syntax detail beyond the schema, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Inspect') plus a concrete resource set: local media bytes, stream metadata, rotation, audio, chapters. That distinguishes it from provider-oriented siblings such as media_metadata and media_source_inspect, though it never names an alternative tool explicitly.
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 clauses 'no provider upload' and 'does not establish watched coverage' implicitly scope it to local, non-ingesting inspection, which is useful routing signal. However, there is no explicit when-to-use statement or named alternative among the many media_* siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
media_metadataMedia MetadataBRead-onlyIdempotent
Retrieve explicit metadata without downloading video, inference or upload.
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | Local video path, YouTube/Loom URL, or HTTPS direct video/HLS URL |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds meaningful context beyond that: it performs no download, inference, or upload, telling the agent this is a lightweight operation. It stops short of describing error behavior or metadata coverage, so not a 5.
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?
One front-loaded sentence with zero padding; the operation is stated first and the cost-avoidance qualifier second.
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?
An output schema exists so return values need not be explained, and annotations carry the safety profile. But 'explicit metadata' leaves the actual payload ambiguous, and with multiple overlapping siblings (video_metadata, media_info, media_source_inspect) the definition should clarify what this returns and when to prefer it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with a single, well-documented 'source' parameter (local path, YouTube/Loom URL, or HTTPS/HLS URL). The description adds no format or syntax detail beyond the schema, so the baseline 3 applies.
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 verb+resource (retrieve metadata) but 'explicit metadata' is vague about what metadata is returned, and nothing distinguishes it from siblings like video_metadata, media_info, or media_source_inspect. An agent cannot tell from the text why it would pick this over video_metadata.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'without downloading video, inference or upload' implies the use case (cheap metadata lookup that avoids heavy processing), which is a real contextual hint. However, no alternative is named and there is no explicit when/when-not guidance relative to the many metadata-adjacent siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
media_perceiveMedia PerceiveA
Infer separate spoken and visible source evidence across bounded AV windows.
Local dry plans prepare exact sampled frames and decoded PCM with no provider calls. Submission requires the exact workflow grant and configured account. Model intervals map back to source seconds; sampled images leave visual gaps.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes | Exact local media, bounded ordered windows and explicit Gemini submission grant; dry plans are the default |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations establish a non-read-only, open-world, non-idempotent call to an external provider, and the description meaningfully extends this: dry runs make no provider calls, submission needs an exact grant and a configured account, and sampled frames leave visual gaps (a real accuracy caveat). That is substantive disclosure beyond structured fields, though it omits cost/rate-limit 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?
Three tight sentences with the core purpose front-loaded and operational facts following. Every clause carries information; no padding or restatement of the title.
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?
An output schema exists, so return values need not be explained, and the description covers the dry-run/submit gating, the account/grant prerequisites, and the sampling limitation. The remaining gap is sibling disambiguation, which keeps it from a 5.
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 100%, so every field including the nested limits object is already documented, making 3 the baseline. The description adds only tangential mapping detail ('model intervals map back to source seconds') and the sampling-gap caveat rather than clarifying specific parameters like fps, window_seconds, or authorize_submission.
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 ('infer') and resource ('separate spoken and visible source evidence') with a clear scope ('across bounded AV windows'), which distinguishes it from pure-audio (audio_transcribe) or pure-vision siblings. However, it never names an alternative in the sibling list, so the agent must infer the boundary itself.
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 a two-phase workflow (dry plan first, then submission) and states the precondition for submission ('exact workflow grant and configured account'). That is useful operational context, but it gives no explicit when-to-use vs video_analyze, audio_transcribe, or video_analyze_windows, leaving the choice to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
media_source_inspectMedia Source InspectARead-onlyIdempotent
Inspect source syntax and capabilities without contacting or downloading it.
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | Local video path, YouTube/Loom URL, or HTTPS direct video/HLS URL |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower, yet the description adds genuinely useful behavior beyond them: this call performs no network contact and no download, i.e. it is a pure local syntax/capability check. It does not describe the return format, but an output schema is present.
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?
One sentence, front-loaded with the verb and resource, with the distinguishing constraint appended. No filler whatsoever.
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?
Complete enough to call correctly: the parameter is fully documented in the schema, the return contract is covered by the output schema, and annotations supply the safety profile. The only residual gap is a slightly clearer statement of when to prefer this over media_info or media_acquire.
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?
There is a single parameter at 100% schema description coverage ('Local video path, YouTube/Loom URL, or HTTPS direct video/HLS URL'), so the schema fully documents accepted input forms. The description adds nothing parameter-specific. Baseline 3 is appropriate when the schema does all the work.
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+resource: 'Inspect source syntax and capabilities.' The qualifying phrase 'without contacting or downloading it' implicitly carves out territory from siblings like media_info, media_acquire, and source_ingest, so an agent can distinguish this as a dry validation step. It stops short of a 5 because no sibling is ever named.
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 'without contacting or downloading' clause implies the right moment to call it (pre-flight validation before acquisition/ingest), but the description never states that usage explicitly and names no alternatives. Usage must be inferred from the negative qualifier rather than read directly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mhs_discoverMhs DiscoverBRead-onlyIdempotent
Discover registered simulated devices and their explicit capabilities.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | Optional exact device tag | |
| device_type | No | Optional exact simulated device type |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint=false, so the safety and idempotency profile is covered structurally. The description adds a mild behavioral note that results are limited to already-registered devices, but says nothing about result size, pagination, or what happens on an empty registry. With annotations carrying the main burden, a 3 is appropriate.
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 a clear verb and no filler. It is efficient, though the trailing phrase 'and their explicit capabilities' is slightly ambiguous and does not earn as much as a routing or scoping clause would.
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?
Output schema exists, so return values need not be described, and annotations fully cover the read-only/idempotent/closed-world profile. Parameters are documented in-schema, leaving the description with little it must still carry. Adequate for a simple zero-required-parameter discovery call.
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?
Both parameters have 100% schema description coverage ('Optional exact device tag', 'Optional exact simulated device type'), so the schema already explains them. The description mentions neither filtering nor the fact that both filters are optional/exact-match, adding no meaning beyond the structured fields. Baseline 3 applies.
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 (Discover) and resource (registered simulated devices) plus an extra output dimension (their explicit capabilities). It is clear on its own, but gives no signal distinguishing it from the sibling mhs_* family (mhs_read, mhs_meta_info, mhs_health_check), so an agent cannot route between them from the text alone.
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, when-not-to-use, or alternative named. The description never says to call this before mhs_read/mhs_write, nor whether discovery is required prior to other operations in the mhs family. Only implied usage can be inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mhs_health_checkMhs Health CheckCIdempotent
Inspect fresh simulated health and acknowledge a failed-write health gate.
| Name | Required | Description | Default |
|---|---|---|---|
| device_id | No | Qualified device ID; omit for all simulated devices |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=true, destructiveHint=false, so the safety profile is covered. The description adds context that it acknowledges a failed-write gate (consistent with a non-read-only operation) but does not clarify what state changes, whether acknowledgement is reversible, or what a 'fresh simulated' inspection returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence with the action front-loaded. However, the second clause is dense and cryptic rather than informative, slightly reducing value per word.
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?
An output schema exists, so return values need not be described. Still, the description leaves the core mechanics ('health gate', 'acknowledge', 'mhs') unexplained for a tool in a family with five siblings, so an agent lacks enough to call it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With a single optional parameter and 100% schema description coverage, the schema already documents device_id and its 'omit for all devices' default. The description adds no semantics beyond the schema, so baseline 3 applies.
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 verb 'inspect' and resource 'health' are present, but 'mhs' is never expanded and the second clause ('acknowledge a failed-write health gate') is cryptic enough that an agent cannot cleanly predict what the tool does. It fails to distinguish itself from siblings like mhs_read, mhs_reset, or mhs_meta_info.
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?
There is no statement of when to call this versus mhs_read/mhs_write/mhs_reset, and no exclusion criteria or prerequisites. The phrase 'failed-write health gate' hints at a trigger condition but never explains it as guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mhs_meta_infoMhs Meta InfoBRead-onlyIdempotent
Inspect current device values, directions and effective simulated limits.
| Name | Required | Description | Default |
|---|---|---|---|
| device_id | Yes | Qualified simulator adapter/device ID |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=false, so the safety profile is covered. The description adds context about the returned information (values, directions, effective simulated limits) but does not disclose permissions, failure modes, or other behavioral traits beyond what annotations and the output schema provide.
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 extraneous text. Every word contributes to describing the tool's scope, making it appropriately sized for a simple read operation.
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?
Given the tool's low complexity, the rich schema (100% coverage), presence of an output schema, and full annotations, the description is nearly complete for invocation. It could be improved by noting when this tool is preferred over mhs_read or mhs_discover, but it is sufficient for an agent that already knows the MHS family.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% description coverage for the single 'device_id' parameter, so the baseline is 3. The description adds no additional meaning about this parameter beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Inspect') and a specific set of resources ('current device values, directions and effective simulated limits'). It is clear what the tool does, though it does not explicitly differentiate itself from likely siblings such as mhs_read or mhs_discover.
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?
There is no indication of when to use this tool versus alternatives like mhs_read, mhs_write, or mhs_discover, nor any prerequisites or exclusions. The purpose statement implies a use case, but no explicit guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mhs_readMhs ReadC
Read declared simulated sensors or retain independently generated image bytes.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | Exact capability parameters; unknown fields are refused | |
| device_id | Yes | Qualified simulator adapter/device ID | |
| capability | Yes | Capability declared by mhs_meta_info |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, idempotentHint=false, destructiveHint=false, and openWorldHint=false. The description does not explain why a tool named and described as 'Read' is not read-only, nor does it detail side effects, authentication needs, or rate limits. The phrase 'retain independently generated image bytes' hints at a storage side effect but is ambiguous.
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?
Single sentence with no wasted words, front-loaded with the primary verb 'Read'. However, the second clause about retaining image bytes is vague and could be clearer.
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?
Given three required parameters, a nested object, and rich schema/annotations/output schema, the description should clarify when to use this versus mhs_write and what 'retain' means. It leaves those gaps, making it incomplete for reliable tool selection.
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 100%, so the schema already documents device_id, capability, and params. The description adds no parameter-level detail, but baseline is 3 when the schema carries the load.
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 'Read' and resource 'declared simulated sensors', plus a secondary operation 'retain independently generated image bytes'. It does not differentiate from sibling tools like mhs_write or mhs_meta_info, but the core read purpose is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use, prerequisites, or alternatives are provided. The only usage hint is implicit in 'declared simulated sensors' and 'retain image bytes', but there is no guidance on when to choose this over mhs_write or how to obtain capability via mhs_meta_info.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mhs_resetMhs ResetBIdempotent
Latch a simulated emergency stop or perform separately authorized recovery.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | estop latches simulated output off; soft recovery requires host authority | |
| device_id | Yes | Qualified simulator adapter/device ID | |
| command_id | Yes | Explicit command ID; replay reads its receipt without executing again |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the operation profile (readOnlyHint=false, idempotentHint=true, destructiveHint=false, openWorldHint=false), lowering the bar. The description contributes the useful fact that recovery requires separate authorization, but says nothing about preconditions, expected state before/after, or the replay/receipt behavior that matters for safe retries.
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 filler; the dual behavior is stated up front. It is efficient, though its terseness borders on under-specification rather than excess.
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 a full output schema and rich annotations, the description needn't cover returns or safety, and the two modes plus the authorization caveat are present. Still, for a device-mutating reset it omits prerequisites and state assumptions, so it is only minimally 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 description coverage is 100% and the enum itself explains that 'estop' latches output off while 'soft' requires host authority, so the description adds nothing beyond the structured fields. Baseline 3 is appropriate 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action and object ('latch a simulated emergency stop' / 'perform recovery') so its purpose is inferable, but the framing sits awkwardly against the tool name 'reset' and the description gives no differentiation from adjacent siblings such as mhs_read, mhs_write, or mhs_discover. An agent can guess this is the estop/recovery control for an MHS simulator, but only after cross-reading the name and schema.
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?
'Separately authorized recovery' implies that one branch requires host authority, hinting at when the soft path applies, but there is no explicit when-to-use/when-not or named alternative. The mode enum carries the selection logic rather than the description, leaving usage only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mhs_writeMhs WriteAIdempotent
Apply one atomic simulated write or return its exact authority proposal.
Soft overrides and confirmation-required operations need separate host approval bound to this command, state and limits. confirm=True grants no approval. Terminal IDs replay their receipt. An explicitly resumed pending proposal may attempt its first action after exact host approval.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | Exact capability parameters; unknown fields are refused | |
| confirm | No | Caller acknowledgement only; never grants host authority | |
| device_id | Yes | Qualified simulator adapter/device ID | |
| capability | Yes | Capability declared by mhs_meta_info | |
| command_id | Yes | Explicit command ID; replay reads its receipt without executing again |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (idempotent, non-destructive, non-read-only), the description discloses the approval model: confirm=True never grants authority, soft overrides need host approval bound to command/state/limits, terminal IDs replay receipts, and a resumed proposal may attempt its first action only after exact approval. This is meaningful behavioral context the annotations cannot convey.
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?
Purpose is front-loaded in the first sentence, followed by tightly packed approval and replay rules. It is appropriately short for a high-complexity mutation tool, though the phrasing is dense and jargon-heavy ('exact authority proposal', 'bound to this command, state and limits').
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 an output schema present, return values need not be described, and the description covers the key non-obvious behaviors: approval gating, confirm semantics, receipt replay, and pending-proposal resumption. An agent has enough to call it correctly, though the read/write sibling relationship is left implicit.
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 100%, so the schema already documents all five parameters including confirm and command_id. The description reinforces that confirm grants no approval and that command_id replays a receipt, but this largely overlaps the schema text rather than adding new syntax or constraints. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (apply a write) and resource (a simulated device write via mhs_*), and distinguishes the two outcomes: executing the write or returning its authority proposal. It does not explicitly name siblings like mhs_read or mhs_reset, so an agent must infer the read/write split from the family naming.
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 implies the tool is the write path and states conditions under which separate host approval is required (soft overrides, confirmation-required operations), but it never says when to choose this over mhs_read, mhs_reset, or mhs_meta_info. Usage is inferable rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
provider_capabilitiesProvider CapabilitiesARead-only
Inspect configured operation support and reject unsupported selections.
Profiles declare support; inspection performs no connectivity or model test.
| Name | Required | Description | Default |
|---|---|---|---|
| backend | No | gemini, weaviate, text:profile, vision:profile, or omitted for the matrix | |
| required | No | Requested capabilities to check against one exact selected route |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, but the description adds substantive behavioral context beyond that: profiles declare support statically, and inspection performs no connectivity or model test. This prevents the agent from mistaking this for a live validation tool. It stops short of describing return values or failure behavior (e.g., does it error on unsupported selections?), but with annotations covering the safety profile, this is meaningful added value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the core action front-loaded and the important caveat about no connectivity testing immediately after. No filler, though the second sentence is slightly cryptic without the schema context.
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?
Given an output schema exists (so return values needn't be explained) and annotations plus full schema coverage handle safety and parameters, the description supplies the one crucial missing piece: that this is a static inspection with no live testing. For a low-complexity, two-optional-parameter tool, this is nearly complete, missing only explicit error 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 100% – both parameters have detailed descriptions listing accepted backend strings and capability enums. The description adds nothing beyond the schema for parameter meaning, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Inspect') and resource ('configured operation support'), and the second sentence clarifies what it does not do. It doesn't need to distinguish from siblings since none of the other tools perform provider capability checks, but the phrasing 'operation support' is broad enough that an agent must lean on the schema for specifics.
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: check support before selecting operations, and reject unsupported selections. The second sentence warns that no connectivity or model test occurs, which implicitly tells the agent not to use this as a health check. However, there is no explicit when-to-use or when-not-to-use statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
research_assess_evidenceResearch Assess EvidenceBRead-only
Assess a claim against sources, returning evidence tier and confidence.
| Name | Required | Description | Default |
|---|---|---|---|
| claim | Yes | The claim to assess | |
| context | No | Additional context for assessment | |
| sources | Yes | Evidence sources to evaluate against |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, covering the safety profile. The description adds only the return contents ('evidence tier and confidence'), which the output schema largely already covers, and says nothing about how sources are weighed or what tiers mean.
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 tight sentence with no wasted words, and the action plus return value are front-loaded. Slightly more detail on source handling could have been justified but is absent.
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?
An output schema exists, so return values need not be explained, and structured fields carry the parameter and safety info. For a simple read-only assessment tool the description is adequate, though it could route the agent to siblings.
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 100%, so all three parameters (claim, context, sources) are fully documented in the schema. The description adds no semantics beyond that, which is the expected baseline 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Assess a claim against sources') plus the output ('evidence tier and confidence'). It is clearly distinguishable from research siblings, though it does not explicitly name an alternative tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus related tools like research_deep, research_execute, or research_paper_citations. An agent must infer the context from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
research_author_searchResearch Author SearchBRead-only
Search for academic authors on Semantic Scholar.
Returns author profiles with affiliation, paper count, citation count, and h-index.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max authors to return | |
| query | Yes | Author name to search |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds the returned field set (affiliation, paper count, citation count, h-index), which is useful context, but says nothing about pagination, rate limits, or empty-result behavior beyond the annotation bar.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler, with the core action ('search academic authors') front-loaded and the return shape following immediately.
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 read-only, two-parameter search with an output schema and full schema coverage, the definition covers the essentials. The one real gap is the absence of routing guidance versus sibling research_* tools.
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 100%: 'query' and 'limit' are fully documented with constraints (maxLength 200, minimum 2, limit 1-100). The description adds no parameter syntax or format guidance, so the baseline 3 applies.
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 ('Search for academic authors') plus the provider ('Semantic Scholar'), which naturally separates it from research_paper_search and research_paper_details. It does not explicitly name or contrast with those siblings, so it stops 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use, when-not-to-use, or alternative-tool guidance is given. The description only says what the tool does, leaving the agent to infer that author-level search differs from paper-level search.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
research_deepResearch DeepARead-only
Run three-phase model-only synthesis without external source retrieval.
Phases: Scope Definition -> Evidence Collection -> Synthesis. Model tiers remain proposals. CONFIRMED and STRONG INDICATOR proposals become UNKNOWN because this route neither retrieves nor verifies sources.
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | Research depth — "quick", "moderate", "deep", or "comprehensive". | moderate |
| topic | Yes | Research topic or question | |
| thinking_level | No | Gemini thinking depth. | high |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only cover readOnlyHint and openWorldHint; the description goes further by disclosing a consequential behavioral trait: CONFIRMED and STRONG INDICATOR proposals degrade to UNKNOWN because this route neither retrieves nor verifies. That materially warns the agent about output reliability, which the annotations do not convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, front-loaded sentences plus a phase list, with zero filler. The most important constraint (no retrieval, tier degradation) is stated up front.
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 an output schema present and annotations covering the safety profile, the description only needs to convey routing and behavioral caveats, which it does via the phase list and the UNKNOWN-degradation warning. Adequate, though it could be stronger with an explicit sibling comparison.
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 100%, so topic, scope, and thinking_level are already fully documented in the schema, including enums and defaults. The description adds no parameter-level detail beyond what the schema provides, so baseline 3 applies.
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+resource ('Run three-phase model-only synthesis') and enumerates the phases, making the operation concrete. The qualifier 'without external source retrieval' implicitly separates it from retrieval-based siblings like research_web or research_execute, though no sibling is named outright.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'model-only synthesis without external source retrieval' implies when this route is appropriate versus the retrieval-oriented research siblings, but there is no explicit when-to-use/when-not statement or named alternative. Usage is inferred rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
research_documentResearch DocumentARead-only
Run multi-phase deep research grounded in source documents.
Phases: Document Mapping -> Evidence Extraction -> Cross-Reference -> Synthesis. Every claim is labeled with evidence tiers and cited back to source documents.
| Name | Required | Description | Default |
|---|---|---|---|
| urls | No | URLs to PDF documents (downloaded and uploaded to Gemini) | |
| scope | No | Research depth -- quick, moderate, deep, comprehensive. | moderate |
| file_paths | No | Local PDF/document file paths | |
| instruction | Yes | Research question or analysis instruction for the documents | |
| thinking_level | No | Gemini thinking depth. | high |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint, so safety is covered. The description adds real behavioral value beyond that: a concrete four-phase pipeline (Document Mapping -> Evidence Extraction -> Cross-Reference -> Synthesis) and the guarantee that claims carry evidence tiers and citations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences with the core action front-loaded, followed by the phase pipeline and output guarantee. No filler; every line contributes.
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?
An output schema exists, so return values need not be explained, and annotations plus full schema coverage carry safety and parameters. Behavior is well described; the only real gap is usage routing against sibling research tools.
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 100%, so the five parameters (urls, file_paths, instruction, scope, thinking_level) are already documented in the schema. The description adds no syntax, format, or interaction detail for them, so baseline 3 applies.
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 ('Run multi-phase deep research grounded in source documents') and clarifies the domain as document-grounded research. However, it does not distinguish itself from close siblings like research_deep or research_execute, leaving the agent to infer the boundary.
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 explicit when-to-use, when-not-to-use, or alternative routing is given. 'Grounded in source documents' implicitly contrasts with research_web, but the agent must infer whether to pick this over research_deep, research_execute, or research_plan.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
research_executeResearch ExecuteA
Prepare or execute source-preserving research under one global allowance.
Dry runs make no provider or URL calls. Supplied originals are byte checked. URL execution requires source-access authorization; inference requires submission authorization. Google hosted research remains a separate route. Unknown price ceilings fail closed. Model tiers never establish CONFIRMED.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes | Explicit route, frozen original evidence, source rules, joined subquestions and aggregate limits |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare openWorld=true, readOnly=false and non-idempotent, so the agent knows this mutates external state. The description adds real value beyond that: byte-checking of supplied originals, fail-closed behavior on unknown price ceilings, and the explicit rule that model tiers never establish CONFIRMED. It does not, however, describe run_id reuse or revision/pagination 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?
Seven short sentences, each carrying a distinct rule, with the prepare/execute scope front-loaded. The telegraphic style ('Unknown price ceilings fail closed') is dense but not padded.
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 complex nested schema with an output schema and annotations present, the description covers the safety envelope (authorization, dry-run, fail-closed) that structured fields cannot convey. It omits run_id/resume semantics and mode-to-field mapping, but nothing critical for a correct first call is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and there is effectively one nested request object, so the baseline is 3. The description implies the mode semantics (URL execution vs inference) but does not map any of that to named fields such as mode, authorize_source_access, or dry_run.
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 pair and resource ('Prepare or execute source-preserving research') plus the scoping constraint of a single global allowance, which distinguishes it from lightweight siblings like research_plan or research_web. It stops short of naming which sibling to choose instead, so it is clear but not fully differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete conditional guidance: dry runs trigger no provider/URL calls, URL execution needs source-access authorization, inference needs submission authorization, and Google hosted research is a separate route. This tells an agent when routes are permitted, though it never names an alternative sibling tool to route to.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
research_paper_citationsResearch Paper CitationsCRead-only
Get citations or references for a paper.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max papers to return | |
| paper_id | Yes | Paper ID (S2, DOI:, or ArXiv:) | |
| direction | No | 'citations' (papers citing this) or 'references' (papers this cites) | citations |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds nothing beyond that — no note on pagination, result volume, coverage of the citation graph, or auth requirements — leaving the behavioral burden entirely on structured fields.
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 zero filler, appropriately sized for a three-parameter read tool. It is efficient rather than padded, though it borders on under-specified.
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?
An output schema exists, so return values need no explanation, and the parameter schema is complete. However, for a graph-traversal tool an agent would benefit from knowing the relationship semantics and any limits; the description stops at the minimum viable level.
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 100%, so paper_id, direction, and limit are already fully documented in the schema, establishing the baseline of 3. The phrase 'citations or references' echoes the direction enum but adds no format or edge-case meaning beyond it.
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 ('Get') and resource ('citations or references for a paper') that clearly maps to the tool name. It is distinguishable from research_paper_search and research_paper_details by the citation/reference focus, though it never names those siblings explicitly.
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 guidance, no prerequisites, and no mention of alternatives such as research_paper_details for metadata or research_paper_recommendations for related work. The agent must infer the niche from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
research_paper_detailsResearch Paper DetailsARead-only
Get detailed metadata for a specific paper.
Accepts Semantic Scholar IDs, DOIs (prefix with DOI:), or ArXiv IDs (prefix with ArXiv:).
| Name | Required | Description | Default |
|---|---|---|---|
| paper_id | Yes | Paper ID: S2 ID, DOI (prefix 'DOI:10.xxx'), or ArXiv (prefix 'ArXiv:2301.xxx') |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety and external-lookup profile is covered. The description adds the accepted identifier forms, which is useful operational context, but says nothing about lookup failures for invalid IDs or rate limiting; the output schema covers return values, so a 3 is fair.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the core action, with zero filler. The second sentence duplicates schema content, which slightly reduces its efficiency, but the structure is clean and easy to scan.
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 single-parameter read tool with full schema coverage, an output schema, and safety annotations, the description supplies everything needed to invoke it correctly. Only the sibling-routing guidance is absent, which is a minor gap given the explicit ID formats.
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 100% for the single paper_id parameter, and the description merely restates the same format details (DOI:/ArXiv: prefixes) already present in the schema. Baseline 3 applies since the schema does the heavy lifting and the description adds no meaning beyond it.
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 ('Get detailed metadata') and resource ('a specific paper'), making the lookup-by-ID intent clear. It does not explicitly differentiate itself from close siblings such as research_paper_search or research_paper_citations, but the 'specific paper' framing implies single-item retrieval rather than discovery.
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 only implied: the agent can infer this is the tool to call once it already holds a paper identifier. There is no explicit guidance on when to prefer it over research_paper_search (to obtain an ID first) or research_paper_citations, and no stated preconditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
research_paper_recommendationsResearch Paper RecommendationsBRead-only
Get paper recommendations based on seed papers.
Uses Semantic Scholar's recommendation engine to find related papers.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max papers to return | |
| seed_paper_ids | Yes | List of S2 paper IDs to base recommendations on |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the agent knows this is a safe, external-facing read. The description adds that results come from Semantic Scholar's recommendation engine, but says nothing about rate limits, API key/auth requirements, or result ordering — modest added value 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, front-loaded sentences with no filler. The second sentence (mechanism) earns its place by telling the agent what engine backs the results, though it borders on redundancy with the tool name.
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?
An output schema exists, so return values need no explanation, and the two params are fully schema-documented. However, for a tool whose selection depends on distinguishing it from other research_paper_* siblings, the absence of any usage context leaves a real gap.
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 100%, so both parameters (seed_paper_ids, limit) are already documented in the schema. The description only says recommendations are 'based on seed papers', adding no syntax, ID format, or limit interplay beyond the 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?
States a specific verb (get) and resource (paper recommendations) with the mechanism (Semantic Scholar recommendation engine based on seed papers). It is distinguishable from sibling tools like research_paper_search and research_paper_citations, though it doesn't explicitly 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?
The description implies you need seed papers but gives no guidance on when to choose this over research_paper_search, research_paper_citations, or knowledge_related. No prerequisites, no exclusions, no alternatives named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
research_paper_searchResearch Paper SearchARead-only
Search academic papers on Semantic Scholar.
Returns papers with metadata, abstracts, citation counts, and TL;DR summaries. Supports filtering by field of study, year range, and open access availability.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max papers to return | |
| query | Yes | Search query for academic papers | |
| year_range | No | Year filter: '2020' for single year, '2020-2024' for range, '2020-' for since | |
| fields_of_study | No | Filter by fields (e.g. Computer Science, Medicine) | |
| open_access_only | No | Only return open access papers |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety/external-call profile is covered. The description adds useful context about what is returned (abstracts, citation counts, TL;DR), but says nothing about result caps, pagination, rate limits, or API-key requirements for the external Semantic Scholar call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: the action and source come first, then the return contents and filter capabilities. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be explained, and annotations cover safety; the description covers purpose and filter scope adequately. It is only slightly short of complete for lacking any guidance on when this search is preferred over the sibling paper tools.
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 100%, including the year_range format and fields_of_study examples, so the schema carries the parameter burden. The description merely restates that field-of-study, year, and open-access filtering are supported, adding no syntax or semantics beyond the 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?
States a specific verb and resource ('Search academic papers') plus the backing source ('Semantic Scholar'), and enumerates the returned payload (metadata, abstracts, citation counts, TL;DR). This clearly separates it from siblings like research_paper_details, research_paper_citations, and research_paper_recommendations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says what filters exist but never says when to choose this tool over research_paper_recommendations or research_paper_details, nor any prerequisite or exclusion. Usage is only inferable from the verb 'search'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
research_planResearch PlanARead-only
Generate a multi-agent research orchestration plan.
Returns a phased blueprint with task decomposition and model assignments. Does NOT spawn agents — provides the blueprint for the caller.
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | Research depth. | moderate |
| topic | Yes | Research topic or question | |
| available_agents | No | Number of agents available |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so safety is covered. The description adds genuinely non-obvious behavior: the tool produces a plan artifact rather than spawning agents, which is the single most important thing an agent must know before calling it. It does not cover whether the plan is persisted or re-generated on repeat calls, keeping it short of a 5.
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 lines, no filler, and the core purpose plus the critical non-behavior are front-loaded. Every sentence carries information 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?
An output schema exists, so return-value detail is not required, and the description still summarizes the blueprint's shape. Combined with full schema coverage and annotations, the definition is nearly self-sufficient; only the workflow relationship to the execute/document siblings is left implicit.
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 100% with all three parameters documented inline (scope enum, topic bounds, available_agents range). The description adds no parameter-level meaning, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Generate a multi-agent research orchestration plan') and clarifies the output shape (phased blueprint with task decomposition and model assignments). It does not name any sibling explicitly, but the negative clause 'Does NOT spawn agents' implicitly distinguishes it from the execution-oriented siblings like research_execute and research_deep.
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 'Does NOT spawn agents — provides the blueprint for the caller' line implies the planning-vs-executing split, which is useful routing context. However, it never states when to prefer this over research_execute, research_deep, or research_document, so the agent must infer the workflow ordering.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
research_webResearch WebA
Launch a Gemini Deep Research Agent for autonomous web-grounded research.
The agent plans its own research, searches the web (~80-160 queries), reads sources, and produces a cited markdown report. Runs in background; poll with research_web_status. Provider usage is billed; runtime varies.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | Yes | Precise research brief — the more detailed, the better results | |
| job_id | No | Resume a recorded launch without resubmitting provider work | |
| output_format | No | Report structure/format instructions (e.g. 'executive summary + data tables') |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare openWorldHint=true and readOnlyHint=false, so the safety profile is partly covered. The description adds genuinely useful behavior beyond that: autonomous planning, ~80-160 queries, background execution, provider billing, and variable runtime. It stops short of stating auth requirements or whether a launch is idempotent/reversible.
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 tight sentences, each earning its place: what it is, how it runs and how to track it, and the cost/latency caveat. The scoping and polling information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value detail is not needed. For an async launch tool the description covers the essentials an agent needs: autonomy model, background execution, the polling sibling, and billing. Nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (topic, job_id, output_format) are already documented in the schema with meaningful hints. The description adds no parameter-level detail (e.g. job_id resume semantics), so the baseline 3 applies.
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 (Launch) and resource (Gemini Deep Research Agent) plus the concrete output (cited markdown report). It distinguishes itself from siblings by naming research_web_status as the polling companion, so an agent can route correctly without opening other 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 a clear operational condition: it runs in background, so poll with research_web_status. It also flags billing and variable runtime, which informs the decision to use it. It does not, however, contrast itself against nearby alternatives like research_deep or web_search, so the 'when not to use' half is absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
research_web_cancelResearch Web CancelA
Cancel a running Deep Research task.
Sends a cancel request to the Interactions API and cleans up local tracking state. Useful for stopping a task before further provider usage.
| Name | Required | Description | Default |
|---|---|---|---|
| interaction_id | Yes | Interaction ID to cancel |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With only readOnlyHint=false and openWorldHint=true provided, the description adds real behavioral detail: it sends a cancel request to the Interactions API and cleans up local tracking state, and it implies cost-saving intent. It stops short of saying what happens if the task already finished or if the ID is unknown.
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, front-loaded with the action, no filler. The final sentence is slightly redundant with the purpose statement but still adds the motivation for cancelling.
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?
An output schema exists so return values need no explanation, and a one-param cancel tool has a small surface. Minor gaps remain around error/edge behavior (already-completed tasks, invalid IDs), but nothing essential to invoking it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single interaction_id parameter is fully described in the schema (100% coverage), so the description adds nothing beyond it. Baseline 3 is appropriate when the schema carries the parameter documentation.
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: 'Cancel a running Deep Research task.' It's clearly scoped to Deep Research, distinguishing it from the generic job_cancel / source_ingest_cancel siblings, though it doesn't explicitly contrast with 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?
'Useful for stopping a task before further provider usage' implies a when-to-use condition, but there are no explicit exclusions, prerequisites (e.g., task must be running), or named alternatives among the several cancel-type siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
research_web_followupResearch Web FollowupA
Ask a follow-up question about a completed Deep Research report.
Uses previous_interaction_id to maintain context from the original research. Synchronous — follow-ups are fast (no background needed).
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | No | Resume a recorded follow-up without repeating inference | |
| question | Yes | Follow-up question about the research report | |
| interaction_id | Yes | Completed interaction ID to follow up on |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and openWorldHint=true, and the description usefully adds that this is synchronous and fast with no background job needed, plus that it reuses prior context. It does not explain why the call is not read-only (new inference is generated) nor mention cost or limits, but it contributes real 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the purpose, then context retention, then the synchronous trait — no padding. The mismatched parameter name ('previous_interaction_id') slightly undercuts an otherwise tight structure.
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 an output schema present, return values need no explanation, and the annotations cover the safety profile. The description supplies purpose, prerequisite, and synchronous behavior, though the parameter-name mismatch and unaddressed job_id path leave small gaps for an agent orchestrating a research workflow.
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 100%, so all three parameters are documented in the schema, giving a baseline of 3. The description adds context-retention meaning for the interaction id, but it refers to it as 'previous_interaction_id', which does not match the schema's 'interaction_id', and it never mentions the optional job_id resume parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('ask a follow-up question about a completed Deep Research report') and ties it to the Deep Research workflow, which is enough to separate it from research_web and research_web_status. It stops short of naming the sibling tool whose output it consumes, so differentiation relies on inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'about a completed Deep Research report' implies the prerequisite (a finished research interaction) and the context in which to use it. There is no explicit when-not or alternative routing, e.g. what to do if the report is still running, leaving usage to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
research_web_statusResearch Web StatusBRead-only
Poll or retrieve a Deep Research task.
Returns the full report with sources when completed, or current status if still in progress. Auto-stores completed reports to Weaviate.
| Name | Required | Description | Default |
|---|---|---|---|
| interaction_id | Yes | Interaction ID returned by research_web |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description claims the tool 'Auto-stores completed reports to Weaviate', a persistent state mutation, while the annotations declare readOnlyHint=true (no environment modification). This is a direct conflict, so per the scoring rule it drops to 1 despite otherwise useful disclosure of return 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?
Three short sentences, front-loaded with the primary action and followed by return behavior. No filler, though the auto-store sentence is what creates the annotation conflict and is not qualified.
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 an output schema present, the description need not spell out return values, and it does convey the polling/retrieval semantics. It is nearly complete for a one-parameter status tool, though it omits polling cadence/completion signaling and leaves the store-vs-readOnly conflict unreconciled.
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 100% and the single parameter's schema text already explains it is the interaction ID returned by research_web. The description adds no further parameter meaning, so the baseline 3 applies.
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+resource (poll/retrieve a Deep Research task) and describes the two outcomes (full report vs. in-progress status). It does not name the sibling research_web that creates the task or distinguish itself from research_web_followup/research_web_cancel, so sibling differentiation is only implicit.
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?
'Poll or retrieve' implies the usage context (checking on a task started by research_web, since the id parameter references it), but there is no explicit when-to-use/when-not statement or routing versus research_web_followup or research_web_cancel. Usage is inferred rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reverse_search_frameReverse Search FrameA
Plan or reverse-search one captured frame using Serper Lens.
Execution publicly uploads the PNG to Uguu, verifies hosted bytes, then submits its URL to Lens. It requires both explicit grants and an enabled Serper credential. Similarity suggestions never assert entity identity; compare appearance, text and source context before reporting an identity. Publication retention/deletion and live service schemas remain unqualified.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes | One precise captured PNG, dry plan, separate public-upload/search grants and byte/deadline caps |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations (readOnlyHint=false, openWorldHint=true, destructiveHint=false, idempotentHint=false): it discloses that execution publicly uploads the PNG to Uguu, verifies hosted bytes, submits the URL to Lens, requires both explicit grants and an enabled Serper credential, and warns that similarity suggestions never assert entity identity. It even flags that publication retention/deletion and live service schemas are unqualified.
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?
Four dense sentences, front-loaded with the purpose before mechanics and caveats, and each sentence carries distinct operational weight. The closing sentence on retention and live-service schemas is slightly jargon-heavy but still earns its place as an uncertainty disclosure.
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?
An output schema exists, so return values need not be described, and the annotations cover the safety profile. Given the nested capture payload and openWorldHint, the description supplies exactly the missing pieces: the public-upload side effect, the dual-grant requirement, and the identity-claim caveat.
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 100%, so the baseline is 3, but the description adds real meaning to the gatekeeping parameters by explaining that submission requires 'both explicit grants' (authorize_public_upload and authorize_submission) and an enabled credential, and that the default path is a plan rather than an upload.
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+resource ('reverse-search one captured frame') and names the underlying mechanism ('using Serper Lens'), which nothing else in the sibling list does. An agent can distinguish it from image_segment, vision_grounding, or video_frame without opening any schema.
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?
'Plan or reverse-search' plus the required grants and credential implies the dry-run vs. execute split and a precondition, but the description never names when to prefer this over sibling visual tools or what to do instead. Usage is implied rather than routed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
session_memorySession MemoryADestructive
Inspect original history or read/edit/delete one explicitly scoped derived profile.
History remains recoverable after active-session expiry when SQLite persistence is configured. Large inline-media pages export exact bounded private JSON. Memory edits require the current revision; deletion clears only derived text. Caller-selected scope is isolation, not an authenticated multi-user identity. No provider, inference, upload or global-memory search occurs.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes | Exact origin session, workspace/notebook and source; inspect originals or explicitly edit/delete non-authoritative learned text |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already declaring destructiveHint=true and readOnlyHint=false, the description adds meaningful context: deletion clears only derived text (scoping the destruction), edits require the current revision (concurrency), history survives session expiry under SQLite persistence, and no provider/inference/upload/global search occurs. It also discloses the isolation caveat that caller-selected scope is not authenticated identity, which is a genuine security nuance 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded in the first sentence and each subsequent sentence carries a distinct behavioral fact. The telegraphic style ('No provider, inference, upload or global-memory search occurs') is terse but not padded.
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?
An output schema exists, so return values need not be explained, and the nested request object is fully documented in the schema. The description covers persistence, concurrency, isolation and non-occurrence traits, though it leaves the list/search/compact actions of the enum undescribed, a minor gap for a 7-action 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?
Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: 'edits require the current revision' maps to expected_revision semantics, and 'scope is isolation, not an authenticated multi-user identity' clarifies the scope parameter's intent beyond the schema's exact-match note.
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 names concrete verbs (inspect/read/edit/delete) and resources (original history, explicitly scoped derived profile), which lets an agent distinguish this from the many knowledge_*/media_* siblings. However, the terminology is opaque ('derived profile') and it only accounts for the get/set/delete/history actions while the schema's action enum also exposes list/search/compact, leaving part of the purpose unstated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives behavioral conditions ('edits require the current revision', 'deletion clears only derived text') but never states when to choose this tool over an alternative or when not to use it. No sibling is named and no selection condition is offered, so the agent must infer usage entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
source_ingestSource IngestAIdempotent
Retain original bytes and extract bounded elements with explicit source positions.
PDF requires separately installed Poppler; DOCX, Markdown, HTML, plain text and PCM16 WAV use local parsers. Unsupported OCR, PDF table reconstruction, image pixels and speech are reported explicitly. Empty/error extraction fails. Identical source/revision/parser work reuses its durable job. Extraction does not index, call a model, upload to a parser service or prove factual claims.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes | Original file or public HTTPS response, selected format, source ID and revision |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotency, non-destructiveness and open-world scope, and the description reinforces idempotency with the durable-job reuse rule. It goes further by disclosing an external runtime dependency (Poppler), explicit failure semantics for empty/error extraction, and a clear non-goals boundary. It omits auth/permission requirements and any rate or size limits.
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, then format support, failure behavior, dedupe, and non-goals — every sentence carries information. The only cost is density: a raw line break splits the first sentence and several clauses are compressed, making it slightly harder to scan.
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?
An output schema exists, so return values need no explanation; the description instead covers the things structured fields cannot — parser dependencies, unsupported feature reporting, failure conditions, idempotent job reuse, and non-goals. For a single-parameter but operationally complex ingest tool, nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the nested request object is already documented, so the baseline is 3. The description earns a bump by explaining the source_format enum in operational terms — PDF depends on Poppler, audio means PCM16 WAV, the rest use local parsers — and by flagging unsupported OCR, table reconstruction, image pixels and speech.
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: retain original bytes and extract bounded elements with explicit source positions. The closing clause ('does not index, call a model, upload to a parser service') implicitly separates it from indexing siblings like knowledge_ingest, though no sibling is named 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?
Gives useful operational context (which formats work, that PDF needs Poppler, that empty/error extraction fails) but never states when to choose this tool over content_extract, knowledge_ingest or media_acquire. Usage is implied from capability rather than an explicit when-to-use rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
source_ingest_cancelSource Ingest CancelBIdempotent
Request cancellation without promoting an unfinished extraction to success.
The owner acknowledges cancellation after its bounded parser has joined; this request alone does not prove that a running native process has stopped.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | Durable source ingestion job ID |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare non-read-only, idempotent, non-destructive, so the safety profile is covered. The description adds genuinely useful context beyond that: cancellation is a request that the owner only acknowledges once the bounded parser has joined, and a successful request does not prove the native process stopped. This async/settlement nuance is exactly the kind of disclosure annotations cannot express.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with no filler, and the core semantic (cancellation without false success promotion) is front-loaded. It is appropriately sized, though the phrasing is somewhat abstract jargon that marginally reduces immediate clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and annotations cover the safety profile. The description supplies the key missing nuance about asynchronous acknowledgment; only the absence of explicit usage/alternative guidance leaves a small gap for a tool that sits near job_cancel and research_web_cancel.
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 100% and there is a single parameter (job_id) fully documented as the 'Durable source ingestion job ID'. The description adds no syntax, format, or sourcing detail beyond the schema, so the baseline 3 applies.
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 names a verb ('Request cancellation') and references an 'unfinished extraction,' but never plainly states that it cancels a source-ingestion job, leaning on the tool name to carry the resource. It also does nothing to distinguish itself from the sibling 'job_cancel' or 'research_web_cancel'. The purpose is inferable but not stated outright.
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?
There is no explicit when-to-use guidance, no prerequisite (such as the job needing to be in a cancellable state), and no routing to alternatives like job_cancel for generic jobs. The second sentence hints at timing but frames it as behavior, not as a usage rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
source_ingest_readSource Ingest ReadCRead-onlyIdempotent
Recheck a retained ingestion job and read exact located extraction bytes.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | Durable source ingestion job ID |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=false, so the safety profile is covered. The description adds one piece of context beyond the annotations — that the job must be "retained" for this call to work — but says nothing about failure behavior when the job has been pruned, byte-size limits, or how much data is returned.
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 filler or repetition. It is efficient, though the compressed phrasing trades brevity for clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the annotations cover safety. Still, for a tool with a sibling pair (source_ingest, source_ingest_cancel) and a "retained" precondition, the description omits enough routing and precondition detail that an agent could pick the wrong 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?
Schema description coverage is 100% and the single job_id parameter is fully documented in the schema, so the baseline of 3 applies. The description adds no format, sourcing, or lookup guidance for job_id beyond what the schema already states.
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 names two verbs ("recheck", "read") and a resource ("ingestion job", "extraction bytes"), so the general intent is discernible. However, the phrase "exact located extraction bytes" is opaque jargon, and the description never distinguishes this tool from its obvious siblings source_ingest and source_ingest_cancel, leaving the agent to guess at the boundary.
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?
There is no explicit when-to-use guidance, no prerequisites, and no mention of alternatives such as source_ingest or source_ingest_cancel. The word "recheck" weakly implies a follow-up call after an ingestion, but the agent must infer the triggering condition entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
text_generateText GenerateA
Generate structured text using one selected compatible HTTP endpoint.
No default Gemini/vision account is borrowed. Sources are untrusted text; this operation cannot accept files, media, tools or grounded search. Missing input-token/currency meters cause requested hard ceilings to fail.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes | Configured text profile, inline JSON schema, bounded output, dry plan and explicit submission authority |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose openWorld, non-idempotent, non-read-only behavior, so the bar is lower; the description still adds real context beyond them: no default account is borrowed, sources are treated as untrusted text, and hard token/currency ceilings fail when meters are missing. It omits the two-step dry_run/authorize_submission gating, which is the most consequential behavior for an agent.
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?
Four short sentences, front-loaded with the core action, each carrying distinct information (capability, credential policy, input trust, failure mode). Slightly telegraphic, but no padding.
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?
An output schema exists, so return values need no explanation. However, for a tool whose defaults are dry_run=true and authorize_submission=false, the description omits the submission workflow entirely, which an agent needs to invoke 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 100% and the nested request object is fully documented, so the baseline is 3. The description adds only constraint-level meaning (no file/media/grounding inputs) and does not explain fields like backend, dry_run, or authorize_submission beyond the 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?
States a specific verb and resource (generate structured text via one selected compatible HTTP endpoint) and adds exclusionary scope (no files, media, tools or grounded search), which separates it from vision/media siblings. It never names an alternative sibling or delineates from text-adjacent tools like content_analyze or vision_chat, so it stops short of full sibling differentiation.
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 'cannot accept files, media, tools or grounded search' line gives implicit when-not guidance, and 'one selected compatible HTTP endpoint' implies a prerequisite. There is no explicit statement of when to choose this over siblings, nor of what must be configured first (backend/account) before calling it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
twelvelabs_callTwelvelabs CallADestructive
Plan or perform one bounded TwelveLabs asset/index/search/embed/entity/analysis operation.
Disabled by default. Dry plans read only selected fenced local media and make no DNS, provider or database calls. Execution requires explicit BYOK/network authority; media disclosure and deletion/cancellation have separate grants. Each call makes at most one HTTP request with no retries or automatic polling. Reusing an identical job_id reads the attested local receipt without resending. Remote readiness, exact clip seconds and IDs stay provider observations.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes | One current hosted REST operation with explicit IDs, parameters, BYOK enablement and separate submission/media/destruction grants |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say readOnly=false, destructive=true, openWorld=true, idempotent=false; the description goes well beyond them by disclosing single-HTTP-request semantics with no retries or polling, the job_id receipt-reuse path that avoids resending, the fact that dry plans touch only fenced local media, and the existence of separate media-disclosure and deletion/cancellation grants. This is exactly the behavioral context an agent needs before calling a destructive, open-world 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?
Sentences are front-loaded and each covers a distinct concern: scope, default-disabled state, dry-run purity, execution authorization, one-request/no-retry behavior, receipt reuse, provider observations. It is slightly long at seven sentences, but none is filler.
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 meta-tool spanning 27 operations with a 100%-covered schema, an output schema, and rich annotations, the description supplies the safety envelope (grants, dry-run, no polling) that the structured fields cannot. It stops short of explaining per-operation prerequisites, which is a modest gap given the breadth.
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 100% and the top-level surface is a single `request` object, so the schema carries the field-level semantics and a baseline of 3 applies. The description adds real meaning only for a few fields (job_id receipt reuse, dry_run isolation, the authorization grants), leaving the bulk of `parameters` undocumented in prose.
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 names a specific verb pair ("Plan or perform") and a bounded resource domain ("TwelveLabs asset/index/search/embed/entity/analysis operation"), so the agent knows this is the single-operation TwelveLabs REST wrapper. It does not, however, contrast itself against near-neighbours like video_analyze or media_perceive, so sibling differentiation relies on the reader's inference.
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 supplies clear gating conditions for plan-versus-execute ("Disabled by default", "Dry plans... make no DNS, provider or database calls", "Execution requires explicit BYOK/network authority") but gives no guidance on choosing among the 27 operations or on when to prefer a sibling tool. Usage is implied by the operation enum rather than explained.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
video_analyzeVideo AnalyzeAIdempotent
Analyze a video (YouTube URL or local file) with any instruction.
Provide exactly one of url or file_path. Uses Gemini's structured output for reliable JSON responses. Pass a custom output_schema to control the response shape, or use the default VideoResult schema.
When strict_contract=True, runs the full contract pipeline: analysis with strict Pydantic models, parallel strategy/concept-map generation, artifact rendering, and structural quality gates. Factual/media review and observed coverage remain explicit pending/unknown fields. Returns richer output but takes longer.
| Name | Required | Description | Default |
|---|---|---|---|
| fps | No | Local files only: requested static sampling frames per second; observed coverage remains unknown | |
| url | No | YouTube video URL. | |
| dry_run | No | Plan source reads/sends without provider calls | |
| file_path | No | Path to a local video file. | |
| use_cache | No | Use cached results | |
| end_offset | No | Local source interval end using h/m/s units; timestamps retain the original source origin | |
| instruction | No | What to analyze — e.g. 'summarize key points', 'extract all CLI commands shown', 'list all recipes and ingredients' | Provide a comprehensive analysis of this video. |
| start_offset | No | Local source interval start, using h/m/s units, for example '27m' or '1m30.5s' | |
| output_fields | No | Select top-level response fields; complete source/citation/provenance carriers remain included | |
| output_schema | No | Optional JSON Schema for the response. If omitted, uses default VideoResult schema. | |
| thinking_level | No | Gemini thinking depth. | high |
| strict_contract | No | Enable strict contract pipeline with quality gates, artifact rendering, and structural validation. Factual/media review and observed coverage remain explicitly pending or unknown. Produces richer output with strategy report, concept map, and HTML/Markdown artifacts. | |
| execution_budget | No | Explicit max_calls/max_tokens/max_output_tokens/max_frames/max_windows and start_ms/end_ms/fps. Bounded execution skips optional enrichment and cache reuse. | |
| transcript_limit | No | Page a top-level transcript string without truncating stored evidence or citations | |
| transcript_offset | No | Original custom-schema transcript string offset in Unicode code points |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds context beyond the annotations: Gemini structured output with default VideoResult schema, artifact rendering and quality gates under strict_contract, and the fact that factual/media coverage stays explicitly pending/unknown. It also discloses the latency tradeoff ('returns richer output but takes longer'), which explains why readOnlyHint=false despite it being an analysis call.
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 paragraphs, purpose and source constraint front-loaded, with the expensive strict_contract mode deferred to last. Every sentence carries information, though 'with any instruction' is mildly loose phrasing for a routing document.
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 15-parameter tool with an output schema present, the description covers the decisions that matter (source exclusivity, output shaping, strict vs default pipeline). Remaining gaps (fps, offsets, execution_budget, transcript paging) are documented in the schema, so the definition is adequately 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 100%, so the baseline is 3, and the description earns above that by supplying a cross-parameter constraint ('exactly one of url or file_path') and the output_schema-vs-default-VideoResult rule that the schema alone does not state. It stops short of explaining the interval/budget/transcript paging params, which remain schema-only.
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+resource ('Analyze a video') and covers both accepted source types (YouTube URL or local file) plus the open-ended 'any instruction' contract. It is clearly distinct from frame/storyboard/window siblings, though it never names a sibling explicitly to route the agent.
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 a concrete usage constraint ('Provide exactly one of url or file_path') and a conditional mode ('When strict_contract=True...'), which is real guidance. However, it never says when to prefer this over video_analyze_windows, video_batch_analyze, or video_storyboard, so the alternative-selection guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
video_analyze_windowsVideo Analyze WindowsC
Plan or execute contiguous source windows with retained partial outcomes.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | No | Optional caller ID for one immutable durable run; retrying this ID never repeats a recorded window | |
| dry_run | No | Return a frozen local plan with zero provider calls; false explicitly executes against the configured provider | |
| request | Yes | Exactly one local file_path or YouTube url, instruction, start_ms/end_ms, window_ms, optional fps/output_schema/thinking_level; remote byte identity and freshness remain unknown | |
| execution_budget | Yes | Explicit max_calls/max_tokens/max_output_tokens/max_frames/max_windows for this run; counts and generations each consume media transmissions, File API preparation is reported separately | |
| continuation_token | No | Previous partial-run token; binds source/settings/windows and resolves one idempotent child run |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructive=false and openWorld=true, so safety is partially covered. The description adds one genuine behavioral trait beyond the schema: partial outcomes are retained across windows. It says nothing about budget behavior, continuation semantics, or the plan/execute default, which the schema carries instead of the description.
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 filler or redundancy. It is efficient, though arguably under-specified rather than optimally concise for a tool of this complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with nested required objects, an execution budget, idempotent continuation, and a default dry-run plan mode, a single abstract sentence is far too thin. The output schema excuses explaining return values, but the plan-vs-execute contract and partial-result behavior are the agent's biggest risks and go unaddressed.
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 100%, and the schema richly documents request, execution_budget, job_id, dry_run, and continuation_token. The description adds no parameter meaning at all, so the baseline 3 for high coverage applies.
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 general verb pair ('Plan or execute') and a resource ('contiguous source windows'), but 'source windows' is domain jargon and 'retained partial outcomes' is opaque. It does not distinguish this tool from the sibling video_analyze or video_batch_analyze, so an agent must open the schema to understand what it actually does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to plan (dry_run default true) versus execute, no mention of when to pass a continuation_token, and no routing to or from sibling analysis tools. The description leaves all usage conditions to the schema and inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
video_batch_analyzeVideo Batch AnalyzeARead-onlyIdempotent
Analyze all video files in a directory concurrently.
Scans the directory for supported video files (mp4, webm, mov, avi, mkv, mpeg, wmv, 3gpp), then analyzes each with the given instruction using bounded concurrency (3 parallel Gemini calls). Discovery rejects more than 5,000 entry visits; narrow the directory or pattern to stay within that bound.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | No | Resume this exact batch without repeating completed or ambiguous submissions | |
| directory | Yes | Path to a directory containing video files | |
| max_files | No | Maximum files to process | |
| instruction | No | What to analyze in each video | Provide a comprehensive analysis of this video. |
| glob_pattern | No | Glob pattern to filter files within the directory | * |
| output_schema | No | Optional JSON Schema for each video's response | |
| thinking_level | No | Gemini thinking depth. | high |
| max_concurrency | No | Maximum concurrent item submissions |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safe read-only/idempotent/closed-world profile, and the description still adds real behavioral detail: 3-way bounded concurrency, the 5,000-entry discovery rejection bound, and the list of supported containers. It does not disclose the long-running/job lifecycle implied by the job_id resume parameter, which is the main remaining gap.
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 tight sentences, front-loaded with the core action, then formats, then limits. No filler, though the extension list is slightly verbose.
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 an output schema present and annotations covering safety, the description only needs to supply operational bounds, which it does (formats, concurrency, discovery cap). It omits any mention of the job/resume workflow around job_id and what happens to unsupported or failed files.
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 100% across all 8 params, so the schema already carries the semantics; this is the baseline 3 case. The description adds a little (concurrency of 3 maps to max_concurrency, formats relate to glob_pattern/directory), but says nothing about job_id, instruction, output_schema, or thinking_level.
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 with scope: 'Analyze all video files in a directory concurrently,' plus the accepted file extensions. It implicitly separates itself from the single-file video_analyze sibling via 'all ... in a directory,' but never names or contrasts with that sibling explicitly.
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 operational guidance ('narrow the directory or pattern to stay within that bound') and implies the batch-vs-single use case, but never states when to prefer this over video_analyze, content_batch_analyze, or video_analyze_windows, nor any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
video_clip_exportVideo Clip ExportA
Export a bounded source clip and verify its encoded output and manifest.
Requested bounds, selected original PTS and actual encoded timing remain separate. This operation preserves the original and invokes no provider.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes | Finite local source interval and explicit output/crop/audio limits; actual decoded times are measured |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare a non-read-only, non-idempotent, non-destructive, non-open-world write. The description adds real context beyond that: the original is preserved, no provider is invoked, and requested bounds versus selected PTS versus actual encoded timing are kept separate - important for a tool that measures real decoded times rather than trusting inputs.
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 with the primary action front-loaded and no filler. The timing-separation sentence is dense jargon but it carries genuine information an agent needs; nothing is padding.
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?
An output schema exists, so return values need not be described. For a non-idempotent write tool the description covers preservation, provider isolation, and timing semantics; the only gap is lack of guidance on prerequisites (e.g. whether the source must first be inspected) or sibling routing.
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 100%, so the baseline is 3. The description goes slightly beyond by clarifying that start/end values are 'requested bounds' distinct from 'selected original PTS and actual encoded timing', which is meaningful semantics for the two timing parameters rather than restating the 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?
States a specific verb (export) and resource (bounded source clip), plus a secondary action (verify encoded output and manifest). It clearly distinguishes this from analysis tools like video_analyze or video_clip_select, though it never names the close sibling audio_clip_export explicitly.
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 'export a bounded source clip' - the agent can infer this is for cutting out a clip rather than analyzing it. But there is no explicit when-to-use/when-not guidance and no routing against near neighbors such as video_clip_select, audio_clip_export, or media_edit_footage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
video_clip_selectVideo Clip SelectC
Export a whole or one-sided bounded video selection using measured clip timing.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes | Exact source video; omitted endpoints resolve from source under existing 60-second/256-frame/8MiB clip gates |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare it is not read-only, not destructive, not idempotent, and closed-world. The description adds no further behavioral context such as output file location, resource limits, or authorization needs, so it contributes little beyond structured data.
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 no wasted words, but the phrasing 'whole or one-sided bounded video selection using measured clip timing' is dense and slightly ambiguous, reducing front-loaded clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the crowded sibling space and a nested request object with an output schema, the description should at least differentiate this export from video_clip_export. It does not, leaving a key selection decision to inference.
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 100% and the nested request object has its own description. The main description adds no parameter-level meaning beyond the schema, so the baseline of 3 applies.
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 (Export) and resource (video selection) with scope: whole or one-sided bounded, using measured clip timing. It is clear enough for an agent to know it produces a video excerpt, though it does not differentiate itself from the sibling video_clip_export.
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?
Offers no guidance on when to use this tool versus alternatives such as video_clip_export or audio_clip_export. There are no exclusions, prerequisites, or context cues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
video_commentsVideo CommentsARead-onlyIdempotent
Fetch top YouTube comments sorted by relevance.
Returns comment text, like count, and author for each comment. Costs 1+ YouTube API units, 0 Gemini units.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | YouTube video URL (youtube.com or youtu.be) | |
| max_comments | No | Maximum comments to fetch (sorted by relevance) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/openWorld, so safety is covered. The description adds genuinely non-structured context: the API quota cost ('1+ YouTube API units, 0 Gemini units') and that results are relevance-sorted. It does not cover pagination or reply handling, keeping it short of a 5.
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, purpose front-loaded, then return shape, then cost. Every sentence carries information and nothing is padded.
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 rich annotations and an output schema, the description covers purpose, return fields, and quota cost adequately. Minor gaps remain around pagination behavior and whether comment count interacts with the quota ('1+'), but nothing essential for a correct call is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both url and max_comments are fully documented in the schema, and the description's reference to relevance-sorted comments merely echoes the schema. No added format, bounds, or filtering semantics beyond the structured fields, so baseline 3 applies.
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 (fetch YouTube comments) plus an explicit scope ('top', 'sorted by relevance'). It does not distinguish itself from siblings like video_analyze, video_metadata, or youtube_channel_inspect, so an agent gets a clear purpose but no routing help.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, prerequisites, or named alternatives among the ~60 sibling tools. An agent must infer on its own when comment retrieval beats video_analyze or video_metadata.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
video_continue_sessionVideo Continue SessionB
Continue analysis within an existing video session.
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | Exact workspace/notebook from creation; required for scoped sessions | |
| prompt | Yes | Follow-up question or instruction | |
| session_id | Yes | Session ID from video_create_session |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose readOnlyHint=false, openWorldHint=true, idempotentHint=false, and destructiveHint=false, so safety is largely covered. The description adds the 'existing session' operational context but does not explain what 'continue' changes (state accumulation, cost, session lifetime).
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 words. It is efficient, though arguably too terse to be maximally useful.
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?
An output schema exists so return values need not be explained, and annotations cover safety. Still, for a stateful session-continuation tool the description leaves unclear how the follow-up prompt interacts with prior context and whether continuation is expensive or bounded.
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 100%, so the schema already documents session_id, prompt, and scope. The description adds nothing beyond it, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb+resource ('continue analysis' within a 'video session'), which distinguishes it from the sibling video_create_session. However, it does not name the sibling it complements or contrast with video_analyze, so differentiation relies on 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit when-to-use, when-not-to-use, or alternative routing guidance. The requirement for an existing session is only inferable from the schema's session_id note, not the description itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
video_create_sessionVideo Create SessionA
Create a persistent session for multi-turn video exploration.
Provide exactly one of url or file_path. When download=True and the
source is YouTube, the video is downloaded via yt-dlp, uploaded to the
Gemini File API, and context-cached for fast multi-turn use.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | YouTube video URL. | |
| scope | No | Exact workspace/notebook isolation for sessions and derived memory; omit for legacy unscoped sessions | |
| download | No | Download YouTube video locally for cached multi-turn sessions. Slower startup (~2 min) but faster and cheaper per turn. Requires yt-dlp installed. | |
| file_path | No | Path to a local video file. | |
| description | No | Session purpose or focus area |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a state-creating (readOnlyHint=false, idempotentHint=false) but non-destructive open-world operation. The description goes beyond them by disclosing the concrete side effect chain for download=True: yt-dlp fetch, upload to the Gemini File API, and context-caching, which tells the agent what actually happens on disk/network. Session lifetime and continuation behavior are left unstated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose followed by the key constraint and the download caveat. No filler; each clause carries information, though the download sentence is dense.
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?
An output schema exists so return values need no explanation, and all five parameters are schema-documented. The description supplies the exclusivity rule and the download side-effect, making it sufficiently complete for a session-creation tool; only agent-facing routing and session lifecycle are absent.
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 100%, so the baseline is 3, and the description adds meaning beyond the schema by stating the mutual-exclusivity rule for url/file_path that the schema does not encode. It does not clarify the scope parameter's semantics, which the schema already covers.
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 (create a persistent session for multi-turn video exploration), which distinguishes it from one-shot tools like video_analyze. However, it does not name the natural sibling video_continue_session or otherwise explicitly route the agent among the many video_* tools.
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 hard correctness constraint ('Provide exactly one of url or file_path') that is genuinely useful usage guidance. But it never states when to prefer this tool over alternatives such as video_analyze or video_continue_session, so the when-to-use dimension is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
video_deduplicate_framesVideo Deduplicate FramesC
Compare bounded source frames without dropping similar or failed candidates.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes | Every candidate source point and explicit greedy dHash Hamming threshold; visual similarity cannot establish identity | |
| include_image | No | Include bounded native candidate frames; all decisions remain in text |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false, and openWorldHint=false, so the safety profile is largely covered. The description adds one genuine behavioral fact — that similar or failed candidates are not dropped — which matters for a tool named 'deduplicate', but it omits any mention of the identity-verification requirement, permissions, or cost.
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 compact sentence with no wasted clauses, and the core action is front-loaded. It is efficient, though its brevity shades into under-specification rather than crisp conciseness.
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?
An output schema exists so return values need not be explained, and the nested schema covers parameters. However, for a fairly intricate tool (SHA-256 identity check, dHash Hamming threshold, bounded frame extraction) the description leaves the agent without any sense of purpose or selection criteria.
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 100%, and the nested request object even carries its own explanation ('visual similarity cannot establish identity'), so the schema does the heavy lifting. The description adds no syntax, format, or threshold guidance beyond what is already documented, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description supplies a verb ('Compare') and a resource ('bounded source frames'), but 'bounded' is unexplained jargon and the negated clause ('without dropping similar or failed candidates') is hard to parse against the tool name's promise of deduplication. With dozens of sibling video tools (video_frame, video_frames, video_detect_scenes, video_storyboard), it does nothing to distinguish itself from 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?
There is no statement of when to use this tool versus alternatives, no prerequisites (e.g. that a valid source hash must be supplied), and no routing to siblings such as video_frame or video_detect_scenes. The reader is left to infer everything from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
video_detect_scenesVideo Detect ScenesC
Detect hard visual cuts and return contiguous intervals with actual source PTS.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes | Exact local source, bounded window and explicit hard-cut threshold; no semantic scene claim |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations declare readOnlyHint=false, but the description ('Detect... and return') implies a read-only operation with no side effects. This is a contradiction. Even beyond that, the description adds no detail about what state is modified, authentication needs, or rate limits.
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, front-loaded sentence with no wasted words. It is appropriately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with a complex nested request object and many siblings, the description is too sparse. It does not explain how to choose this tool over alternatives, nor does it clarify the meaning of parameters like threshold or max_cuts. Although an output schema exists, the description fails to provide sufficient context 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 100%, so the schema documents the parameters. The description itself adds no parameter-level meaning; it only describes the output.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action (detect hard visual cuts) and a specific output (contiguous intervals with actual source PTS). It does not, however, differentiate this tool from siblings like video_analyze or video_frames; an agent must infer that this is for cut detection rather than semantic analysis.
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?
There is no guidance on when to use this tool versus alternatives such as video_analyze or video_storyboard. No prerequisites or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
video_frameVideo FrameB
Retrieve a source frame with requested time, original decoded PTS and actual delta.
Times are relative to the measured container presentation origin. Precise selection returns the first decoded frame at or after the request. Keyframe selection reports its measured approximation and selection method.
| Name | Required | Description | Default |
|---|---|---|---|
| crop_box | No | x,y,width,height in rotated source pixel grid; explicit SAR policy; crop before scale | |
| file_path | Yes | Regular local media path within LOCAL_FILE_ACCESS_ROOT | |
| selection | No | Decoded point or explicitly approximate indexed keyframe | precise |
| max_pixels | No | Maximum output pixels per frame | |
| time_seconds | Yes | Time relative to measured container presentation origin | |
| include_image | No | Include bounded native PNG blocks; false returns text metadata |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations provided the bar is lower, and the description does add genuine behavioral context: times are relative to the measured container presentation origin, precise selection returns the first decoded frame at or after the request, and keyframe selection reports its approximation and method. However it does not explain why readOnlyHint is false for what reads as a pure retrieval operation, nor does it mention decode cost, caching, or any side effect an agent should know about.
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, front-loaded with the core action and with no filler. The phrasing is dense and slightly jargon-heavy ('original decoded PTS', 'actual delta'), but nothing is wasted.
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?
An output schema exists, so return values need not be described here. All six parameters are documented in the schema, and the description covers the two facts an agent cannot get from structured fields alone: the time reference origin and what each selection mode actually returns.
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 100%, so baseline is 3. The description reinforces the meaning of time_seconds (relative to the measured container presentation origin) and elaborates the selection enum's return semantics, but adds little about crop_box, max_pixels, or include_image beyond what the schema already states.
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 opens with a specific verb+resource pair ('Retrieve a source frame') and immediately scopes it to a requested time, which cleanly separates it from bulk siblings like video_frames and video_storyboard. It never names an alternative, so the differentiation is implicit rather than explicit.
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?
There is no when-to-use statement and no reference to the obvious siblings video_frames, video_frame_by_query, video_detect_scenes or video_storyboard, which an agent must choose between. The precise-vs-keyframe explanation describes behavior of a mode rather than advising when each mode is appropriate (e.g. speed vs accuracy tradeoff).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
video_frame_by_queryVideo Frame By QueryB
Select a frame by lexical transcript match, requiring the exact video digest.
Segment times use the container-relative presentation clock. Ties choose the earliest segment. A zero-token match abstains. The supplied transcript remains unverified; the extracted frame carries measured PTS.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Lexical query matched against supplied transcript tokens | |
| file_path | Yes | Regular local media path within LOCAL_FILE_ACCESS_ROOT | |
| max_pixels | No | Maximum output pixels per frame | |
| transcript | Yes | Source SHA256 and bounded timestamped segments; supplied speech remains unverified | |
| include_image | No | Include bounded native PNG blocks; false returns text metadata |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing tie-breaking ("ties choose the earliest segment"), the timebase ("container-relative presentation clock"), abstention semantics, the unverified nature of the supplied transcript, and that the frame carries measured PTS. This is substantive operational context that annotations (readOnlyHint=false, idempotentHint=false) do not convey.
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-loads the core action in the first sentence and follows with four tight sentences covering clock, ties, abstention, and verification status. No filler, though the sentence fragments are slightly telegraphic.
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?
An output schema exists, so return values need not be described, and the description covers matching, timebase, ties, and abstention. What is missing is sibling routing and any prerequisites around the exact-digest requirement, leaving a gap for a tool with five parameters among many frame/media siblings.
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 100%, so the schema already documents query, file_path, transcript, source_sha256, and include_image. The description adds only the mapping of "exact video digest" to the source_sha256 requirement and reinforces that the transcript is caller-supplied, so it is close to the baseline.
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+resource ("Select a frame by lexical transcript match") with the matching mechanism named, so the agent knows this is a transcript-driven frame selector. It does not, however, differentiate itself from nearby siblings like video_frame or video_frames, leaving the choice to inference.
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?
There is no explicit when-to-use, when-not-to-use, or alternative routing guidance. The only edge-case guidance ("A zero-token match abstains") describes failure behavior, not tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
video_framesVideo FramesC
Inspect a bounded burst/window or timestamped contact sheet without a watched claim.
Dense filmstrips require a narrow window and explicit FPS. Selection retains changed text; it performs no similarity pruning or OCR. Sheet tiles carry actual source times/digests. Scene/keyframe sampling may miss short events.
| Name | Required | Description | Default |
|---|---|---|---|
| fps | No | Maximum selected rate for uniform frames | |
| mode | No | Uniform stills/grid/vertical strip, scene changes, or keyframes | sheet |
| crop_box | No | x,y,width,height in rotated source pixel grid; explicit SAR policy; crop before scale | |
| file_path | Yes | Regular local media path within LOCAL_FILE_ACCESS_ROOT | |
| max_frames | No | Maximum returned frames; cap stop remains explicit | |
| max_pixels | No | Maximum output pixels per frame | |
| end_seconds | No | Exclusive window end; defaults to measured video presentation end | |
| include_image | No | Include bounded native PNG blocks; false returns text metadata | |
| start_seconds | No | Inclusive source-relative window start |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds real behavioral context beyond the annotations: no similarity pruning, no OCR, sheet tiles carry actual source times/digests, and scene/keyframe sampling may miss short events. However, annotations set readOnlyHint=false and idempotentHint=false for what reads as an inspection operation, and the description does nothing to explain that discrepancy or what output is produced.
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?
Five short sentences with no filler, and the mode/constraint guidance is reasonably front-loaded. But the terseness shades into opacity ('without a watched claim', 'Selection retains changed text') rather than efficient clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be explained, and the annotations cover the safety profile. Still, for a nine-parameter, five-mode media tool, the description leaves key operational questions (default behavior, mode trade-offs, relationship to sibling tools) unanswered.
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 100%, so the schema already documents all nine parameters, establishing a baseline of 3. The description only loosely reinforces two of them ('narrow window' -> start/end_seconds, 'explicit FPS' -> fps) without adding format or constraint detail the schema lacks.
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 phrase 'Inspect a bounded burst/window or timestamped contact sheet' gestures at extracting frames from a video, and the mode enum (frames/sheet/filmstrip/scenes/keyframes) clarifies intent. But the wording is jargon-heavy ('bounded burst/window', 'watched claim') and never plainly states 'extract frames from a video file', nor does it distinguish this tool from close siblings like video_frame, video_storyboard, video_detect_scenes, or video_frame_by_query.
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?
Only 'Dense filmstrips require a narrow window and explicit FPS' offers actionable guidance, and it is scoped to one mode. There is no when-to-use/when-not guidance and no routing to any of the many sibling frame/scene/dedup tools, leaving the agent to guess which one applies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
video_metadataVideo MetadataARead-onlyIdempotent
Fetch YouTube video metadata without Gemini analysis.
Returns title, description, view/like/comment counts, duration, tags, channel info, category, and language. Costs 1 YouTube API unit, 0 Gemini units.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | YouTube video URL (youtube.com or youtu.be) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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 non-obvious operational context: the API-unit cost profile relative to Gemini, which is genuinely useful for tool selection. It does not cover pagination or rate limits, keeping it at 4.
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 purpose sentence followed by return fields and cost. Efficient and well organized; the return-field enumeration is slightly redundant given an output schema exists but is not wasteful.
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 single-parameter read tool with full annotations, a documented output schema, and cost context provided, nothing an agent needs to call it correctly is missing. The description is complete for its complexity.
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 100% and the single url parameter is fully documented in the schema. The description implies the input is a YouTube video but adds no syntax or format detail beyond the schema, so the baseline 3 applies.
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 (Fetch) and resource (YouTube video metadata) and differentiates from the analysis-oriented sibling by specifying 'without Gemini analysis'. An agent can distinguish this from video_analyze or media_metadata without opening a schema.
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?
'Without Gemini analysis' plus the cost line (1 YouTube API unit, 0 Gemini units) clearly signals the context in which to prefer this over video_analyze. It stops short of an explicit 'use X instead when Y' statement, so it earns a 4 rather than 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
video_note_createVideo Note CreateADestructive
Create a source-linked illustrated tutorial PDF or validate a read-only dry plan.
Actual generation retains exact source PNGs, page rasters and a manifest/receipt. Missing illustrations or AV inference preserve supplied text with warnings. Deterministic PDF checks do not establish factual or human review.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes | Exact local source SHA, ordered supplied steps and PDF destination; dry-run default. Optional AV inference needs its own explicit submission grant. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false, idempotentHint=false and openWorldHint=true. The description adds genuine context beyond that: what artifacts are retained (source PNGs, page rasters, manifest/receipt), the fallback behavior when illustrations are missing or AV inference is used (supplied text preserved with warnings), and the caveat that deterministic checks do not equal factual/human review.
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?
Four short sentences, front-loaded with the core action and the dry-run alternative. Each sentence carries information, though the last two are dense and slightly elliptical ('Deterministic PDF checks do not establish factual or human review'), which costs a little clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, and the annotations carry the safety profile. The description covers both modes, side-effect artifacts, degraded-input behavior, and a review caveat, leaving only explicit when-to-use routing to siblings unaddressed.
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 100% and nested objects (request, steps, perception) are already documented inline, so the baseline is 3. The description only loosely gestures at two parameters (dry-run plan, AV inference) without adding syntax or constraints beyond the 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?
States a specific verb and resource: 'Create a source-linked illustrated tutorial PDF', plus the alternate mode 'validate a read-only dry plan'. No sibling tool produces a tutorial PDF, so overlap is minimal, but the description never names a sibling or explicitly carves out its niche against the large video/media tool set.
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 two modes (dry-run plan validation vs actual generation) imply a workflow, and the schema default of dry_run=true reinforces that. However, there is no explicit 'use this when...' guidance, no statement of when to prefer this over video_storyboard, video_analyze, or research_document, and no prerequisites such as the required source SHA being available first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
video_playlistVideo PlaylistARead-onlyIdempotent
Get video IDs and titles from a YouTube playlist.
Results can be passed to video_analyze for batch analysis. Costs 1 YouTube API unit per page (max 50 items/page).
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | YouTube playlist URL (must contain 'list=' parameter) | |
| max_items | No | Maximum videos to return |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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 genuinely useful behavioral context beyond that: cost of 1 YouTube API unit per page and a 50-item page cap, which helps the agent reason about quota and batching. Pagination semantics beyond 'per page' are not spelled out.
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, front-loaded sentences with zero filler: purpose first, downstream use second, cost third. Every sentence carries distinct information and nothing is wasted.
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 an output schema present, return values need not be explained, and annotations cover the safety profile. The description supplies cost context, and both parameters are documented. The only mild gap is pagination behavior and how to iterate past the first page, but overall it is complete for calling the tool 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 100%, so both url and max_items are already fully documented in the schema. The description's mention of 'max 50 items/page' loosely reinforces the max_items ceiling but adds no syntax or format detail beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get video IDs and titles from a YouTube playlist.' This is precise and tells the agent exactly what data comes back. It does not, however, explicitly differentiate itself from similar siblings like video_metadata or youtube_channel_inspect, which also return video-level data.
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 only implied through 'Results can be passed to video_analyze for batch analysis,' which hints at the downstream workflow. There is no explicit when-to-use-vs-alternatives guidance, no prerequisites, and no statement of when this tool is the wrong choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
video_storyboardVideo StoryboardC
Create a measured source storyboard with literal absolute source-clock labels.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes | Exact local source, at most 120-second window and sixteen actual frame tiles with burned source timestamps | |
| include_image | No | Emit the actual storyboard PNG within native byte limits |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the non-mutating, non-destructive, non-idempotent profile, so the bar is lower, but the description adds almost nothing beyond them or the schema. It doesn't mention the 120-second window limit, the ~16-tile cap, the sha256 source verification, or what artifact is produced, leaving the key behavioral constraints undisclosed.
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 the core action front-loaded and no filler. It is appropriately sized, though the cryptic phrasing reduces the value of the brevity.
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?
An output schema exists and the input schema is fully documented, so return values needn't be explained. However, for a tool with nested constraints (window, tile count, hash verification) and multiple frame-producing siblings, the description omits the constraints and routing an agent would need 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 100% and the nested request object documents rows, columns, pixel limits, time ranges, and hash verification, so the schema carries the parameter burden. The description adds no parameter-level meaning (e.g., how rows/columns map to tiles), which is the baseline-3 case.
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 verb+resource (create a storyboard) is identifiable, but the qualifiers 'measured source' and 'literal absolute source-clock labels' are opaque jargon that don't clarify what a storyboard actually is (a grid of sampled frames with timestamps burned in). It also does nothing to distinguish this from siblings like video_frames, video_detect_scenes, or video_clip_select, which also produce frame samples.
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, when-not-to-use, or alternative is stated. An agent cannot tell whether to reach for this versus video_frames, video_detect_scenes, or media_perceive; the description offers no routing signal at all.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vision_chatVision ChatA
Analyze, identify or compare exact images and bounded source video samples.
Dry plans perform local preparation with zero provider calls. A live request requires explicit workflow authorization and a configured model/account. Interpretation remains model inference, separately from source byte lineage.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes | Exact original sources, instruction, selected backend, dry plan and explicit workflow submission grant |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, openWorldHint=true, and non-idempotency, so the safety profile is partly covered. The description adds genuine context the annotations cannot: that dry plans make zero provider calls, that a live submission needs explicit workflow authorization plus a configured model/account, and that model interpretation is separate from source byte lineage. It stops short of describing cost, latency, or failure behavior on live calls.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with the purpose front-loaded and no filler; the dry-versus-live distinction follows immediately. The phrasing is somewhat abstract ('bounded source video samples', 'source byte lineage'), costing a little readability but not wasting space.
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?
An output schema exists, so return values need no explanation. For a single nested request parameter at full schema coverage, the description supplies the key operational context (dry default, authorization gate, provider dependency) that an agent needs before invoking. It could say more about which sources are valid or how the live path behaves on failure.
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 100%, so the nested request object, limits, sources, crop, and resize semantics are already documented in the schema. The description adds the dry/live authorization framing but no field-level syntax or defaults beyond what the schema provides, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb triad (analyze, identify, compare) and a precise resource ('exact images and bounded source video samples'), which is more than a restatement of the name. It does not, however, explicitly distinguish itself from close siblings like vision_ocr, vision_grounding, or video_analyze, leaving the agent to infer the boundary.
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 implies usage context by contrasting 'dry plans' (local, zero provider calls) with a 'live request' that requires explicit authorization and a configured model/account, which maps to the dry_run and authorize_submission flags. It never states when to prefer this tool over vision_ocr, vision_grounding, or video_analyze, so the routing decision is left implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vision_groundingVision GroundingB
Locate objects with strict inferred boxes and optional actual original-pixel crops.
Normalized1000 boxes map through the exact transmitted preparation to original stored/oriented pixels. Crop byte/geometry verification does not verify that the model identified the object correctly. Empty detections remain valid abstentions.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes | Exact original sources, instruction, selected backend, dry plan and explicit workflow submission grant |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds real behavioral context beyond the annotations: coordinate mapping (normalized1000 -> original stored/oriented pixels), the caveat that crop verification does not confirm correct identification, and that empty detections are valid abstentions. However it omits the significant two-phase workflow implied by dry_run (default true) and authorize_submission (default false), and does not mention cost/limits or open-world submission implications flagged by openWorldHint=true.
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 tight sentences, front-loaded with the core purpose, with no filler. It is slightly jargon-dense ('exact transmitted preparation', 'oriented source grid'), which costs a little readability but does not waste space.
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?
An output schema exists, so return values need not be explained, and the nested request schema is well described. Still, for a tool whose default behavior is a dry-run plan with an explicit submission grant, the description should say more about the dry_run -> authorize_submission flow to be 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 100%, so the baseline is 3. The description reinforces the coordinate-space semantics ('Normalized1000 boxes map through the exact transmitted preparation to original stored/oriented pixels'), but the equally important dry_run/authorize_submission and backend/limits controls are left entirely to the 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 states a concrete verb+resource+output ('Locate objects with strict inferred boxes and optional actual original-pixel crops'), which is clear and actionable. It does not, however, differentiate this tool from plausible siblings such as media_ground_events, image_segment, or vision_chat, leaving the agent to infer which grounding-family tool applies.
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?
There is no guidance on when to use this tool versus alternatives, and no prerequisites or exclusions are stated. Given several overlapping detection/grounding/content-analysis siblings, the agent gets no routing help from the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vision_ocrVision OcrB
Infer visible text from exact prepared images or precise source frames.
Model transcription is labeled inference. The separate image_ocr operation selects local Tesseract/Vision observations. No automatic fallback occurs.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes | Exact original sources, instruction, selected backend, dry plan and explicit workflow submission grant |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, openWorldHint=true and idempotentHint=false, so the agent already knows this is a non-idempotent, open-world model call. The description usefully adds that output is labeled inference rather than ground truth and that no silent fallback happens, but omits the significant operational fact that dry_run defaults to true and authorize_submission must be granted before a real run.
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, front-loaded with the core action and followed by the differentiator and the no-fallback caveat. No filler, though 'Model transcription is labeled inference' is phrased awkwardly enough to cost a little clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and the model-vs-local distinction is covered. What is missing for a non-read-only, open-world tool is the dry-run-default and explicit-submission workflow, which the agent must discover from the schema rather than the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the nested request object is thoroughly documented, including crop, resize, limits and the dry-plan/submission grant. The description adds no parameter-level detail beyond that, so the baseline 3 applies.
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+resource ('Infer visible text from exact prepared images or precise source frames') and explicitly distinguishes itself from the sibling image_ocr, which uses local Tesseract/Vision. An agent can separate the two model-vs-local paths without opening either schema.
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 names the alternative (image_ocr) and asserts 'No automatic fallback occurs', which tells the agent the choice is explicit and must be made deliberately. However it never states when a model-based transcription is preferable to the local observation path, so the routing decision is only half-specified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
web_extractWeb ExtractA
Acquire one checked UTF-8 page or a labeled provider-returned representation.
Dry plans make no DNS/HTTP requests. Direct redirects stay within the source allowlist. Provider services' remote page peers, redirects and original-byte identity remain unverified; returned text cannot authorize further actions.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes | One HTTPS source, checked host rules, direct or configured provider route and explicit access authority |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses substantive behavior: dry runs perform no DNS/HTTP, direct redirects stay within the source allowlist, and provider-returned content is unverified and cannot authorize further actions. This trust/safety framing is meaningful context the annotations do not convey, though it omits what the default dry_run=true implies for a normal call.
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 tight sentences with the primary purpose front-loaded and no filler. The terse phrasing is efficient, though the abstraction slightly reduces scannability.
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 an output schema present and full schema coverage, the description needn't explain return values, and it covers the safety-relevant behavior (dry runs, redirect allowlisting, provider trust caveats). It is complete enough for correct invocation, though it never clarifies selection against siblings.
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 100%, so the nested request object and its fields (backend, dry_run, allowed_domains, etc.) are already documented. The description alludes to dry runs and the allowlist but adds no per-parameter syntax or defaults beyond what the schema provides, so the baseline 3 applies.
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 concrete verb ("Acquire") and resource ("one checked UTF-8 page" / "provider-returned representation"), so the core action is identifiable. However, it never distinguishes itself from close siblings such as content_extract, research_web, or knowledge_fetch, and the jargon ("checked UTF-8 page") makes the purpose slightly opaque.
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?
There is no explicit when-to-use guidance or named alternative among the many sibling tools. The only usage-adjacent statement is "Dry plans make no DNS/HTTP requests," which describes a mode rather than when this tool should be chosen over content_extract or web_search.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
web_searchWeb SearchCRead-only
Search the web using Gemini's built-in Google Search grounding.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query | |
| num_results | No | Number of results |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety and open-world nature are covered structurally. The description adds only that results come via Gemini's Google Search grounding, which hints at live/grounded data but says nothing about rate limits, result freshness, or failure behavior. Minimal value 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; it is efficient. It is arguably terse for a tool with this many siblings, but nothing is wasted.
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?
An output schema exists and annotations cover the safety profile, so return values need not be explained. However, against a crowded sibling set with overlapping web/research tools, the description lacks the routing and scope detail an agent needs to choose 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 100% and both parameters (query, num_results) are documented with defaults and bounds, so the schema carries the burden. The description adds no syntax, format, or interpretation guidance for either parameter, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource ('Search the web') and names the underlying mechanism (Gemini's built-in Google Search grounding), which is a concrete capability. It does not, however, distinguish this tool from siblings like web_search_provider, web_extract, or research_web, so it stops short of the 5 bar.
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?
There is no guidance on when to use this tool versus the many related siblings (web_extract, web_search_provider, research_web, knowledge_search). No prerequisites, exclusions, or selection criteria are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
web_search_providerWeb Search ProviderA
Plan or perform one explicitly selected optional search request.
Automatic selection uses configured credential-ready Serper, Tavily, Exa, then Serply. Missing pinned keys and failed requests never cause fallback. Provider snippets remain untrusted data and do not establish factual support.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes | One query, enabled backend, dry plan, strict submission authority and byte/deadline bounds |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Going beyond the annotations, the description discloses two meaningful behavioral traits: missing pinned keys and failed requests never trigger fallback, and provider snippets are untrusted data that do not establish factual support. The annotations (readOnlyHint=false, openWorldHint=true, idempotentHint=false) are consistent with 'perform a search request'; nothing here contradicts them. It could say more about the dry_run/authorize_submission gating that effectively controls whether a network submission occurs.
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?
Four short sentences, front-loaded with the action and followed by the two constraints that matter most (fallback policy, snippet trust). Phrasing is dense but every sentence carries content; no filler or restatement of the tool name.
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 an output schema present, return values need not be described, and the annotations cover safety hints. The description adequately covers the plan-vs-perform duality (matching dry_run's default) and the fallback semantics. The remaining gap is routing guidance relative to sibling search tools.
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 100% and the nested request object is documented, so the baseline is 3. The description does add one semantic fact the schema does not: the order in which providers are tried when backend='auto' (Serper, Tavily, Exa, Serply). Otherwise it adds no syntax, format, or bounds detail beyond the 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 phrase 'Plan or perform one explicitly selected optional search request' gives a specific verb pair (plan/perform) plus the resource (a single search request with an explicitly selected provider), which is more precise than a generic 'search the web'. It does not, however, distinguish itself from near-siblings like web_search, research_web, or web_extract, so an agent cannot tell from this text alone why it would pick this tool over those.
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 never states when to use this tool versus the many search/extract siblings. The only quasi-usage content is the backend ordering for 'auto' mode and the no-fallback rule, which describe how a call behaves once chosen rather than when to choose it. No prerequisites beyond the implicit credential requirement are spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_channel_catalogYoutube Channel CatalogARead-onlyIdempotent
List one channel uploads page and retain any continuation token.
A channel video count and playlist reported total are provider metadata. The returned items establish this page's coverage; no video bytes are fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| max_items | No | Maximum upload entries in this API page | |
| reference | Yes | YouTube UC channel ID, @handle or canonical channel URL | |
| page_token | No | Optional next_page_token from a prior response |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, openWorld), so the bar is lower, yet the description adds genuinely useful context: it clarifies that video counts and playlist totals are provider metadata and that no video bytes are fetched. This warns the agent that reported totals may not match returned items, which annotations do not convey.
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 action is front-loaded in the first sentence and the three sentences are largely free of padding. The phrasing 'The returned items establish this page's coverage' is slightly abstract, but nothing is wasted.
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?
An output schema exists, so return values need not be explained, and the description correctly focuses on scope (one page) and the metadata-only nature of the call. It is nearly complete; a note on how to obtain the next page token would close the remaining gap.
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 100%, so all three parameters (max_items, reference, page_token) are already documented in the schema. The description's mention of the continuation token loosely maps to page_token but adds no format or syntax detail beyond what the schema provides, so baseline 3 applies.
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 (List) and resource (one channel uploads page) and makes the single-page scope explicit, which is meaningful given the paginated nature. It does not, however, explicitly distinguish itself from siblings like youtube_channel_inspect or video_playlist, leaving the agent to infer the boundary.
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?
Mentions retaining a continuation token, which implies the one-page-at-a-time paging workflow, but never states when to choose this tool over youtube_channel_inspect, video_playlist, or video_metadata. Usage is implied rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_channel_inspectYoutube Channel InspectBRead-onlyIdempotent
Inspect channel metadata through YouTube Data API without downloading media.
| Name | Required | Description | Default |
|---|---|---|---|
| reference | Yes | YouTube UC channel ID, @handle or canonical channel URL |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is fully covered. The description adds modest value by clarifying it reads via the YouTube Data API and downloads no media, but discloses no auth, quota, or rate-limit 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 well-formed sentence that front-loads the action and resource with no filler. Slightly terse given the available space, but nothing is wasted.
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?
An output schema exists, so return values need no explanation, and the tool is a low-complexity one-parameter read. The definition is largely sufficient, with the only real gap being the unstated distinction from the sibling channel catalog 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?
Schema coverage is 100% with a single parameter whose description already enumerates accepted forms (UC channel ID, @handle, canonical URL). The description adds nothing beyond the schema, so the baseline 3 applies.
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 (inspect) and resource (channel metadata) and adds the key qualifier 'without downloading media', which separates it from media-fetching tools. However, it does not distinguish itself from the closely named sibling youtube_channel_catalog, leaving some ambiguity.
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?
There is no explicit when-to-use guidance, no prerequisites, and no routing to an alternative such as youtube_channel_catalog. The phrase 'without downloading media' is a weak implied condition but not a usage rule an agent can act on.
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.
63 tool updates
v0.7.1- Added
audio_clip_export - Added
audio_deduplicate - Added
audio_dsp_analyze - Added
audio_transcribe - Added
image_crop - Added
image_edit - Added
image_manifest_read - Added
image_ocr - Added
image_read - Added
image_segment - Changed
infra_configure2 fields changed- changed
Input schema / properties / preset / descriptionPrevious value: -"Named model preset: \"best\" (3.1 Pro), \"stable\" (3 Pro), or \"budget\" (3 Flash)"New value: +"Named model preset: \"best\" (Pro preview), \"stable\" (Flash), or \"budget\" (Flash-Lite)" - changed
Input schema / properties / temperature / descriptionPrevious value: -"Sampling temperature"New value: +"Sampling temperature for models that support it (not 3.6+ Flash)"
- Added
job_cancel - Added
job_status - Added
media_acquire - Added
media_analyze_music - Added
media_asset_remove - Added
media_assets_list - Added
media_caption_events - Added
media_count_events - Added
media_edit_footage - Added
media_ground_events - Added
media_info - Added
media_metadata - Added
media_perceive - Added
media_source_inspect - Added
mhs_discover - Added
mhs_health_check - Added
mhs_meta_info - Added
mhs_read - Added
mhs_reset - Added
mhs_write - Added
provider_capabilities - Added
research_execute - Changed
research_web1 field changed- added
Input schema / properties / job_idAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Resume a recorded launch without resubmitting provider work" +}
- Changed
research_web_followup1 field changed- added
Input schema / properties / job_idAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Resume a recorded follow-up without repeating inference" +}
- Added
reverse_search_frame - Added
session_memory - Added
source_ingest - Added
source_ingest_cancel - Added
source_ingest_read - Added
text_generate - Added
twelvelabs_call - Changed
video_analyze9 fields changed- added
Input schema / properties / dry_runAdded value: +{ + "default": false, + "description": "Plan source reads/sends without provider calls", + "type": "boolean" +} - added
Input schema / properties / end_offsetAdded value: +{ + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Local source interval end using h/m/s units; timestamps retain the original source origin" +} - added
Input schema / properties / execution_budgetAdded value: +{ + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Explicit max_calls/max_tokens/max_output_tokens/max_frames/max_windows and start_ms/end_ms/fps. Bounded execution skips optional enrichment and cache reuse." +} - added
Input schema / properties / fpsAdded value: +{ + "anyOf": [ + { + "exclusiveMinimum": 0, + "maximum": 30, + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Local files only: requested static sampling frames per second; observed coverage remains unknown" +} - added
Input schema / properties / output_fieldsAdded value: +{ + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Select top-level response fields; complete source/citation/provenance carriers remain included" +} - added
Input schema / properties / start_offsetAdded value: +{ + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Local source interval start, using h/m/s units, for example '27m' or '1m30.5s'" +} - changed
Input schema / properties / strict_contract / descriptionPrevious value: -"Enable strict contract pipeline with quality gates, artifact rendering, and semantic validation. Produces richer output with strategy report, concept map, and HTML/Markdown artifacts."New value: +"Enable strict contract pipeline with quality gates, artifact rendering, and structural validation. Factual/media review and observed coverage remain explicitly pending or unknown. Produces richer output with strategy report, concept map, and HTML/Markdown artifacts." - added
Input schema / properties / transcript_limitAdded value: +{ + "anyOf": [ + { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Page a top-level transcript string without truncating stored evidence or citations" +} - added
Input schema / properties / transcript_offsetAdded value: +{ + "default": 0, + "description": "Original custom-schema transcript string offset in Unicode code points", + "maximum": 2147483647, + "minimum": 0, + "type": "integer" +}
- Added
video_analyze_windows - Changed
video_batch_analyze2 fields changed- added
Input schema / properties / job_idAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Resume this exact batch without repeating completed or ambiguous submissions" +} - added
Input schema / properties / max_concurrencyAdded value: +{ + "default": 3, + "description": "Maximum concurrent item submissions", + "maximum": 3, + "minimum": 1, + "type": "integer" +}
- Added
video_clip_export - Added
video_clip_select - Changed
video_continue_session1 field changed- added
Input schema / properties / scopeAdded value: +{ + "anyOf": [ + { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Exact workspace/notebook from creation; required for scoped sessions" +}
- Changed
video_create_session1 field changed- added
Input schema / properties / scopeAdded value: +{ + "anyOf": [ + { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Exact workspace/notebook isolation for sessions and derived memory; omit for legacy unscoped sessions" +}
- Added
video_deduplicate_frames - Added
video_detect_scenes - Added
video_frame - Added
video_frame_by_query - Added
video_frames - Added
video_note_create - Added
video_storyboard - Added
vision_chat - Added
vision_grounding - Added
vision_ocr - Added
web_extract - Added
web_search_provider - Added
youtube_channel_catalog - Added
youtube_channel_inspect
13 tool updates
v0.6.1- Changed
content_analyze1 field changed- added
Input schema / properties / thinking_level / descriptionAdded value: +"Gemini thinking depth."
- Changed
content_batch_analyze1 field changed- added
Input schema / properties / thinking_level / descriptionAdded value: +"Gemini thinking depth."
- Changed
infra_cache1 field changed- added
Input schema / properties / action / descriptionAdded value: +"Cache operation — \"stats\", \"list\", \"clear\", or \"context\"."
- Changed
infra_configure1 field changed- added
Input schema / properties / thinking_level / descriptionAdded value: +"Thinking depth — \"minimal\", \"low\", \"medium\", or \"high\"."
- Changed
knowledge_fetch1 field changed- added
Input schema / properties / collection / descriptionAdded value: +"Collection the object belongs to."
- Changed
knowledge_ingest1 field changed- added
Input schema / properties / collection / descriptionAdded value: +"Target collection name."
- Changed
knowledge_related1 field changed- added
Input schema / properties / collection / descriptionAdded value: +"Collection the source object belongs to."
- Changed
research_deep2 fields changed- added
Input schema / properties / scope / descriptionAdded value: +"Research depth — \"quick\", \"moderate\", \"deep\", or \"comprehensive\"." - added
Input schema / properties / thinking_level / descriptionAdded value: +"Gemini thinking depth."
- Changed
research_document2 fields changed- added
Input schema / properties / scope / descriptionAdded value: +"Research depth -- quick, moderate, deep, comprehensive." - added
Input schema / properties / thinking_level / descriptionAdded value: +"Gemini thinking depth."
- Changed
research_plan1 field changed- added
Input schema / properties / scope / descriptionAdded value: +"Research depth."
- Changed
video_analyze3 fields changed- added
Input schema / properties / file_path / descriptionAdded value: +"Path to a local video file." - added
Input schema / properties / thinking_level / descriptionAdded value: +"Gemini thinking depth." - added
Input schema / properties / url / descriptionAdded value: +"YouTube video URL."
- Changed
video_batch_analyze1 field changed- added
Input schema / properties / thinking_level / descriptionAdded value: +"Gemini thinking depth."
- Changed
video_create_session2 fields changed- added
Input schema / properties / file_path / descriptionAdded value: +"Path to a local video file." - added
Input schema / properties / url / descriptionAdded value: +"YouTube video URL."
34 tool updates
v0.6.0- First observed
content_analyze - First observed
content_batch_analyze - First observed
content_extract - First observed
infra_cache - First observed
infra_configure - First observed
knowledge_ask - First observed
knowledge_fetch - First observed
knowledge_ingest - First observed
knowledge_query - First observed
knowledge_related - First observed
knowledge_schema - First observed
knowledge_search - First observed
knowledge_stats - First observed
research_assess_evidence - First observed
research_author_search - First observed
research_deep - First observed
research_document - First observed
research_paper_citations - First observed
research_paper_details - First observed
research_paper_recommendations - First observed
research_paper_search - First observed
research_plan - First observed
research_web - First observed
research_web_cancel - First observed
research_web_followup - First observed
research_web_status - First observed
video_analyze - First observed
video_batch_analyze - First observed
video_comments - First observed
video_continue_session - First observed
video_create_session - First observed
video_metadata - First observed
video_playlist - First observed
web_search
TDQS
Scored across 90 tools
With 90 tools across knowledge, research, video, audio, image, web, and device simulation, many boundaries overlap: video_analyze/content_analyze/media_perceive/vision_chat, research_web/research_deep/research_document/research_execute, and video_frame/video_frames/video_frame_by_query are especially confusable. The detailed descriptions help, but an agent still faces high misselection risk because many distinctions are workflow-specific and subtle.
All names use snake_case and largely follow a domain-prefixed operation pattern (knowledge_ingest, video_analyze, research_web_status), which is readable and predictable by area. However, there are mixed noun-only and verb styles (knowledge_stats, media_info, job_status) and brand/acronym prefixes (mhs_, twelvelabs_), so it is not a perfectly uniform verb_noun convention.
90 tools is far beyond the typical 3-15 scoped set and exceeds even the 25+ heavy threshold. The server spans many unrelated domains, making the surface unwieldy and creating extreme cognitive load for tool selection.
The surface covers research, knowledge, video/image/audio processing, web, and media assets with lifecycle operations such as ingest, search, acquire, export, edit, and cancel. Minor gaps exist, including knowledge object update/delete and collection management, but most workflows have supporting tools.
Maintenance
Related MCP Connectors
MCP server for Clipkit — gives AI agents a video toolbox via the Clipkit schema.
MCP server for Google Veo AI video generation
Any social-video URL → transcript, metadata, frames, OCR, summary, search, Q&A. MCP server + x402.
MCP server for Wan AI video generation
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA local MCP server for extracting YouTube video transcripts, metadata, and performing visual analysis using Gemini Vision or local Whisper models. It enables users to process video content through various tools for subtitle retrieval and frame analysis.19 npmMIT
- AlicenseNot gradedqualityCmaintenanceMCP server enabling interaction with Twitter, YouTube, Instagram, and video processing via 31 tools, with local Whisper transcription and frame extraction for visual verification.8MIT
- AlicenseAqualityBmaintenanceMCP server for AI-powered research using Gemini. Provides fast grounded web search, deep autonomous research, URL extraction, and session management.626 PyPI9MIT
- AlicenseAqualityAmaintenanceMCP server for extracting structured intelligence from YouTube channels and videos — transcripts, topics, and competitive signals for AI-powered research workflows.148 npmMIT