Skip to main content
Glama
mstampfer

Claude Code Notebook MCP

by mstampfer

Claude Code Notebook MCP

GitHub stars GitHub forks GitHub downloads

A Model Context Protocol (MCP) server that provides comprehensive Jupyter notebook interaction capabilities, compatible with Claude Code.

Note: This library emulates the functionality of the cursor-notebook-mcp repository but runs in a web browser. For live updates in Jupyter, install the collaboration extension:

pip install jupyter-collaboration
jupyter labextension install @jupyter/collaboration-extension

Or for JupyterLab 3.x:

pip install jupyterlab-collaboration

Features

This MCP server implements all 29 required Jupyter notebook operations:

Notebook Management

  • notebook_create - Creates a new, empty notebook file

  • notebook_delete - Deletes an existing notebook file

  • notebook_rename - Renames/moves a notebook file from one path to another

  • notebook_read - Reads an entire notebook and returns its structure as a dictionary

Cell Operations

  • notebook_read_cell - Reads the source content of a specific cell

  • notebook_add_cell - Adds a new code or markdown cell after a specified index

  • notebook_edit_cell - Replaces the source content of a specific cell

  • notebook_delete_cell - Deletes a specific cell

  • notebook_change_cell_type - Changes a cell's type (code, markdown, or raw)

  • notebook_duplicate_cell - Duplicates a cell multiple times (default: once)

  • notebook_move_cell - Moves a cell to a different position

  • notebook_split_cell - Splits a cell into two at a specified line number

  • notebook_merge_cells - Merges a cell with the cell immediately following it

Cell Content & Metadata

  • notebook_read_cell_metadata - Reads the metadata of a specific cell

  • notebook_edit_cell_metadata - Updates the metadata of a specific cell

  • notebook_read_cell_output - Reads the output list of a specific code cell

  • notebook_edit_cell_output - Allows direct manipulation and setting of cell outputs

  • notebook_clear_cell_outputs - Clears the outputs and execution count of a specific cell

  • notebook_clear_all_outputs - Clears outputs and execution counts for all code cells

Notebook Information & Metadata

  • notebook_get_cell_count - Returns the total number of cells

  • notebook_read_metadata - Reads the top-level notebook metadata

  • notebook_edit_metadata - Updates the top-level notebook metadata

  • notebook_get_info - Retrieves general information (cell count, metadata, kernel, language info)

  • notebook_validate - Validates the notebook structure against the nbformat schema

Advanced Operations

  • notebook_export - Exports the notebook to another format (e.g., python, html) using nbconvert

  • notebook_get_outline - Produces an outline showing cell numbers with major headings/functions and line counts

  • notebook_search - Searches cells for a keyword, showing which cell matches were found with contextual snippets

  • notebook_bulk_add_cells - Adds multiple cells to a notebook in a single operation

  • notebook_get_server_path_context - Provides detailed server path configuration

Related MCP server: JupyterMCP

Installation

npm install

Usage

As MCP Server (for Claude Code)

  1. Navigate to the project directory:

cd /path/to/claude-code-notebook-mcp
  1. Add the MCP server:

claude mcp add jupyter "$(pwd)/src/server.js"
  1. Verify the server was added:

claude mcp list

Option 2: Manual Configuration

  1. Copy the example configuration file and customize it:

# For project-specific configuration
cp .mcp.example.json .mcp.json

# Or for Claude Code configuration
cp claude-code-config.example.json claude-code-config.json
  1. Edit the configuration file and update the cwd path to your project location:

{
  "mcpServers": {
    "jupyter": {
      "command": "node",
      "args": ["src/server.js"],
      "cwd": "/your/actual/path/to/claude-code-notebook-mcp"
    }
  }
}
  1. For user-wide settings, add to ~/.claude/settings.json:

{
  "mcpServers": {
    "jupyter": {
      "command": "node",
      "args": ["src/server.js"],
      "cwd": "/path/to/claude-code-notebook-mcp"
    }
  }
}
  1. Start Claude Code and the Jupyter tools will be available.

Standalone Client

node src/client.js

This will run a demonstration showing the basic capabilities.

Programmatic Usage

import { JupyterMCPClient } from './src/client.js';

const client = new JupyterMCPClient();
await client.connect();

// Create a new notebook
await client.createNotebook('./my_notebook.ipynb');

// Add a markdown cell
await client.addCell('./my_notebook.ipynb', 'markdown', '# My Notebook', -1);

// Add a code cell
await client.addCell('./my_notebook.ipynb', 'code', 'print("Hello World")', 0);

// Get notebook outline
const outline = await client.getOutline('./my_notebook.ipynb');
console.log(outline.content[0].text);

Compatibility

  • Claude Code: Fully compatible with Claude Code's MCP integration

  • Node.js: Requires Node.js 18+ with ES modules support

  • Jupyter: Compatible with nbformat 4.x notebooks

Development

Running the Server

npm start

Development Mode (with file watching)

npm run dev

Testing

node src/client.js

Architecture

  • Server (src/server.js): MCP server implementation with all 29 Jupyter notebook tools

  • Client (src/client.js): Example client with convenience methods for common operations

  • Configuration (claude-code-config.json): Claude Code MCP server configuration

The server uses the official MCP SDK and implements the full MCP protocol for tool calling. All notebook operations are performed using Node.js file system operations and JSON manipulation, ensuring compatibility across platforms.

Available Tools

29 tools
notebook_add_cellA

Adds a new code or markdown cell after a specified index

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the notebook
indexYesIndex after which to insert the cell
sourceYesSource content for the new cell
cell_typeYesType of cell to add

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden for behavioral traits. It discloses the insertion position behavior (after a specified index) and mentions supported cell types (code, markdown), but doesn't disclose message ordering within the cell type enum (the schema lists code, markdown, raw but description only mentions code and markdown). No mention of whether existing cells shift indices, performance implications, or state changes beyond insertion.

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

Conciseness5/5

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

Single sentence that is front-loaded with verb and resource. No wasted words. Every element (action, resource type, insertion point) earns its place.

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

Completeness3/5

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

For a tool with 4 required parameters and no output schema, the description is adequate but minimal. It explains the basic operation but not return value (e.g., success message or cell ID), error conditions (e.g., invalid path, unsupported cell type for raw), or edge cases like inserting at the end. With no annotations and no output schema, more behavioral context would be helpful.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description doesn't add meaning beyond the schema - it mentions 'code or markdown cell' but the schema already enumerates all three types (code, markdown, raw). No additional semantics for path, index, or source parameters.

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

Purpose5/5

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

The description uses specific verb 'Adds' and resource 'code or markdown cell' with clear scope ('after a specified index'). It distinguishes from siblings like notebook_bulk_add_cells (which adds multiple cells) and notebook_create (which creates a notebook, not a cell).

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

Usage Guidelines3/5

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

The description implies use when adding a single cell at a specific position, but doesn't explicitly guide when to use this vs notebook_bulk_add_cells (for multiple cells) or notebook_edit_cell (for modifying existing cells). No when-not-to-use or alternatives are named.

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

notebook_bulk_add_cellsC

Adds multiple cells to a notebook in a single operation

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the notebook
cellsYesArray of cells to add
indexYesIndex after which to insert the cells

TDQS

C2.6/5.0
Behavior1/5

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

With no annotations, the description carries full burden for behavioral disclosure. It states only that cells are added 'in a single operation' but does not reveal critical traits such as validation behavior, error handling, index insertion semantics (insert vs. replace), or whether existing cells with the same indices are affected. This is a significant gap 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.

Conciseness2/5

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

The description is only one sentence (10 words) and is structured as a single clause. While it has no fluff, it is under-specified for the tool's complexity. Valuable information about usage and behavior is omitted, making it not truly concise but rather lacking substance.

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

Completeness1/5

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

Given the tool has 3 required parameters, no output schema, and 28 sibling tools (including the singular notebook_add_cell), the description is woefully incomplete. It fails to explain how bulk addition differs, what happens on partial failure, or how the index parameter works. Many behavioral details that an agent needs are missing.

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

Parameters3/5

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

Input schema coverage is 100%, so the schema already documents all three parameters (path, cells, index) with descriptions. The description adds no extra semantic meaning beyond what the schema provides. Baseline 3 is appropriate since the schema does the heavy lifting.

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

Purpose5/5

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

The description clearly states the verb 'Adds', the resource 'multiple cells to a notebook', and the nuance 'in a single operation'. This clearly distinguishes it from sibling tools like notebook_add_cell (singular) and others that perform different operations. Purpose is unambiguous and specific.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this bulk operation vs. the singular notebook_add_cell, or any alternatives. There is no mention of prerequisites, performance benefits, or scenarios where this tool should be avoided. The description leaves the agent to infer usage context entirely.

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

notebook_change_cell_typeB

Changes a cell's type (code, markdown, or raw)

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the notebook
new_typeYesNew cell type
cell_indexYesIndex of the cell to modify

TDQS

B3.1/5.0
Behavior3/5

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

Since no annotations are provided, the description carries the full burden of behavioral disclosure. It correctly implies a write/mutate action by using 'changes,' but does not explain side effects (e.g., formatting may be lost, cell metadata might reset, existing content behavior on type change). Annotations could have reduced this burden.

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

Conciseness4/5

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

The description is a single short sentence with no filler. It is front-loaded with the action and immediately specifies the valid types. A slight improvement would be to add the condition 'if the cell exists' or grammar fixes (e.g., introducing the list), but overall it is efficient.

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

Completeness2/5

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

Given 3 required parameters, no output schema, and no annotations, the description is too sparse. It does not mention that the cell index is zero-based, what happens if the index is out of bounds, or whether the operation is reversible. For a mutation tool with many sibling tools, more context is needed.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds no extra meaning beyond the schema; 'new_type' enum values are restated. The description could have noted that 'raw' is for rich text or that changing type may affect cell execution, but this is absent.

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

Purpose4/5

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

The description states 'Changes a cell's type' and lists the three possible types (code, markdown, raw), clearly indicating the verb and resource. While it distinguishes this from siblings that add, delete, edit content, or read cells, it does not explicitly contrast with notebook_edit_cell or notebook_edit_cell_metadata, which could be confused with changing type.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. Among many cell-related tools (add, delete, edit, move, split, merge), there is no mention of prerequisites (e.g., cell must exist, notebook must be open) or exclusions (e.g., not for modifying content).

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

notebook_clear_all_outputsB

Clears outputs and execution counts for all code cells

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the notebook

TDQS

B3.2/5.0
Behavior2/5

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 that outputs and execution counts are cleared but does not disclose whether this mutates the file on disk, is undoable, requires a running kernel, or affects unsaved changes. For a destructive operation, 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.

Conciseness4/5

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

The description is a single, clear sentence with no wasted words (8 words). It front-loads the core action. Could be slightly more structured (e.g., split into what it does and what it clears), but remains effective.

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

Completeness3/5

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

Given the simple input (one param) and no output schema, the description covers the basic action. However, it lacks completeness in explaining the consequences (e.g., whether this triggers a save, affects kernel state, or interacts with other notebook tools). Adequate but not thorough.

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

Parameters3/5

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

Schema coverage is 100% (the lone 'path' parameter is described in the schema as 'Path to the notebook'). The description adds no extra meaning beyond what the schema provides, so baseline 3 applies.

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

Purpose5/5

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

The description uses a specific verb 'Clears' and identifies the exact resources: 'outputs and execution counts for all code cells'. It distinguishes from sibling 'notebook_clear_cell_outputs' by specifying 'all' cells, making the scope unambiguous.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool vs. alternatives like 'notebook_clear_cell_outputs'. With 27 sibling tools, the description does not help the agent decide between batch vs. individual clearing or mention prerequisites or side effects.

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

notebook_clear_cell_outputsA

Clears the outputs and execution count of a specific cell

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the notebook
cell_indexYesIndex of the cell

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It accurately states the effect (clears outputs and execution count) but omits behavioral details such as whether the notebook file is automatically saved, whether this is reversible, or any permission requirements. The description is minimally transparent but not misleading.

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

Conciseness5/5

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

The description is a single sentence that states exactly what the tool does. No wasted words, perfectly front-loaded. This is as concise as possible while remaining clear.

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

Completeness3/5

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

Given two parameters, no output schema, and two dozen sibling tools, the description is minimally complete. It explains the core action but lacks context about the side effect of modifying the notebook file, the irreversible nature of the operation, or explicit differentiation from similar tools. Adequate but could do more.

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

Parameters3/5

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

The input schema already provides 100% coverage for both parameters (path, cell_index) with clear descriptions. The tool description adds no additional meaning beyond what the schema offers, so baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the specific action (clears outputs and execution count) on a specific resource (a specific cell). It effectively distinguishes from sibling tools like 'notebook_clear_all_outputs' and 'notebook_read_cell_output' by focusing on clearing a single cell's output state.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives (e.g., notebook_clear_all_outputs for clearing all cells, or notebook_edit_cell_output for modifying but not clearing). No usage context or when-not-to-use information is provided.

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

notebook_createA

Creates a new, empty notebook file

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath where the notebook will be created

TDQS

A3.5/5.0
Behavior3/5

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

The description states 'Creates a new, empty notebook file', indicating a write operation. Since no annotations are provided, the description carries the full burden. It implies the file is newly created and initially empty, but omits details like whether it overwrites an existing file, what the default kernel or metadata is, or what the return value is. It is accurate but lacks depth.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no wasted words. It effectively communicates the exact purpose without elaboration.

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

Completeness3/5

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

Given the tool has one parameter and no output schema, the description provides adequate but minimal context. An agent would understand the basic action but lacks information about file format, overwrite behavior, authentication needs, or error conditions. For a simple tool this is acceptable, but more detail could help.

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

Parameters3/5

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

Schema description coverage is 100%, with the 'path' parameter already described in the schema as 'Path where the notebook will be created'. The description does not add extra meaning such as allowed extensions, path patterns, or behavior relative to existing files. The baseline for full coverage is 3; the description provides no additional value for the parameter.

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

Purpose4/5

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

The description uses a specific verb-resource pair ('Creates a new, empty notebook file'), which clearly distinguishes this tool from siblings like 'notebook_delete', 'notebook_rename', and other notebook operations. It is slightly less precise than a 5 because it doesn't specify the format (e.g., .ipynb) or whether it creates the file in an explicit location relative to a workspace.

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

Usage Guidelines3/5

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

The tool's name and the presence of many sibling tools for notebook operations strongly imply this is the creation tool. However, the description provides no explicit guidance on when to use this tool over alternatives, such as importing, copying, or opening an existing notebook. There is no discussion of prerequisites (e.g., whether the directory must exist) or when not 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_deleteC

Deletes an existing notebook file

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the notebook to delete

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden of behavioral disclosure. The description states it 'Deletes' a file, implying destructive action, but does not confirm whether deletion is irreversible, if there is a trash/recovery option, or if permission checks apply. For a destructive tool with no annotations, 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.

Conciseness4/5

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

The description is a single, clear sentence with no wasted words. It is appropriately front-loaded. However, for a destructive tool, slightly more detail (e.g., about irreversibility) could be expected, but for a simple delete action, this is concise and adequate.

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

Completeness3/5

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

Given that this tool has one required parameter, no output schema, and no annotations, the description is minimally complete. It clarifies the action (delete) and the resource (notebook file), which is sufficient for an agent to understand the basic operation. However, missing behavioral details (reversibility, confirmation needs) could lead to errors in autonomous use.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The schema documents the single parameter (path) with a clear description. The tool description does not add any additional meaning beyond the schema, so it meets but does not exceed the baseline.

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

Purpose4/5

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

The description 'Deletes an existing notebook file' uses a specific verb (Deletes) and clearly identifies the resource (notebook file). It distinguishes itself from sibling tools that create, rename, read, or edit notebooks, but could be slightly more specific by mentioning it operates at the file level (not individual cells).

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like notebook_delete_cell (for deleting cells within a notebook). There's no mention of prerequisites (e.g., the notebook should exist), side effects (file permanently removed), or when not 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_delete_cellC

Deletes a specific cell

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the notebook
cell_indexYesIndex of the cell to delete

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. 'Deletes' implies destructiveness, but it does not mention irreversibility, potential side effects on other cell indices, or required permissions beyond what is inherent in the verb.

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

Conciseness5/5

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

The description is exactly one short sentence with no wasted words. It is appropriately sized for a simple delete operation.

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

Completeness2/5

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

The description is minimal and does not explain consequences of deletion (e.g., permanent removal, shift of subsequent indices) or what the return value indicates. Given the lack of annotations and output schema, this leaves important context for the agent to infer.

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

Parameters3/5

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

The input schema already provides descriptions for both 'path' and 'cell_index' (100% coverage), so the description adds no semantic value. The baseline of 3 is appropriate because the schema fully documents the parameters.

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

Purpose4/5

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

The description 'Deletes a specific cell' uses a clear verb and resource, accurately conveying the operation. While it doesn't differentiate among sibling tools beyond the delete action, the verb itself sufficiently distinguishes it from read/edit/add operations.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like notebook_edit_cell or notebook_duplicate_cell. The description only states the action without any context, 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_duplicate_cellB

Duplicates a cell multiple times (default: once)

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the notebook
countNoNumber of times to duplicate the cell
cell_indexYesIndex of the cell to duplicate

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It only states the basic function (duplicates) but omits critical behavioral traits such as where the duplicate is placed (e.g., immediately after the original), error handling for invalid indices, whether cell outputs are copied, or if the operation is reversible.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no wasted words. It efficiently conveys the core action and default behavior.

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

Completeness2/5

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

Given the tool has 3 parameters and no output schema or annotations, the description is too sparse. It does not explain return values, error conditions, or placement behavior. An agent cannot fully determine side effects or expected results without additional assumptions.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description does not add any additional meaning beyond what the schema provides for parameters like 'count' or 'cell_index'. No parameter-specific context is enriched by the description.

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

Purpose5/5

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

The description 'Duplicates a cell multiple times (default: once)' uses a specific verb and resource, clearly indicating the action of copying an existing cell. It distinguishes from siblings like notebook_add_cell or notebook_edit_cell by specifying duplication, and mentions the default count.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives (e.g., notebook_add_cell, notebook_bulk_add_cells). It does not state when not to use it or mention any preconditions or context where another tool would be preferred.

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

notebook_edit_cellC

Replaces the source content of a specific cell

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the notebook
cell_indexYesIndex of the cell to edit
new_sourceYesNew source content for the cell

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of disclosing behavior. It states 'replaces', implying destructive overwrite, but fails to specify whether the entire cell source is replaced, if there are side effects (e.g., cell execution state), or if any validation occurs. More detail is needed 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.

Conciseness4/5

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

The description is a single, front-loaded sentence that immediately conveys the action. It is concise with no wasted words. However, it could include a bit more context without losing conciseness.

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

Completeness2/5

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

The description does not explain the return value, whether the cell retains its type or other metadata after editing, or if any validation is performed. Given the number of sibling tools, more context is needed to ensure an agent can use this tool correctly without guessing about side effects or outcomes.

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

Parameters3/5

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

Schema description coverage is 100%, with all three parameters (path, cell_index, new_source) already described in the schema. The tool description adds no additional semantic information beyond what the schema provides, so a baseline score of 3 is appropriate.

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

Purpose4/5

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

The description 'Replaces the source content of a specific cell' clearly states the verb and resource, distinguishing it from sibling tools like notebook_add_cell (adds a new cell) and notebook_edit_cell_metadata (edits only metadata). However, it doesn't explicitly emphasize that it replaces the entire source content, not just appends or modifies.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like notebook_edit_cell_metadata or notebook_edit_cell_output. There is no mention of when-not to use it or any prerequisites (e.g., cell must exist).

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

notebook_edit_cell_metadataC

Updates the metadata of a specific cell

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the notebook
metadataYesNew metadata object
cell_indexYesIndex of the cell

TDQS

C2.9/5.0
Behavior2/5

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 does not mention whether updates are additive or replace the entire metadata object, what happens on merge logic, or any side effects (e.g., triggering re-rendering or data loss).

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

Conciseness4/5

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

The description is a single, concise sentence that directly states the tool's action. No unnecessary text, but could slightly expand on key behavioral details without becoming verbose.

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

Completeness2/5

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

Given the presence of a nested object (metadata) and no output schema, the description should provide more detail on the expected metadata format and return behavior. It lacks completeness for a mutation tool with complex parameter structure.

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

Parameters3/5

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

Schema description coverage is 100%, providing clear parameter names and types. However, the description adds no additional meaning beyond the schema, such as expected structure of the metadata object or valid keys. Since coverage is high, baseline of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the action ('Updates') and the resource ('metadata of a specific cell'), distinguishing it from sibling tools like notebook_read_cell_metadata or notebook_edit_cell. It effectively communicates the core function.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives like notebook_edit_cell or notebook_edit_metadata. The description does not specify prerequisites or the effect on cell behavior (e.g., metadata for code vs. markdown cells).

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

notebook_edit_cell_outputC

Allows direct manipulation and setting of cell outputs

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the notebook
outputsYesNew outputs array
cell_indexYesIndex of the cell

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It merely states the tool allows setting cell outputs but does not disclose behavioral traits like whether outputs are overwritten entirely, required format of the outputs array, or side effects (e.g., updating execution count). For a mutation tool, 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.

Conciseness4/5

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

The description is a single short sentence (7 words), which is concise and front-loaded with the verb and resource. However, it sacrifices specificity for brevity; every word earns its place but could be more precise.

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

Completeness2/5

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

Given the tool is a mutation with three required parameters and no output schema or annotations, the description should provide more context for correct use. It does not explain the effect (e.g., replacement, validation), expected output structure, or potential errors, leaving significant gaps for an AI agent.

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

Parameters3/5

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

Schema description coverage is 100%, with each parameter documented clearly (path, outputs, cell_index). The description adds no additional meaning beyond the schema, so a baseline score of 3 is appropriate.

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

Purpose4/5

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

The description uses 'direct manipulation and setting of cell outputs', which clearly indicates the tool modifies notebook cell outputs. It distinguishes from siblings like notebook_read_cell_output (read-only) and notebook_clear_cell_outputs (clear). However, 'direct manipulation' is slightly vague; a more specific verb like 'replace' would improve precision.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as notebook_edit_cell (for editing source) or notebook_clear_cell_outputs (for clearing). No context about prerequisites, conditions, or use cases is given.

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

notebook_edit_metadataC

Updates the top-level notebook metadata

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the notebook
metadataYesNew metadata object

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It only says 'Updates', which implies mutation, but does not disclose whether the update is a full replacement or merge, what permissions are required, whether changes are reversible, or what side effects occur (e.g., clearing existing metadata). For a mutation tool, 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.

Conciseness4/5

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

The description is a single, concise sentence with no wasted words. It is front-loaded and clear. However, it is so brief that it omits needed behavioral details, but conciseness is about efficiency, not completeness.

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

Completeness2/5

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

Given the tool has 2 parameters (including a nested object), no output schema, many sibling tools, and no annotations, the description is insufficient. It does not explain what the metadata object should contain, if it is a full replacement, or what the response looks like. A mutation tool with this complexity requires more detail.

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

Parameters3/5

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

Schema description coverage is 100% (both parameters have descriptions). The description adds 'top-level' to clarify the scope, which is useful but not extensive. The metadata parameter is described as 'New metadata object' in the schema, and the description does not add structural or format details beyond that. Baseline 3 is appropriate as the schema already does the heavy lifting.

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

Purpose4/5

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

The description 'Updates the top-level notebook metadata' clearly states the verb (updates) and resource (notebook metadata), distinguishing it from sibling tools like notebook_read_metadata (read) and notebook_edit_cell_metadata (cell-level). It is specific enough to convey the scope, though it could benefit from mentioning what 'top-level' includes (e.g., kernel, language).

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like notebook_edit_cell_metadata or notebook_read_metadata. There are no exclusions, prerequisites, or context about when updating top-level metadata is appropriate.

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

notebook_exportA

Exports the notebook to another format (e.g., python, html) using nbconvert

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the notebook
formatYesExport format
output_pathNoPath for the exported file

TDQS

A3.5/5.0
Behavior2/5

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 mentions 'using nbconvert' but does not disclose whether the export is asynchronous, whether it overwrites existing files, what happens when output_path is omitted, or what the return value is. Essential behavioral traits are missing.

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

Conciseness5/5

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

A single sentence that is front-loaded with the action and method. Every word serves a purpose; there is no redundancy or verbosity. The structure is optimal for quick comprehension.

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

Completeness3/5

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

Given the tool's simplicity (3 parameters, no output schema, no annotations), the description is adequate but not fully complete. It fails to mention error handling, prerequisites (nbconvert), or the behavior of the optional output_path parameter. It covers the core purpose but leaves gaps for an agent.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. The description adds minimal value beyond the schema: it gives examples of formats (python, html) which align with the enum, but does not explain the semantics of output_path or the behavior when it is absent. No additional meaning is provided.

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

Purpose5/5

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

The description uses a specific verb ('Exports') and resource ('notebook') with a clear target format. It distinguishes this tool from all sibling notebook tools, which are focused on editing, reading, or managing cells rather than exporting.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus alternatives. While it is the only export tool among siblings, the description does not state when not to use it or mention any prerequisites (e.g., nbconvert installation). Usage context is implied but not spelled out.

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

notebook_get_cell_countB

Returns the total number of cells

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the notebook

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It only states what the tool returns, omitting information such as whether it requires an open notebook, counts all cell types, or has any side effects. This is insufficient for an agent to understand 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.

Conciseness4/5

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

The description is extremely concise (6 words) and front-loaded, earning its place by stating the core purpose. However, it is perhaps too minimal, lacking details that could be added without significant verbosity. Still, it is not wasteful.

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

Completeness3/5

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

Given the tool's simplicity (one parameter, simple return value), the description is minimally adequate. It states the return value but does not clarify the data type, edge cases (e.g., empty notebook), or error handling. Without an output schema, more detail would improve completeness.

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

Parameters3/5

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

Schema coverage is 100% (the 'path' parameter is described as 'Path to the notebook'). The description adds no extra meaning beyond the schema, so it meets the baseline of 3. It does not elaborate on path format, validation, or error cases.

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

Purpose5/5

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

The description 'Returns the total number of cells' clearly states the verb (returns) and resource (total number of cells), distinguishing it from sibling tools like notebook_read (returns content) or notebook_get_info (returns metadata). It is specific and unambiguous.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool vs alternatives. For example, it does not mention that this is a lightweight operation for getting a count without fetching the full notebook, nor does it state any prerequisites or limitations.

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

notebook_get_infoB

Retrieves general information (cell count, metadata, kernel, language info)

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the notebook

TDQS

B3.1/5.0
Behavior2/5

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

No annotations exist, so the description must fully disclose behavioral traits. It states the tool retrieves information, implying a read operation, but does not explicitly confirm it is non-destructive, safe to call multiple times, or if any permissions are needed. The lack of clarity on side effects or limitations reduces transparency.

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

Conciseness4/5

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

The description is a single sentence that is clear and to the point. It front-loads the key information (what the tool does and what data it returns). While it could be slightly more structured (e.g., bullet points), it remains efficient and avoids unnecessary words.

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

Completeness2/5

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

The tool has a simple one-parameter schema with no output schema and no annotations. The description is vague about 'general information'—it lists examples but does not specify the exact structure of the response. Given the lack of supplementary structured data, the description should provide more detail on return format or limits to be considered complete.

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

Parameters3/5

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

The input schema provides a description for the single 'path' parameter ('Path to the notebook'), achieving 100% schema coverage. The description does not add any additional meaning or constraints (e.g., supported formats, absolute vs relative paths). Baseline score of 3 is appropriate as the schema already handles the parameter adequately.

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

Purpose5/5

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

The description clearly states the tool retrieves general information and lists specific examples like cell count, metadata, kernel, and language info. This distinguishes it from siblings like notebook_get_cell_count (only count) and notebook_read_metadata (only metadata). The verb 'Retrieves' and resource 'general information' are specific and unambiguous.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus its many siblings (e.g., notebook_read, notebook_get_cell_count). There is no mention of prerequisites, alternatives, or scenarios where this tool is preferred over others. The agent is left to infer usage from the name alone.

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

notebook_get_outlineB

Produces an outline showing cell numbers with major headings/functions and line counts

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the notebook

TDQS

B3.3/5.0
Behavior2/5

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

No annotations exist, so the description carries full burden for behavioral disclosure. It only states the output but does not confirm whether the operation is read-only, mention any side effects, or describe performance or authorization needs. The name implies a read operation, but the description does not explicitly state safety.

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

Conciseness5/5

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

A single sentence of 11 words that directly states the tool's purpose. Every word is informative, and the key output elements are front-loaded. No fluff or redundancy.

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

Completeness3/5

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

The description lists the outline components (cell numbers, headings, line counts) but does not specify the output format (e.g., text, JSON, structured list). With no output schema, the agent lacks complete information about what to expect, though the tool is simple enough that the description is minimally adequate.

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

Parameters3/5

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

Schema description coverage is 100% for the single path parameter, and the description adds no additional meaning about the parameter. Baseline is appropriate since the schema already documents the parameter adequately.

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

Purpose5/5

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

Description clearly states the tool produces an outline with cell numbers, headings/functions, and line counts. This is a specific verb ('produces') and resource ('outline of a notebook'), and it distinguishes the tool from siblings like notebook_read or notebook_get_info by specifying the unique output type.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. The description does not mention prerequisites, context, or scenarios where notebook_get_outline is preferred over other notebook-related tools. The agent is left to infer usage from the name alone.

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

notebook_get_server_path_contextB

Provides detailed server path configuration (allowed_roots, OS path style, project directory validation, and path construction guidance)

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to analyze

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are provided, so the description must disclose behavioral traits. While it lists the type of information retrieved (allowed_roots, path style, validation, guidance), it does not explicitly state if the tool performs any side effects, requires authentication, or has constraints (e.g., path must exist). The description adds some insight but could be more transparent about side effects or safety.

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

Conciseness4/5

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

The description is a single sentence that is front-loaded with 'Provides detailed server path configuration', immediately conveying purpose. It lists key specifics concisely without unnecessary words. It is appropriately sized for the tool's complexity.

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

Completeness3/5

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

Given the single required parameter and no output schema, the description provides adequate context that the tool returns configuration details. However, it does not specify the return format (e.g., JSON structure) or any potential errors. For a highly specialized tool among many notebook siblings, it covers the main purpose but lacks completeness on usage outcomes.

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

Parameters3/5

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

The schema has 100% coverage for the single 'path' parameter, providing a basic description 'Path to analyze'. The tool description does not add further detail about the path parameter (e.g., format, expected location, relative vs absolute). Since schema coverage is high, baseline is 3, and the description does not elevate that.

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

Purpose4/5

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

The description clearly states the tool provides detailed server path configuration, listing specific aspects like allowed_roots, OS path style, project directory validation, and path construction guidance. This effectively distinguishes it from sibling tools (e.g., notebook_read, notebook_validate) which deal with notebook content or validation, not server path context.

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

Usage Guidelines3/5

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

The description implies this tool is for gaining server path insights, but it does not explicitly state when to use it versus alternatives (e.g., when path errors occur or for troubleshooting). There is no guidance on prerequisites or when not to use this tool. The context from sibling tools is clear, but the description itself lacks explicit usage context.

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

notebook_merge_cellsB

Merges a cell with the cell immediately following it

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the notebook
cell_indexYesIndex of the first cell to merge

TDQS

B3.2/5.0
Behavior2/5

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 the merge operation but does not disclose what happens to cell contents, metadata, or the second cell after merging. There is no mention of side effects, data destruction, or error conditions, leaving significant behavioral ambiguity.

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

Conciseness5/5

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

The description is a single sentence of 10 words with no filler. It is front-loaded and every word carries meaning. This is an example of ideal conciseness for a simple operation.

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

Completeness2/5

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

For a mutation tool with no output schema, the description lacks crucial details: what happens to cell content (concatenation? overwriting?), whether cell types must match, error scenarios (e.g., invalid index, last cell), and any side effects on metadata. The description is too terse to fully guide an agent.

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

Parameters3/5

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

Schema description coverage is 100% (both parameters have descriptions). The tool description adds no additional meaning beyond the schema—it rephrases 'first cell to merge' which is already in the property description. Baseline score 3 is appropriate since the schema sufficiently documents parameters.

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

Purpose5/5

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

The description 'Merges a cell with the cell immediately following it' uses a specific action verb ('merges') and clearly identifies the resource (cell). It distinguishes this tool from siblings like notebook_split_cell, notebook_move_cell, and notebook_duplicate_cell by specifying the adjacent merging behavior.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as splitting or moving cells. It does not mention prerequisites (e.g., cell types must be compatible) or when merging is not advisable. The usage context is completely absent.

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

notebook_move_cellC

Moves a cell to a different position

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the notebook
to_indexYesTarget index for the cell
from_indexYesCurrent index of the cell

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are present, so the description must carry the full burden of behavioral disclosure. The description only states 'Moves a cell', which implies mutation but provides no details about side effects, order of operations, error handling, or whether the notebook is auto-saved. This is insufficient 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.

Conciseness4/5

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

The description is a single sentence, making it very concise. It is front-loaded with the core action. However, it is slightly too terse for a tool that requires clear behavioral context; a bit more detail would improve understandability without sacrificing conciseness.

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

Completeness2/5

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

Given the complexity of a cell move operation (with three required parameters, no output schema, and many sibling tools), the description is incomplete. It does not explain index semantics (0-based?), behavior when indices are out of bounds, whether other cells shift, or what the return value indicates. More context is needed for correct usage.

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

Parameters3/5

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

Schema description coverage is 100%, so the input schema already explains the three parameters (path, from_index, to_index). The tool description adds no additional meaning beyond what the schema provides. Baseline 3 is appropriate given full coverage.

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

Purpose4/5

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

The description clearly states 'Moves a cell to a different position', which is a specific verb and resource. It distinguishes this tool from sibling tools like notebook_add_cell or notebook_delete_cell. However, it lacks nuance about the type of position (e.g., index-based) and the scope within the notebook.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like notebook_duplicate_cell or notebook_edit_cell. There are 28 sibling tools, and the description does not offer any context about prerequisites, limitations, or when not to use this tool.

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

notebook_readC

Reads an entire notebook and returns its structure as a dictionary

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the notebook to read

TDQS

C2.9/5.0
Behavior3/5

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

With no annotations provided, the description fully bears the transparency burden. It correctly conveys a read-only operation ('Reads'), but omits behavioral details like whether the operation is atomic, what happens if the path is invalid, or if there are performance implications for large notebooks. The description is truthful but minimal.

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

Conciseness3/5

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

The single-sentence description is very concise but lacks critical usage and behavioral details. It is front-loaded with the verb 'Reads', but goes too far in minimalism, omitting context that would help without adding substantial length.

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

Completeness2/5

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

Given the large sibling toolset (31 tools) and the fact that there is no output schema, the description should clarify the return value more thoroughly (e.g., keys in the dictionary, cell types included). It also provides no guidance on read-only safety or expected file format. It is incomplete for a tool with these contextual demands.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents the path parameter. The description adds no additional meaning beyond what the schema provides (e.g., path format, validity constraints, or tips). Baseline 3 is appropriate.

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

Purpose4/5

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

The description clearly states the verb ('Reads'), resource ('entire notebook'), and return structure ('dictionary'). It distinguishes itself from siblings like notebook_read_cell by specifying 'entire notebook'. However, it could be more precise about what 'structure' means (e.g., cells, metadata).

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like notebook_get_info or notebook_read_metadata. It does not mention prerequisites (e.g., notebook must exist) or when reading the entire notebook is appropriate versus reading individual cells.

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

notebook_read_cellB

Reads the source content of a specific cell

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the notebook
cell_indexYesIndex of the cell to read

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses the core behavior—reading source content—which implies a non-destructive operation, but does not mention error cases, return format, or any side effects. For a simple read operation, this is adequate but not rich.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that directly states the action and object. Every word contributes value, making it concise and well-structured.

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

Completeness4/5

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

Given the tool's simplicity (2 params, no output schema), the description is sufficiently complete to convey the purpose. It does not detail edge cases or return value format, but for a straightforward read operation it is adequate.

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

Parameters3/5

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

The schema already provides 100% coverage for both parameters (path, cell_index). The description adds little beyond the schema, only framing that it reads source content from a specific cell, which does not meaningfully enhance parameter semantics.

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

Purpose4/5

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

The description clearly states the tool reads source content from a specific cell, using a specific verb and resource. It distinguishes from sibling tools like notebook_read_cell_output and notebook_read_cell_metadata by specifying 'source content', though it does not explicitly name alternatives.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as notebook_read, notebook_read_cell_output, or notebook_read_cell_metadata. The description implies usage based on the tool name but gives no exclusions or context.

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

notebook_read_cell_metadataC

Reads the metadata of a specific cell

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the notebook
cell_indexYesIndex of the cell

TDQS

C2.7/5.0
Behavior2/5

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 a read operation but does not disclose behavioral traits like whether it modifies the notebook, requires permissions, or has side effects. The phrase 'reads the metadata' implies idempotency, but it lacks details on error behavior or format of metadata.

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

Conciseness4/5

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

The description is a single, straightforward sentence with no wasted words. It is appropriately short for a simple tool, though it could be slightly more descriptive without losing conciseness.

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

Completeness3/5

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

Given the tool's simplicity and lack of output schema, the description is adequate but minimal. It does not explain what metadata fields might be returned (e.g., tags, cell type), nor does it address boundary cases like invalid indices. The presence of many sibling tools raises the need for more context, yet the description remains bare.

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

Parameters3/5

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

Schema coverage is 100%, so both parameters (path, cell_index) are described, albeit minimally. The description does not add meaning beyond the schema: it does not specify what constitutes a valid cell_index (zero-based?) or path format. Baseline 3 applies as schema covers parameters fully but description adds little.

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

Purpose3/5

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

The title is null, but the name and description clearly indicate a read operation for cell metadata, specifying verb (read) and resource (cell metadata). However, it does not differentiate from sibling tools like notebook_read_cell (which may return content) or notebook_edit_cell_metadata; the description is generic.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as notebook_read_cell for content or notebook_edit_cell_metadata for mutations. No context about prerequisites (e.g., notebook must exist) or when not to use it is given.

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

notebook_read_cell_outputB

Reads the output list of a specific code cell

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the notebook
cell_indexYesIndex of the cell

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the burden. It correctly indicates a read operation (no destruction), but lacks details on whether the cell must have been executed, what happens if output is empty, any size limits, or whether it retrieves all output types (text, images, etc.). Decent but not comprehensive.

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

Conciseness5/5

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

Extremely concise: a single sentence that immediately conveys the action, target, and scope. No wasted words or redundant information.

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

Completeness3/5

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

Given no output schema and moderate complexity (reading potentially large output from a specific cell), the description is minimal. It explains enough to use the tool at a basic level but omits behavioral details an agent might need (e.g., return format, execution state requirements). Just adequate.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description adds no extra meaning beyond the schema property descriptions. For a simple read tool with only two parameters, this is acceptable but does not add value.

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

Purpose4/5

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

The description clearly states 'Reads the output list of a specific code cell', using specific verb+resource to distinguish reading output from other cell operations. However, it does not emphasize how it differs from notebook_read_cell (which likely reads the cell source/input) or notebook_edit_cell_output, and the large sibling set makes this ambiguity notable.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like notebook_read_cell, notebook_edit_cell_output, or notebook_read_cell_metadata. The agent must infer that 'output' differentiates it from reading the cell's source code, but no explicit context, prerequisites (e.g., cell must be executed), or exclusions are provided.

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

notebook_read_metadataA

Reads the top-level notebook metadata

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the notebook

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden of conveying safety. The verb 'Reads' indicates a non-mutating operation, but the description does not disclose what specific metadata is returned, potential errors, or any expectations about the notebook path. The read-only nature is implied, but additional context about the return value would improve transparency.

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

Conciseness5/5

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

The description is a single, clear sentence with no wasted words. It immediately conveys the tool's purpose and scope without redundancy.

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

Completeness3/5

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

The tool is simple with one fully documented parameter, but there is no output schema and the description does not explain what the tool returns (e.g., a metadata dictionary). Given the absence of return-value documentation, the description is adequate but leaves the agent to infer the output format from the tool name and sibling context.

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

Parameters3/5

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

The schema fully describes the single parameter 'path' as 'Path to the notebook' (100% coverage). The description adds no parameter-specific meaning beyond the tool's overall scope, so the baseline of 3 applies.

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

Purpose5/5

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

The description uses a specific verb ('Reads') and resource ('top-level notebook metadata'), clearly distinguishing it from sibling tools like notebook_read_cell_metadata and notebook_edit_metadata. The scope 'top-level' is particularly informative.

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

Usage Guidelines3/5

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

The description implies usage through the word 'top-level', which hints that this is for notebook-level metadata rather than cell-level metadata. However, it does not explicitly state when to use this tool versus alternatives like notebook_read_cell_metadata.

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

notebook_renameB

Renames/moves a notebook file from one path to another

ParametersJSON Schema
NameRequiredDescriptionDefault
new_pathYesNew path for the notebook
old_pathYesCurrent path of the notebook

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden. It only states the operation (rename/move) without disclosing behavioral traits like whether the move is across directories, side effects on content, permissions needed, or reversibility. This is insufficient 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.

Conciseness4/5

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

The description is a single, efficient sentence with no wasted words. It is front-loaded and easy to parse. However, it could be slightly expanded to include key behavioral details without losing conciseness.

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

Completeness2/5

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

For a simple rename tool with 2 parameters, no output schema, and no annotations, the description is too minimal. It does not explain whether the move is allowed across directories, if it updates references, or any other contextual details needed for safe usage.

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

Parameters3/5

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

Schema description coverage is 100% with clear param descriptions ('Current path of the notebook', 'New path for the notebook'). The tool description adds no extra meaning beyond 'from one path to another', which is already implied. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action (rename/move) and the resource (notebook file) with the path change. It is specific and distinguishes from siblings like notebook_create, notebook_delete, etc., which do not rename.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, nor does it mention prerequisites, constraints, or when not to use it. The agent is left to infer usage from the name alone.

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

notebook_split_cellB

Splits a cell into two at a specified line number

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the notebook
cell_indexYesIndex of the cell to split
line_numberYesLine number at which to split

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It does not explain what happens to the original cell (replaced? modified?), whether the split preserves cell metadata, or if there are any side effects on cell indices. This is a mutation operation, and the lack of behavioral detail is a significant gap.

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

Conciseness4/5

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

The description is a single, clear sentence with no wasted words. However, it could include additional context without becoming overly verbose (e.g., specifying that the cell content is split at the line boundary).

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

Completeness2/5

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

For a mutation tool with 3 required parameters and no output schema, the description is incomplete. It does not explain the result (e.g., returns the updated notebook), reversibility, or constraints (e.g., line_number must be within cell line count). The sibling tool set includes many cell operations, so more context would help the agent choose correctly.

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

Parameters3/5

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

Schema description coverage is 100% (all three parameters have descriptions). The description reiterates the role of line_number but adds no new meaning about path or cell_index. Baseline 3 is appropriate; the description does not degrade or improve upon the schema.

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

Purpose5/5

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

The description clearly states the action ('splits a cell') and the resource ('cell') with the key parameter ('at a specified line number'). It distinguishes this tool from siblings like notebook_merge_cells (combines cells) and notebook_add_cell (adds new cells) by focusing on splitting an existing cell at a line boundary.

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

Usage Guidelines2/5

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

No explicit guidance is given on when to use this tool versus alternatives like notebook_merge_cells or notebook_delete_cell. There are no prerequisites or conditions (e.g., the cell must contain multiple lines) mentioned. The usage context is only implied by the description.

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

notebook_validateB

Validates the notebook structure against the nbformat schema

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the notebook

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description must carry full behavioral disclosure. It only says 'validates against the schema' but does not state whether the tool modifies the notebook, what output it returns (e.g., boolean, error list), or how it handles invalid structures. This lack of detail limits transparency.

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

Conciseness4/5

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

The description is a single sentence that is concise and front-loaded with the verb 'validates'. However, it may be under-specified, sacrificing completeness for brevity. Still, no unnecessary words are present.

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

Completeness2/5

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

Given the tool has no output schema, no annotations, and one parameter, the description is incomplete. It fails to explain what the validation result looks like, whether the tool is read-only, or how it fits among the many sibling notebook tools. The agent lacks essential context to invoke the tool correctly.

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

Parameters3/5

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

The input schema covers the single parameter 'path' with a description, achieving 100% schema coverage. The tool description adds no additional meaning to the parameter. Baseline 3 is appropriate since the schema already documents the parameter adequately.

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

Purpose5/5

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

The description clearly states the tool 'validates the notebook structure against the nbformat schema', which is a specific verb and resource. This distinguishes it from sibling tools that create, read, edit, or delete notebooks, making the purpose unambiguous.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like notebook_read or notebook_get_info. It does not mention prerequisites, suitable contexts, or when not to use it. For a validation tool, this is a significant gap.

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.

  1. 29 tool updatesv1.0.0
    • First observednotebook_add_cell
    • First observednotebook_bulk_add_cells
    • First observednotebook_change_cell_type
    • First observednotebook_clear_all_outputs
    • First observednotebook_clear_cell_outputs
    • First observednotebook_create
    • First observednotebook_delete
    • First observednotebook_delete_cell
    • First observednotebook_duplicate_cell
    • First observednotebook_edit_cell
    • First observednotebook_edit_cell_metadata
    • First observednotebook_edit_cell_output
    • First observednotebook_edit_metadata
    • First observednotebook_export
    • First observednotebook_get_cell_count
    • First observednotebook_get_info
    • First observednotebook_get_outline
    • First observednotebook_get_server_path_context
    • First observednotebook_merge_cells
    • First observednotebook_move_cell
    • First observednotebook_read
    • First observednotebook_read_cell
    • First observednotebook_read_cell_metadata
    • First observednotebook_read_cell_output
    • First observednotebook_read_metadata
    • First observednotebook_rename
    • First observednotebook_search
    • First observednotebook_split_cell
    • First observednotebook_validate

TDQS

B3.4/5.0
Disambiguation5/5

Every tool targets a distinct aspect of notebook manipulation: whole notebook, individual cells, metadata, outputs, or file operations. There is no overlap; even similar-sounding tools like notebook_read and notebook_read_cell are clearly differentiated by scope.

Naming Consistency5/5

All tools follow the consistent pattern 'notebook_verb_noun', with verbs like create, delete, read, edit, and nouns like cell, metadata, output. The few plural nouns (cells, outputs) are grammatically correct and do not break the pattern.

Tool Count2/5

With 29 tools, the set is beyond the typical 3-15 well-scoped range and exceeds the 25+ threshold for 'too many'. While each tool is justified, the count feels heavy for a notebook manipulation server, and some tools (e.g., notebook_edit_cell_output vs notebook_edit_cell) could be consolidated.

Completeness5/5

The tool set covers all major notebook lifecycle operations: CRUD for notebooks and cells, metadata editing, output management, validation, export, search, and outline generation. There are no obvious gaps for the intended domain of notebook file manipulation.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    A Model Context Protocol server that enables AI assistants like Claude to perform Python development tasks through file operations, code analysis, project management, and safe code execution.
    9
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    A Model Control Protocol (MCP) server that enables remote programmatic control of Jupyter notebooks, allowing AI assistants and applications to create, edit, and execute notebook cells via SSE protocol.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that connects to existing IPython kernels, allowing Claude to execute code in a shared persistent environment with your IDE.
    2
    MIT

Latest Blog Posts

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/mstampfer/claude-code-notebook-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server