Skip to main content
Glama

AIX - AI eXtensions for quantitative development

Collection of MCP servers, agents, and extensions for quantitative development/research with Qubx.

XLMCP - Jupyter MCP Server

XLMCP gives Claude Code tools to interact with Jupyter notebooks running on JupyterHub or a standalone Jupyter Server — read/edit cells, manage kernels, and execute code.

Note: knowledge/RAG search and project-management tools were moved out of xlmcp (to the crtx-server project) as of v0.5.0. xlmcp is now a focused Jupyter server.

Total Tools: 17 (Jupyter notebook, kernel, and execution operations)

Related MCP server: mcp-server-jupyter

Quick Reference

Jupyter Tools (17)

# - Notebook operations
await jupyter_list_notebooks(directory="")
await jupyter_find_notebook(filename)
await jupyter_get_notebook_info(notebook_path)
await jupyter_read_cell(notebook_path, cell_index)
await jupyter_read_all_cells(notebook_path)
await jupyter_append_cell(notebook_path, source, cell_type="code")
await jupyter_insert_cell(notebook_path, cell_index, source, cell_type="code")
await jupyter_update_cell(notebook_path, cell_index, source)
await jupyter_delete_cell(notebook_path, cell_index)

# - Kernel operations
await jupyter_list_kernels()
await jupyter_start_kernel(kernel_name="python3")
await jupyter_stop_kernel(kernel_id)
await jupyter_restart_kernel(kernel_id)
await jupyter_interrupt_kernel(kernel_id)

# - Execution
await jupyter_execute_code(kernel_id, code, timeout=None)
await jupyter_connect_notebook(notebook_path)
await jupyter_execute_cell(notebook_path, cell_index, timeout=None)

Connecting to a notebook's kernel

jupyter_connect_notebook resolves the kernel for a notebook by normalised path match (absolute / server-relative / VS Code -jvsc-<uuid> synthetic paths all map to the same notebook), so it reuses the live kernel instead of spawning duplicates. Its status:

  • existing — one live kernel matched; use its kernel_id.

  • ambiguous — several matched; pick a kernel_id from candidates (or stop the extras).

  • created — none matched, a new session was made.

Every response includes attach_url — paste it into VS Code → Select Kernel → Existing Jupyter Server to join the same kernel from the editor (the token authenticates directly to the single-user server, bypassing the Hub login dialog).

Installation

pip install xlmcp
# - or using uv
uv pip install xlmcp

From Source

cd ~/devs/aix
uv pip install -e .

Configuration

Environment Setup

  1. Copy env.example to .env:

cp env.example .env
  1. Edit .env and configure:

Jupyter Server (Required):

JUPYTER_SERVER_URL=http://localhost:8888
JUPYTER_API_TOKEN=your-token-here
JUPYTER_NOTEBOOK_DIR=~/
JUPYTER_ALLOWED_DIRS=~/projects,~/devs,~/research

MCP Server (Optional, defaults provided):

MCP_TRANSPORT=stdio
MCP_HTTP_PORT=8765
MCP_MAX_OUTPUT_TOKENS=25000

Get a Jupyter API Token

  • JupyterHub: Admin panel → User → New API Token

  • Jupyter Server: jupyter server list shows the token

Global Setup (Multi-Project Environments)

For users with multiple projects and virtual environments:

1. Install xlmcp Globally

# Install in system Python (not in project venvs)
pip install xlmcp
# or: /usr/bin/python -m pip install xlmcp

2. Create Central Configuration

mkdir -p ~/.aix/xlmcp
cp env.example ~/.aix/xlmcp/.env
nano ~/.aix/xlmcp/.env   # Add your JUPYTER_API_TOKEN

xlmcp finds config in this order:

  1. .env in the current directory (project-specific override)

  2. ~/.aix/xlmcp/.env (global default) ← Recommended

  3. Environment variables

3. Register with Claude Code

cd /path/to/project
source .venv/bin/activate            # if using a venv
claude mcp add --transport stdio xlmcp -- /usr/bin/python -m xlmcp.server

Replace /usr/bin/python with your system Python (which python outside any venv).

Verify:

claude mcp list
# Should show: xlmcp: /usr/bin/python -m xlmcp.server - ✓ Connected

Simple Setup (Single Project / Quick Start)

pip install xlmcp
cp env.example .env
nano .env                            # Add JUPYTER_API_TOKEN
claude mcp add --transport stdio xlmcp -- python -m xlmcp.server

Or with environment variables (no .env file needed):

claude mcp add \
  -e JUPYTER_SERVER_URL=http://localhost:8888 \
  -e JUPYTER_API_TOKEN=your-token \
  --transport stdio \
  xlmcp \
  -- python -m xlmcp.server

The -- before python separates MCP options from the server command.

XLMCP CLI

xlmcp start      # Start server in background
xlmcp status     # Show server status
xlmcp ls         # List available tools
xlmcp kernels    # List active Jupyter kernels
xlmcp restart    # Restart server
xlmcp stop       # Stop server

Usage Examples

> Connect to my notebook and execute the first cell
> List all notebooks in research/momentum/
> Execute code: print("Hello from Jupyter!")
> Restart the kernel for research/analysis.ipynb

Transport Modes

stdio (default) — for local Claude Code:

MCP_TRANSPORT=stdio

http — for remote access:

MCP_TRANSPORT=http
MCP_HTTP_PORT=8765
claude mcp add xlmcp --transport http http://your-server:8765

Security

  • Path validation: only allows access to configured directories

  • Token authentication: uses Jupyter API tokens

  • Timeout limits: prevents runaway executions

Documentation

License

MIT

Available Tools

33 tools
jupyter_append_cellB

Append a new cell to the end of a notebook.

ParametersJSON Schema
NameRequiredDescriptionDefault
notebook_pathYesPath to the notebook
sourceYesCell content (code or markdown)
cell_typeNoType of cell - 'code' or 'markdown' (default: code)code

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided; the description only says 'Append' but does not disclose whether the notebook must be connected, if it modifies the file immediately, or any side effects. For a mutation operation, more behavioral context is needed.

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?

Single, front-loaded sentence with no wasted words. However, it is too terse for a tool that modifies state; some expansion would be beneficial.

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 an output schema, return value details are not needed. However, the description lacks behavioral context, usage guidelines, and prerequisites, making it incomplete for reliable tool invocation.

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 covers all 3 parameters with descriptions. The tool description adds no additional value beyond the schema, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb (append), resource (cell), and location (end of notebook). It effectively distinguishes from sibling tools like jupyter_insert_cell, jupyter_delete_cell, etc.

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 (e.g., insert_cell). No mention of prerequisites or context.

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

jupyter_connect_notebookA

Connect to a notebook's kernel (create session if needed).

This gets an existing kernel session for the notebook or creates a new one. Use the returned kernel_id for subsequent execute_code calls.

ParametersJSON Schema
NameRequiredDescriptionDefault
notebook_pathYesPath to the notebook

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It explains the main behavior (connect or create session) and the return value. However, it does not disclose potential side effects, error conditions, or authentication requirements, leaving gaps in transparency.

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

Conciseness5/5

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

The description is very concise, consisting of two efficient sentences. Every sentence adds value: the first states the purpose, the second explains the return value usage. No wasted words or redundancy.

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 has a single parameter and an output schema (not shown), the description is largely complete. It covers the core purpose, usage flow, and output usage. Minor omissions include error scenarios and path specifics, but overall it is sufficient for a simple tool.

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 describes notebook_path (100% coverage). The description does not add any additional meaning beyond what is in the schema, such as path format or validation rules. 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 clearly states the tool connects to a notebook's kernel, creating a session if needed. It uses specific verbs and explains the return value for subsequent execute_code calls. However, it does not explicitly differentiate from sibling tools like jupyter_start_kernel, which serves a different but related purpose.

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 indicates when to use the tool (to get a kernel session for a notebook) and what to do with the result (use kernel_id for execute_code). It does not mention when not to use it or provide alternatives, such as using jupyter_start_kernel for standalone kernel operations.

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

jupyter_delete_cellB

Delete a cell from the notebook.

ParametersJSON Schema
NameRequiredDescriptionDefault
notebook_pathYesPath to the notebook
cell_indexYesIndex of the cell to delete (0-based)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

Without annotations, the description must disclose behavioral traits. It only states 'delete', failing to explain whether deletion is irreversible, how cell indices shift, or any prerequisites like an active kernel.

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 brief with no unnecessary words. It is front-loaded and immediately informative, though it could benefit from a bit more detail 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 the presence of an output schema, the description is minimally adequate but lacks behavioral context such as return value or side effects.

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 input schema already describes both parameters fully. The description adds no additional meaning beyond the schema, meeting the baseline expectation but not exceeding it.

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 'Delete a cell from the notebook' is a specific verb+resource combination that clearly states the tool's action. It effectively distinguishes from sibling tools like jupyter_insert_cell and jupyter_update_cell.

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. For example, it does not mention cases where deleting a cell is preferred over clearing its content or using other cell manipulation tools.

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

jupyter_execute_cellB

Execute a specific cell in a notebook.

This will:

  1. Connect to the notebook's kernel (or create one)

  2. Execute the cell's code

  3. Save outputs to notebook file (visible in VS Code)

  4. Return the execution outputs

ParametersJSON Schema
NameRequiredDescriptionDefault
notebook_pathYesPath to the notebook
cell_indexYesIndex of the cell to execute (0-based)
timeoutNoExecution timeout in seconds (default: 300)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses key steps like connecting to or creating a kernel, saving outputs to the file, and returning outputs. However, it does not mention error handling, permissions, or concurrency implications.

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 brief, using a single sentence followed by a numbered list. Every sentence provides necessary information without redundancy, making it highly concise and well-structured.

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 presence of an output schema and complete parameter descriptions, the description covers the main flow. However, it lacks details on edge cases like timeout handling, kernel failure, or synchronous behavior, leaving some gaps.

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 all parameters with descriptions, achieving 100% coverage. The tool description does not add meaning beyond the schema, such as clarifying accepted formats or constraints, so baseline score applies.

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 executes a specific cell in a notebook and lists the steps involved. It distinguishes from siblings like jupyter_execute_code and jupyter_read_cell by focusing on cell-level execution, but does not explicitly contrast with them.

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

Usage Guidelines2/5

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

The description does not provide explicit guidance on when to use this tool versus alternatives such as jupyter_execute_code. It lacks when-not conditions or context for choosing this tool over others.

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

jupyter_execute_codeB

Execute Python code in a running kernel.

ParametersJSON Schema
NameRequiredDescriptionDefault
kernel_idYesID of the kernel to execute in
codeYesPython code to execute
timeoutNoExecution timeout in seconds (default: 300)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided, so the description carries full burden. It does not disclose important behaviors such as whether execution is synchronous, side effects, error handling, or kernel state requirements.

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 with no extraneous words. It is concise, but could benefit from additional context 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?

Despite having an output schema, the description does not mention return values, errors, or prerequisites like kernel state. The tool is complex (code execution) and the description is too minimal to be complete.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents each parameter. The description adds no additional parameter meaning beyond the schema, resulting in a baseline score.

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 (execute) and resource (code in a running kernel), and it distinguishes from sibling tools like jupyter_execute_cell and jupyter_interrupt_kernel.

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 vs alternatives like jupyter_execute_cell, nor when not to use it. The description lacks context for appropriate usage.

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

jupyter_find_notebookA

Find notebooks by filename.

Useful when you know the notebook name but not the full path.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYesNotebook filename to search for (e.g., "analysis.ipynb")

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/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 function without disclosing behavioral traits like search scope, case sensitivity, or number of results. The description is minimal and lacks detail.

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 very concise, consisting of two short sentences with the main action front-loaded. Every word earns its place.

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, the description is mostly complete. It could mention that it returns matching notebook paths or similar, but since an output schema likely exists, this is not critical.

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% and the schema already describes the 'filename' parameter well. The description adds no further semantic value beyond hinting at the use case, 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.

Purpose5/5

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

Description clearly states 'Find notebooks by filename', directly stating the verb and resource. This distinguishes it from sibling tools like jupyter_list_notebooks which lists all notebooks.

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

Usage Guidelines4/5

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

The description includes 'Useful when you know the notebook name but not the full path', providing a clear when-to-use scenario. However, it does not explicitly mention alternatives or when not to use it, but the guidance is sufficient for this simple tool.

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

jupyter_get_notebook_infoA

Get information about a notebook including cell counts and kernel info.

ParametersJSON Schema
NameRequiredDescriptionDefault
notebook_pathYesPath to the notebook (relative to Jupyter root)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

No annotations provided. Description indicates a read operation but does not explicitly state it is non-destructive, nor mentions permissions or error conditions.

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 with no unnecessary words. Clearly structured and front-loaded.

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

Completeness4/5

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

For a simple, read-only tool with one parameter and an output schema (though not provided), the description adequately sets expectations for return values.

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 single parameter's schema has 100% coverage and clear description. The tool description adds no further semantics beyond listing what info is returned.

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 it retrieves information (cell counts, kernel info) from a notebook, distinguishing it from siblings that read cells or execute code.

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 guidance on when to use this tool versus alternatives like jupyter_read_all_cells or jupyter_list_notebooks. Usage is implied but not explicit.

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

jupyter_insert_cellB

Insert a new cell at a specific position in the notebook.

ParametersJSON Schema
NameRequiredDescriptionDefault
notebook_pathYesPath to the notebook
cell_indexYesPosition to insert (0-based, cells after this shift down)
sourceYesCell content (code or markdown)
cell_typeNoType of cell - 'code' or 'markdown' (default: code)code

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/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. It omits behavioral details such as that subsequent cells shift down (implied only in the schema parameter description). The description should explicitly state side effects like cell renumbering.

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, well-structured sentence that immediately conveys the core action. It is front-loaded and contains no redundant or superfluous words.

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 presence of an output schema, the description need not detail return values. However, it could briefly mention cell shifting behavior for completeness. Overall, it is adequate for a relatively simple insertion operation.

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 no extra meaning beyond the schema's parameter descriptions. It does not clarify parameter purpose or constraints beyond what the schema already provides.

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 'Insert a new cell at a specific position', which distinguishes it from the sibling 'jupyter_append_cell' that adds at the end. The verb 'Insert' and the resource 'new cell' 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?

The description provides no guidance on when to use this tool versus alternatives like 'jupyter_append_cell' or 'jupyter_update_cell'. It does not mention scenarios, prerequisites, 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.

jupyter_interrupt_kernelB

Interrupt a running kernel (stop current execution).

ParametersJSON Schema
NameRequiredDescriptionDefault
kernel_idYesID of the kernel to interrupt

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/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 fully disclose behavioral traits. It states that the tool interrupts and stops current execution but does not clarify if the kernel remains running, whether the operation is safe, if it requires specific permissions, or what side effects occur. The minimal disclosure 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.

Conciseness5/5

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

The description is a single concise sentence with no unnecessary words. It effectively communicates the core action in a front-loaded manner.

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 an output schema, the description is adequate but lacks context about the kernel's state after interruption (e.g., kernel remains idle) and when to use this tool versus other kernel management tools. It meets minimum viability but has clear gaps.

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 parameter, which already describes 'ID of the kernel to interrupt'. The description adds no extra meaning beyond the schema, so the 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 uses a specific verb 'Interrupt' and resource 'a running kernel', clearly indicating the action. It distinguishes from sibling tools like jupyter_stop_kernel or jupyter_restart_kernel by focusing on interrupting current execution rather than stopping or restarting the kernel.

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 instead of alternatives such as jupyter_stop_kernel or jupyter_restart_kernel. It does not mention prerequisites, conditions under which interruption is appropriate, or when other tools should be preferred.

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

jupyter_list_kernelsA

List all running Jupyter kernels.

Returns: JSON with list of kernels (id, name, state, connections)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

Without annotations, the description carries the full burden. It reveals the return format and confirms it's a read-only list operation. However, it lacks details about potential side effects or authentication requirements, though these are minimal for a list tool.

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 extremely concise, with two short sentences that cover the action and return value. No unnecessary words or verbosity.

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

Completeness5/5

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

For a simple list tool with no parameters and an output schema, the description provides sufficient context: it states what it does and what it returns. No additional information is needed.

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

Parameters4/5

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

The tool has zero parameters, and the description correctly includes none. Per the baseline rule for 0 params, a score of 4 is appropriate as there is no need for additional parameter documentation.

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 it lists all running Jupyter kernels, specifying the resource (kernels) and action (list). It distinguishes from sibling tools like jupyter_start_kernel or jupyter_stop_kernel, which perform different operations.

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 for checking running kernels but does not provide explicit guidance on when to use vs alternatives, such as jupyter_get_notebook_info or jupyter_start_kernel. No when-not-to-use context is given.

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

jupyter_list_notebooksA

List all Jupyter notebooks in a directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
directoryNoDirectory path relative to Jupyter root (empty for root)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses a simple read operation but omits details like whether the listing is recursive or what information is returned (e.g., names, paths). The existence of an output schema mitigates this somewhat.

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 with no unnecessary words, efficiently conveying the tool's purpose.

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

Completeness4/5

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

For a simple list tool with one parameter and an output schema, the description is mostly complete. However, it lacks specifics about recursion or output format, which would improve utility.

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 parameter 'directory', which already explains it. The description adds no additional meaning beyond the schema, meeting baseline expectations.

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 'List' and the resource 'Jupyter notebooks' with scope 'in a directory', effectively distinguishing it from siblings like jupyter_find_notebook or jupyter_get_notebook_info.

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 for listing notebooks in a directory but provides no explicit guidance on when to use versus alternatives or when not to use. Sibling tools suggest different operations, but no comparative advice is given.

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

jupyter_read_all_cellsC

Read all cells from a notebook.

ParametersJSON Schema
NameRequiredDescriptionDefault
notebook_pathYesPath to the notebook

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 for behavioral disclosure. It only states a read operation without mentioning side effects, performance implications, or details about the output format. The minimal description fails to adequately inform the agent of behavioral traits.

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 that gets directly to the point. It is appropriately front-loaded and contains no extraneous words, though it could include slightly more detail without harming 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 (one parameter, output schema exists), the description is minimally adequate but lacks nuance. It does not clarify the scope of 'all cells' or potential overhead, which could be important for large notebooks. An output schema exists, so return value explanation is not required, but additional context would strengthen 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?

The input schema has 100% description coverage for the single parameter, which already documents its purpose. The description adds no additional meaning beyond what the schema provides, so it meets the baseline of 3.

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 that the tool reads all cells from a notebook, using a specific verb and resource. While it distinguishes from the sibling tool jupyter_read_cell implicitly via naming, the description itself does not explicitly differentiate, preventing a score of 5.

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 jupyter_read_cell. The description lacks any indication of context, prerequisites, or when not to use it, leaving the agent to infer from tool names.

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

jupyter_read_cellB

Read content of a specific cell in a notebook.

ParametersJSON Schema
NameRequiredDescriptionDefault
notebook_pathYesPath to the notebook
cell_indexYesIndex of the cell (0-based)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 bears full responsibility. It states 'Read content', implying no side effects, but does not disclose whether it returns the cell source or outputs, or any limitations. The description is too minimal to give the agent a clear behavioral model.

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 with no wasted words. It is appropriately concise for a simple read operation, though it could benefit from a slightly more structured form.

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 presence of an output schema, the description does not need to detail return values. However, it lacks context about when to choose this over siblings, and the brevity leaves some unmet information needs for a tool with many alternatives.

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% (both parameters have descriptions). The tool description adds no extra meaning beyond the schema. A score of 3 is baseline for high coverage.

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 'Read' and the resource 'content of a specific cell in a notebook'. It distinguishes from sibling tools like jupyter_read_all_cells (reads all cells) and jupyter_update_cell (updates cell).

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?

There is no guidance on when to use this tool versus alternatives, such as jupyter_read_all_cells for reading all cells. No context or exclusion criteria are provided.

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

jupyter_restart_kernelA

Restart a kernel (clears all state).

ParametersJSON Schema
NameRequiredDescriptionDefault
kernel_idYesID of the kernel to restart

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description carries full burden. It discloses that restarting clears all state, which is crucial. However, it omits details like whether the kernel must be running, if the kernel ID becomes invalid after restart, or any side effects such as loss of unsaved data.

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, concise and front-loaded, with every word contributing value (verb, resource, and key behavioral effect). No wasted text.

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

Completeness4/5

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

Given the tool's simplicity (1 parameter, output schema exists), the description is fairly complete. It explains purpose and the main behavioral aspect. With output schema present, description does not need to detail return values. A minor lack of prerequisites or post-conditions prevents a 5.

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 covers 100% of the single parameter (kernel_id), and the description adds no additional meaning beyond the schema. 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 action 'Restart a kernel' and the key effect 'clears all state', which distinguishes it from similar tools like jupyter_interrupt_kernel (which does not clear state) and jupyter_start_kernel (which starts a new kernel).

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 when a fresh kernel state is needed, but does not explicitly specify when to use this tool versus alternatives like jupyter_interrupt_kernel or jupyter_start_kernel. No exclusions or prerequisites are mentioned.

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

jupyter_start_kernelC

Start a new Jupyter kernel.

ParametersJSON Schema
NameRequiredDescriptionDefault
kernel_nameNoName of the kernel spec (default: python3)python3

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 full burden for behavioral disclosure. It only states the action, omitting side effects (e.g., kernel state changes), resource requirements, or return value characteristics. The description is insufficient for safe invocation.

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 (one sentence) with no wasted words. However, it may be too terse for a tool with no annotations; a slightly longer description would improve clarity without sacrificing 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 the presence of an output schema, the description is minimally adequate. However, it lacks important context such as whether starting a kernel requires a notebook connection or what happens if one is already running. For a more complete picture, the description should offer more 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?

Schema coverage is 100%, and the description adds no extra meaning to the parameter beyond what the schema already provides. Baseline 3 applies; no credit for repetition.

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 ('Start') and the resource ('a new Jupyter kernel'), making the purpose unambiguous. However, it does not explicitly differentiate from siblings like jupyter_restart_kernel or jupyter_connect_notebook, which would earn a 5.

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 gives no guidance on when to use this tool vs alternatives, nor does it mention prerequisites or context (e.g., if a notebook must be active). This leaves the agent without necessary usage context.

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

jupyter_stop_kernelB

Stop a running kernel.

ParametersJSON Schema
NameRequiredDescriptionDefault
kernel_idYesID of the kernel to stop

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries full burden but only says 'Stop a running kernel.' It fails to disclose whether stopping is safe or disruptive, if it requires permissions, or what happens to the kernel's state (e.g., unsaved data). The lack of behavioral context leaves the agent uncertain about side effects.

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 gets straight to the point with no fluff. However, it might be too brief; a bit more context could improve it. Still, it is well-structured and front-loaded.

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's simplicity (one parameter, output schema exists), the description is minimally complete. However, it lacks context about the kernel lifecycle, error conditions, and relationship with other kernel tools. For a tool that can have side effects, more completeness is expected.

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 defines the kernel_id parameter with a clear description. The tool description adds no additional meaning beyond what the schema provides. Since schema coverage is 100%, 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.

Purpose5/5

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

The description clearly states the action (stop) and the resource (running kernel). It distinguishes from sibling tools like jupyter_restart_kernel and jupyter_interrupt_kernel by focusing on termination. The specific verb ensures the agent knows exactly what the tool does.

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 instead of alternatives. It does not mention differences from jupyter_interrupt_kernel or jupyter_restart_kernel, nor does it indicate prerequisites (e.g., the kernel must exist and be running).

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

jupyter_update_cellC

Update content of an existing cell.

ParametersJSON Schema
NameRequiredDescriptionDefault
notebook_pathYesPath to the notebook
cell_indexYesIndex of the cell to update (0-based)
sourceYesNew cell content

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are present, and the description only states 'Update content' without detailing side effects (e.g., overwriting existing content, behavior on invalid cell index) or whether the notebook is saved immediately.

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 description is extremely brief (5 words), which is concise but underspecified. It front-loads the purpose but lacks important context that a slightly longer description could provide, making it feel incomplete.

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 modifies state in a notebook, the description fails to explain the replacement behavior, error conditions, or any interaction with the output schema. It is too minimal for a mutation tool, even with a present output schema.

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 has 100% description coverage, so the baseline is 3. The description adds no additional meaning beyond what the schema already provides for the three 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 clearly states the action ('Update') and the resource ('content of an existing cell'). It differentiates from sibling tools like insert, delete, and read, though it could explicitly mention that it replaces the entire source content.

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 jupyter_insert_cell or jupyter_read_cell. There are no usage examples or context for when an update is appropriate.

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

knowledge_drop_indexB

Drop index and remove all cached data for a directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
directoryYesKnowledge base name (from knowledges.yaml) or absolute path to directory

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, and the description only states the action without detailing implications like irreversibility, permissions, or side effects. It lacks transparency for a destructive operation.

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. However, it could be slightly expanded to improve completeness without harming 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 presence of an output schema and sibling tools, the description lacks information about prerequisites, side effects, and relationship to other tools, making it incomplete for 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 input schema has 100% coverage with a clear description for the 'directory' parameter. The tool description adds no extra meaning beyond 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 verb 'Drop' and resource 'index' and 'cached data for a directory'. It distinguishes itself from sibling tools like knowledge_index_directory and knowledge_refresh_index.

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 (e.g., knowledge_refresh_index). There is no mention of prerequisites or context.

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

knowledge_get_metadata_fieldsC

List available metadata fields for filtering with examples.

ParametersJSON Schema
NameRequiredDescriptionDefault
directoryNoKnowledge base name or path (None = aggregate from all registered KBs)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 must fully disclose behavioral traits. It states the tool lists fields with examples, but does not mention whether it is read-only, safe to call, or any side effects. The behavior is implied but not explicitly safe.

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 that front-loads the action and result. It is concise with no extraneous 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 the low parameter count and presence of an output schema, the description provides the essential purpose. However, it could elaborate on what 'metadata fields' are and how they relate to filtering, which 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?

The schema already describes the single parameter 'directory' with 100% coverage. The tool description adds no additional meaning beyond the schema, 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.

Purpose4/5

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

The description clearly states the tool lists available metadata fields and mentions they are for filtering, with examples. It distinguishes from sibling tools like knowledge_get_tags or knowledge_list_indexes by focusing on metadata fields specifically.

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 knowledge_get_tags or knowledge_search. The description lacks context on prerequisites or typical use cases.

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

knowledge_get_tagsA

Extract all unique tags from indexed documents with counts.

ParametersJSON Schema
NameRequiredDescriptionDefault
directoryNoKnowledge base name or path (None = aggregate tags from all registered KBs)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/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 carry the burden. It implies a read-only operation ('extract') but does not disclose edge cases (e.g., behavior when directory is invalid, result ordering, or if counts are total or per document). Adequate 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.

Conciseness5/5

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

Single sentence with no extraneous words. The key verb and object are front-loaded. Every word contributes value.

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 low complexity (one optional parameter, output schema exists), the description is minimally sufficient. However, it lacks explanation of what 'tags' are (e.g., derived from content or metadata) and does not clarify that the output structure is covered by the output schema.

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% with a clear parameter description. The tool description adds no additional meaning beyond what the schema already provides, 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 verb 'Extract', the resource 'unique tags from indexed documents', and includes 'with counts', making it specific and distinct from sibling tools like knowledge_search or knowledge_list_indexes.

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 (e.g., knowledge_search). There is no mention of prerequisites, when-not to use, or hints about performance or aggregation behavior.

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

knowledge_index_directoryA

Index or update knowledge directory for semantic search.

Supports: .md (markdown), .py (Python), .ipynb (Jupyter notebooks)

ParametersJSON Schema
NameRequiredDescriptionDefault
directoryYesKnowledge base name (from knowledges.yaml) or absolute path to knowledge directory
recursiveNoRecursively index subdirectories (default: True)
force_reindexNoForce full reindex (default: False)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description must disclose behavioral traits. It states 'index or update' and lists supported file types, but does not clarify destructive behavior (e.g., overwrite vs incremental), side effects, permissions, or whether it checks for existing indexes. Minimal 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?

Two sentences: first states the purpose, second lists supported formats. No redundant words, front-loaded with the key action. Every sentence 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?

The description is adequate but leaves questions: what happens if the directory already has an index? How does force_reindex interact? The presence of an output schema reduces the need to explain return values, but the description does not differentiate from knowledge_refresh_index or explain recursion behavior beyond the schema.

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

Parameters4/5

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

Schema coverage is 100%, so parameters are well-documented in the schema. The description adds value by listing supported file types, which is not in the schema. While it doesn't elaborate on each parameter, the extra context justifies a slight boost above the baseline of 3.

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 indexes or updates a knowledge directory for semantic search, listing supported file types (.md, .py, .ipynb). This specific verb+resource+scope distinguishes it from sibling tools like knowledge_refresh_index or knowledge_drop_index.

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 for indexing or updating directories but lacks explicit guidance on when to use this tool versus alternatives (e.g., knowledge_refresh_index). No exclusions or context about prerequisites are provided.

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

knowledge_list_indexesA

List all indexed knowledge directories with statistics.

Returns: JSON with list of indexes (directory, collection, file_count, last_updated)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/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. It implies an idempotent, read-only operation but does not explicitly state that it has no side effects or permissions required. The description lists the return fields, which adds some 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?

Two concise sentences with no wasted words. The description is front-loaded with the main purpose and supplemented by the return format. Every sentence provides value.

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

Completeness5/5

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

Given zero parameters and the presence of an output schema, the description is complete. It explains the tool's purpose and the structure of the returned JSON, covering all necessary information for a simple list operation.

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

Parameters4/5

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

There are zero parameters, so the baseline score is 4. The description adds no parameter information, which is acceptable since no parameters exist. The output schema is present, so the return format is clear.

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 'List all indexed knowledge directories with statistics', specifying the verb (list) and resource (indexed knowledge directories). It distinguishes from sibling tools like knowledge_drop_index and knowledge_index_directory which perform different operations.

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 the purpose is clear, there is no mention of when not to use it or comparison with related tools. Implicitly, it is used to retrieve a list, but detailed usage context is missing.

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

knowledge_list_knowledgesA

List all registered knowledge bases from ~/.aix/knowledges.yaml.

Shows which knowledge bases are registered, whether they exist, and whether they have been indexed.

Returns: JSON with knowledge bases information including paths, descriptions, tags, existence status, and index status

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/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 accurately describes the operation as listing from a specific file and indicates the output fields. However, it does not explicitly state read-only behavior or error conditions (e.g., if the file is 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?

The description is concise, front-loading the main action, and uses a clear structure with separate lines for additional details. Every sentence adds value without redundancy.

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

Completeness4/5

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

For a tool with no parameters and an output schema (inferred from description), the description covers the purpose, file source, and output structure. It could mention error scenarios or prerequisites, but overall it is sufficiently complete for an agent to use.

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

Parameters4/5

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

There are no parameters, so schema coverage is 100% by default. The description adds no parameter information, which is acceptable. Baseline score of 4 applies per the rubric for 0 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 clearly states the verb 'List all registered knowledge bases', specifies the source file (~/.aix/knowledges.yaml), and details what information is shown (existence and index status). It effectively distinguishes from sibling tools like knowledge_list_indexes and knowledge_search.

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 does not explicitly state when to use this tool versus alternatives, nor does it provide preconditions or exclusions. While the purpose is clear, an agent would benefit from guidance on context, such as 'Use this to see available knowledge bases before searching or indexing.'

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

knowledge_refresh_indexC

Manually force refresh of knowledge index.

ParametersJSON Schema
NameRequiredDescriptionDefault
directoryNoKnowledge base name (from knowledges.yaml), absolute path, or None to refresh all
recursiveNoRecursively check subdirectories

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.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 must cover behavioral traits. It mentions 'manually force refresh' but does not disclose whether the operation is destructive, idempotent, requires permissions, or what side effects occur (e.g., index regeneration).

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 description is a single short sentence, which is concise but likely too minimal for a complex operation. It lacks structure and could benefit from additional context without being 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 operation's complexity and the existence of sibling tools, the description is insufficient. It does not explain the refresh process, impact on existing indexes, or expected return values, even though an output schema exists.

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 100% of parameters with descriptions, so baseline is 3. The tool description adds no extra meaning beyond what the schema already provides, such as format details or effect of the recursive flag.

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 description specifies the verb 'refresh' and the resource 'knowledge index', providing a clear action and object. However, it does not differentiate from sibling tools like knowledge_index_directory or knowledge_drop_index, leaving ambiguity about the exact operation.

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 such as knowledge_index_directory or whether prerequisites exist. The description lacks context for appropriate invocation.

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

project_add_logA

Add a log entry to project.

Log entries are automatically timestamped and appended to the project's log.md file.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesProject name
contentYesLog entry content (markdown supported)
tagsNoOptional tags for categorization (e.g., ['experiment', 'backtest', 'bug-fix'])

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description must disclose behavior. It reveals auto-timestamping and appending to log.md, but does not cover permissions, side effects, or response expectations.

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?

Two sentences with no waste. Front-loaded with the core action, followed by a brief behavioral note.

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 an output schema exists, the description adequately explains the tool's effect without needing to detail return values. It covers the key aspects of adding a log entry.

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 parameters are already well-documented. The description adds context about the log file but does not elaborate beyond 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 'Add a log entry' and specifies the resource 'project'. It further explains the behavior (auto-timestamp, append to log.md) and distinguishes from siblings like project_read_log.

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 vs alternatives; no when-not-to-use or prerequisites mentioned. The description only states what it does, not when it's appropriate.

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

project_createA

Create a new project.

Projects are stored in ~/.aix/projects/ and contain:

  • description.md: Project description and metadata

  • log.md: Timestamped log entries

  • context.json: Machine-readable project state

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesProject name (used as directory name)
descriptionNoProject description
tagsNoOptional tags for categorization
project_typeNoOptional project type (e.g., 'strategy', 'research', 'optimization')

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

The description reveals storage location (~/.aix/projects/) and created files, but lacks mention of side effects like overwrite behavior, failure modes (e.g., duplicate names), or permissions needed.

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?

Two sentences with no wasted words. The action is stated first, followed by storage details. Efficient and clear.

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?

Despite missing output schema details, the description explains what the tool creates and where. For a creation tool, this is sufficient, though error reporting is absent.

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

Parameters4/5

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

Schema covers all 4 parameters, and the description adds context about how parameters relate to the file structure, adding value beyond the schema alone.

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 it creates a new project and specifies the files it will contain (description.md, log.md, context.json). This distinguishes it from sibling tools like project_get or project_list.

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, or any prerequisites. Without context about project creation order or error cases, the agent may misuse it.

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

project_getB

Get detailed information about a project.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesProject name

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/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. However, it only states 'Get detailed information' without disclosing any behavioral traits such as side effects, permissions, rate limits, or what 'detailed' entails. 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 (5 words) with no redundancy. It is concise, though it could be slightly more informative without becoming verbose.

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 (1 parameter, no nested objects, output schema available), the description 'Get detailed information about a project' is largely sufficient. However, 'detailed' is vague and could be improved with specifics.

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% (all parameters documented in input schema). The description adds no additional meaning beyond the schema's parameter description. 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 clearly states the verb 'Get' and the resource 'project', and it distinguishes from sibling tools like project_list (which lists projects without detail) and project_create (which creates).

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 when not to use it. There is no mention of prerequisites or exclusion criteria.

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

project_get_contextC

Get project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesProject name

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 convey behavioral traits. It states 'Get project context', implying a read operation, but does not explicitly confirm it is non-destructive, mention authentication needs, or describe side effects. The agent lacks key safety information.

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, extremely concise and to the point. It front-loads the purpose. While it could be more informative, it wastes no words.

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 (1 param, output schema exists), the description communicates the basic purpose. However, it lacks usage guidance and behavioral transparency, which are important for complete context. The output schema may compensate for return value details, but the description alone is moderately 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 single parameter 'name' has a schema description 'Project name', which provides basic meaning. With 100% schema coverage, the description adds no further value. The tool description does not elaborate on the parameter's role or constraints.

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 'Get project context' clearly identifies the action (get) and the resource (project context). It distinguishes itself from sibling tools like project_set_context (setting) and project_get (which may retrieve other project info). However, it could be more precise about what 'context' entails.

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 (e.g., project_get, project_set_context). The agent receives no context about prerequisites or scenarios, forcing reliance on the tool name alone.

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

project_listA

List all projects.

Returns: JSON with list of all projects including name, status, type, tags, and timestamps

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

No annotations are provided, but the description indicates a read-only operation (listing projects) and returns a JSON list. It does not explicitly state side effects, but the behavior is inherently transparent for a list action.

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 extremely concise: two sentences that cover purpose and return format without any redundant information. Every sentence is essential.

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

Completeness5/5

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

Given no parameters and the presence of an output schema, the description fully covers the tool's functionality, including the list of returned fields. No additional information is needed.

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

Parameters4/5

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

With zero parameters and schema coverage at 100%, the description adds value by specifying the return fields, which compensates for the lack of parameters. Baseline 4 applies per the rule for zero 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 explicitly states 'List all projects' and details the return fields (name, status, type, tags, timestamps), making the purpose clear 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 Guidelines3/5

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

While the description implies use for listing all projects, it provides no explicit guidance on when to use versus alternatives like project_get or project_create. However, the context is clear given the tool's simplicity.

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

project_read_logC

Read recent log entries from project.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesProject name
limitNoMaximum number of entries to return (default: 10)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/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 disclosure, but it only says 'read', implying read-only behavior. It does not explain ordering, pagination, error handling, or what happens if the project does not exist. The output schema exists but is not described.

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 description is extremely concise (one sentence) but lacks structure or additional details. It is not verbose, but it is barely adequate for a 2-parameter tool.

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

Completeness2/5

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

Given the simplicity of the tool and the presence of an output schema, the description still fails to provide essential context such as the order of log entries, default limit behavior, or error states. It is minimally complete but leaves gaps.

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?

Both parameters have descriptions in the input schema (100% coverage), so the description adds no extra meaning. The baseline of 3 is appropriate as the schema already documents the parameters sufficiently.

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 ('Read') and resource ('log entries'), and the verb-resource combination distinguishes it from sibling tools like 'project_add_log' or 'project_create'. However, it does not explicitly state that the logs are from a specific project, though the parameter 'name' implies this.

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, nor are there any exclusions or context for usage. The description simply states what it does without advising the agent on appropriate scenarios.

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

project_set_contextA

Set or update project context.

Context is machine-readable state stored in context.json. Only provided fields are updated.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesProject name
working_filesNoCurrently active files
active_researchNoActive research topics
blockersNoCurrent blockers/issues
next_stepsNoPlanned next steps
knowledge_basesNoRelated knowledge bases

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 must convey behavioral traits. It discloses write behavior and the partial update nature, but omits details like authentication requirements, side effects, or reversibility. For a mutation tool, this is adequate but not thorough.

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?

Two concise sentences with no wasted words. The first sentence states the purpose, and the second adds a crucial behavioral detail. Front-loaded and efficient.

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 moderate complexity (6 parameters, output schema exists), the description covers the essential mutation behavior but does not explain the output or success indications. The presence of an output schema reduces the need to describe return values, but the description could mention scope or persistence.

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

Parameters4/5

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

Schema description coverage is 100%, with each parameter described. The description adds meaning beyond the schema by noting 'Only provided fields are updated,' clarifying that missing parameters will not reset existing values. This strengthens the semantics.

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's action ('Set or update project context') and identifies the resource ('context is machine-readable state stored in context.json'). It distinguishes from siblings like 'project_create' and 'project_get_context' by specifying partial update 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?

No explicit guidance on when to use this tool vs alternatives such as 'project_create' (for initial setup) or 'project_get_context' (for reading). The phrase 'Only provided fields are updated' implies partial update use, but lacks when-not scenarios or alternative recommendations.

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

project_update_descriptionC

Update project description.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesProject name
descriptionYesNew description content

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 disclosing behavioral traits. It only states the action without mentioning side effects (e.g., overwriting existing description, character limits, required permissions, or return behavior).

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

Conciseness4/5

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

The description is a single short sentence, front-loaded and to the point. It is concise but could be slightly more informative without becoming verbose.

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 (2 params, output schema exists), the description is minimally complete but omits important context such as requiring the project to exist before updating. It does not leverage the output schema to clarify behavior.

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% (both 'name' and 'description' have descriptions in the schema). The description adds no extra meaning, so 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 'Update project description' specifies a clear verb ('Update') and resource ('project description'), but does not differentiate from sibling tools like project_set_context or mention that it applies to existing projects.

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 (e.g., project_create for initial setup, project_set_context for different metadata). There is no when-not-to-use advice or prerequisites mentioned.

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. 33 tool updatesv0.4.2
    • First observedjupyter_append_cell
    • First observedjupyter_connect_notebook
    • First observedjupyter_delete_cell
    • First observedjupyter_execute_cell
    • First observedjupyter_execute_code
    • First observedjupyter_find_notebook
    • First observedjupyter_get_notebook_info
    • First observedjupyter_insert_cell
    • First observedjupyter_interrupt_kernel
    • First observedjupyter_list_kernels
    • First observedjupyter_list_notebooks
    • First observedjupyter_read_all_cells
    • First observedjupyter_read_cell
    • First observedjupyter_restart_kernel
    • First observedjupyter_start_kernel
    • First observedjupyter_stop_kernel
    • First observedjupyter_update_cell
    • First observedknowledge_drop_index
    • First observedknowledge_get_metadata_fields
    • First observedknowledge_get_tags
    • First observedknowledge_index_directory
    • First observedknowledge_list_indexes
    • First observedknowledge_list_knowledges
    • First observedknowledge_refresh_index
    • First observedknowledge_search
    • First observedproject_add_log
    • First observedproject_create
    • First observedproject_get
    • First observedproject_get_context
    • First observedproject_list
    • First observedproject_read_log
    • First observedproject_set_context
    • First observedproject_update_description

TDQS

B3.4/5.0
Disambiguation5/5

Tools are clearly grouped by domain prefixes (jupyter_, knowledge_, project_), and within each group, operations are distinct and well-described. No overlapping purposes between tools.

Naming Consistency5/5

All tool names follow a consistent snake_case pattern with domain prefix and verb_noun structure (e.g., jupyter_execute_cell, knowledge_index_directory, project_create). No mixing of conventions.

Tool Count4/5

33 tools is slightly high but justified by covering three distinct domains. Each domain has a reasonable number of tools (16, 8, 8), and all seem necessary for their purpose.

Completeness4/5

The tool surface covers core operations for Jupyter notebooks, knowledge management, and project management. Minor overlap between jupyter_connect_notebook and jupyter_start_kernel, but overall no major gaps.

Maintenance

ActivitySlowing
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
    D
    maintenance
    Provides semantic code intelligence to help users search, navigate, and analyze entire codebases using plain English. It enables Claude to perform architectural overviews, bug detection, and refactor suggestions through local semantic search and keyword indexing.
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables Claude to intelligently analyze and query codebases using knowledge graphs, supporting natural language code search, relationship discovery, and incremental updates.
    11
    -

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/xLydianSoftware/aix'

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