NotebookLM MCP Server
Enables adding Google Drive documents as sources to NotebookLM notebooks, listing Drive sources with freshness status, syncing stale Drive sources, and performing Drive research to discover and import documents.
Allows adding YouTube videos as sources to NotebookLM notebooks for AI analysis and content generation.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@NotebookLM MCP Servercreate a notebook about AI ethics and add this article URL"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
NotebookLM MCP Server

An MCP server for NotebookLM (notebooklm.google.com).
Note: Tested with Pro/free tier accounts. May work with NotebookLM Enterprise accounts but has not been tested.
📺 Watch the Demos
General Overview | Claude Desktop | Perplexity Desktop |
|
|
|
Features
Tool | Description |
| List all notebooks |
| Create a new notebook |
| Get notebook details with sources |
| Get AI-generated summary of notebook content |
| Get AI-generated summary and keywords for a source |
| Rename a notebook |
| Configure chat goal/style and response length |
| Delete a notebook (requires confirmation) |
| Add URL/YouTube as source |
| Add pasted text as source |
| Add Google Drive document as source |
| Ask questions and get AI answers |
| List sources with freshness status |
| Sync stale Drive sources (requires confirmation) |
| Delete a source from notebook (requires confirmation) |
| Start Web or Drive research to discover sources |
| Poll research progress with built-in wait |
| Import discovered sources into notebook |
| Generate audio podcasts (requires confirmation) |
| Generate video overviews (requires confirmation) |
| Generate infographics (requires confirmation) |
| Generate slide decks (requires confirmation) |
| Check studio artifact generation status |
| Delete studio artifacts (requires confirmation) |
| Save cookies for authentication |
Important Disclaimer
This MCP uses internal APIs that:
Are undocumented and may change without notice
Require cookie extraction from your browser (I have a tool for that!)
Use at your own risk for personal/experimental purposes.
Installation
Install from PyPI using your preferred Python package manager:
Using uv (Recommended)
uv tool install notebooklm-mcp-serverUsing pip
pip install notebooklm-mcp-serverUsing pipx
pipx install notebooklm-mcp-server# Clone the repository
git clone https://github.com/jacob-bd/notebooklm-mcp.git
cd notebooklm-mcp
# Install with uv
uv tool install .Upgrading
# Using uv
uv tool upgrade notebooklm-mcp-server
# Using pip
pip install --upgrade notebooklm-mcp-server
# Using pipx
pipx upgrade notebooklm-mcp-serverAfter upgrading, restart your AI tool to reconnect to the updated MCP server:
Claude Code: Restart the application, or use
/mcpto reconnectCursor: Restart the application
Gemini CLI: Restart the CLI session
Uninstalling
To completely remove the MCP:
# Using uv
uv tool uninstall notebooklm-mcp-server
# Using pip
pip uninstall notebooklm-mcp-server
# Using pipx
pipx uninstall notebooklm-mcp-server
# Remove cached auth tokens (optional)
rm -rf ~/.notebooklm-mcpAlso remove from your AI tools:
Tool | Command |
Claude Code |
|
Gemini CLI |
|
Cursor/VS Code | Remove entry from |
Authentication
Before using the MCP, you need to authenticate with NotebookLM. Run:
# Recommended: Auto mode (launches Chrome, you log in)
notebooklm-mcp-auth
# Alternative: File mode (manual cookie extraction)
notebooklm-mcp-auth --fileAuto mode launches a dedicated Chrome profile, you log in to Google, and cookies are extracted automatically. Your login persists for future auth refreshes.
File mode shows instructions for manually extracting cookies from Chrome DevTools and saving them to a file.
After successful auth, add the MCP to your AI tool and restart.
For detailed instructions, troubleshooting, and how the authentication system works, see docs/AUTHENTICATION.md.
MCP Configuration
⚠️ Context Window Warning: This MCP provides 31 tools which consume a significant portion of your context window. It's recommended to disable the MCP when not actively using NotebookLM to preserve context for your other work. In Claude Code, use
@notebooklm-mcpto toggle it on/off, or use/mcpcommand.
No environment variables needed - the MCP uses cached tokens from ~/.notebooklm-mcp/auth.json.
Claude Code (Recommended CLI Method)
Use the built-in CLI command to add the MCP server:
Add for all projects (recommended):
claude mcp add --scope user notebooklm-mcp notebooklm-mcpOr add for current project only:
claude mcp add notebooklm-mcp notebooklm-mcpThat's it! Restart Claude Code to use the MCP tools.
Verify installation:
claude mcp listIf you prefer to edit the config file manually, add to ~/.claude.json:
{
"mcpServers": {
"notebooklm-mcp": {
"command": "notebooklm-mcp"
}
}
}Restart Claude Code after editing.
Cursor, VS Code, Claude Desktop & Other IDEs
For tools that use JSON configuration files:
Tool | Config File Location |
Cursor |
|
VS Code |
|
Claude Desktop |
|
Step 1: Find your installed path:
which notebooklm-mcpThis typically returns /Users/<YOUR_USERNAME>/.local/bin/notebooklm-mcp on macOS.
Step 2: Add this configuration (replace the path with your result from Step 1):
{
"mcpServers": {
"notebooklm-mcp": {
"command": "/Users/<YOUR_USERNAME>/.local/bin/notebooklm-mcp"
}
}
}Restart the application after adding the configuration.
Other MCP-Compatible Tools
CLI tools with built-in MCP commands (AIDER, Codex, OpenCode, etc.):
<your-tool> mcp add notebooklm-mcp notebooklm-mcpTools using JSON config files — use the full path approach shown above.
Gemini CLI (Recommended CLI Method)
Use the built-in CLI command to add the MCP server:
Add for all projects (recommended):
gemini mcp add --scope user notebooklm-mcp notebooklm-mcpOr add for current project only:
gemini mcp add notebooklm-mcp notebooklm-mcpThat's it! Restart Gemini CLI to use the MCP tools.
Verify installation:
gemini mcp listAdd to ~/.gemini/settings.json under mcpServers (run which notebooklm-mcp to find your path):
"notebooklm-mcp": {
"command": "/Users/<YOUR_USERNAME>/.local/bin/notebooklm-mcp"
}Restart Gemini CLI after editing.
Managing Context Window Usage
Since this MCP has 31 tools, it's good practice to disable it when not in use:
Claude Code:
# Toggle on/off by @-mentioning in chat
@notebooklm-mcp
# Or use the /mcp command to enable/disable
/mcpCursor/Gemini CLI:
Comment out the server in your config file when not needed
Or use your tool's MCP management features if available
What You Can Do
Simply chat with your AI tool (Claude Code, Cursor, Gemini CLI) using natural language. Here are some examples:
Research & Discovery
"List all my NotebookLM notebooks"
"Create a new notebook called 'AI Strategy Research'"
"Start web research on 'enterprise AI ROI metrics' and show me what sources it finds"
"Do a deep research on 'cloud marketplace trends' and import the top 10 sources"
"Search my Google Drive for documents about 'product roadmap' and create a notebook"
Adding Content
"Add this URL to my notebook: https://example.com/article"
"Add this YouTube video about Kubernetes to the notebook"
"Add my meeting notes as a text source to this notebook"
"Import this Google Doc into my research notebook"
AI-Powered Analysis
"What are the key findings in this notebook?"
"Summarize the main arguments across all these sources"
"What does this source say about security best practices?"
"Get an AI summary of what this notebook is about"
"Configure the chat to use a learning guide style with longer responses"
Content Generation
"Create an audio podcast overview of this notebook in deep dive format"
"Generate a video explainer with classic visual style"
"Make a briefing doc from these sources"
"Create flashcards for studying, medium difficulty"
"Generate an infographic in landscape orientation"
"Build a mind map from my research sources"
"Create a slide deck presentation from this notebook"
Smart Management
"Check which Google Drive sources are out of date and sync them"
"Show me all the sources in this notebook with their freshness status"
"Delete this source from the notebook"
"Check the status of my audio overview generation"
Pro tip: After creating studio content (audio, video, reports, etc.), poll the status to get download URLs when generation completes.
Authentication Lifecycle
Component | Duration | Refresh |
Cookies | ~2-4 weeks | Re-extract from Chrome when expired |
CSRF Token | Per MCP session | Auto-extracted on MCP start |
Session ID | Per MCP session | Auto-extracted on MCP start |
When cookies expire, you'll see an auth error. Just extract fresh cookies and call save_auth_tokens() again.
Troubleshooting
Chrome DevTools MCP Not Working (Cursor/Gemini CLI)
If Chrome DevTools MCP shows "no tools, prompts or resources" or fails to start, it's likely due to a known npx bug with the puppeteer-core module.
Symptoms:
Cursor/Gemini CLI shows MCP as connected but with "No tools, prompts, or resources"
Process spawn errors in logs:
spawn pnpx ENOENTor module not found errorsCan't extract cookies for NotebookLM authentication
Fix:
Install pnpm (if not already installed):
npm install -g pnpmUpdate Chrome DevTools MCP configuration:
For Cursor (
~/.cursor/mcp.json):"chrome-devtools": { "command": "pnpm", "args": ["dlx", "chrome-devtools-mcp@latest", "--browser-url=http://127.0.0.1:9222"] }For Gemini CLI (
~/.gemini/settings.json):"chrome-devtools": { "command": "pnpm", "args": ["dlx", "chrome-devtools-mcp@latest"] }Restart your IDE/CLI for changes to take effect.
Why this happens: Chrome DevTools MCP uses puppeteer-core which changed its module path in v23+, but npx caching behavior causes module resolution failures. Using pnpm dlx avoids this issue.
Related Issues:
Limitations
Rate limits: Free tier has ~50 queries/day
No official support: API may change without notice
Cookie expiration: Need to re-extract cookies every few weeks
Contributing
See CLAUDE.md for detailed API documentation and how to add new features.
Vibe Coding Alert
Full transparency: this project was built by a non-developer using AI coding assistants. If you're an experienced Python developer, you might look at this codebase and wince. That's okay.
The goal here was to scratch an itch - programmatic access to NotebookLM - and learn along the way. The code works, but it's likely missing patterns, optimizations, or elegance that only years of experience can provide.
This is where you come in. If you see something that makes you cringe, please consider contributing rather than just closing the tab. This is open source specifically because human expertise is irreplaceable. Whether it's refactoring, better error handling, type hints, or architectural guidance - PRs and issues are welcome.
Think of it as a chance to mentor an AI-assisted developer through code review. We all benefit when experienced developers share their knowledge.
License
MIT License
Available Tools
32 toolsaudio_overview_createA
Generate audio overview. Requires confirm=True after user approval.
Args: notebook_id: Notebook UUID source_ids: Source IDs (default: all) format: deep_dive|brief|critique|debate length: short|default|long language: BCP-47 code (en, es, fr, de, ja) focus_prompt: Optional focus text confirm: Must be True after user approval
| Name | Required | Description | Default |
|---|---|---|---|
| notebook_id | Yes | ||
| source_ids | No | ||
| format | No | deep_dive | |
| length | No | default | |
| language | No | en | |
| focus_prompt | No | ||
| confirm | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses the user approval requirement (confirm parameter) which is important behavioral context. However, it doesn't mention whether this is a read or write operation, what happens to existing content, potential side effects, or any rate limits. The description adds some value but leaves significant behavioral aspects unspecified.
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 well-structured with a clear purpose statement followed by parameter explanations. It's appropriately sized for a 7-parameter tool. The only minor inefficiency is repeating the confirm requirement in both the opening sentence and parameter description, though this serves to emphasize an important constraint.
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 complexity (7 parameters, content generation operation) with no annotations but with an output schema present, the description provides good coverage. It explains all parameters and the user approval requirement. The existence of an output schema means the description doesn't need to explain return values. The main gap is lack of information about what 'audio overview' actually produces or how it differs from other content generation 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?
With 0% schema description coverage for 7 parameters, the description provides substantial semantic information beyond the bare schema. It explains the purpose of each parameter (notebook UUID, source IDs, format types, length options, language codes, focus prompt, and confirmation requirement). The only gap is that 'source_ids' description 'Source IDs (default: all)' could be more explicit about what happens when null vs. specific IDs are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as 'Generate audio overview' with specific parameters like format, length, and language. It distinguishes from siblings like 'video_overview_create' by specifying audio output, but doesn't explicitly differentiate from other content generation tools like 'report_create' or 'slide_deck_create' beyond the audio medium.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: 'Requires confirm=True after user approval' and specifies 'Must be True after user approval' for the confirm parameter. This clearly indicates when to use this tool (after obtaining user consent) and establishes a prerequisite condition for invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat_configureB
Configure notebook chat settings.
Args: notebook_id: Notebook UUID goal: default|learning_guide|custom custom_prompt: Required when goal=custom (max 10000 chars) response_length: default|longer|shorter
| Name | Required | Description | Default |
|---|---|---|---|
| notebook_id | Yes | ||
| goal | No | default | |
| custom_prompt | No | ||
| response_length | No | default |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states this is a configuration tool (implying mutation) but doesn't mention permission requirements, whether changes are reversible, rate limits, or what the output contains. For a mutation tool with zero annotation coverage, this is inadequate.
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 appropriately sized and front-loaded with the core purpose. The parameter explanations are organized in a clear Args section, though the formatting could be slightly more polished (e.g., using bullet points). Every sentence adds value.
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 that this is a mutation tool with no annotations but with an output schema (which handles return values), the description is moderately complete. It covers parameters well but lacks behavioral context like permissions or side effects, leaving gaps for safe agent operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It successfully explains all 4 parameters: notebook_id (Notebook UUID), goal (with enum values), custom_prompt (conditionally required with character limit), and response_length (with enum values). This adds substantial meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('configure') and resource ('notebook chat settings'), making the purpose immediately understandable. However, it doesn't differentiate this tool from its many siblings (like notebook_configure or other notebook-related tools), which would require 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 provides no guidance on when to use this tool versus alternatives. While it mentions 'notebook chat settings,' it doesn't explain the context or prerequisites for configuration, nor does it reference any sibling tools for comparison.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
data_table_createA
Generate data table. Requires confirm=True after user approval.
Args: notebook_id: Notebook UUID description: Description of the data table to create source_ids: Source IDs (default: all) language: Language code (default: "en") confirm: Must be True after user approval
| Name | Required | Description | Default |
|---|---|---|---|
| notebook_id | Yes | ||
| description | Yes | ||
| source_ids | No | ||
| language | No | en | |
| confirm | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the confirm requirement for user approval, adding behavioral context. However, it doesn't cover other traits like permissions, rate limits, or what happens on creation (e.g., if it modifies existing data), leaving gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main action and key requirement, followed by a structured Args section. It's efficient with minimal waste, though the Args formatting could be more integrated into the flow for better 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 5 parameters with 0% schema coverage, no annotations, but an output schema exists, the description is moderately complete. It covers the confirm requirement and hints at defaults, but lacks details on parameter usage, error handling, or output expectations, making it adequate but with clear gaps for a creation 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 0%, so the description must compensate. It adds meaning by explaining 'confirm: Must be True after user approval' and implies defaults for 'source_ids' and 'language', but doesn't detail 'notebook_id' or 'description' semantics beyond names. This partially compensates but leaves key parameters under-explained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Generate' and resource 'data table', making the purpose specific. However, it doesn't explicitly differentiate from sibling tools like 'notebook_add_text' or 'report_create' that might also create content in notebooks, leaving room for 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?
The description provides explicit context with 'Requires confirm=True after user approval', indicating when to use it (after approval) and a prerequisite. It lacks guidance on when not to use it or alternatives among siblings, such as vs. 'notebook_add_text' for different content types.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flashcards_createA
Generate flashcards. Requires confirm=True after user approval.
Args: notebook_id: Notebook UUID source_ids: Source IDs (default: all) difficulty: easy|medium|hard confirm: Must be True after user approval
| Name | Required | Description | Default |
|---|---|---|---|
| notebook_id | Yes | ||
| source_ids | No | ||
| difficulty | No | medium | |
| confirm | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the user approval requirement via the confirm parameter, which is a key behavioral trait. However, it doesn't cover other aspects like what happens during generation (e.g., creation of new resources, potential side effects, or response format), leaving gaps in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized with a brief overview and parameter explanations. However, it's not optimally front-loaded; the key requirement 'Requires confirm=True after user approval' is in the first sentence, but the parameter details follow in a separate 'Args:' section, which slightly reduces clarity. Every sentence adds value, but the structure could be more streamlined.
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 moderate complexity (4 parameters, 1 required), no annotations, and an output schema present, the description is fairly complete. It covers the purpose, usage context, and parameter semantics adequately. The output schema handles return values, so the description doesn't need to explain them. However, it could benefit from more behavioral details like error handling or generation specifics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds meaningful semantics for all four parameters: notebook_id as 'Notebook UUID', source_ids as 'Source IDs (default: all)', difficulty with values 'easy|medium|hard', and confirm as 'Must be True after user approval'. This significantly enhances understanding beyond the bare schema, though it could provide more detail on format or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Generate' and resource 'flashcards', making the purpose specific and understandable. However, it doesn't differentiate from sibling tools like 'quiz_create' or 'mind_map_create' that might also generate educational content, so it doesn't reach the highest score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context with 'Requires confirm=True after user approval', indicating when to use this tool (after user approval). However, it doesn't specify when NOT to use it or mention alternatives among the sibling tools, preventing a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
infographic_createA
Generate infographic. Requires confirm=True after user approval.
Args: notebook_id: Notebook UUID source_ids: Source IDs (default: all) orientation: landscape|portrait|square detail_level: concise|standard|detailed language: BCP-47 code (en, es, fr, de, ja) focus_prompt: Optional focus text confirm: Must be True after user approval
| Name | Required | Description | Default |
|---|---|---|---|
| notebook_id | Yes | ||
| source_ids | No | ||
| orientation | No | landscape | |
| detail_level | No | standard | |
| language | No | en | |
| focus_prompt | No | ||
| confirm | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses the critical behavioral requirement of user confirmation ('Requires confirm=True after user approval'), which is essential for a potentially resource-intensive generation tool. However, it doesn't mention performance characteristics, rate limits, what format the infographic is returned in, or whether this is a synchronous/async operation.
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 well-structured with a purpose statement followed by parameter explanations. Every sentence adds value: the first establishes the tool's purpose and critical constraint, while the parameter explanations provide essential context missing from the schema. It could be slightly more front-loaded by moving the confirm requirement closer to the initial statement.
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 complexity (7 parameters, generation operation) with no annotations but an output schema, the description provides substantial context. It covers the user approval workflow, parameter meanings, and generation options. The existence of an output schema means return values don't need explanation. The main gap is lack of behavioral context about performance or resource usage.
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 0% schema description coverage for 7 parameters, the description provides excellent compensation. It explains all parameters with clear semantics: 'notebook_id: Notebook UUID', 'source_ids: Source IDs (default: all)', and provides enum values for orientation and detail_level. The confirm parameter gets crucial context about user approval. Only minor gaps exist in explaining BCP-47 language codes or focus_prompt usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as 'Generate infographic' with a specific verb and resource. It distinguishes from siblings like 'slide_deck_create' or 'report_create' by focusing on infographics specifically. However, it doesn't explicitly differentiate from 'data_table_create' or other visual content tools beyond 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?
The description provides clear context about when to use this tool: 'Requires confirm=True after user approval' establishes a prerequisite workflow. It implies this is for creating visual summaries from notebook content. However, it doesn't explicitly state when NOT to use it or name alternatives among sibling tools for similar tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mind_map_createB
Generate and save mind map. Requires confirm=True after user approval.
Args: notebook_id: Notebook UUID source_ids: Source IDs (default: all) title: Display title confirm: Must be True after user approval
| Name | Required | Description | Default |
|---|---|---|---|
| notebook_id | Yes | ||
| source_ids | No | ||
| title | No | Mind Map | |
| confirm | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses key behavioral traits: it's a creation/save operation (implies mutation) and requires user confirmation. However, it lacks details on permissions, rate limits, what happens on failure, or the output format. The description adds some context but is incomplete for a mutation tool with no 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 description is appropriately sized (two sentences plus arg list) and front-loaded with the main purpose. However, the arg list is redundant with the schema and could be more integrated; some sentences (e.g., 'Requires confirm=True after user approval') are slightly awkward but clear. It's efficient but not perfectly structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given complexity (mutation tool with 4 params, no annotations, but has output schema), the description is partially complete. It covers purpose, usage context, and parameters at a high level. With an output schema, it doesn't need to explain return values, but it lacks details on behavioral aspects like error handling or side effects, leaving room for improvement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It lists all 4 parameters with brief explanations (e.g., 'Notebook UUID', 'Source IDs (default: all)'), adding meaning beyond the bare schema. However, it doesn't fully clarify semantics: e.g., what 'all' means for source_ids, format of UUID, or implications of confirm=false. This provides basic help but leaves gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Generate and save mind map.' This specifies both the action (generate and save) and resource (mind map). It distinguishes from siblings like mind_map_list (which lists rather than creates) and other creation tools (flashcards_create, infographic_create, etc.), 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?
The description provides clear context for usage: 'Requires confirm=True after user approval.' This indicates when to use it (after user approval) and implicitly when not to (without approval). However, it doesn't explicitly name alternatives or specify prerequisites beyond approval, such as notebook existence or source availability.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mind_map_listB
List all mind maps in a notebook.
Args: notebook_id: Notebook UUID
| Name | Required | Description | Default |
|---|---|---|---|
| notebook_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states it's a list operation, implying read-only behavior, but doesn't disclose any behavioral traits like permissions needed, pagination, rate limits, or what the output contains. This is inadequate for a tool with no annotation coverage.
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 extremely concise and front-loaded: the first sentence states the core purpose, and the second provides parameter details. There is zero wasted text, making it highly efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (single parameter) and the presence of an output schema (which handles return values), the description is minimally adequate. However, with no annotations and incomplete behavioral disclosure, it lacks depth for full contextual understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description compensates by explaining the single parameter 'notebook_id' as 'Notebook UUID', adding semantic meaning beyond the schema's basic type. With only one parameter, this is sufficient to achieve a high score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and resource 'all mind maps in a notebook', which is specific and unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'notebook_list' or 'source_list_drive', which list different resources, so it misses full sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'notebook_list' (for listing notebooks) or 'mind_map_create' (for creating mind maps), leaving usage context implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notebook_add_driveB
Add Google Drive document as source.
Args: notebook_id: Notebook UUID document_id: Drive document ID (from URL) title: Display title doc_type: doc|slides|sheets|pdf
| Name | Required | Description | Default |
|---|---|---|---|
| notebook_id | Yes | ||
| document_id | Yes | ||
| title | Yes | ||
| doc_type | No | doc |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It implies a write operation ('Add') but does not specify permissions required, whether the addition is reversible, rate limits, or what happens on success/failure. The description adds minimal context beyond the basic action, leaving significant behavioral gaps.
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 appropriately sized and front-loaded with the core purpose in the first sentence. The parameter details are listed efficiently in a bullet-like format. However, the 'Args:' section could be integrated more smoothly, and some sentences (like the parameter explanations) are terse but necessary.
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 no annotations, 0% schema description coverage, but an output schema exists, the description is moderately complete. It covers parameter semantics well but lacks behavioral details (e.g., side effects, error handling). The output schema likely handles return values, so the description's focus on inputs is adequate but not fully comprehensive for a write operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It provides clear semantics for all parameters: 'notebook_id' as a UUID, 'document_id' as a Drive ID from a URL, 'title' as a display title, and 'doc_type' with enumerated values (doc|slides|sheets|pdf). This adds substantial meaning beyond the bare schema, though it could note that 'doc_type' defaults to 'doc' as per 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 clearly states the action ('Add Google Drive document as source') and identifies the resource ('Google Drive document'), which is specific and unambiguous. However, it does not explicitly differentiate from sibling tools like 'notebook_add_text' or 'notebook_add_url', which perform similar 'add' operations but with different source types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It lacks context about prerequisites (e.g., needing an existing notebook or Drive access), exclusions, or comparisons to siblings like 'notebook_add_url' or 'source_sync_drive', leaving the agent to infer usage based on tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notebook_add_textC
Add pasted text as source.
Args: notebook_id: Notebook UUID text: Text content to add title: Optional title
| Name | Required | Description | Default |
|---|---|---|---|
| notebook_id | Yes | ||
| text | Yes | ||
| title | No | Pasted Text |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but provides minimal behavioral context. It states 'Add pasted text as source' which implies a write/mutation operation, but doesn't disclose permissions needed, whether the operation is idempotent, rate limits, or what 'as source' means functionally. The description adds little beyond the basic action.
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 front-loaded with the core purpose in the first sentence, followed by a structured Args section. It's appropriately sized with no redundant information, though the Args formatting could be more integrated with the main description.
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 3 parameters with 0% schema coverage and no annotations, the description partially compensates by listing parameters. An output schema exists, so return values needn't be explained. However, for a mutation tool with no annotations, it lacks critical context like error conditions, side effects, or success indicators.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It lists all three parameters (notebook_id, text, title) with brief explanations, adding meaning beyond the bare schema. However, it doesn't explain format constraints (e.g., UUID format for notebook_id, text length limits) or the significance of 'Optional title' defaulting to 'Pasted Text'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Add pasted text as source') and identifies the target resource ('source' in a notebook). It distinguishes from siblings like notebook_add_drive and notebook_add_url by specifying text content, but doesn't explicitly contrast with other text-adding tools if they exist.
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 tool versus alternatives like notebook_create or notebook_add_url. The description implies it's for adding text content to an existing notebook, but doesn't specify prerequisites (e.g., notebook must exist) or compare with other text-handling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notebook_add_urlC
Add URL (website or YouTube) as source.
Args: notebook_id: Notebook UUID url: URL to add
| Name | Required | Description | Default |
|---|---|---|---|
| notebook_id | Yes | ||
| url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It implies a write operation ('Add') but doesn't specify permissions needed, whether it's idempotent, rate limits, or what happens on failure (e.g., duplicate URLs). This is inadequate for a mutation tool with zero annotation coverage.
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 front-loaded with the core purpose in the first sentence, followed by parameter details. It's efficient with minimal waste, though the parameter section could be integrated more seamlessly. No extraneous information is included.
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 2 parameters with 0% schema coverage and no annotations, the description provides basic purpose and parameter names but lacks behavioral context and detailed usage guidelines. An output schema exists, so return values needn't be explained, but overall completeness is mediocre for a mutation 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 0%, so the description must compensate. It lists both parameters ('notebook_id' and 'url') with brief explanations, adding basic meaning beyond the bare schema. However, it doesn't detail constraints (e.g., URL format, UUID validation), leaving gaps that lower the score from a baseline of 4 for zero parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Add URL as source') and specifies the resource type ('website or YouTube'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'notebook_add_text' or 'notebook_add_urls', which would require explicit comparison to achieve a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., notebook must exist), exclusions (e.g., invalid URL types), or comparisons to siblings like 'notebook_add_urls' for batch operations, leaving the agent without contextual usage cues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notebook_add_urlsA
Add multiple URLs (websites or YouTube) as sources in a single request.
Args: notebook_id: Notebook UUID urls: List of URLs to add (can mix website and YouTube URLs)
| Name | Required | Description | Default |
|---|---|---|---|
| notebook_id | Yes | ||
| urls | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the tool adds URLs as sources, implying a write operation, but doesn't disclose behavioral traits such as required permissions, whether it overwrites existing sources, rate limits, or error handling. The description adds minimal context beyond the basic action.
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 appropriately sized and front-loaded: the first sentence states the core purpose, and the 'Args' section efficiently lists parameters with brief explanations. Every sentence adds value without redundancy, making it easy to scan and understand.
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 has an output schema (which reduces the need to describe return values) but no annotations and 0% schema description coverage, the description is moderately complete. It covers the basic action and parameters but lacks details on behavioral aspects like error cases or side effects, which are important for a write operation with multiple inputs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds meaning by explaining that 'notebook_id' is a 'Notebook UUID' and 'urls' is a 'List of URLs to add (can mix website and YouTube URLs),' which clarifies the parameter types and constraints beyond the schema's basic string/array definitions. However, it doesn't specify URL format validation or limits on array size.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Add multiple URLs'), resource ('as sources'), and scope ('in a single request'). It distinguishes from sibling tools like 'notebook_add_url' (singular) and 'notebook_add_text' by specifying it handles multiple URLs of mixed types (websites or YouTube).
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 context by specifying 'multiple URLs in a single request' and 'can mix website and YouTube URLs,' which suggests it's for batch operations. However, it doesn't explicitly state when to use this versus alternatives like 'notebook_add_url' or 'notebook_add_drive,' nor does it mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notebook_createB
Create a new notebook.
Args: title: Optional title for the notebook
| Name | Required | Description | Default |
|---|---|---|---|
| title | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool creates something, implying a write operation, but doesn't cover critical aspects like required permissions, whether creation is idempotent, error conditions, or what the output contains. This is a significant gap for a mutation tool with zero annotation coverage.
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 front-loaded with the core purpose in the first sentence, followed by parameter details. It's efficient with no wasted words, though the structure could be slightly improved by integrating the parameter note more seamlessly rather than as a separate 'Args:' section.
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 moderate complexity (a creation operation with one optional parameter), no annotations, and the presence of an output schema (which reduces the need to describe return values), the description is minimally adequate. It covers the basic action and parameter but lacks behavioral details and usage context, making it incomplete for optimal agent understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaningful context for the single parameter 'title' by describing it as 'Optional title for the notebook', which clarifies its purpose beyond the schema's basic type and default. With 0% schema description coverage and only one parameter, this compensates adequately, though it doesn't detail format constraints or examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and resource ('a new notebook'), making the purpose immediately understandable. However, it doesn't differentiate this tool from other creation tools like 'audio_overview_create', 'data_table_create', or 'quiz_create' that exist among the sibling tools, which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With multiple creation tools available (e.g., 'notebook_create', 'flashcards_create', 'infographic_create'), there's no indication of what distinguishes a notebook from other resources or when it's the appropriate choice, leaving usage context unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notebook_deleteA
Delete notebook permanently. IRREVERSIBLE. Requires confirm=True.
Args: notebook_id: Notebook UUID confirm: Must be True after user approval
| Name | Required | Description | Default |
|---|---|---|---|
| notebook_id | Yes | ||
| confirm | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly states the destructive nature ('IRREVERSIBLE'), the confirmation requirement, and the permanent deletion outcome. This provides essential behavioral context that annotations would typically cover.
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 perfectly front-loaded with the core action and warning, followed by clear parameter explanations. Every sentence earns its place: the first establishes purpose and risk, the second explains the confirmation requirement, and the parameter section adds essential details without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive operation with no annotations and 0% schema coverage, the description provides complete context: purpose, irreversible nature, confirmation requirement, parameter meanings, and user approval context. The existence of an output schema means return values don't need explanation, making this description fully 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?
With 0% schema description coverage for both parameters, the description fully compensates by explaining both parameters: 'notebook_id: Notebook UUID' and 'confirm: Must be True after user approval.' It adds crucial semantic context about UUID format and the confirmation logic that the schema alone doesn't provide.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Delete notebook permanently') and resource ('notebook'), distinguishing it from sibling tools like notebook_rename, notebook_create, and notebook_list. It uses precise language that leaves no ambiguity about the tool's function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool ('Delete notebook permanently') and includes a crucial exclusion: 'Requires confirm=True' after user approval. This provides clear guidance on prerequisites and distinguishes it from tools like notebook_describe or notebook_get that don't require confirmation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notebook_describeB
Get AI-generated notebook summary with suggested topics.
Args: notebook_id: Notebook UUID
Returns: summary (markdown), suggested_topics list
| Name | Required | Description | Default |
|---|---|---|---|
| notebook_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. While it mentions the tool generates AI summaries and returns specific outputs, it doesn't cover important behavioral aspects like whether this is a read-only operation, potential rate limits, authentication requirements, or what happens if the notebook doesn't exist. For a tool with no annotation coverage, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with a clear purpose statement followed by parameter and return value documentation. The three-sentence format is appropriately concise, though the 'Args:' and 'Returns:' formatting could be more integrated with the natural language description. Every sentence adds value.
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 that there's an output schema (implied by 'Has output schema: true'), the description doesn't need to fully explain return values. However, for a tool with no annotations and multiple sibling tools, the description should provide more context about when to use it and behavioral characteristics. It's minimally adequate but leaves gaps in usage guidance and behavioral transparency.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description explicitly documents the single parameter ('notebook_id: Notebook UUID') and provides semantic context beyond the schema's basic type information. With 0% schema description coverage, the description fully compensates by explaining what the parameter represents. The baseline would be lower without this 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?
The description clearly states the tool's purpose: 'Get AI-generated notebook summary with suggested topics.' It specifies the verb ('Get'), resource ('notebook'), and output format. However, it doesn't explicitly differentiate from sibling tools like 'notebook_get' or 'source_describe', which likely have different functions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With many sibling tools like 'notebook_get', 'notebook_query', and 'source_describe', there's no indication of when this AI-generated summary tool is preferred over other notebook-related operations. The description only states what it does, not when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notebook_getB
Get notebook details with sources.
Args: notebook_id: Notebook UUID
| Name | Required | Description | Default |
|---|---|---|---|
| notebook_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states it 'gets' details, implying a read-only operation, but doesn't cover aspects like authentication needs, rate limits, error handling, or what 'sources' entails. This leaves significant gaps for a tool with no annotation support.
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 appropriately sized and front-loaded, with the main purpose stated concisely in the first sentence and parameter details in a structured 'Args' section. Every sentence earns its place without 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?
Given the tool's low complexity (1 parameter) and the presence of an output schema (which handles return values), the description is minimally adequate. However, with no annotations and incomplete behavioral context, it lacks depth for safe and effective use, especially compared to siblings with more detailed descriptions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning beyond the input schema by specifying that 'notebook_id' is a 'Notebook UUID', which clarifies the parameter's format and purpose. With 0% schema description coverage and only one parameter, this adequately compensates, though it could provide more context on UUID format or examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'notebook details with sources', which specifies what the tool does. It distinguishes from siblings like notebook_list (which lists notebooks) and notebook_describe (which might provide different details), though it doesn't explicitly differentiate 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 provides no guidance on when to use this tool versus alternatives like notebook_describe or notebook_query. It mentions retrieving details with sources, but doesn't specify contexts, prerequisites, or exclusions for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notebook_listB
List all notebooks.
Args: max_results: Maximum number of notebooks to return (default: 100)
| Name | Required | Description | Default |
|---|---|---|---|
| max_results | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions a default for 'max_results' but doesn't disclose other behavioral traits like pagination, ordering, permissions needed, rate limits, or what happens when no notebooks exist. For a list operation with no annotation coverage, this leaves significant gaps.
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 extremely concise and well-structured: a clear purpose statement followed by a parameter explanation. Every sentence earns its place with no wasted words, making it easy 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?
Given the tool's low complexity (single optional parameter) and the presence of an output schema (which handles return values), the description is adequate but minimal. It covers the basics but lacks context about usage scenarios or behavioral details that would help an agent invoke it more effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description compensates by explaining the 'max_results' parameter's purpose and default value. Since there's only one parameter, this adds meaningful context beyond the bare schema, though it doesn't cover edge cases or format details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('all notebooks'), making the purpose immediately understandable. It doesn't differentiate from sibling tools like 'notebook_query' or 'notebook_get', but it's specific enough to understand what it does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'notebook_query' or 'notebook_get'. The description only states what it does, without context about scenarios where listing all notebooks is preferred over more targeted queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notebook_queryA
Ask AI about EXISTING sources already in notebook. NOT for finding new sources.
Use research_start instead for: deep research, web search, find new sources, Drive search.
Args: notebook_id: Notebook UUID query: Question to ask source_ids: Source IDs to query (default: all) conversation_id: For follow-up questions
| Name | Required | Description | Default |
|---|---|---|---|
| notebook_id | Yes | ||
| query | Yes | ||
| source_ids | No | ||
| conversation_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It describes the core functionality well but lacks details about permissions needed, rate limits, error conditions, or what the AI response format looks like. The description doesn't contradict any annotations (none exist), but could provide more behavioral context for a tool that queries AI about sources.
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 efficiently structured with purpose statement first, exclusion guidance second, alternative tool reference third, and parameter explanations in a clean Args section. Every sentence earns its place with no wasted words 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?
Given the tool has an output schema (which handles return values), no annotations, and 4 parameters with good semantic coverage in the description, the description is mostly complete. It could benefit from more behavioral context about the AI interaction, but covers purpose, usage guidelines, and parameters effectively for a query 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?
With 0% schema description coverage, the description compensates well by explaining all 4 parameters in the Args section. It clarifies that notebook_id is a 'Notebook UUID', query is a 'Question to ask', source_ids 'default: all', and conversation_id is 'For follow-up questions'. This adds meaningful context beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('Ask AI about EXISTING sources already in notebook') and explicitly distinguishes it from sibling tools by stating 'NOT for finding new sources' and naming the alternative 'research_start'. This provides excellent differentiation from related 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?
The description provides explicit guidance on when to use this tool ('Ask AI about EXISTING sources already in notebook') and when not to use it ('NOT for finding new sources'), plus specifically names the alternative tool 'research_start' for different use cases. This gives the agent clear decision criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notebook_renameB
Rename a notebook.
Args: notebook_id: Notebook UUID new_title: New title
| Name | Required | Description | Default |
|---|---|---|---|
| notebook_id | Yes | ||
| new_title | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action 'rename' but doesn't clarify if this is a destructive mutation, what permissions are required, how errors are handled, or what the output contains. This is inadequate for a mutation tool with zero annotation coverage.
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 extremely concise and well-structured: a clear purpose statement followed by a bulleted parameter list. Every sentence earns its place with no wasted words, making it easy 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?
Given that this is a mutation tool with no annotations, 2 parameters, and an output schema exists, the description is minimally complete. It covers the basic action and parameters but lacks behavioral context (e.g., side effects, error cases) that would be helpful despite the output schema handling return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description includes an 'Args' section that documents both parameters (notebook_id and new_title), adding meaning beyond the input schema, which has 0% description coverage. However, it only provides basic labels without details like format constraints or examples, so it partially compensates for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'rename' and the resource 'notebook', making the purpose immediately understandable. However, it doesn't differentiate this tool from other notebook-related siblings like 'notebook_create' or 'notebook_delete' beyond the basic action, which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing notebook), exclusions, or how it relates to similar tools like 'notebook_describe' or 'notebook_get', leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quiz_createA
Generate quiz. Requires confirm=True after user approval.
Args: notebook_id: Notebook UUID source_ids: Source IDs (default: all) question_count: Number of questions (default: 2) difficulty: Difficulty level (default: 2) confirm: Must be True after user approval
| Name | Required | Description | Default |
|---|---|---|---|
| notebook_id | Yes | ||
| source_ids | No | ||
| question_count | No | ||
| difficulty | No | ||
| confirm | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the confirm requirement, which implies a safety mechanism, but doesn't describe other behavioral traits like what happens during quiz generation, error conditions, or rate limits. The description adds some context but lacks comprehensive behavioral details.
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 appropriately sized but not optimally structured. The first sentence is front-loaded with key information, but the Args section uses inconsistent formatting (e.g., mixing descriptions with default values). It could be more streamlined, though all content is relevant.
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 complexity (5 parameters, no annotations, but has output schema), the description is fairly complete. It covers all parameters with semantics and includes a usage guideline. Since an output schema exists, it doesn't need to explain return values, making this adequate for the context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It provides meaningful semantics for all 5 parameters: notebook_id as 'Notebook UUID', source_ids as 'Source IDs (default: all)', question_count as 'Number of questions (default: 2)', difficulty as 'Difficulty level (default: 2)', and confirm as 'Must be True after user approval'. This adds significant value beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with the verb 'Generate' and resource 'quiz', making it specific and actionable. It distinguishes itself from sibling tools like 'flashcards_create' or 'report_create' by focusing on quiz generation. However, it doesn't explicitly differentiate from all potential alternatives in the sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for usage with the requirement 'Requires confirm=True after user approval', indicating when the tool should be invoked. It doesn't explicitly mention when not to use it or name specific alternatives among siblings, but the user approval requirement gives practical guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
report_createA
Generate report. Requires confirm=True after user approval.
Args: notebook_id: Notebook UUID source_ids: Source IDs (default: all) report_format: "Briefing Doc"|"Study Guide"|"Blog Post"|"Create Your Own" custom_prompt: Required for "Create Your Own" language: BCP-47 code (en, es, fr, de, ja) confirm: Must be True after user approval
| Name | Required | Description | Default |
|---|---|---|---|
| notebook_id | Yes | ||
| source_ids | No | ||
| report_format | No | Briefing Doc | |
| custom_prompt | No | ||
| language | No | en | |
| confirm | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It reveals the user approval requirement through the confirm parameter, which is valuable behavioral context. However, it doesn't disclose other important traits like whether this is a read-only or destructive operation, potential rate limits, authentication needs, or what happens when source_ids is null. The description adds some behavioral context but leaves significant gaps.
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 well-structured with a purpose statement followed by parameter explanations in a clear Args section. Each sentence adds value, though the confirm requirement is stated twice ('Requires confirm=True after user approval' and 'Must be True after user approval'), creating minor redundancy. Overall, it's appropriately sized and front-loaded with the core purpose.
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 complexity (6 parameters, 1 required), 0% schema description coverage, no annotations, but with an output schema present, the description provides good coverage. It explains all parameters meaningfully and includes important behavioral constraints (user approval requirement). The presence of an output schema means the description doesn't need to explain return values, making this reasonably complete for the context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds substantial semantic value beyond the 0% schema description coverage. It explains that notebook_id is a 'Notebook UUID', source_ids defaults to 'all' sources, report_format has specific options with 'Create Your Own' requiring custom_prompt, language uses BCP-47 codes, and confirm requires user approval. This compensates well for the schema's lack of descriptions, though it doesn't fully explain all parameter nuances.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as 'Generate report' with specific resource context (notebook and sources). It distinguishes itself from siblings like 'flashcards_create', 'quiz_create', or 'slide_deck_create' by focusing on report generation rather than other educational content types. However, it doesn't explicitly contrast with 'audio_overview_create' or 'video_overview_create' which might also produce report-like content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: 'Requires confirm=True after user approval' and 'Must be True after user approval' for the confirm parameter. This clearly indicates when to use the tool (after obtaining user approval) and establishes a prerequisite condition. The description effectively communicates the approval workflow requirement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
research_importA
Import discovered sources into notebook.
Call after research_status shows status="completed".
Args: notebook_id: Notebook UUID task_id: Research task ID source_indices: Source indices to import (default: all)
| Name | Required | Description | Default |
|---|---|---|---|
| notebook_id | Yes | ||
| task_id | Yes | ||
| source_indices | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. While it mentions the prerequisite condition, it doesn't disclose important behavioral traits like whether this is a read-only or destructive operation, what permissions are needed, what happens on failure, or rate limits. The description is minimal beyond the basic usage guidance.
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 efficiently structured with a clear purpose statement, usage guideline, and parameter explanations in just four sentences. Every sentence earns its place, and the information is front-loaded with the most important guidance first.
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 that there's an output schema (which handles return values) and the description covers all parameters, the main gap is behavioral transparency. For a tool that performs imports (potentially a write operation), the description should ideally mention permission requirements or side effects, but the presence of an output schema reduces the need to explain return values.
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 0% schema description coverage, the description compensates well by explaining all three parameters: notebook_id (Notebook UUID), task_id (Research task ID), and source_indices (Source indices to import with default behavior). This adds meaningful context beyond the bare schema types, though it doesn't provide format examples or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Import discovered sources') and target ('into notebook'), providing a specific verb+resource combination. It distinguishes from siblings like research_start and research_status by focusing on the import phase, though it doesn't explicitly contrast with all sibling 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?
The description provides explicit usage guidance: 'Call after research_status shows status="completed".' This clearly indicates when to use this tool versus alternatives, establishing a prerequisite condition for proper invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
research_startA
Deep research / fast research: Search web or Google Drive to FIND NEW sources.
Use this for: "deep research on X", "find sources about Y", "search web for Z", "search Drive". Workflow: research_start -> poll research_status -> research_import.
Args: query: What to search for (e.g. "quantum computing advances") source: web|drive (where to search) mode: fast (~30s, ~10 sources) | deep (~5min, ~40 sources, web only) notebook_id: Existing notebook (creates new if not provided) title: Title for new notebook
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| source | No | web | |
| mode | No | fast | |
| notebook_id | No | ||
| title | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behavioral traits: the asynchronous nature (requires polling research_status), time estimates for different modes (~30s for fast, ~5min for deep), expected result volumes (~10 sources for fast, ~40 sources for deep), and source limitations (deep mode is web only). However, it doesn't mention authentication requirements, rate limits, or error handling.
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 well-structured with clear sections (purpose, usage examples, workflow, parameter explanations) and every sentence adds value. It could be slightly more concise by combining some sentences, but the information density is high with no 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?
Given the tool's complexity (asynchronous research initiation with multiple parameters), no annotations, and the presence of an output schema, the description provides substantial context about behavior, workflow, and parameters. It doesn't need to explain return values since an output schema exists. The main gap is lack of information about authentication or error scenarios.
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 0% schema description coverage, the description fully compensates by providing clear semantic explanations for all 5 parameters. It explains what each parameter controls (query as search terms, source as location, mode as speed/depth tradeoff, notebook_id for existing notebooks, title for new notebooks) and provides concrete examples and constraints (e.g., 'deep mode is web 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?
The description clearly states the tool's purpose with specific verbs ('search web or Google Drive to FIND NEW sources') and distinguishes it from siblings by focusing on initiating research workflows. It explicitly mentions the workflow sequence (research_start → poll research_status → research_import), which differentiates it from other tools like notebook_create or source_list_drive.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool with concrete examples ('deep research on X', 'find sources about Y', 'search web for Z', 'search Drive'). It also specifies the workflow context and distinguishes it from sibling tools by focusing on research initiation rather than notebook management or source listing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
research_statusA
Poll research progress. Blocks until complete or timeout.
Args: notebook_id: Notebook UUID poll_interval: Seconds between polls (default: 30) max_wait: Max seconds to wait (default: 300, 0=single poll) compact: If True (default), truncate report and limit sources shown to save tokens. Use compact=False to get full details.
| Name | Required | Description | Default |
|---|---|---|---|
| notebook_id | Yes | ||
| poll_interval | No | ||
| max_wait | No | ||
| compact | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: the tool blocks execution until completion or timeout, includes polling with configurable intervals, and has a 'compact' parameter that affects output token usage. This covers critical operational aspects, though it could mention error handling or authentication needs.
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 well-structured and concise. It starts with a clear purpose statement, followed by a bullet-point-like 'Args' section that efficiently explains each parameter. Every sentence adds value without redundancy, making it easy to scan and understand.
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 complexity (blocking polling with multiple parameters) and the presence of an output schema (which handles return values), the description is largely complete. It covers purpose, behavior, and parameters effectively. However, it could benefit from mentioning error scenarios or linking to sibling tools for better context, slightly reducing completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate fully. It provides clear semantic explanations for all four parameters: 'notebook_id' as a UUID, 'poll_interval' as seconds between polls with a default, 'max_wait' as maximum seconds to wait with special case for 0, and 'compact' as a boolean affecting report truncation and token savings. This adds significant value beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Poll research progress. Blocks until complete or timeout.' This specifies the verb ('poll') and resource ('research progress'), and the blocking behavior is distinctive. However, it doesn't explicitly differentiate from sibling tools like 'research_start' or 'studio_status', which might have related functionality.
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 context through the mention of 'notebook_id' and polling behavior, suggesting it's used after initiating research. However, it doesn't provide explicit guidance on when to use this tool versus alternatives like 'research_start' or 'notebook_query', nor does it mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_auth_tokensB
Save NotebookLM cookies. CSRF and session ID are auto-extracted.
Args: cookies: Cookie header from Chrome DevTools get_network_request csrf_token: (deprecated, auto-extracted from request_body or page) session_id: (deprecated, auto-extracted from request_url or page) request_body: Optional request body from get_network_request (contains CSRF token) request_url: Optional request URL from get_network_request (contains session ID)
| Name | Required | Description | Default |
|---|---|---|---|
| cookies | Yes | ||
| csrf_token | No | ||
| session_id | No | ||
| request_body | No | ||
| request_url | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It reveals that the tool saves authentication tokens and auto-extracts certain values, which is useful. However, it doesn't disclose important behavioral aspects like whether this is a one-time setup operation, if tokens persist across sessions, what permissions are required, or potential side effects. The description doesn't contradict annotations (none exist), but leaves significant gaps.
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 well-structured with a clear purpose statement followed by parameter explanations. Each sentence adds value, though the parameter section could be more concise. The information is front-loaded with the core purpose first. There's minimal redundancy, and the structure helps understanding despite moderate 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?
Given 5 parameters with 0% schema coverage and no annotations, the description does a reasonable job explaining parameters but leaves gaps in behavioral context. The existence of an output schema means return values don't need explanation, but the description should better address when and why to use this tool, authentication implications, and operational constraints. For a security-sensitive tool with complex parameters, this is minimally 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?
With 0% schema description coverage for 5 parameters, the description provides substantial value by explaining parameter purposes and relationships. It clarifies that 'cookies' is the primary required parameter from Chrome DevTools, marks csrf_token and session_id as deprecated with auto-extraction sources, and explains how request_body and request_url contain the auto-extracted tokens. This adds meaningful context beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Save NotebookLM cookies' with the specific action 'save' and resource 'cookies'. It distinguishes itself from sibling tools by focusing on authentication token management rather than content creation or notebook operations. However, it doesn't explicitly contrast with any direct authentication-related siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It mentions that CSRF and session ID are auto-extracted, but doesn't explain when manual parameters might still be needed or what scenarios require this tool. There's no mention of prerequisites, timing considerations, or relationship to other authentication flows.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
slide_deck_createA
Generate slide deck. Requires confirm=True after user approval.
Args: notebook_id: Notebook UUID source_ids: Source IDs (default: all) format: detailed_deck|presenter_slides length: short|default language: BCP-47 code (en, es, fr, de, ja) focus_prompt: Optional focus text confirm: Must be True after user approval
| Name | Required | Description | Default |
|---|---|---|---|
| notebook_id | Yes | ||
| source_ids | No | ||
| format | No | detailed_deck | |
| length | No | default | |
| language | No | en | |
| focus_prompt | No | ||
| confirm | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the confirmation requirement, which is a critical behavioral trait for safety. However, it lacks details on side effects (e.g., whether this creates persistent resources, rate limits, or error conditions), leaving gaps in understanding the tool's 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?
The description is appropriately sized and front-loaded with the core purpose and key requirement. The Args section is well-structured but slightly verbose; every sentence adds value, though the formatting could be more streamlined for quick scanning.
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 complexity (7 parameters, generation tool), no annotations, but with an output schema present, the description provides solid coverage. It explains parameters well and includes the critical confirmation requirement. The output schema handles return values, so the description doesn't need to cover them, making this reasonably complete for the context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds meaningful context for all 7 parameters: explaining 'notebook_id' as a UUID, 'source_ids' default behavior, 'format' and 'length' options, 'language' as BCP-47 codes, 'focus_prompt' as optional text, and 'confirm' requirement. This significantly enhances understanding beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Generate' and resource 'slide deck', making the purpose evident. However, it doesn't explicitly differentiate from sibling tools like 'report_create' or 'infographic_create' which might also generate content, leaving some ambiguity about when to choose this specific 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?
The description provides clear context with 'Requires confirm=True after user approval', indicating a prerequisite for use. It doesn't specify alternatives among siblings or when-not-to-use scenarios, but the confirmation requirement offers practical guidance for safe invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
source_deleteA
Delete source permanently. IRREVERSIBLE. Requires confirm=True.
Args: source_id: Source UUID to delete confirm: Must be True after user approval
| Name | Required | Description | Default |
|---|---|---|---|
| source_id | Yes | ||
| confirm | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and excels by disclosing critical behavioral traits: the operation is 'IRREVERSIBLE' (destructive nature), requires user approval via 'confirm=True', and permanently deletes the source. This covers safety and confirmation needs beyond basic function.
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 front-loaded with the core action and warning, followed by a structured Args section. Every sentence earns its place: the first states purpose and critical constraints, while the parameter explanations are necessary given low schema coverage.
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 high complexity (destructive, irreversible operation) and no annotations, the description is complete: it covers purpose, behavioral risks, parameter semantics, and usage context. The presence of an output schema means return values don't need explanation here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate fully. It does so by explaining both parameters: 'source_id' as 'Source UUID to delete' and 'confirm' as 'Must be True after user approval', adding essential meaning about UUID format and confirmation logic not 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 clearly states the verb 'Delete' and resource 'source', specifying it's a permanent deletion. It distinguishes from siblings like source_describe and source_list_drive by focusing on destructive removal rather than querying or listing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context with 'Requires confirm=True' and 'after user approval', indicating when to use this tool (for irreversible deletion with confirmation). However, it doesn't explicitly mention when not to use it or name alternatives like source_describe for checking before deletion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
source_describeB
Get AI-generated source summary with keyword chips.
Args: source_id: Source UUID
Returns: summary (markdown with bold keywords), keywords list
| Name | Required | Description | Default |
|---|---|---|---|
| source_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the tool is AI-generated and returns specific output formats, but lacks critical details: whether it's read-only or mutating, authentication requirements, rate limits, error conditions, or side effects. For a tool with no annotation coverage, this leaves significant behavioral gaps.
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 efficiently structured with a clear purpose statement followed by parameter and return value sections. Every sentence adds value: the first explains what the tool does, the second documents the parameter, and the third describes the return format. No wasted words 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?
Given the tool's moderate complexity (single parameter, AI-generated output), the description is reasonably complete. It explains the purpose, parameter meaning, and return format. The existence of an output schema means the description doesn't need to detail return values extensively. However, it lacks behavioral context that would be important for safe usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaningful context for the single parameter: 'source_id: Source UUID' clarifies this is a unique identifier for a source. With 0% schema description coverage and only one parameter, this adequately compensates. However, it doesn't specify format constraints or validation rules for the UUID.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get AI-generated source summary with keyword chips.' It specifies the action ('Get'), resource ('source'), and output characteristics ('summary with keyword chips'). However, it doesn't explicitly differentiate from sibling tools like 'notebook_describe' or 'source_list_drive', which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, appropriate contexts, or compare it to sibling tools like 'source_list_drive' or 'notebook_describe'. The only implied usage is needing a source UUID, but this is insufficient for effective tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
source_list_driveA
List sources with types and Drive freshness status.
Use before source_sync_drive to identify stale sources.
Args: notebook_id: Notebook UUID
| Name | Required | Description | Default |
|---|---|---|---|
| notebook_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions that the tool lists sources with freshness status, implying a read-only operation, but doesn't disclose critical behavioral traits like whether it requires authentication, has rate limits, returns paginated results, or what 'freshness status' entails. This leaves significant gaps for an agent to understand how to use it effectively.
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 appropriately sized and front-loaded: the first sentence states the core purpose, the second provides usage guidance, and the third explains the parameter. Every sentence earns its place with no wasted words, making it easy 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?
Given the tool has an output schema (which should document return values), the description doesn't need to explain outputs. However, with no annotations and only basic parameter info, it lacks details on behavioral aspects like error handling or performance. For a tool that interacts with Drive freshness, more context on what 'freshness' means or prerequisites would enhance completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaningful semantics for the single parameter: 'notebook_id: Notebook UUID' clarifies that it's a UUID identifier for a notebook. With 0% schema description coverage, the schema only indicates it's a required string, so the description compensates well by explaining what the parameter represents. However, it doesn't specify format constraints or examples, which could improve clarity further.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'List sources with types and Drive freshness status.' This specifies the verb ('List'), resource ('sources'), and key attributes ('types and Drive freshness status'). However, it doesn't explicitly differentiate from sibling tools like 'source_describe' or 'source_sync_drive', which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage guidance: 'Use before source_sync_drive to identify stale sources.' This explicitly states when to use the tool (before a specific sibling) and why (to identify stale sources). However, it doesn't mention when NOT to use it or alternatives, such as whether 'source_describe' might be better for detailed info on a single source.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
source_sync_driveA
Sync Drive sources with latest content. Requires confirm=True.
Call source_list_drive first to identify stale sources.
Args: source_ids: Source UUIDs to sync confirm: Must be True after user approval
| Name | Required | Description | Default |
|---|---|---|---|
| source_ids | Yes | ||
| confirm | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool requires user confirmation (via 'confirm=True'), which is a key behavioral trait for safety. However, it lacks details on what 'sync' does (e.g., overwrites, merges, side effects), rate limits, or error handling. The description adds some context but is incomplete for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, followed by concise usage guidelines and parameter explanations in a structured format. Every sentence adds value: the first states the action, the second provides prerequisites, and the args clarify parameters. No wasted words, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 2 parameters with 0% schema coverage and no annotations, the description compensates well by explaining parameters and usage context. An output schema exists, so return values need not be described. It covers key aspects like prerequisites and confirmation, but could be more complete by detailing sync behavior or error cases for a mutation 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 0%, so the description must compensate. It explains 'source_ids' as 'Source UUIDs to sync' and 'confirm' as 'Must be True after user approval', adding meaningful semantics beyond the bare schema. This covers both parameters adequately, though it could detail format for UUIDs or confirmation implications more.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Sync') and resource ('Drive sources'), specifying the action of updating content. It distinguishes from sibling 'source_list_drive' by mentioning it as a prerequisite, though not all siblings are directly differentiated. The purpose is specific but could be more explicit about what 'sync' entails operationally.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: it states to call 'source_list_drive first to identify stale sources' and requires 'confirm=True after user approval'. This clearly indicates when to use this tool (after identifying stale sources and with user confirmation) and implies alternatives by referencing the sibling tool for preparation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
studio_deleteA
Delete studio artifact. IRREVERSIBLE. Requires confirm=True.
Args: notebook_id: Notebook UUID artifact_id: Artifact UUID (from studio_status) confirm: Must be True after user approval
| Name | Required | Description | Default |
|---|---|---|---|
| notebook_id | Yes | ||
| artifact_id | Yes | ||
| confirm | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively communicates critical behavioral traits: the operation is 'IRREVERSIBLE' (destructive nature), requires user confirmation ('confirm=True after user approval'), and references artifact sourcing ('from studio_status'). This covers safety, authentication needs, and context without contradictions.
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 perfectly front-loaded with the core purpose and critical warnings in the first sentence, followed by a structured Args section that efficiently documents parameters. Every sentence earns its place with no wasted words, making it highly scannable and informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (destructive operation with 3 parameters), no annotations, and the presence of an output schema (which handles return values), the description is complete. It covers purpose, irreversible nature, confirmation requirements, parameter semantics, and artifact context, leaving no gaps for safe agent 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?
With 0% schema description coverage, the description fully compensates by explaining all 3 parameters: 'notebook_id' as 'Notebook UUID', 'artifact_id' as 'Artifact UUID (from studio_status)', and 'confirm' as 'Must be True after user approval'. This adds essential meaning beyond the bare schema, clarifying UUID formats, relationships, and confirmation logic.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Delete studio artifact') and resource ('studio artifact'), distinguishing it from siblings like notebook_delete or source_delete which target different resources. The verb 'Delete' is precise and 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 explicitly states when to use this tool ('Delete studio artifact') and includes a critical usage condition ('Requires confirm=True after user approval'), which provides clear guidance on prerequisites and safety measures. It differentiates from siblings by specifying the artifact context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
studio_statusC
Check studio content generation status and get URLs.
Args: notebook_id: Notebook UUID
| Name | Required | Description | Default |
|---|---|---|---|
| notebook_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions checking status and getting URLs, but doesn't describe what the status values mean, whether it's a read-only operation, potential errors, rate limits, or authentication needs. For a tool with no annotations, this leaves significant gaps in understanding its 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?
The description is appropriately concise with two sentences: one for the main purpose and one for the parameter. It's front-loaded with the key action. However, the Args section could be integrated more smoothly, and there's minor room for improvement in flow.
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 has an output schema (which likely covers return values), the description doesn't need to explain outputs. However, with no annotations, 0% schema description coverage, and a mutation-heavy sibling set (e.g., 'studio_delete'), it should provide more context on safety, usage timing, and error handling to be fully 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?
The description adds minimal parameter semantics: it notes 'notebook_id: Notebook UUID' in the Args section, which clarifies the parameter's purpose beyond the schema's type information. However, with 0% schema description coverage and only 1 parameter, this provides basic but incomplete context (e.g., no details on UUID format or where to obtain 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?
The description clearly states the tool's purpose: 'Check studio content generation status and get URLs.' It specifies the verb ('Check'), resource ('studio content generation status'), and outcome ('get URLs'). However, it doesn't explicitly differentiate from sibling tools like 'research_status' or 'studio_delete', which would be needed for a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a notebook_id from a previous operation), exclusions, or comparisons to similar tools like 'research_status'. The context is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
video_overview_createA
Generate video overview. Requires confirm=True after user approval.
Args: notebook_id: Notebook UUID source_ids: Source IDs (default: all) format: explainer|brief visual_style: auto_select|classic|whiteboard|kawaii|anime|watercolor|retro_print|heritage|paper_craft language: BCP-47 code (en, es, fr, de, ja) focus_prompt: Optional focus text confirm: Must be True after user approval
| Name | Required | Description | Default |
|---|---|---|---|
| notebook_id | Yes | ||
| source_ids | No | ||
| format | No | explainer | |
| visual_style | No | auto_select | |
| language | No | en | |
| focus_prompt | No | ||
| confirm | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It reveals the user approval requirement (confirm parameter), which is valuable behavioral context. However, it doesn't disclose other important traits like whether this is a long-running operation, what resources it consumes, error conditions, or what the output contains beyond what the output schema might 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?
The description is efficiently structured with a clear purpose statement followed by parameter explanations. Every sentence serves a purpose, though the formatting with 'Args:' and bullet-like parameter explanations could be more integrated. The information is front-loaded with the core purpose and critical requirement.
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 complexity (7 parameters, creation operation) with no annotations but an output schema present, the description provides good coverage. It explains the purpose, usage constraint, and parameter meanings. The output schema existence means return values don't need description, making this reasonably complete for agent understanding.
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 0% schema description coverage for 7 parameters, the description must compensate. It provides meaningful context for all parameters: notebook_id (Notebook UUID), source_ids (Source IDs with default behavior), format (explainer|brief options), visual_style (9 specific style options), language (BCP-47 code with examples), focus_prompt (Optional focus text), and confirm (Must be True after user approval). This adds substantial semantic value beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Generate video overview') and resource type (video overviews), distinguishing it from sibling tools like audio_overview_create, slide_deck_create, or infographic_create. It specifies this creates video content rather than other media formats.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance with 'Requires confirm=True after user approval' and reiterates this in the confirm parameter documentation. This clearly indicates when the tool should be used (only after obtaining user consent) and establishes a prerequisite condition for proper invocation.
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. Dates show when Glama detected each change.
32 tool updates
v1.0.0- First observed
audio_overview_create - First observed
chat_configure - First observed
data_table_create - First observed
flashcards_create - First observed
infographic_create - First observed
mind_map_create - First observed
mind_map_list - First observed
notebook_add_drive - First observed
notebook_add_text - First observed
notebook_add_url - First observed
notebook_add_urls - First observed
notebook_create - First observed
notebook_delete - First observed
notebook_describe - First observed
notebook_get - First observed
notebook_list - First observed
notebook_query - First observed
notebook_rename - First observed
quiz_create - First observed
report_create - First observed
research_import - First observed
research_start - First observed
research_status - First observed
save_auth_tokens - First observed
slide_deck_create - First observed
source_delete - First observed
source_describe - First observed
source_list_drive - First observed
source_sync_drive - First observed
studio_delete - First observed
studio_status - First observed
video_overview_create
TDQS
Most tools have distinct purposes, but there is some overlap between content generation tools (e.g., audio_overview_create, video_overview_create, report_create) which could cause confusion about which to use for similar tasks. However, their specific formats and outputs help differentiate them, and other tools like notebook management and research are clearly separated.
Tool names follow a consistent snake_case pattern with clear verb_noun structure (e.g., notebook_create, source_delete, research_start). There are no deviations in naming conventions, making it easy to predict tool functions and maintain readability across the entire set.
With 32 tools, the count feels heavy for a notebook management and content generation server, though it covers a broad domain. It includes many specialized generation tools (e.g., for audio, video, slides) that might be overkill, but the scope is comprehensive, placing it on the borderline of being too many.
The toolset provides complete coverage for notebook management (CRUD operations, source handling), content generation (multiple formats), and research workflows. There are no obvious gaps; tools support all major operations from creation to deletion, with clear workflows for adding sources, querying, and generating artifacts.
Related MCP Connectors
Google NotebookLM via natural language: create notebooks, add sources (PDF, URL, YouTube) and ask gr
Create, search, and update notes in an xNotepad AI notebook, with semantic search and AI Q&A.
- KnowtisOAuthapp.knowtis
Create, search and manage Knowtis collaborative notes from AI assistants.
- aNotepadOAuthcom.anotepad
AI access to your aNotepad online notes: read, search, write, and organize via 22 tools.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ignitabull18/notebooklm-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server


