Skip to main content
Glama
Epochal-dev

Open Notebook MCP Server

by Epochal-dev

Open Notebook MCP Server

An MCP (Model Context Protocol) server that provides tools to interact with the Open Notebook API. This server enables AI assistants like Claude to manage notebooks, sources, notes, search content, and interact with AI models through Open Notebook.

Features

  • Notebooks Management: Create, read, update, and delete notebooks

  • Sources Management: Add and manage content sources (links, uploads, text)

  • Notes Management: Create and organize notes within notebooks

  • Search & AI: Search content using vector/text search and ask questions

  • Models Management: Configure and manage AI models

  • Chat Sessions: Create and manage chat conversations

  • Settings: Access and update application settings

  • Progressive Disclosure: Efficient tool discovery with search_capabilities

Related MCP server: notebooklm-mcp

Installation

# Clone the repository
git clone https://github.com/PiotrAleksander/open-notebook-mcp.git
cd open-notebook-mcp

# Install with uv
uv sync

Using pip

pip install -e .

Configuration

The server requires configuration to connect to your Open Notebook instance:

Environment Variables

Create a .env file or set these environment variables:

# Required: URL of your Open Notebook instance
OPEN_NOTEBOOK_URL=http://localhost:5055

# Optional: Authentication password (if APP_PASSWORD is set in Open Notebook)
OPEN_NOTEBOOK_PASSWORD=your_password_here

# Optional: Transport configuration (default: stdio)
MCP_TRANSPORT=stdio  # or streamable-http for remote deployment

Example Configuration

For local development with default Open Notebook settings:

# .env
OPEN_NOTEBOOK_URL=http://localhost:5055

If you've configured authentication in Open Notebook:

# .env
OPEN_NOTEBOOK_URL=http://localhost:5055
OPEN_NOTEBOOK_PASSWORD=my_secure_password

Usage

Running the Server

Development Mode (STDIO)

For local use with AI assistants:

uv run open-notebook-mcp

Or using the MCP CLI:

mcp dev src/open_notebook_mcp/server.py

Production Mode (Streamable HTTP)

For remote deployment:

MCP_TRANSPORT=streamable-http HOST=0.0.0.0 PORT=8000 uv run open-notebook-mcp

Using with Claude Desktop

Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "open-notebook": {
      "command": "uv",
      "args": [
        "run",
        "--directory",
        "/path/to/open-notebook-mcp",
        "open-notebook-mcp"
      ],
      "env": {
        "OPEN_NOTEBOOK_URL": "http://localhost:5055",
        "OPEN_NOTEBOOK_PASSWORD": "your_password_if_needed"
      }
    }
  }
}

Discovering Available Tools

The server implements progressive disclosure. Use the search_capabilities tool to discover available functionality:

# Get a summary of all tools
search_capabilities(query="", detail="summary", limit=50)

# Search for specific functionality
search_capabilities(query="notebook", detail="summary", limit=10)

# Get full details for a specific tool
search_capabilities(query="create_notebook", detail="full", limit=1)

Example Workflows

Creating and Managing Notebooks

# Create a new notebook
result = create_notebook(
    name="AI Research",
    description="Research on AI applications"
)
notebook_id = result["notebook"]["id"]

# List all notebooks
notebooks = list_notebooks(archived=False, limit=20)

# Update a notebook
update_notebook(
    notebook_id=notebook_id,
    name="AI Research (Updated)"
)

# Get a specific notebook
notebook = get_notebook(notebook_id=notebook_id)

Adding Sources

# Add a web source
source = create_source(
    notebook_id=notebook_id,
    type="link",
    url="https://example.com/ai-article",
    title="AI Research Article",
    embed=True  # Generate embeddings
)

# List sources in a notebook
sources = list_sources(notebook_id=notebook_id, limit=20)

Creating Notes

# Create a note
note = create_note(
    notebook_id=notebook_id,
    title="Key Findings",
    content="Important insights about AI applications...",
    topics=["AI", "Research"]
)

# Update a note
update_note(
    note_id=note["note"]["id"],
    content="Updated insights..."
)

Searching and Asking Questions

# Search content
results = search(
    query="artificial intelligence",
    type="vector",
    notebook_id=notebook_id,
    limit=10
)

# List available models first
models = list_models(limit=50)
model_id = models["models"][0]["id"]

# Ask a question
answer = ask_simple(
    question="What are the main AI applications mentioned?",
    strategy_model=model_id,
    answer_model=model_id,
    final_answer_model=model_id,
    notebook_id=notebook_id
)

Chat Sessions

# Create a chat session
session = create_chat_session(
    notebook_id=notebook_id,
    title="Research Discussion"
)
session_id = session["session"]["id"]

# Build context
context = get_chat_context(notebook_id=notebook_id)

# Send a message
response = execute_chat(
    session_id=session_id,
    message="What are the key insights from my research?",
    context=context["context"]
)

# Get session history
history = get_chat_session(session_id=session_id)

Available Tools

The server provides 39 tools across multiple categories:

Meta Tools

  • search_capabilities - Progressive tool discovery

Notebooks (5 tools)

  • list_notebooks, get_notebook, create_notebook, update_notebook, delete_notebook

Sources (5 tools)

  • list_sources, get_source, create_source, update_source, delete_source

Notes (5 tools)

  • list_notes, get_note, create_note, update_note, delete_note

Search (3 tools)

  • search, ask_question, ask_simple

Models (5 tools)

  • list_models, get_model, create_model, delete_model, get_default_models

Chat (7 tools)

  • list_chat_sessions, create_chat_session, get_chat_session, update_chat_session, delete_chat_session, execute_chat, get_chat_context

Settings (2 tools)

  • get_settings, update_settings

Architecture

This server follows MCP best practices:

  • Progressive Disclosure: Use search_capabilities to minimize context usage

  • Context Efficiency: Small outputs by default, with limit parameters

  • Dual Transport: Supports both STDIO (local) and Streamable HTTP (remote)

  • Error Handling: Structured error messages with actionable hints

  • Timeouts: 30-second default timeout for all API requests

  • Authentication: Optional Bearer token authentication

Development

Project Structure

open-notebook-mcp/
├── src/
│   └── open_notebook_mcp/
│       ├── __init__.py
│       └── server.py          # Main MCP server implementation
├── tests/                      # (to be added)
├── pyproject.toml
├── README.md
└── .env.example

Testing

Test the server using the MCP Inspector:

mcp dev src/open_notebook_mcp/server.py

or

npx @modelcontextprotocol/inspector uv --directory ./src/open_notebook_mcp "run" "server.py"

This opens an interactive inspector where you can:

  1. Browse available tools

  2. Test tool calls

  3. Inspect responses

  4. Debug errors

Adding New Tools

To add new tools:

  1. Add a Capability entry to the CAPABILITIES tuple

  2. Implement the tool function with @mcp.tool() decorator

  3. Follow naming conventions: verb_noun (e.g., list_notebooks)

  4. Include proper docstrings and type hints

  5. Return structured responses with request_id

Requirements

  • Python 3.12+

  • Open Notebook instance (local or remote)

  • Dependencies: mcp[cli]>=1.23.2, httpx>=0.28.1

Contributing

Contributions are welcome! Please ensure:

  • Follow the existing code structure and patterns

  • Add tools to the CAPABILITIES index

  • Include proper type hints and docstrings

  • Test with MCP Inspector before submitting

License

See LICENSE file for details.

Support

For issues related to:

Available Tools

33 tools
ask_questionC

Ask a question about your content with detailed control.

Args:
    question: Question to ask
    strategy_model: Model ID for strategy generation
    answer_model: Model ID for answering
    final_answer_model: Model ID for final answer synthesis
    notebook_id: Optional notebook ID to limit context

Returns:
    Answer with sources and reasoning
ParametersJSON Schema
NameRequiredDescriptionDefault
questionYes
strategy_modelYes
answer_modelYes
final_answer_modelYes
notebook_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

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

With no annotations, the description must carry the full burden. It mentions the multi-stage process (strategy, answer, final) and return type, but does not disclose side effects, authentication needs, or rate limits.

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

Conciseness4/5

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

Concise with clear Args/Returns structure. The purpose is front-loaded. Every sentence is relevant, though formatting could be more formal.

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

Completeness2/5

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

Given the complexity of 5 parameters and a multi-step process, the description is incomplete. It lacks elaboration on the model parameters and does not fully explain the returned 'sources and reasoning'.

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

Parameters2/5

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

Schema description coverage is 0%, so the description is crucial. It lists parameter names but only explains 'question' briefly. The three model parameters are not differentiated, and 'notebook_id' gets minimal explanation.

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

Purpose4/5

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

The description clearly states the verb 'ask' and resource 'question about your content'. It hints at 'detailed control' but does not explicitly differentiate from the sibling tool 'ask_simple'.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like 'ask_simple' or 'search'. Lacks context about prerequisites or exclusionary conditions.

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

ask_simpleC

Ask a question about your content with simplified interface.

Args:
    question: Question to ask
    strategy_model: Model ID for strategy generation
    answer_model: Model ID for answering
    final_answer_model: Model ID for final answer synthesis
    notebook_id: Optional notebook ID to limit context

Returns:
    Simple answer
ParametersJSON Schema
NameRequiredDescriptionDefault
questionYes
strategy_modelYes
answer_modelYes
final_answer_modelYes
notebook_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided. The description only states the function is 'simplified' but reveals no behavioral traits such as side effects, authentication needs, rate limits, or constraints. It offers little beyond the basic operation.

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 short but not optimally structured. It includes an Args list but no front-loaded summary of the most critical information. It is not verbose, but could be more concise while retaining necessary detail.

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

Completeness2/5

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

Given the complexity (5 parameters, no annotations, output schema exists but not described), the description is incomplete. It lacks explanations of the 'simplified' aspect, error handling, return value details beyond 'Simple answer', and any contextual usage hints.

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

Parameters2/5

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

Schema description coverage is 0%. The description merely lists parameter names (e.g., 'strategy_model') without any explanation of their meaning, acceptable values, or how they affect the tool's behavior. The agent must infer from names alone, which is insufficient.

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 'Ask a question about your content with simplified interface,' which identifies the verb (ask) and resource (questions on content). It hints at a simplified version compared to siblings like ask_question, but does not explicitly name or differentiate from it.

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., ask_question). The phrase 'simplified interface' implicitly suggests use when a simpler endpoint is desired, but there is no explicit when-to-use or when-not-to-use advice.

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

create_chat_sessionC

Create a new chat session.

Args:
    notebook_id: Notebook ID for the session
    title: Session title

Returns:
    Created session details
ParametersJSON Schema
NameRequiredDescriptionDefault
notebook_idYes
titleYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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 fully disclose behavioral traits. It only states it creates a session and lists parameters. It does not mention whether the operation is destructive, if it requires specific permissions, or if there are limits on session creation.

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 short and to the point, with a clear one-line purpose followed by structured args and returns. It is front-loaded and efficient, though it could be slightly more detailed 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?

The tool is simple with two required parameters and an output schema (not shown). The description mentions a return value but is vague. It provides enough for a basic understanding but lacks completeness in usage context and behavioral details.

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

Parameters3/5

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

Schema coverage is 0%, so the description must add meaning. The Args section provides brief explanations: 'Notebook ID for the session' and 'Session title'. This adds some context beyond the schema's type and title, but lacks details on constraints or formats.

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 'Create a new chat session.' which is a specific verb+resource combination. It distinguishes from sibling tools like create_note or create_model. However, it could elaborate on what a chat session is in this context.

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 create versus update or delete a chat session. Sibling tools include update_chat_session and delete_chat_session, but the description does not clarify scenarios where creating is appropriate.

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

create_modelC

Create a new AI model configuration.

Args:
    name: Model name (e.g., 'gpt-4', 'claude-3-opus')
    provider: Provider name (e.g., 'openai', 'anthropic')
    type: Model type (e.g., 'language', 'embedding')

Returns:
    Created model details
ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
providerYes
typeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior1/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It fails to mention side effects (e.g., overwriting existing models), required permissions, error handling, or whether the operation is asynchronous. Only states 'Create a new AI model configuration.' without any safety or behavioral context.

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

Conciseness5/5

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

The description is efficiently structured using a docstring format with Args and Returns sections. Every sentence provides necessary information with no wasted words or repetition.

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?

Although the tool has an output schema, the description only vaguely mentions 'Created model details,' leaving out specifics like what fields are returned. Missing behavioral details (error states, uniqueness constraints) and lack of usage guidance make it incomplete for a 3-parameter creation tool with no annotations.

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

Parameters4/5

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

Schema description coverage is 0%, so the description provides the only documentation for the three parameters. It adds concrete examples (e.g., 'gpt-4', 'openai', 'language') that clarify expected values beyond the schema's empty descriptions. However, it does not specify constraints like allowed providers or types beyond examples.

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 creates a new AI model configuration, using a specific verb ('Create') and resource ('AI model configuration'). It is distinct from sibling tools like delete_model or list_models, but does not differentiate from other 'create_*' tools beyond the resource type.

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

Usage Guidelines2/5

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

No usage guidance is provided. The description does not specify when to use this tool versus alternatives (e.g., update_model, which does not exist but could be inferred), nor does it mention prerequisites, when-not-to-use, or potential duplicates.

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

create_noteB

Create a new note.

Args:
    notebook_id: Notebook ID to add note to
    title: Note title
    content: Note content
    topics: Optional list of topics

Returns:
    Created note details
ParametersJSON Schema
NameRequiredDescriptionDefault
notebook_idYes
titleYes
contentYes
topicsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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 fails to disclose behavioral traits such as side effects, authentication requirements, rate limits, or what happens on duplicate content. The return value is vaguely described as 'Created note details'.

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 concise with a clean Args/Returns structure. Every sentence serves a purpose, though it could be slightly more efficient by merging repetitive phrasing.

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 complexity (4 params, no annotations), the description covers basic inputs and outputs but misses context like prerequisites (e.g., notebook existence), error handling, or idempotency. The output schema exists but is not leveraged in the description.

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

Parameters2/5

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

Schema description coverage is 0%, requiring the description to explain parameters. However, it only restates parameter names (e.g., 'Notebook ID to add note to') without adding format, constraints, or validation details. The topics parameter is noted as optional but still lacks depth.

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 creates a new note, using specific verb 'Create' and resource 'note'. It lists relevant parameters (notebook_id, title, content, topics) that distinguish it from sibling tools like create_notebook or create_model.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like update_note. The description only states what the tool does without providing context on appropriate scenarios or exclusions.

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

create_notebookC

Create a new notebook.

Args:
    name: Notebook name
    description: Optional notebook description

Returns:
    Created notebook details
ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
descriptionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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 must disclose behavioral traits. It merely states the action without mentioning permissions, idempotency, side effects, or return value details beyond a vague 'Created notebook details'.

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 short and includes Args/Returns sections, but the Returns section is vague. It is efficient but lacks specificity.

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 (implied), the description fails to provide context about notebook creation, such as expected behavior, relationship to other entities, or error conditions. For a tool among many siblings, it is insufficient.

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

Parameters2/5

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

Schema description coverage is 0%, and the description only repeats parameter names ('name', 'description') without adding constraints, defaults, or format details. It does not compensate for the lack of schema descriptions.

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 ('Create a new notebook') and the resource ('notebook'). It distinguishes from sibling tools like delete_notebook, update_notebook, and list_notebooks.

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 create_note or create_source. Prerequisites or contextual usage are absent.

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

create_sourceC

Create a new source (link, upload, or text).

Args:
    notebook_id: Notebook ID to add source to
    type: Source type ('link', 'upload', or 'text')
    url: URL for link type sources
    title: Optional title
    embed: Whether to generate embeddings (default: True)

Returns:
    Created source details
ParametersJSON Schema
NameRequiredDescriptionDefault
notebook_idYes
typeYes
urlNo
titleNo
embedNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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 fails to disclose behavioral traits like side effects, permissions, or whether embeddings are generated automatically. It only mentions the embed parameter but not the implications.

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 concise with a clear 'Args:' section and a 'Returns:' line. It avoids unnecessary words while covering the main points.

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 output schema exists and 5 parameters, the description covers the basics but lacks completeness on usage contexts, prerequisites, or validation. It is adequate but not comprehensive.

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

Parameters3/5

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

Schema coverage is 0%, so the description must add value. It gives brief explanations for each parameter (e.g., 'URL for link type sources'), which helps but lacks further detail on constraints or formats.

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 'Create a new source (link, upload, or text)' which specifies the action and the types of sources. It distinguishes from sibling tools like update_source or delete_source.

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 any guidance on when to use this tool versus alternatives. There is no mention of when not to use it or references to sibling tools.

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

delete_chat_sessionC

Delete a chat session.

Args:
    session_id: Session ID

Returns:
    Success message
ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description should disclose side effects (e.g., permanent deletion, impact on associated data) but only states 'Delete a chat session,' lacking behavioral context.

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?

Extremely concise, but conciseness comes at the cost of essential details; the structure is logical but minimal.

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

Completeness2/5

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

For a simple delete tool with one parameter, the description lacks completeness: no return value details (beyond 'Success message'), no error conditions, no idempotency info.

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

Parameters1/5

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

Schema coverage is 0%, and the description merely restates 'session_id: Session ID,' adding no semantic value beyond the input 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 ('Delete a chat session') with a specific verb and resource, distinguishing it from sibling tools like delete_model or delete_note.

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., update_chat_session), no exclusions or prerequisites mentioned.

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

delete_modelC

Delete a model configuration.

Args:
    model_id: Model ID

Returns:
    Success message
ParametersJSON Schema
NameRequiredDescriptionDefault
model_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

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

No annotations provided and the description does not disclose any behavioral traits such as irreversibility, dependencies, or side effects of deletion. The minimal description fails to inform the agent of important properties.

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 very short and to the point, with no unnecessary information. However, it sacrifices completeness for brevity.

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

Completeness3/5

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

For a simple deletion tool with one parameter, the description is adequate but missing details like error handling or whether the operation is destructive. It provides basic completeness but could be more informative.

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

Parameters2/5

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

Schema description coverage is 0%, and the description only repeats 'model_id: Model ID' without adding format, validation, or examples. This does not compensate for the lack of schema documentation.

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 'Delete a model configuration' using a specific verb and resource. While it doesn't explicitly differentiate from sibling delete tools, the purpose is unambiguous.

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

Usage Guidelines2/5

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

No guidance on when to use this tool or when not to. No prerequisites or alternatives mentioned, leaving the agent without context for decision-making.

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

delete_noteC

Delete a note.

Args:
    note_id: Note ID

Returns:
    Success message
ParametersJSON Schema
NameRequiredDescriptionDefault
note_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

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

No annotations provided, so description must disclose behavior. It only says 'Delete a note' and 'Returns: Success message', without explaining permanence, cascading effects, permissions, or error handling.

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

Conciseness3/5

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

The description is very short and front-loaded but lacks critical details. It is concise but under-specified for a delete operation.

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

Completeness1/5

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

Given the tool is a delete operation with no annotations and a simple schema, the description is inadequate. It fails to address behavioral traits, usage context, or parameter details, making it incomplete.

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

Parameters2/5

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

Parameter 'note_id' is described as 'Note ID', which adds minimal value beyond the schema title. No format, source, or constraints are explained.

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 'Delete a note' with a specific verb and resource. It distinguishes from siblings like create_note, update_note, get_note.

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 delete_notebook or update_note. Lacks prerequisites, side effects, or when not to use.

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

delete_notebookC

Delete a notebook.

Args:
    notebook_id: Notebook ID

Returns:
    Success message
ParametersJSON Schema
NameRequiredDescriptionDefault
notebook_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided. The description does not disclose behavioral traits such as permanence, cascading effects, required permissions, or whether deletion is reversible.

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

Conciseness4/5

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

The description is very short and to the point, with no wasted words. However, it could be slightly more detailed without losing conciseness.

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

Completeness2/5

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

Given no annotations and a single parameter, the description provides minimal context. It does not explain the output beyond 'Success message' or describe any constraints or side effects.

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

Parameters2/5

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

Schema description coverage is 0%. The description only restates the parameter name 'notebook_id: Notebook ID' which adds no meaning beyond the schema property name.

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 'Delete a notebook' which is a specific verb+resource. It easily distinguishes from sibling tools like create, update, get, list notebooks.

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 prerequisites or conditions for deletion. 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.

delete_sourceB

Delete a source.

Args:
    source_id: Source ID

Returns:
    Success message
ParametersJSON Schema
NameRequiredDescriptionDefault
source_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description should disclose behavioral traits such as destructiveness, permission requirements, or side effects. It only states 'Delete a source' and 'Returns: Success message', which is insufficient for a mutation tool. The agent cannot infer reversibility, dependencies, or error behavior.

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

Conciseness5/5

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

The description is extremely concise with no redundant words. It front-loads the core action in the first sentence and lists parameters and return in a clean format. Every sentence serves a clear purpose, making it efficient for an AI agent to parse quickly.

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 the tool's simplicity, the description lacks completeness. It omits details about return value format (only 'Success message'), error conditions, and required permissions. The absence of annotations and output schema leaves gaps for the agent to understand the full behavior.

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

Parameters2/5

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

The description restates the parameter name and type ('source_id: Source ID') without adding meaningful context beyond the input schema. It does not explain what a source ID is, how to obtain it, or any constraints. The schema description coverage is 0%, and the description fails to compensate.

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 'Delete' and the resource 'source', leaving no ambiguity about the tool's purpose. It is specific and directly corresponds to the tool name, distinguishing it from sibling tools that operate on other resources.

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. It does not mention prerequisites, conditions, or when not to use it. The only implied usage is deleting a source, but there is no explicit differentiation from other delete tools.

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

execute_chatC

Send a message in a chat session.

Args:
    session_id: Session ID
    message: Message to send
    context: Optional context data for the conversation

Returns:
    Chat response with AI message
ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes
messageYes
contextNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It only states the action 'Send a message' but does not disclose behavioral traits such as side effects (e.g., creating a new message in the session), required permissions, or error conditions (e.g., if session does not exist).

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?

Very concise with a clear one-line summary followed by bulleted args and returns. No extraneous text, well-structured for quick consumption.

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?

Adequate for a simple tool with 3 parameters and an output schema (not shown). However, it lacks contextual completeness: it does not mention that a chat session must exist, or how the tool behaves if the session is invalid. The return value is described generically as 'Chat response with AI message' but no details about the response structure.

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

Parameters2/5

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

Schema description coverage is 0%. The description adds one-line explanations for parameters (e.g., 'Session ID', 'Optional context data'), but these add only marginal meaning beyond the parameter names. Context parameter gets a slightly more detailed description, but overall the parameter semantics are minimal.

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?

Description clearly states the action 'Send a message in a chat session'. However, it does not explicitly differentiate from sibling tools like ask_question or ask_simple, which might also involve sending messages in a session.

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 ask_question or ask_simple. The description only states what the tool does without providing decision criteria.

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

get_chat_contextC

Build context for a chat conversation.

Args:
    notebook_id: Notebook ID
    context_config: Optional context configuration

Returns:
    Built context data
ParametersJSON Schema
NameRequiredDescriptionDefault
notebook_idYes
context_configNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.4/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. It only mentions 'Returns: Built context data' but does not disclose side effects, authentication needs, or what 'context' entails.

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 brief and uses an Args/Returns structure, which is clean. However, it is under-specified rather than concise, lacking substance in the Returns section.

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 high number of sibling tools and the presence of an output schema, the description should clarify how build_context relates to other chat operations and what 'built context data' contains. It currently falls short.

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

Parameters1/5

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

Schema description coverage is 0%, yet the description merely repeats the parameter names ('notebook_id', 'context_config') without adding any meaning about their format, constraints, or purpose beyond the schema.

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

Purpose4/5

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

The description states 'Build context for a chat conversation' which is a clear verb+resource combination. However, it does not differentiate from sibling tools like 'get_chat_session' or 'ask_question', so it's not maximally clear.

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. There is no mention of prerequisites, context, or exclusions.

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

get_chat_sessionA

Get a specific chat session by ID.

Args:
    session_id: Session ID (e.g., 'session:abc123')

Returns:
    Session details with message history
ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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

No annotations provided, so description carries burden. 'Get' implies read-only, but does not explicitly state safety or lack of side effects. Mentions return includes message history, which adds context, but misses authentication or rate limit info.

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?

Very concise: one-line purpose, then args and return sections. Front-loaded with main action. No unnecessary words, but could be slightly more structured with headers.

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?

Covers purpose, parameter example, and return value with 'message history'. Output schema exists, so return details are covered. Lacks mention that session_id is required (though schema indicates required), and no prerequisites or error handling hints.

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

Parameters4/5

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

Schema description coverage is 0%, so description compensates well: explains parameter 'session_id' and provides an example format 'session:abc123'. Adds meaning beyond the bare schema definition.

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?

Clearly states 'Get a specific chat session by ID.' The verb 'get' and resource 'chat session' are explicit. Distinguishes from sibling tools like list_chat_sessions (list all) and create_chat_session (create).

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. Does not mention that this is for fetching a single session by ID, while list_chat_sessions is for retrieving all sessions. Lacks explicit when-to-use or when-not-to-use instructions.

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

get_default_modelsA

Get default model configurations.

Returns:
    Default models configuration
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior2/5

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

No annotations provided. The description only states the action (get) and return value, without disclosing behavioral traits like idempotency, caching, or permission requirements. Minimal information for a tool with zero annotations.

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

Conciseness5/5

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

Extremely concise: two lines, no fluff. Every word is necessary and front-loaded with the purpose.

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 an output schema and no parameters, the description is minimally adequate. However, it lacks context about what 'default' means or how this configuration is used, which could help an agent decide when to call it.

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?

No parameters exist in the schema, so schema coverage is 100% trivially. The description adds no parameter info, but with zero parameters, baseline is 4.

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

Purpose5/5

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

The description clearly states the tool retrieves default model configurations. It uses specific verb 'Get' and resource 'default model configurations', distinguishing it from siblings like get_model or list_models.

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 vs alternatives. While it's implied for retrieving defaults, the description does not mention when-not or provide context for selection among similar read-only tools.

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

get_modelB

Get a specific model by ID.

Args:
    model_id: Model ID (e.g., 'model:abc123')

Returns:
    Model details
ParametersJSON Schema
NameRequiredDescriptionDefault
model_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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 is the sole source of behavioral information. It only says 'Returns Model details' without disclosing error behavior (e.g., if ID is invalid), permission requirements, or whether the operation is safe. The description adds minimal behavioral context beyond the obvious 'get' intent.

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 brief and uses a clear docstring format with Args and Returns sections. Every sentence is informative. It is efficient without being overly terse.

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 a single parameter, is read-only, and an output schema exists to define return values, the description covers the basics. However, it lacks detail on error handling, permissions, or the structure of the returned model details, which would be helpful for an agent.

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

Parameters3/5

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

Schema description coverage is 0%, so the description's docstring adds value by providing an example format ('model:abc123') for model_id. However, it does not explain constraints like allowed characters or length. It partially compensates for the missing schema descriptions.

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 'Get a specific model by ID.' The verb 'Get' and resource 'model' are specific. It distinguishes from sibling tools like list_models (which returns all models) and other get tools by its parameter.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like list_models or search. It does not mention prerequisites (e.g., having a valid ID) or when not to use it. The description lacks any contextual usage advice.

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

get_noteB

Get a specific note by ID.

Args:
    note_id: Note ID (e.g., 'note:abc123')

Returns:
    Note details
ParametersJSON Schema
NameRequiredDescriptionDefault
note_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

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

Since no annotations are provided, the description carries full burden. It only states the basic operation and return value, omitting important details like read-only nature, required permissions, error handling, or rate limits.

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

Conciseness4/5

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

The description is concise at three lines, with a clear front-loaded purpose statement. The 'Args' and 'Returns' sections add minimal structure without unnecessary fluff.

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 simplicity of the tool and the presence of an output schema, the description provides adequate high-level information. However, it lacks usage context and behavioral details that would help an agent decide when to call this tool.

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 input schema has 0% description coverage, so the description adds value by providing an example format ('note:abc123') for the single parameter 'note_id'. This helps the agent understand the expected value syntax beyond the schema's type declaration.

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 resource 'specific note by ID', making the tool's purpose immediately obvious. It distinguishes itself from siblings like 'list_notes' by focusing on retrieval of a single note by ID.

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 'list_notes' or 'search'. The description does not mention prerequisites or exclude scenarios such as when the note ID is unknown.

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

get_notebookB

Get a specific notebook by ID.

Args:
    notebook_id: Notebook ID (e.g., 'notebook:abc123')

Returns:
    Notebook details
ParametersJSON Schema
NameRequiredDescriptionDefault
notebook_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It only states the action and returns, without mentioning permissions, side effects, or error handling (e.g., what happens if notebook_id does not exist).

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 concise and front-loaded with the purpose. It uses a standard docstring format with Args and Returns sections. However, the Returns section is minimal ('Notebook details') and could be more descriptive.

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

Completeness3/5

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

Given that there is only one parameter and an output schema exists, the description is adequate but not thorough. It lacks details on error behavior, required permissions, and the structure of the return value beyond what the output schema might provide.

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 0% schema description coverage, the parameter documentation in the schema provides only name and type. The description adds a helpful example format ('notebook:abc123') for notebook_id, which adds significant 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 'Get a specific notebook by ID.' The verb 'get' and the resource 'notebook by ID' are specific and distinguish it from sibling tools like get_note or get_model.

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 search or list_notebooks. Among many sibling get tools, explicit context on when to choose this one is missing.

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

get_settingsB

Get application settings.

Returns:
    Application settings
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are present, and the description does not disclose behavioral traits such as authentication requirements, side effects, or rate limits. It only states the return value without indicating whether the operation is read-only or has other implications.

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 very concise with two short sentences, containing no redundant information. However, it could be slightly improved by adding context about the settings scope without losing brevity.

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 what 'application settings' entails, which may be necessary for differentiation from sibling tools like get_default_models. The description is minimally adequate.

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 no parameters, so the description does not need to add parameter semantics. With 100% schema coverage (trivially empty), the baseline is 4, and the description adds no further meaning.

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 'Get application settings,' which indicates the verb and resource. It is simple and unambiguous, but it does not elaborate on what settings are included, which could help distinguish it from related tools like get_default_models.

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. The description does not mention any prerequisites, context, or exclusions, leaving the agent to infer usage from the name alone.

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

get_sourceA

Get a specific source by ID.

Args:
    source_id: Source ID (e.g., 'source:abc123')

Returns:
    Source details
ParametersJSON Schema
NameRequiredDescriptionDefault
source_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/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 full burden. It describes a read operation ('Get'), which implies no destructive side effects, but does not explicitly state permissions, error conditions, or safety guarantees. Minimal but adequate.

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 (5 lines), front-loaded with the key summary, and contains no unnecessary words. The Args/Returns sections are clearly structured and immediately useful.

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 is simple (1 param, read-only), an output schema exists (so return values are documented), and sibling tools are present, the description covers the essential retrieval purpose. It could mention error behavior (e.g., not found), but is otherwise complete.

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 schema provides no description for 'source_id' (0% coverage), but the description adds a format example ('e.g., source:abc123'), which clarifies the expected input beyond the schema's bare type string.

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

Purpose5/5

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

The description clearly states its verb ('Get') and resource ('a specific source by ID'), distinguishing it from siblings like 'list_sources' (which retrieves all) and 'create_source' (which creates new records).

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 does not explicitly state when to use this tool versus alternatives (e.g., 'use this when you have a known source ID'). It is implied by the name and parameter, but no direct guidance or exclusions are provided.

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

list_chat_sessionsB

Get all chat sessions with optional filtering.

Args:
    notebook_id: Optional notebook ID to filter by
    limit: Maximum number of results (1-100)

Returns:
    Dictionary with sessions list and metadata
ParametersJSON Schema
NameRequiredDescriptionDefault
notebook_idNo
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It fails to disclose behavioral traits such as authentication requirements, rate limits, pagination behavior beyond the limit parameter, or default ordering of results.

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?

Description is short and front-loaded with main action. The Args section is somewhat redundant with schema but includes return info. No unnecessary sentences.

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 simple list function with 2 optional parameters and an output schema, the description adequately covers purpose and basic filtering. However, it lacks details about output structure (though schema provides it) and fails to mention any metadata returned.

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

Parameters3/5

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

Schema coverage is 0%, but description adds meaning: 'notebook_id' is explained as filter criterion, and 'limit' is given a range (1-100) not in schema. However, it does not explain that these parameters are optional or provide default behavior contexts.

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 'Get all chat sessions with optional filtering', which is a specific verb-resource pair. It distinguishes from siblings like 'get_chat_session' (single) and 'create_chat_session'.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like 'get_chat_session' for individual sessions or 'search' for broader queries. Lacks explicit context for selection.

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

list_modelsB

Get all configured AI models.

Args:
    limit: Maximum number of results (1-100)

Returns:
    Dictionary with models list and metadata
ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations provided, the description bears full responsibility for behavioral disclosure. It states 'Get all' but includes a limit parameter, which is contradictory. It does not mention read-only nature, pagination, or ordering behavior, leaving important behavioral traits unclear.

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?

Description is concise and front-loaded with the main purpose. It uses structured sections (Args, Returns) which aid readability. However, the sections add redundancy since the schema already defines the parameter and output.

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

Completeness3/5

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

The tool is simple with one parameter and an output schema, so the description is mostly adequate. However, it lacks context on what 'configured' means, potential prerequisites, or how it relates to user-specific models. The output schema likely covers return values, but missing broader usage context.

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 description adds value by specifying 'limit: Maximum number of results (1-100)', which clarifies the range beyond the schema's default. Schema coverage is 0%, so this manual description compensates well for the only parameter.

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 'Get all configured AI models' with a clear verb and resource. It distinguishes itself from siblings like 'get_model' (singular) and 'get_default_models' (specific subset).

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 'list_models' versus alternatives like 'get_default_models' or 'get_model'. The description does not mention contexts or exclusions, leaving the agent to infer usage from the tool name alone.

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

list_notebooksA

Get all notebooks with optional filtering and ordering.

Args:
    archived: Filter by archived status (None = all, True = archived only, False = active only)
    order_by: Order by field and direction (e.g., 'created desc', 'name asc')
    limit: Maximum number of results (1-100)

Returns:
    Dictionary with notebooks list and metadata
ParametersJSON Schema
NameRequiredDescriptionDefault
archivedNo
order_byNoupdated desc
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description bears full responsibility for transparency. It mentions the return type (dictionary with notebooks list and metadata) but omits details like whether it is read-only, pagination behavior, or performance implications. It is adequate but incomplete.

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 and well-structured using a standard Args/Returns format. Every sentence adds value, with no redundancy or fluff. It is appropriately sized for the tool's complexity.

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

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 the return structure fully. It covers the arguments well and explains the return type. Minor gaps (e.g., no explicit mention of pagination beyond limit) prevent a perfect score, but it is nearly complete.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must fully explain parameters. It does so excellently, providing clear semantics for 'archived' (filtering options), 'order_by' (format with example), and 'limit' (range). This adds significant value beyond the schema's type-only definitions.

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 it retrieves notebooks with optional filtering and ordering (specific verb+resource). However, it does not explicitly distinguish this tool from sibling list tools like list_notes or list_sources, relying on the resource name to imply differentiation.

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., search, get_notebook). It does not mention when-not to use it or any prerequisites. The usage context is implied only by the tool's name.

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

list_notesA

Get all notes with optional filtering.

Args:
    notebook_id: Optional notebook ID to filter by
    limit: Maximum number of results (1-100)
    offset: Pagination offset

Returns:
    Dictionary with notes list and metadata
ParametersJSON Schema
NameRequiredDescriptionDefault
notebook_idNo
limitNo
offsetNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

The description explains the behavior: returns a dictionary with notes list and metadata, with pagination via limit and offset. Since no annotations exist, it sufficiently conveys the read-only nature, though could explicitly state no 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 concise (around 80 words) and structured as a docstring with Args/Returns sections. Some rephrasing could improve clarity, but it is largely effective and front-loaded.

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 pagination and no output schema, the description covers all necessary aspects: filtering, pagination, return structure. It is complete given the tool's complexity and sibling context.

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

Parameters5/5

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

With 0% schema coverage, the description fully compensates by explaining all three parameters: notebook_id filter, limit (1-100), and offset for pagination. This adds crucial meaning beyond the schema's type and default.

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 'Get all notes with optional filtering', providing a specific verb and resource that distinguishes it from siblings like get_note (single note) and search (full-text search across sources).

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 notes with optional filters but does not explicitly state when to use this tool over alternatives such as search or get_note. No exclusions or when-not-to-use guidance is provided.

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

list_sourcesA

Get all sources with optional filtering.

Args:
    notebook_id: Optional notebook ID to filter by
    limit: Maximum number of results (1-100)
    offset: Pagination offset

Returns:
    Dictionary with sources list and metadata
ParametersJSON Schema
NameRequiredDescriptionDefault
notebook_idNo
limitNo
offsetNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/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 full burden. It discloses pagination behavior via limit and offset parameters, and optional filtering, which is good. However, it does not mention read-only nature or other 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 concise with a front-loaded main sentence and structured argument list. It could be slightly more streamlined, but it is effective.

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 and existence of an output schema, the description covers parameter behavior and return type adequately. It lacks details on sorting or error handling, but these are secondary for a list tool.

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

Parameters5/5

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

Schema description coverage is 0%, but the description adds meaning beyond the schema by specifying the range for limit (1-100) and explaining offset for pagination. It also clarifies that notebook_id is an optional filter.

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 'Get all sources with optional filtering', which specifies the verb 'get' and resource 'sources', and distinguishes from sibling tools like get_source (single) and create_source.

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 sources with optional notebook_id filtering and pagination, but does not provide explicit guidance on when to use this tool versus alternatives like search or get_source.

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

search_capabilitiesA

Search tools exposed by this server with progressive detail levels.

Args:
    query: Search query to filter tools
    detail: Level of detail - 'name' (minimal), 'summary' (default), or 'full' (complete)
    limit: Maximum number of results (1-50)

Returns:
    Dictionary with request_id, query, detail, count, matches, and hint fields
ParametersJSON Schema
NameRequiredDescriptionDefault
queryNo
detailNosummary
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It does not disclose behavioral traits beyond the description (e.g., auth needs, rate limits). The return dictionary is mentioned, but for a search tool this is adequate.

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 with a single sentence for purpose, followed by clear Args and Returns sections. Every sentence adds value, and the structure is front-loaded.

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 the tool's low complexity (3 optional parameters, output schema exists), the description covers purpose, parameters, and return format completely. No missing details for an agent to use the tool effectively.

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

Parameters5/5

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

Schema description coverage is 0%, but the description thoroughly explains all three parameters: query (search query), detail (enum levels), and limit (range 1-50). This adds significant meaning beyond the schema's property names and types.

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 searches for tools exposed by the server with progressive detail levels. It uses specific verb 'search' and resource 'tools/capabilities', and distinguishes from sibling 'search' which likely targets other content.

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 an Args section explaining the parameters and their defaults, providing clear context for usage. However, it does not explicitly mention when not to use this tool versus alternatives like 'search'.

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

update_chat_sessionC

Update a chat session.

Args:
    session_id: Session ID
    title: Optional new title

Returns:
    Updated session details
ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes
titleNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

The description only says 'Update' and 'Returns updated session details', but does not disclose side effects, idempotency, required permissions, or error conditions. With no annotations, the description should provide more behavioral context.

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 concise and front-loaded, using a clear list for arguments. Every sentence serves a purpose, though it could be more 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?

For a simple update tool with two parameters and an output schema, the description covers basic context but lacks usage guidelines and behavioral details, 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?

Schema coverage is 0%, so the description must add meaning. It explains that 'title' is optional and a new value, but does not elaborate on constraints or the 'session_id' format. This is adequate but minimal.

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

Purpose4/5

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

The description clearly states the verb 'Update' and resource 'chat session', making the purpose obvious. However, it does not differentiate from siblings like create_chat_session or delete_chat_session, which could be improved.

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., create_chat_session or execute_chat). 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.

update_noteC

Update a note.

Args:
    note_id: Note ID
    title: Optional new title
    content: Optional new content
    topics: Optional list of topics

Returns:
    Updated note details
ParametersJSON Schema
NameRequiredDescriptionDefault
note_idYes
titleNo
contentNo
topicsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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 must disclose behavioral traits. It only states 'Update a note' and 'Returns updated note details', missing information on side effects, permissions, or idempotency.

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 well-structured with Args and Returns sections, and it is concise. No unnecessary information, but could be slightly more compact.

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, return values are covered. However, the description does not address error cases (e.g., missing note_id) or the nature of partial updates. Adequate but not comprehensive.

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

Parameters2/5

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

Schema coverage is 0%, yet the description merely restates the parameters (e.g., 'Optional new title') without adding meaningful constraints or usage context. It does not compensate for the missing schema descriptions.

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 'Update a note', which is a specific verb and resource. However, it does not differentiate from other update tools like update_notebook or update_source, but the purpose is still clear.

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 create_note or delete_note. The description lacks context for proper selection.

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

update_notebookA

Update a notebook.

Args:
    notebook_id: Notebook ID
    name: Optional new name
    description: Optional new description
    archived: Optional archived status

Returns:
    Updated notebook details
ParametersJSON Schema
NameRequiredDescriptionDefault
notebook_idYes
nameNo
descriptionNo
archivedNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It only states the input parameters and return type, but lacks information about side effects, required permissions, error handling, or atomicity. For a mutation tool, this is a significant gap.

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

Conciseness5/5

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

The description is extremely concise, listing only essential information in a structured format (Args and Returns). Every sentence is necessary, and it avoids redundancy or fluff.

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 complexity (4 parameters, output schema exists) and no annotations, the description is minimally adequate. It covers the basics but omits context like error scenarios, idempotency, or whether partial updates are supported. An average score is fair.

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 description adds meaning beyond the schema by labeling each parameter (e.g., 'Notebook ID', 'Optional new name'). Although the schema has 0% description coverage, the description compensates reasonably well, but still lacks detailed syntax or constraints.

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 'Update a notebook,' using a specific verb and resource. This distinguishes it from siblings like create_notebook, delete_notebook, and get_notebook, making the tool's purpose unambiguous.

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

Usage 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 name and context imply it's for modifying existing notebooks, there is no mention of prerequisites or when not to use it. A minimal viable score is appropriate.

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

update_settingsC

Update application settings.

Args:
    settings: Settings dictionary to update

Returns:
    Updated settings
ParametersJSON Schema
NameRequiredDescriptionDefault
settingsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided. Description implies modification but lacks details on side effects, permissions, or whether updates are additive or destructive. The return type is mentioned but not elaborated.

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?

Description is extremely short and front-loaded. However, it sacrifices necessary detail for brevity, making it minimally acceptable.

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 simple structure and one parameter, the description omits critical details about the 'settings' object structure and expected behavior. Output schema exists but is not shown; description only says 'Updated settings' without specifics.

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

Parameters2/5

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

Schema description coverage is 0%. The description only restates 'Settings dictionary to update' with no explanation of valid keys, format, or constraints. Fails to compensate for the schema's lack of descriptive detail.

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 'Update application settings.' The verb 'update' and resource 'application settings' are specific. It distinguishes from sibling tools like get_settings (read) and other update tools for different resources.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like create/update for specific resources. No prerequisites, context, or exclusions provided.

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

update_sourceC

Update a source.

Args:
    source_id: Source ID
    title: Optional new title
    topics: Optional list of topics

Returns:
    Updated source details
ParametersJSON Schema
NameRequiredDescriptionDefault
source_idYes
titleNo
topicsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations provided, the description bears the full burden of disclosing behavioral traits. It merely states 'Update a source' without detailing side effects, idempotency, permission requirements, or whether updates are partial or full replacements. This is insufficient for a mutation tool.

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

Conciseness3/5

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

The description is very short (three lines), but it is not efficiently informative. It repeats schema information without adding critical behavioral or usage context. A more structured approach with front-loaded key details would improve usability.

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

Completeness2/5

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

Given the complexity of an update operation (partial vs full, optional fields), the description is inadequate. It does not clarify the update semantics, return behavior, or error conditions. With no annotations and an output schema present, the description should provide more context to compensate.

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 description adds some semantic value over the schema by labeling title as 'Optional new title' and topics as 'Optional list of topics', but it does not explain whether topics replaces or appends to existing topics. Since schema description coverage is 0%, the description partially compensates but remains incomplete.

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 a source' clearly states the verb and resource, distinguishing it from sibling tools like create_source, delete_source, and list_sources. However, it could be more specific about what aspects of the source can be updated (e.g., metadata).

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, such as create_source or other update tools. There is no mention of prerequisites, context, 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.

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.2.0
    • First observedask_question
    • First observedask_simple
    • First observedcreate_chat_session
    • First observedcreate_model
    • First observedcreate_note
    • First observedcreate_notebook
    • First observedcreate_source
    • First observeddelete_chat_session
    • First observeddelete_model
    • First observeddelete_note
    • First observeddelete_notebook
    • First observeddelete_source
    • First observedexecute_chat
    • First observedget_chat_context
    • First observedget_chat_session
    • First observedget_default_models
    • First observedget_model
    • First observedget_note
    • First observedget_notebook
    • First observedget_settings
    • First observedget_source
    • First observedlist_chat_sessions
    • First observedlist_models
    • First observedlist_notebooks
    • First observedlist_notes
    • First observedlist_sources
    • First observedsearch
    • First observedsearch_capabilities
    • First observedupdate_chat_session
    • First observedupdate_note
    • First observedupdate_notebook
    • First observedupdate_settings
    • First observedupdate_source

TDQS

B3.3/5.0
Disambiguation4/5

Most tools have clear distinct purposes, but 'ask_question' and 'ask_simple' are very similar in functionality and arguments, potentially causing confusion for an agent. Other tools like CRUD operations are well-separated.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with lowercase and underscores (e.g., create_notebook, delete_source). No mixing of conventions or irregular names.

Tool Count4/5

With 33 tools, the server is on the higher side but still reasonable given the multiple resources (notebooks, notes, sources, chat sessions, models, settings) and additional utility tools. It's slightly over the typical well-scoped range but not excessive.

Completeness4/5

The tool surface covers CRUD operations for all major resources and includes question-asking and search features. Minor gaps like import/export or bulk operations are missing, but core workflows are well-supported.

Maintenance

ActivityInactive
ResponsivenessUnresponsive

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

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/Epochal-dev/open-notebook-mcp'

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