Skip to main content
Glama

ds-mcp-server

ds-mcp-server packages a FastMCP server with data science, plotting, statistics, system, and web tools, plus interactive CLI clients for OpenAI-compatible providers and Anthropic Claude.

What's in the box

After you pip install ds-mcp-server, three commands are available:

Command

What it is

When to use it

ds-mcp-webui

Browser chat UI

You want to chat and see plots in your browser. Start here.

ds-mcp-client

Interactive terminal chat

You prefer the CLI. Same features as the web UI, minus inline plot rendering.

ds-mcp-server

The MCP server itself

You are configuring an external MCP client (Claude Desktop, LM Studio, Cursor, etc.) to launch it. Do not run this by hand — it will look "frozen" because it's silently waiting for MCP protocol messages on stdin.

In short: for humans → ds-mcp-webui or ds-mcp-client. For MCP clients configured with a command field → ds-mcp-server.

⚠️ Intended use: local, single-user. The web UI (ds-mcp-webui) and terminal client (ds-mcp-client) are designed to be run locally by one person on their own machine — like Jupyter, Streamlit, or a local Ollama UI. They are not multi-tenant and have no authentication, per-user isolation, or rate limiting: a single shared MCP session, global settings, and one set of API keys are shared by every connection. Some tools (the opt-in system tools and unrestricted custom-plot exec) can execute code with your privileges.

Do not expose these servers to the public internet or untrusted users or networks. Bind them to localhost (the default), and if you need remote access, put them behind your own authenticated tunnel/VPN. Enabling the dangerous toggles on a machine reachable by others is a remote-code-execution risk. See Optional system tools for details.

Related MCP server: MCP Chat

Installation

Install from PyPI:

pip install ds-mcp-server

Local development install:

pip install -e .

Optional extras:

pip install -e ".[anthropic]"
pip install -e ".[playwright]"
pip install -e ".[documents]"   # read_pdf, read_docx, read_excel_sheets, tables
pip install -e ".[ocr]"         # ocr_image (also needs the tesseract binary)
pip install -e ".[profiling]"   # profile_dataset (ydata-profiling)
pip install -e ".[all]"

First-time setup (all platforms)

After pip install, you need to tell the client which LLM to talk to. The fastest way is to let the tool generate a template for you:

ds-mcp-webui --init-env

This writes a .env file to the current folder with every provider commented out. Open it in any text editor, uncomment the block for your provider, paste your API key, save, then run ds-mcp-webui again from the same folder.

Alternative: set the variables directly for one session

Windows Command Prompt

set PROVIDER=openai
set API_KEY=sk-your-key-here
set MODEL=gpt-4o
ds-mcp-webui

Windows PowerShell

$env:PROVIDER = "openai"
$env:API_KEY  = "sk-your-key-here"
$env:MODEL    = "gpt-4o"
ds-mcp-webui

macOS / Linux (bash / zsh)

export PROVIDER=openai
export API_KEY=sk-your-key-here
export MODEL=gpt-4o
ds-mcp-webui

If you run ds-mcp-webui or ds-mcp-client without any credentials configured, you'll get a helpful setup message pointing you at these same options — you can't get stuck.

Quick start

  1. Copy .env.example to .env.

  2. Fill in your provider settings.

  3. Install the package.

  4. Run ds-mcp-webui (browser) or ds-mcp-client (terminal) to chat.

The examples below use export … (bash/zsh syntax). On Windows, use set … in Command Prompt or $env:… = "…" in PowerShell — see First-time setup above, or just run ds-mcp-webui --init-env and edit the generated .env file.

OpenAI

export PROVIDER=openai
export API_KEY=sk-...
export MODEL=gpt-4o
ds-mcp-webui         # browser chat  →  http://127.0.0.1:8765
# or
ds-mcp-client        # terminal chat

Claude / Anthropic

export PROVIDER=anthropic
export ANTHROPIC_API_KEY=sk-ant-...
export MODEL=claude-opus-4-5
ds-mcp-webui

Gemini (OpenAI-compatible endpoint)

export PROVIDER=gemini
export API_KEY=AIza...
export MODEL=gemini-2.0-flash
ds-mcp-webui

Ollama

export PROVIDER=ollama
export API_BASE_URL=http://localhost:11434/v1
export MODEL=llama3
ds-mcp-webui

GPUStack / LM Studio / other OpenAI-compatible servers

export PROVIDER=openai-compat
export API_BASE_URL=https://your-endpoint.example/v1
export API_KEY=your-key
export MODEL=your-model
ds-mcp-webui

Running the MCP server (for external MCP clients only)

If you are wiring up an external MCP client — Claude Desktop, LM Studio, Cursor, or anything else that spawns MCP servers as subprocesses — point it at the ds-mcp-server command. You don't run this yourself in a terminal; the MCP client does it for you and talks to it over stdin/stdout.

ds-mcp-server                     # what an MCP client will invoke for you
ds-mcp-server --enable-system-tools    # add shell/file/HTTP tools (dangerous)

If you ran ds-mcp-server in your terminal and it appears to hang after printing a startup line — that's expected. It's waiting for MCP protocol messages that only an MCP client can send. Press Ctrl+C to exit and use ds-mcp-webui or ds-mcp-client instead.

See the Optional system tools section below before enabling the --enable-system-tools flag.

⚠️ Optional system tools

By default ds-mcp-server only exposes safe read-only data-science tools (plots, statistics, dataset summaries, web fetch/search). A second group of system / coder tools is bundled in the package but is disabled by default because it grants the connected LLM effectively remote-code-execution power.

The gated tools are:

  • run_shell_command — runs any shell command with your user's privileges

  • read_file, write_file, patch_file, list_directory — arbitrary file I/O

  • find_in_files — regex-search anywhere on disk

  • run_background_process, stop_background_process, list_background_processes

  • http_request — arbitrary outbound HTTP (SSRF risk: can reach localhost, cloud metadata endpoints, internal services, etc.)

Enabling

Only enable inside a sandbox you trust (Docker container, WSL, dedicated VM, or a throwaway user account). The LLM decides when to call these — a single prompt-injection or misinterpretation is enough to trigger destructive actions.

Two equivalent ways to enable:

# Preferred: env var, works with any MCP client (Claude Desktop, LM Studio, …)
export DS_MCP_ENABLE_SYSTEM_TOOLS=1

# Or as a CLI flag when launching the server directly
ds-mcp-server --enable-system-tools

When enabled, the server prints a warning banner to stderr at startup listing every dangerous tool that was registered. When disabled, it prints a one-line hint telling you how to opt in.

Claude Desktop config with system tools enabled

{
  "mcpServers": {
    "ds-mcp-server": {
      "command": "ds-mcp-server",
      "args": ["--enable-system-tools"]
    }
  }
}

🔒 Sandbox for LLM-generated plotting code

Two tools — generate_custom_plotly and generate_custom_static_plot — accept a Python code string produced by the LLM and exec() it in-process to render a plot. Because that code can be influenced by any dataset, webpage, or file the model reads, ds-mcp-server sandboxes it by default.

What the sandbox blocks

  • import and from ... import statements (all needed libraries — pd, np, px, go, plt, sns, WordCloud, df — are pre-injected).

  • Calls to eval, exec, compile, open, __import__, getattr, setattr, delattr, globals, locals, vars, input, breakpoint.

  • Access to any dunder attribute (.__class__, .__subclasses__, etc.) — this closes the common ().__class__.__mro__[-1].__subclasses__() escape.

  • Runaway execution — a 60s wall-clock timeout aborts the tool call.

What the sandbox does NOT block (honest limits)

  • Filesystem access via pre-imported libraries. pd.read_csv("/etc/passwd") still works because pandas legitimately needs to read files. For strong isolation run the server inside a container, VM, or dedicated user account.

  • Native-code CPU/memory exhaustion. Python threads cannot interrupt C extensions, so the timeout is best-effort against numpy/pandas hot loops.

Disabling the sandbox

If you trust the LLM and want unrestricted exec (e.g. for advanced plotting that legitimately needs import), you can opt out:

# Env var (works with any MCP client)
export DS_MCP_ALLOW_UNRESTRICTED_EXEC=1

# Or CLI flag
ds-mcp-server --allow-unrestricted-exec

When disabled, the server prints a warning banner to stderr at startup.

Claude Desktop MCP config

Add the server to your Claude Desktop MCP configuration:

🖥️ Browser chat UI (optional)

Prefer clicking over typing? ds-mcp-server ships with an optional browser-based chat UI that talks to the same MCP server and renders plots inline (interactive Plotly HTML in an iframe, PNG/SVG as images).

It's included in the base install — no extras needed:

pip install ds-mcp-server

Launch it (with your .env in the current directory or in ~/.env):

ds-mcp-webui                # http://127.0.0.1:8765
ds-mcp-webui --port 9000    # custom port
ds-mcp-webui -p openai -m gpt-4o

Then open the printed URL in your browser. The UI:

  • Streams tool calls as they happen (little pill chips per tool).

  • Renders generated plots inline — interactive Plotly plots are fully scrollable/zoomable directly in the chat.

  • Shows all available MCP tools in a searchable sidebar.

  • Works with any provider the CLI client supports (OpenAI, Anthropic, Gemini, Ollama, LM Studio / GPUStack / any OpenAI-compat endpoint).

  • Settings panel (⚙ in the sidebar) lets you toggle the dangerous opt-ins — System / coder tools and Unrestricted exec() — with clear warnings. Toggling either one restarts the underlying MCP process so the change takes effect without leaving the browser.

By default it binds to 127.0.0.1 (localhost only). Use --host 0.0.0.0 to expose it on your LAN — but be aware that anyone reaching the port can chat through your API key.

{
  "mcpServers": {
    "ds-mcp-server": {
      "command": "ds-mcp-server",
      "args": []
    }
  }
}

Environment variables

Variable

Required

Description

PROVIDER

No

One of openai, anthropic, gemini, ollama, openai-compat.

API_KEY

Usually

Generic API key used by OpenAI-compatible providers and as a fallback for Anthropic.

ANTHROPIC_API_KEY

Anthropic only

Preferred Anthropic key.

API_BASE_URL

Sometimes

Required for openai-compat; optional override for Ollama, Gemini, or self-hosted endpoints.

MODEL

No

Model override. Defaults are provider-specific.

Reliability / anti-hang knobs

Single-agent chat runs an LLM↔tool loop. Weak or looping models (common with small self-hosted backends) can otherwise keep calling tools without ever producing a final answer, which shows up in the web UI as an endless spinner. These knobs bound every turn so it always terminates:

Variable

Default

Description

DS_MCP_MAX_STEPS

16

Max LLM↔tool rounds per single-agent turn. On exceeding it the turn stops with a "stopped after N steps" notice instead of hanging.

DS_MCP_LLM_TIMEOUT

300

Per-request timeout (seconds) for the OpenAI/Anthropic SDK calls. 0 disables it. Prevents a stalled provider from freezing for the SDK's ~10-minute default.

DS_MCP_TOOL_TIMEOUT

180

Per-tool-call timeout (seconds). A tool that never returns (slow URL fetch, stuck shell command, ...) is aborted with a readable error. 0 disables it.

Multi-agent mode has its own independent budgets (MAX_ROUNDS, MAX_WORKER_RETRIES, MAX_WORKER_STEPS) — see below.

Multi-agent mode (supervisor + workers)

By default one LLM sees every tool at once. As the tool catalogue grows this hurts tool-selection accuracy. Multi-agent mode splits the work across a team:

  • A supervisor (planner) LLM that runs no tools. It breaks your request into small subtasks, delegates each to the right worker, reads their feedback, retries or re-plans on failure, and writes the final answer.

  • One worker LLM per tool category (data, plot_interactive, plot_static, stats, web, research, system). Each worker only ever sees the tools in its own category, so its decision space stays small no matter how many tools exist.

# Enable it with --multi-agent
ds-mcp-client --multi-agent

# Use a strong planner and a cheaper worker model
ds-mcp-client --multi-agent \
  --planner-model gpt-4o \
  --worker-model  gpt-4o-mini

# Tune the iteration budgets
ds-mcp-client --multi-agent \
  --max-rounds 4 \            # supervisor re-planning rounds
  --max-worker-retries 3 \   # times a worker retries a failed task
  --max-worker-steps 8       # tool-call iterations inside one worker task

# One-shot, non-interactive
ds-mcp-client --multi-agent --prompt "Load data.csv, correlate all columns, and plot the strongest pair"

Everything is also configurable via environment variables: PLANNER_MODEL, WORKER_MODEL, MAX_ROUNDS, MAX_WORKER_RETRIES, MAX_WORKER_STEPS.

Knob

CLI flag

Env var

Default

Meaning

Planner model

--planner-model

PLANNER_MODEL

MODEL

Model for the supervisor

Worker model

--worker-model

WORKER_MODEL

MODEL

Model for the workers (make it cheaper)

Rounds

--max-rounds

MAX_ROUNDS

3

Supervisor planning/re-planning rounds

Worker retries

--max-worker-retries

MAX_WORKER_RETRIES

2

Retries after a worker's first failed attempt

Worker steps

--max-worker-steps

MAX_WORKER_STEPS

6

Tool-call iterations within one worker task

The data-exploration tools (get_*_summary) are automatically shared into the plotting and stats workers so they can inspect columns before acting.

In the web UI

Multi-agent mode is also available in ds-mcp-webui — no restart or config edits required. There are two ways to control it:

  • Sidebar toggle — a Multi-agent switch with a clear on/off badge. When it's on, the subtitle shows which supervisor/worker models are in use, and each request is routed through the supervisor. You'll see the plan and each worker's progress live in the chat (supervisor round → delegated tasks → per-worker ✓/✗ with the tools used).

  • Settings → Multi-agent — open the ⚙ settings dialog to enable multi-agent and edit its parameters live: the supervisor (planner) model, the worker model, max rounds, max worker retries, and max worker steps. These apply immediately without restarting the MCP server.

Defaults come from the same PLANNER_MODEL / WORKER_MODEL / MAX_* env vars (or MODEL). To start the web UI with multi-agent already on, set DS_MCP_MULTI_AGENT=1.

Note: in multi-agent mode each message is handled as a fresh task by the supervisor (it keeps its own working memory for that request), whereas the single-model chat keeps a running conversation across messages.

Available tools

Interactive plots

  • plot_interactive_histogram

  • plot_interactive_scatterplot

  • plot_interactive_boxplot

  • plot_interactive_lineplot

  • plot_interactive_barchart

  • plot_interactive_scatter_matrix

  • plot_interactive_correlation_heatmap

  • generate_custom_plotly

  • get_all_columns_summary

  • get_column_summary

Static plots

  • plot_static_histogram

  • plot_static_scatterplot

  • plot_static_boxplot

  • plot_static_lineplot

  • plot_static_barchart

  • plot_static_pairplot

  • plot_static_correlation_heatmap

  • plot_static_wordcloud

  • generate_custom_static_plot

Statistical analysis

  • run_correlation

  • run_group_comparison

  • run_linear_regression

  • rank_target_correlations

System tools (opt-in — see Optional system tools)

Only registered when DS_MCP_ENABLE_SYSTEM_TOOLS=1 (or --enable-system-tools).

  • run_shell_command

  • read_file

  • write_file

  • patch_file

  • list_directory

  • find_in_files

  • run_background_process

  • stop_background_process

  • list_background_processes

  • http_request

Web tools

  • search_web — DuckDuckGo search, no key required

  • fetch_webpage — fetch & parse a URL to structured text (title, headings, text)

  • screenshot_webpage — single-page Chromium screenshot (requires playwright)

  • screenshot_webpages — screenshot multiple pages and stitch into one composite PNG

Research & reference tools

No API keys needed for any of these (arXiv, Wikipedia are fully open; YouTube transcript uses the public caption API; GitHub is rate-limited without a token).

Tool

What it does

arxiv_search

Search arXiv; returns titles, authors, dates, abstracts, PDF links

github_search

Search GitHub repos (kind="repos") or code (kind="code")

github_read_file

Read any file from a public repo — accepts blob URLs, raw URLs, or owner/repo/path shorthand

wikipedia

Fetch a Wikipedia article as clean plain text; optional full=True for extended extract

youtube_transcript

Get a video's transcript with minute-level timestamps; requires pip install 'ds-mcp-server[research]'

Optional token: set GITHUB_TOKEN to avoid GitHub's 10 req/hr anonymous rate limit (raises to 30/min).

Document / file intelligence

Extract text, tables and structured previews from documents. Heavy libraries are imported lazily, so install only the extra you need:

Tool

What it does

Install

read_pdf

Extract text (and optionally tables) from a PDF; supports page ranges like "1,3,5-8"

pip install 'ds-mcp-server[documents]'

extract_tables_from_pdf

Pull structured tables out of a PDF as markdown

pip install 'ds-mcp-server[documents]'

read_docx

Extract paragraphs and tables from a Word .docx

pip install 'ds-mcp-server[documents]'

read_excel_sheets

List every sheet in a workbook and preview the first rows of each

pip install 'ds-mcp-server[documents]'

ocr_image

OCR text out of a screenshot or photo

pip install 'ds-mcp-server[ocr]' + the Tesseract binary

summarize_document

Chunk a long PDF/DOCX/TXT and hand it to the model to summarize

(uses [documents] for PDF/DOCX)

profile_dataset

Generate an interactive ydata-profiling HTML report for a dataset

pip install 'ds-mcp-server[profiling]'

In the web UI you can upload a file straight into the conversation with the 📎 button next to the message box; the saved path is passed to the model so it can call any of these tools on it.

Requirements

  • Python 3.11+

  • mcp

  • pandas, numpy

  • plotly, matplotlib, seaborn, wordcloud

  • pingouin, statsmodels

  • beautifulsoup4, ddgs

  • openai

  • anthropic (optional — pip install 'ds-mcp-server[anthropic]')

  • playwright (optional — pip install 'ds-mcp-server[playwright]' + playwright install chromium, for screenshots)

  • youtube-transcript-api (optional — pip install 'ds-mcp-server[research]', for youtube_transcript tool)

Available Tools

26 tools
fetch_webpageA

Fetch a webpage and return structured content: title, meta description, navigation items, page headings, CSS color palette, font families, and main page text (up to 4000 chars). Use this to research a site before cloning its design, extract information, or understand its structure. Pair with screenshot_webpage to also see how it looks visually.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

No annotations provided. Description mentions 4000-char limit for main text but does not disclose behaviors like rate limiting, error handling, or JavaScript execution. Adequate but lacks important 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?

Three sentences, front-loaded with purpose. Efficient but could be shorter; still well-structured.

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

Completeness4/5

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

Output schema exists to cover return values. Description explains purpose, usage, and pairing. Reasonably complete for a fetching tool, though could mention handling of redirects or large pages.

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% and description does not add semantics for 'url' parameter (e.g., required format, protocols). Description fails to compensate for missing schema description.

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

Purpose5/5

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

Description clearly states 'Fetch a webpage and return structured content' and lists specific return fields. Distinguishes from siblings like screenshot_webpage (visual) and search_web (search).

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

Usage Guidelines5/5

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

Explicitly says 'use this to research a site before cloning its design, extract information, or understand its structure' and suggests pairing with screenshot_webpage for visual context. Provides clear when-to-use and alternative.

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

generate_custom_plotlyC

Executes custom Python code (px, pd) to generate complex Plotly charts.

ParametersJSON Schema
NameRequiredDescriptionDefault
python_codeYes
data_file_pathYes
plot_filename_keywordYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

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

The description fails to disclose that this tool executes arbitrary Python code, a significant security and behavioral risk. It does not mention error handling, output format, or side effects like file saving, despite a plot_filename_keyword parameter.

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 concise as a single sentence, but it sacrifices essential information for brevity. It could be restructured to include key details without becoming verbose.

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

Completeness2/5

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

Given the tool's complexity (custom code execution) and lack of parameter descriptions, the description is woefully incomplete. It does not explain input constraints, expected code patterns, or output behavior, which is critical for safe and effective use.

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?

With 0% schema coverage, the description should compensate but adds no meaningful explanation of parameters. It does not clarify what python_code, data_file_path, or plot_filename_keyword represent or how they relate to each other.

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 executes custom Python code to generate complex Plotly charts, which distinguishes it from sibling tools that create predefined chart types. However, the hint about px and pd is vague for new users.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this custom code tool versus the many predefined plotting tools provided. Usage is only implied by the 'custom' and 'complex' language.

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

generate_custom_static_plotC

Executes custom Python code (plt, sns, pd) to generate complex static charts.

ParametersJSON Schema
NameRequiredDescriptionDefault
python_codeYes
data_file_pathYes
plot_filename_keywordYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are present, so the description bears full responsibility. It fails to disclose critical behavioral traits like potential safety risks of executing arbitrary code, lack of sandboxing, or required permissions. The agent is left unaware of possible 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.

Conciseness3/5

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

The description is a single sentence, front-loading the core purpose. However, it is too terse and omits important details, making it under-specified rather than efficiently concise.

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 executing custom Python code, the description lacks essential context: no mention of return values, error handling, performance implications, or safety considerations. The output schema is present but not described in the text.

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?

With 0% schema description coverage, the description adds no meaning to the three parameters (python_code, data_file_path, plot_filename_keyword). It does not explain expected formats, constraints, or examples for any 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 clearly states the verb 'executes' and the resource 'custom Python code (plt, sns, pd)' to generate complex static charts. It distinguishes from siblings like predefined static plot tools and generate_custom_plotly for interactive charts.

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 phrase 'complex static charts' implies use when predefined plots are insufficient, but no explicit guidance on when not to use or alternatives is provided. Usage context is implied but not fully articulated.

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

get_all_columns_summaryA

Returns a compact schema of ALL columns in one call: column names grouped by type (numeric, categorical, datetime). Categorical columns also show their unique values. Call this FIRST to understand the dataset structure, then call plot or stats tools.

ParametersJSON Schema
NameRequiredDescriptionDefault
data_file_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

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

No annotations exist, but the description discloses it returns a compact schema, implying a read-only operation. No mention of auth or limits, but these are not critical for a schema retrieval tool.

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

Conciseness5/5

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

Two sentences, front-loaded with core function, no redundant language.

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 and usage order, and an output schema exists to detail return values. Missing potential error scenarios or file support details, but adequate for typical use.

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% and the description adds no details about the 'data_file_path' parameter, such as expected format or examples, which is needed since it is the sole required input.

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 returns a compact schema grouping columns by type and showing unique values for categorical columns, and explicitly differentiates from plotting/stats tools by advising to call this first.

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?

Provides explicit guidance to call this tool FIRST to understand structure, but does not address when to use this vs. the sibling 'get_column_summary' which likely focuses on a single column.

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

get_column_summaryB

Analyzes a specific column in the dataset and returns a statistical summary. Use this for a deep dive into one column after using get_all_columns_summary.

ParametersJSON Schema
NameRequiredDescriptionDefault
columnYes
data_file_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations exist, and the description lacks details on what the statistical summary contains, potential side effects, or cost of execution.

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?

Two sentences are concise but omit necessary details, making it under-informative despite brevity.

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?

Does not describe the output format despite having an output schema; with many sibling tools, more context on when this specific summary is needed is missing.

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 adds zero detail about the parameters beyond their names; no explanation of how to specify column or data_file_path.

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

Purpose5/5

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

The description clearly states it analyzes a specific column and returns a statistical summary, distinguishing it from get_all_columns_summary by positioning it as a deeper dive.

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?

Provides explicit context of when to use ('after using get_all_columns_summary') but does not specify exclusions or alternatives beyond its sibling.

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

plot_interactive_barchartB

Generates an interactive Plotly grouped bar chart. x_column: categorical column for the x-axis groups. y_column: numeric column to aggregate. aggregation: how to aggregate y per group — 'mean' (default), 'sum', 'count', or 'median'. color_column: optional column to split bars by colour.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
x_columnYes
y_columnYes
aggregationNomean
color_columnNo
data_file_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses that the chart is interactive and grouped, and explains parameters like aggregation. However, it does not mention the return type (plotly figure) or any side effects, leaving behavioral gaps.

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

Conciseness4/5

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

The description is concise with 5 sentences and no fluff. However, it misses necessary information about the two omitted parameters, which slightly detracts from efficiency.

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 (6 params, no annotations, an output schema exists but is not described), the description is incomplete. It fails to explain required parameters data_file_path and title, and does not describe the return value. Sibling tools are numerous, so more differentiation and completeness are needed.

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 must explain all parameters. It covers x_column, y_column, aggregation, and color_column well, but completely omits data_file_path and title, which are required and critical. This incomplete coverage leaves the agent uncertain about two key inputs.

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

Purpose5/5

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

The description clearly states it generates an interactive Plotly grouped bar chart. The verb 'Generates' and resource 'grouped bar chart' are specific, and the tool is distinct from siblings like plot_static_barchart or plot_interactive_boxplot.

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 implicitly provides usage context by specifying that x_column is categorical and y_column is numeric, but it does not explicitly advise when to use this tool over alternatives like plot_static_barchart or other interactive plots. No comparative guidance or exclusions are given.

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

plot_interactive_boxplotC

Generates a web-ready interactive Plotly box plot.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
x_columnYes
y_columnYes
color_columnNo
data_file_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description must fully convey behavioral traits. It only states the output type (web-ready Plotly box plot) but does not disclose side effects (e.g., file saving), limitations, or required permissions. The minimal disclosure fails to inform the agent adequately.

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

Conciseness3/5

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

The description is a single concise sentence with no wasted words. However, it is too brief given the tool's complexity (5 parameters, required fields, output schema), sacrificing necessary information for brevity.

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 5 parameters (4 required), an output schema, and no parameter descriptions, the description is severely incomplete. It does not explain what a box plot is, how parameters relate, or any constraints, leaving the agent without sufficient context for correct invocation.

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?

The input schema has 0% description coverage, and the tool description adds no information about the parameters. The agent receives no guidance on the meaning or expected format of data_file_path, x_column, y_column, title, or color_column.

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 generates a web-ready interactive Plotly box plot, specifying the verb, resource, and format. However, it does not explicitly differentiate from sibling tools like plot_static_boxplot or plot_interactive_barchart beyond the name, leaving room for ambiguity.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as histograms or scatterplots. It lacks context on prerequisites or appropriate use cases, leaving the agent without decision support.

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

plot_interactive_correlation_heatmapA

Generates an interactive Plotly correlation heatmap. Use this to visualize relationships between numeric features. method must be 'pearson' or 'spearman'. column_filter: optional comma-separated column names or suffix patterns (e.g. '_mean') to restrict the heatmap to a subset of columns. Leave empty for all numeric columns.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
methodNopearson
column_filterNo
data_file_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It explains method options and column_filter behavior but omits details like data_file_path requirements, handling of non-numeric columns, or output format. Basic but not fully transparent.

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 five focused sentences. The first sentence states the core purpose, followed by usage and parameter details. No redundant or unnecessary text.

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

Completeness4/5

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

Given the tool's moderate complexity (4 params, output schema exists), the description covers essential aspects. It could mention that data_file_path should point to a CSV or similar, and title is for the plot title. Overall adequate but not exhaustive.

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

Parameters4/5

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

Schema coverage is 0%, so description compensates by explaining method (must be 'pearson' or 'spearman') and column_filter (comma-separated names/patterns). Title and data_file_path lack additional explanation, but overall adds significant meaning beyond 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 tool generates an interactive Plotly correlation heatmap for visualizing relationships between numeric features. It is distinct from sibling tools like plot_static_correlation_heatmap and run_correlation.

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 says 'Use this to visualize relationships between numeric features,' providing clear context. It does not explicitly exclude alternatives, but given sibling context, the purpose is well-defined.

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

plot_interactive_histogramC

Generates a web-ready interactive Plotly histogram.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
columnYes
color_columnNo
data_file_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description must fully disclose behavioral traits. It only states the tool generates a plot, omitting details like side effects (e.g., file creation), permissions needed, or whether the plot is returned or saved.

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 consists of a single clear sentence with no unnecessary words, making it highly concise and easy to parse.

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?

Despite 4 parameters, 0% schema coverage, and no annotations, the description provides minimal information. It does not explain output behavior (e.g., whether a file path or HTML is returned), nor does it address parameter use cases, making it incomplete for effective tool invocation.

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 should compensate by explaining parameters. However, it does not mention any parameters, leaving data_file_path, column, title, and color_column without semantic context beyond their names.

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 generates a histogram, specifies the format (web-ready interactive Plotly), and distinguishes it from sibling plotting tools by explicitly naming the plot type.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like plot_interactive_barchart or plot_static_histogram. It lacks usage context, prerequisites, 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.

plot_interactive_lineplotC

Generates a web-ready interactive Plotly line plot.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
x_columnYes
y_columnYes
color_columnNo
data_file_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations provided, the description must fully disclose behavioral traits, but it only states the output type. It does not mention how the plot is returned (e.g., file path, HTML), any prerequisites (e.g., data format), or side effects. This leaves the agent uncertain about the tool's behavior beyond the output.

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

Conciseness4/5

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

The description is a single, concise sentence that communicates the core purpose. However, it could include essential details without sacrificing conciseness, such as 'returns an HTML file path' to improve utility.

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 lack of annotations, zero schema coverage, and the presence of five parameters, the description is critically incomplete. It fails to guide an agent on correct invocation, data requirements, or how the output is delivered. Even with an output schema, the description needs to elaborate on behavioral aspects.

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?

The wording has 0% schema coverage, yet the description does not explain any parameters. The schema shows five parameters with names alone, which may be ambiguous (e.g., 'data_file_path' format, 'color_column' semantics). The description adds no value beyond the schema.

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

Purpose5/5

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

The description clearly states the verb 'generates' and the resource 'web-ready interactive Plotly line plot', precisely defining what the tool does. The tool name reinforces this, making it easy for an agent to distinguish from sibling tools that produce static plots or other plot types.

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 its many siblings, such as plot_static_lineplot or plot_interactive_scatterplot. An agent would lack context on which tool is appropriate for a given scenario.

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

plot_interactive_scatter_matrixB

Generates an interactive Plotly scatter matrix (pair plot equivalent). columns: comma-separated list of numeric column names (e.g. 'radius_mean,texture_mean,area_mean'). color_column: optional categorical column to colour points by (e.g. 'diagnosis').

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
columnsYes
color_columnNo
data_file_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It only states the type of plot and parameter examples, omitting behavioral details like whether the plot is displayed or saved, required data format, or any side effects. More transparency is needed for a tool with zero annotation coverage.

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

Conciseness4/5

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

The description is short and front-loaded with the purpose. Parameter notes are embedded inline, which is efficient. However, it could be more structured with separate sections for each parameter. Still, no extraneous information.

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

Completeness3/5

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

Given the presence of an output schema (known from context), the description doesn't need to explain return values. However, it lacks differentiation from sibling interactive plots and does not mention prerequisites like data file path semantics. It is adequate for basic understanding but not fully complete.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It explains that 'columns' is a comma-separated list of numeric column names and 'color_column' is an optional categorical column. However, it does not describe 'title' or 'data_file_path', which are required. Two of four parameters are partially covered, making it adequate but incomplete.

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

Purpose5/5

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

The description clearly states it generates an interactive Plotly scatter matrix (pair plot equivalent). It provides examples for parameters, making the purpose unambiguous. It distinguishes from siblings like plot_static_pairplot (static vs interactive) and plot_interactive_scatterplot (single scatter vs matrix).

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 multiple numeric columns but does not explicitly state when to use this tool vs alternatives. No when-not or alternative mentions are provided, leaving the agent to infer from the tool name and sibling list.

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

plot_interactive_scatterplotB

Generates a web-ready interactive Plotly scatter plot.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
x_columnYes
y_columnYes
color_columnNo
data_file_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are present, and the description does not disclose behavioral traits (e.g., performance, auto-saving, error handling, or required permissions). It only states the output type without elaborating on side effects or constraints.

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

Conciseness4/5

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

The description is a single sentence and thus very concise and front-loaded. However, for a tool with 5 parameters and no annotations, it may be too under-specified, making it less useful despite its 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 complexity (5 parameters, no annotations, output schema exists), the description is minimal but covers the essential purpose. It does not explain return format or provide enough context for an AI agent to confidently use it, but the output schema partially compensates.

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?

With 0% schema description coverage, the tool description must compensate, but it provides no explanation of any parameter (e.g., data_file_path path format, x_column/y_column requirements). Parameter names are somewhat self-explanatory, but the description adds no value 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 it generates a web-ready interactive Plotly scatter plot, specifying the tool, library, and plot type. This distinguishes it from sibling tools like static scatter plots and other interactive plot types.

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 when to choose interactive over static, or what data format is required. The description lacks any prerequisites or usage context.

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

plot_static_barchartB

Generates a static Seaborn bar chart (for papers/publications). x_column: categorical column for the x-axis groups. y_column: numeric column to aggregate. aggregation: how to aggregate y per group — 'mean' (default), 'sum', 'count', or 'median'. hue_column: optional column to split bars by colour.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
x_labelYes
y_labelYes
x_columnYes
y_columnYes
hue_columnNo
aggregationNomean
data_file_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It only states 'generates a static Seaborn bar chart' without disclosing behavior such as file output, error handling, missing data, or performance implications. This is insufficient for a tool with no annotations.

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

Conciseness5/5

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

The description is very concise—only 5 lines—with a clear front-loaded purpose and efficient parameter explanations. Every sentence adds value with no wasted words.

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

Completeness2/5

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

With 8 parameters (6 required), no annotations, and limited parameter coverage in the description, the tool definition is incomplete. The description lacks crucial details on required parameters like data_file_path and labeling, and provides no behavioral context beyond the basic function.

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%, but the description explains key parameters (x_column, y_column, aggregation, hue_column) with acceptable detail. However, it omits explanations for required parameters like data_file_path, title, x_label, and y_label, which are only listed in the schema without 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 it generates a static Seaborn bar chart for papers/publications, specifying the verb 'generates' and resource 'static Seaborn bar chart'. This distinguishes it from siblings like plot_interactive_barchart and other static plot types.

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 phrase 'for papers/publications' implies a high-quality static output but provides no explicit guidance on when to use this tool versus alternatives like plot_static_scatterplot or plot_interactive_barchart. There is no mention of exclusions 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.

plot_static_boxplotC

Generates a static Matplotlib/Seaborn box plot (for papers/publications).

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
x_labelYes
y_labelYes
x_columnYes
y_columnYes
data_file_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 must disclose behavioral traits. It states the plotting libraries but omits side effects (e.g., file output), return value, performance, or limitations. The output schema exists but the description does not explain what it returns.

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 concise (one sentence) and front-loads the key purpose. However, under-specification limits its utility; it is not appropriately sized given the tool's complexity.

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 (6 required params, output schema, many sibling tools), the description is incomplete. It lacks parameter guidance, output clarification, and differentiation from similar tools, making it insufficient for an agent to use correctly without additional context.

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%, so the description must compensate. It provides no explanation or context for any of the six required parameters (data_file_path, x_column, y_column, title, x_label, y_label), leaving their meaning and required format entirely unspecified.

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 generates a static box plot using Matplotlib/Seaborn, specifying its intended use for papers/publications. It distinguishes from siblings like interactive boxplot by mentioning 'static' and from other static plot types by naming 'box plot'.

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 minimal guidance: 'for papers/publications' hints at a use case but does not explicitly contrast with alternative tools like plot_interactive_boxplot or other static plots. No when-not-to-use or selection criteria are given.

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

plot_static_correlation_heatmapA

Generates a publication-ready Seaborn correlation heatmap. Use this when the user explicitly asks for static or publication figures. method must be 'pearson' or 'spearman'. column_filter: optional comma-separated column names or suffix patterns (e.g. '_mean') to restrict the heatmap to a subset of columns. Leave empty for all numeric columns.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
methodNopearson
column_filterNo
data_file_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It does not disclose what happens after generation (e.g., saves file, returns path), error handling, or prerequisites like data file existence. This is a significant gap for a plot tool.

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

Conciseness5/5

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

The description is three sentences with no redundancy. It front-loads the purpose, then provides usage guidance, then parameter details. Every sentence adds value.

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

Completeness3/5

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

Given an output schema exists, return values need not be explained. However, the description lacks preconditions (valid data file, numeric columns) and error cases. It is adequate but not thorough for a tool with 4 parameters and no annotations.

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 description must compensate. It explains method ('must be pearson or spearman') and column_filter ('comma-separated column names or suffix patterns'). But it omits explanation for required parameters data_file_path and title, which are left to the agent to infer.

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

Purpose5/5

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

The description clearly states it generates a publication-ready Seaborn correlation heatmap. The verb 'generates' and resource 'correlation heatmap' are specific. The sibling tool plot_interactive_correlation_heatmap indicates distinction for interactive vs static.

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 explicitly says 'Use this when the user explicitly asks for static or publication figures.' This provides clear when-to-use guidance. However, it does not explicitly mention alternatives (e.g., plot_interactive_correlation_heatmap) 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.

plot_static_histogramB

Generates a static Matplotlib/Seaborn histogram (for papers/publications).

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
columnYes
x_labelYes
data_file_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden. It does not disclose whether the plot is saved to a file or returned, any side effects, required permissions, or output format. The phrase 'for papers/publications' hints at file output but is insufficient.

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

Conciseness4/5

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

The description is a single short sentence, which is concise and front-loaded with the key information. However, it could be slightly more structured (e.g., listing parameters) without adding unnecessary length.

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

Completeness2/5

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

Given the tool has 4 required parameters, no annotations, and an output schema exists, the description lacks details about return behavior or output. It does not mention how the histogram is delivered (e.g., file save, return object) or any prerequisites (e.g., Matplotlib/Seaborn installed).

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 adds no parameter-level guidance. While parameters like 'data_file_path' and 'column' are common, the tool would benefit from format hints or example values, especially for data_file_path.

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 generates a static histogram using Matplotlib/Seaborn for papers/publications. This distinguishes it from interactive histogram tools like plot_interactive_histogram and other static plot tools (e.g., plot_static_barchart).

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 publication-quality static output but does not explicitly state when to prefer this over alternatives like interactive histograms or other static plots. No direct comparison or exclusion criteria are provided.

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

plot_static_lineplotB

Generates a static Matplotlib/Seaborn line plot (for papers/publications).

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
x_labelYes
y_labelYes
x_columnYes
y_columnYes
hue_columnNo
data_file_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It fails to disclose critical behavioral details such as output format (saved file vs. display), data constraints, error handling, or side effects, leaving the agent underinformed.

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 single-sentence description is concise and front-loaded, efficiently stating the core purpose. However, it could include additional useful information without becoming verbose.

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

Completeness2/5

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

Despite having an output schema and sibling tools, the description lacks completeness. It does not address the many parameters, expected data format, or behavior, which is insufficient for a tool with 7 parameters and no schema descriptions.

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?

With 0% schema description coverage, the description must compensate but provides no parameter explanations. Although parameter names like x_column and y_column are somewhat self-explanatory, the description adds no value beyond the schema, and parameters like data_file_path or hue_column remain unclarified.

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 it generates a static Matplotlib/Seaborn line plot for papers/publications, distinguishing it from interactive siblings by specifying 'static' and the publication context.

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

Usage Guidelines3/5

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

The description implies use for static publication plots but does not explicitly state when to avoid this tool (e.g., for exploration) or mention alternatives like interactive line plots, though the context of 'papers/publications' provides some guidance.

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

plot_static_pairplotB

Generates a Seaborn pair plot (scatter matrix) for the specified columns. Use this for multi-feature distribution and correlation exploration. columns: comma-separated list of numeric column names (e.g. 'radius_mean,texture_mean,area_mean'). hue_column: optional categorical column name to colour points by (e.g. 'diagnosis'). Leave empty if not needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoPair Plot
columnsYes
hue_columnNo
data_file_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It does not mention whether the plot is displayed or saved, how errors are handled for invalid columns, or any side effects. Minimal disclosure.

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?

Three sentences, concise and front-loaded. First sentence states purpose, second gives usage, third details parameters. No unnecessary words but could be better structured with explicit parameter descriptions.

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 4 parameters and no annotations, the description omits key details: what the output is (display/saved), prerequisites (file format), and error behavior. Lacks completeness for effective tool selection.

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 must compensate. It explains columns (comma-separated list) and hue_column (optional categorical), but fails to describe the required data_file_path parameter. Partial improvement over bare 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?

Description clearly states 'Generates a Seaborn pair plot' with a specific verb and resource. It distinguishes from sibling tools like plot_interactive_scatter_matrix by noting it's a static pair plot for multi-feature exploration.

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?

Provides a usage context ('Use this for multi-feature distribution and correlation exploration') but does not specify when not to use this tool or mention alternatives like interactive versions.

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

plot_static_scatterplotC

Generates a static Matplotlib/Seaborn scatter plot (for papers/publications).

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
x_labelYes
y_labelYes
x_columnYes
y_columnYes
hue_columnNo
data_file_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden; it mentions Matplotlib/Seaborn but fails to disclose output format, side effects, or constraints (e.g., file size, column requirements), leaving significant behavioral gaps.

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

Conciseness5/5

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

The description is a single, concise sentence with no extraneous words, achieving maximal efficiency.

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

Completeness2/5

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

Despite having an output schema, the description is too brief for a tool with 7 parameters; it omits prerequisites (e.g., data file format), the role of hue_column, and what the return value is, leaving the agent underinformed.

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 provides no explanation of any of the 7 parameters (e.g., data_file_path, x_column, hue_column), offering zero added value beyond the schema field names.

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 ('generates'), the resource ('static scatter plot'), and the context ('for papers/publications'), which distinguishes it from interactive plotting tools and other static plot types among siblings.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives such as interactive scatter plots or other static plot types; the description only implies usage for publication-quality plots without exclusions.

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

plot_static_wordcloudA

Generates a static Word Cloud image from a column containing text data. Use this when the user wants to visualize the most frequent terms in a dataset. extra_stopwords: optional comma-separated words to exclude (e.g. "said,also,one").

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoWord Cloud
text_columnYes
data_file_pathYes
extra_stopwordsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It only states the tool generates an image, but doesn't mention processing details (e.g., automatic text cleaning, handling of missing data, output format, or performance considerations). The description is too minimal for full transparency.

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

Conciseness5/5

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

The description is extremely concise: two sentences plus a parameter definition. It front-loads the purpose and usage, with no wasted words. Every sentence serves a clear function.

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 4 parameters, no schema descriptions, and no annotations, the description is insufficient. It fails to describe key parameters (data_file_path, text_column, title) and does not mention the output format (e.g., saved file, displayed image). The output schema exists but isn't referenced. The tool's behavior in edge cases (e.g., empty column) is not addressed.

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 must explain each parameter's purpose. Only extra_stopwords is described (comma-separated words to exclude). The other three parameters (data_file_path, text_column, title) are not explained, leaving them ambiguous. This is a significant gap.

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

Purpose5/5

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

The description clearly states it generates a static word cloud from a text column. It distinguishes from sibling plotting tools like bar charts or histograms, as word clouds are unique for visualizing frequent terms.

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?

Tells when to use: 'when the user wants to visualize the most frequent terms in a dataset.' Provides a specific hint for extra_stopwords. Does not explicitly list exclusions or alternatives, but among siblings, this is the only word cloud tool, so usage context is clear.

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

rank_target_correlationsA

Calculates and ranks the correlation between a single target column and all other numeric columns in the dataset at once. Use this tool when the user wants to rank, sort, or find top features related to a specific outcome column like diagnosis.

ParametersJSON Schema
NameRequiredDescriptionDefault
methodNopearson
target_colYes
data_file_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It states that it calculates correlations for numeric columns, but does not disclose handling of missing values, data type requirements, or the fact that the method parameter defaults to 'pearson'. With an output schema present, return format is covered, but behavioral details are sparse.

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

Conciseness5/5

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

Two sentences with no filler. The first sentence states the core action and scope, the second gives the intended use case. Information is front-loaded and every sentence earns its place.

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

Completeness2/5

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

Given the tool has 3 parameters (none described), no annotations, and an output schema, the description is incomplete. It fails to explain the parameters, the method options, or error conditions like non-numeric target columns. The use case is clear, but critical operational details are missing.

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%, meaning the input schema provides no parameter descriptions. The description does not mention any of the three parameters (data_file_path, target_col, method), leaving the agent to infer their roles. This is a significant gap.

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

Purpose5/5

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

Description clearly states the verb (calculates and ranks) and resource (correlation between target column and all other numeric columns). It differentiates by saying 'at once' and provides an example use case (find top features related to diagnosis), which helps distinguish from siblings like run_correlation.

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?

Description explicitly says 'Use this tool when the user wants to rank, sort, or find top features related to a specific outcome column.' This provides clear context for when to use it, though it lacks explicit 'when not to use' or alternative tools.

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

run_correlationB

Computes statistical correlation (pearson, spearman) between two numeric columns. Use this to mathematically verify relationships before plotting scatterplots.

ParametersJSON Schema
NameRequiredDescriptionDefault
methodNopearson
x_columnYes
y_columnYes
data_file_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It mentions computing correlation and available methods, but omits critical details like file read operations, handling of missing data, numeric type requirements, or any side effects. The output schema exists, so return value structure is covered, but behavioral traits are insufficiently described.

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 consists of two concise sentences. Each sentence serves a purpose: the first defines the tool's function, and the second provides usage guidance. No unnecessary words or redundancy.

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

Completeness3/5

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

Given the tool's moderate complexity (4 parameters, file reading), the description is minimally adequate. It covers the core function and use case, but lacks details on parameter semantics, file requirements, and potential errors. The presence of an output schema mitigates the need for return value descriptions, but overall completeness is average.

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%, and the description adds no meaning to the parameters. It does not explain that 'data_file_path' refers to the file containing the columns, nor does it describe the 'method' parameter options or default. The schema itself provides basic info, but the description fails to 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 tool computes statistical correlation (pearson, spearman) between two numeric columns. The verb 'computes' and resource 'statistical correlation' are specific, and it distinguishes from sibling plotting tools by emphasizing mathematical verification.

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 advises using this tool to mathematically verify relationships before plotting scatterplots, providing a clear context. However, it does not explicitly mention when not to use it or differentiate from sibling tools like 'rank_target_correlations' or correlation heatmaps, which might lead to ambiguity.

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

run_group_comparisonA

Performs T-tests (2 groups) or ANOVA (>2 groups) to see if a numeric variable (target_col) differs significantly across categories (group_col). Use this before generating boxplots.

ParametersJSON Schema
NameRequiredDescriptionDefault
group_colYes
target_colYes
data_file_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/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 output format, side effects, assumptions, or whether data is modified, leaving agent uninformed about key behaviors.

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

Conciseness5/5

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

Two concise sentences with clear front-loading of what the tool does followed by usage advice, no wasted words.

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

Completeness3/5

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

Despite having an output schema (not shown), the description lacks behavioral details and explanation of data_file_path, making it somewhat incomplete for a 3-param tool with no annotations.

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%, description adds meaning to target_col and group_col but leaves data_file_path completely unexplained, providing only partial parameter understanding.

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 it performs T-tests or ANOVA to compare numeric variable across categories, explicitly linking to boxplot generation and distinguishing from sibling plotting and correlation tools.

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?

Explicitly advises use before boxplots, and explains T-test vs ANOVA based on group count, giving clear when-to-use context. Lacks explicit when-not-to-use or alternatives.

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

run_linear_regressionA

Runs an OLS Linear Regression. target_col is the dependent variable (Y). predictor_cols is a list of independent variables (X). CRITICAL: predictor_cols MUST be a valid JSON array of strings, e.g., ["col1", "col2"].

ParametersJSON Schema
NameRequiredDescriptionDefault
target_colYes
data_file_pathYes
predictor_colsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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

No annotations present, so description must disclose behavior. Only states it runs OLS regression but omits side effects, output format, error handling, or assumptions. Minimal transparency.

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

Conciseness5/5

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

Extremely concise: three sentences with clear purpose, parameter explanation, and critical warning. No wasted words.

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

Completeness3/5

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

Output schema exists but not shown; return values may be documented there. Lacks prerequisites (file must exist, columns present, data types). Adequate but incomplete for a regression tool.

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

Parameters3/5

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

Adds meaning for target_col and predictor_cols (dependent/independent variables, JSON format requirement). However, data_file_path is undescribed. With 0% schema coverage, description partially compensates but misses one key 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?

Clearly states 'Runs an OLS Linear Regression' and defines target_col as dependent variable and predictor_cols as independent variables. Distinct from sibling tools which are other analyses or plotting.

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 when to use or alternatives. Only implicit from the regression description. Does not explain when not to use or compare to other analysis tools.

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

screenshot_webpageA

Take a 1440x900 screenshot of a webpage using headless Chromium and save it as a PNG. Returns the file path of the saved screenshot. Useful for visually inspecting a site's appearance and layout before cloning its design. save_path: optional absolute path for the PNG; auto-generated if omitted. Requires playwright: pip install playwright && playwright install chromium

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
save_pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

Given no annotations, the description carries the full burden. It discloses the headless Chromium engine, fixed viewport size (1440x900), PNG output, file path return, and dependency on playwright installation. While it does not cover error handling or full-page behavior, it provides adequate transparency for a simple screenshot tool.

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

Conciseness5/5

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

The description is extremely concise: four sentences covering action, return, use case, parameter detail, and setup. Every sentence adds value and is front-loaded with the primary action.

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

Completeness4/5

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

For a simple screenshot tool, the description covers the essential aspects: input (url), output (file path), and purpose. It lacks details on timing or error conditions but is complete enough given the presence of an output schema and straightforward nature of the 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?

Schema coverage is 0%, so the description compensates well. It explains the save_path parameter as 'optional absolute path for the PNG; auto-generated if omitted', adding meaning beyond the schema. The url parameter is self-explanatory and needs no further elaboration.

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 'Take a 1440x900 screenshot', resource 'webpage', format 'PNG', and the return value 'file path'. It also distinguishes from sibling tools like fetch_webpage and search_web by emphasizing visual inspection for design cloning.

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 provides a clear use case: 'visually inspecting a site's appearance and layout before cloning its design.' While it does not explicitly state when not to use or compare to alternatives, the context is well-defined and sufficient for an agent to decide when to invoke this tool.

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

search_webA

Search the internet using DuckDuckGo and return titles, URLs, and text snippets. No API key required. Use this to find documentation, discover libraries, look up best practices, or research any topic before starting a coding task. max_results: number of results to return (1-10, default 5).

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
max_resultsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior3/5

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

No annotations provided, so description carries burden. States 'No API key required' (useful). Does not mention rate limits, error handling, or result structure beyond snippets. Adequate but minimal.

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

Conciseness5/5

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

Three sentences: purpose, usage, parameter. Front-loaded, no wasted words. Efficient and clear.

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?

Low complexity (2 params, simple). Output schema exists, so return values need not be explained. Description covers purpose, usage, and parameter details sufficiently.

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 description must compensate. Clearly explains max_results range (1-10, default 5) and implies query. Adds value beyond schema 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?

Clear verb ('search'), resource ('the internet using DuckDuckGo'), and output ('titles, URLs, and text snippets'). Distinguishes from siblings like fetch_webpage (single page) and find_in_files (local search).

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?

Explicitly states when to use: 'find documentation, discover libraries, look up best practices, or research any topic before starting a coding task.' Lacks explicit when-not-to-use or alternative tools, but context is clear.

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. 10 tool updatesv0.1.3
    • Removedfind_in_files
    • Removedhttp_request
    • Removedlist_background_processes
    • Removedlist_directory
    • Removedpatch_file
    • Removedread_file
    • Removedrun_background_process
    • Removedrun_shell_command
    • Removedstop_background_process
    • Removedwrite_file
  2. 36 tool updatesv0.1.1
    • First observedfetch_webpage
    • First observedfind_in_files
    • First observedgenerate_custom_plotly
    • First observedgenerate_custom_static_plot
    • First observedget_all_columns_summary
    • First observedget_column_summary
    • First observedhttp_request
    • First observedlist_background_processes
    • First observedlist_directory
    • First observedpatch_file
    • First observedplot_interactive_barchart
    • First observedplot_interactive_boxplot
    • First observedplot_interactive_correlation_heatmap
    • First observedplot_interactive_histogram
    • First observedplot_interactive_lineplot
    • First observedplot_interactive_scatter_matrix
    • First observedplot_interactive_scatterplot
    • First observedplot_static_barchart
    • First observedplot_static_boxplot
    • First observedplot_static_correlation_heatmap
    • First observedplot_static_histogram
    • First observedplot_static_lineplot
    • First observedplot_static_pairplot
    • First observedplot_static_scatterplot
    • First observedplot_static_wordcloud
    • First observedrank_target_correlations
    • First observedread_file
    • First observedrun_background_process
    • First observedrun_correlation
    • First observedrun_group_comparison
    • First observedrun_linear_regression
    • First observedrun_shell_command
    • First observedscreenshot_webpage
    • First observedsearch_web
    • First observedstop_background_process
    • First observedwrite_file

TDQS

B3.4/5.0
Disambiguation5/5

Every tool has a clearly distinct purpose: interactive plotting, static plotting, statistical tests, data summaries, and web fetching. Even similar chart types (e.g., scatter matrix vs pairplot) are distinguished by output format (interactive vs static). No overlap causes confusion.

Naming Consistency5/5

All names use snake_case and follow predictable patterns: 'verb_noun' for actions (run_correlation, fetch_webpage), 'plot_interactive_*' and 'plot_static_*' for charts, 'get_*' for summaries. The two custom plot generators are slightly inconsistent ('plotly' vs 'static_plot'), but overall highly consistent.

Tool Count4/5

26 tools is slightly high for a data analysis server, but the redundancy (interactive vs static versions) is a deliberate design choice for flexibility. The count is still reasonable given the breadth of statistical and visualization methods covered.

Completeness3/5

Core analytical workflow (column summary, correlation, group comparison, regression, plotting) is well-covered, but notable gaps exist: no data loading, cleaning, transformation, or export tools. Advanced modeling beyond linear regression is missing, making the set incomplete for end-to-end analysis.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A command-line interface application for interactive chat with AI models via the Anthropic API. It supports document retrieval, command-based prompts, and extensible tool integrations through the MCP architecture.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    A command-line interface application enabling interactive chat with AI models via the Anthropic API. It supports document retrieval, command-based prompts, and extensible tool integrations through the MCP architecture.
    -
  • F
    license
    B
    quality
    C
    maintenance
    Command-line interface for interactive chat with AI models via Anthropic API, supporting document retrieval and command-based prompts through MCP.
    2
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides 20 essential tools including HTTP requests, web search, file I/O, shell commands, and persistent memory for any MCP client, with zero configuration required.
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ahmad-zurih/ds-mcp-server'

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