ds-mcp-server
The ds-mcp-server is a data science MCP server offering interactive/static plotting, statistical analysis, web tools, and optional system tools.
Interactive Plots (Plotly)
Histograms, scatter plots, box plots, line plots, bar charts, scatter matrices, and correlation heatmaps
Custom interactive charts via Python code (with
px,pd,plt,snspre-injected)
Static Plots (Matplotlib/Seaborn — publication-ready)
Histograms, scatter plots, box plots, line plots, bar charts, pair plots, correlation heatmaps, and word clouds
Custom static charts via Python code
Code is sandboxed by default (blocks dangerous imports/built-ins, 60s timeout)
Dataset Exploration
Compact schema summary of all columns (grouped by type) with unique values
Detailed statistical summary for a specific column
Statistical Analysis
Pearson/Spearman correlations between numeric columns
Group comparisons (T-test for 2 groups, ANOVA for >2 groups)
OLS linear regression with multiple predictors
Rank all numeric features by correlation to a target column
Web Tools
Search the web via DuckDuckGo (no API key required)
Fetch and parse webpage content (title, headings, text, CSS details)
Take screenshots of webpages via headless Chromium (requires Playwright)
Optional System Tools (disabled by default — enable via CLI flag or env var)
Execute arbitrary shell commands
File I/O: read, write, patch, list directories, search files with regex
Manage background processes
Make arbitrary outbound HTTP requests
LLM Provider Support (via ds-mcp-client)
OpenAI, Anthropic Claude, Google Gemini, Ollama, and any OpenAI-compatible endpoint (GPUStack, LM Studio, etc.)
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ds-mcp-servershow me a correlation heatmap of my dataframe"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 |
| Browser chat UI | You want to chat and see plots in your browser. Start here. |
| Interactive terminal chat | You prefer the CLI. Same features as the web UI, minus inline plot rendering. |
| 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-webuiords-mcp-client. For MCP clients configured with acommandfield →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-serverLocal 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-envThis 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-webuiWindows PowerShell
$env:PROVIDER = "openai"
$env:API_KEY = "sk-your-key-here"
$env:MODEL = "gpt-4o"
ds-mcp-webuimacOS / Linux (bash / zsh)
export PROVIDER=openai
export API_KEY=sk-your-key-here
export MODEL=gpt-4o
ds-mcp-webuiIf 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
Copy
.env.exampleto.env.Fill in your provider settings.
Install the package.
Run
ds-mcp-webui(browser) ords-mcp-client(terminal) to chat.
The examples below use
export …(bash/zsh syntax). On Windows, useset …in Command Prompt or$env:… = "…"in PowerShell — see First-time setup above, or just runds-mcp-webui --init-envand edit the generated.envfile.
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 chatClaude / Anthropic
export PROVIDER=anthropic
export ANTHROPIC_API_KEY=sk-ant-...
export MODEL=claude-opus-4-5
ds-mcp-webuiGemini (OpenAI-compatible endpoint)
export PROVIDER=gemini
export API_KEY=AIza...
export MODEL=gemini-2.0-flash
ds-mcp-webuiOllama
export PROVIDER=ollama
export API_BASE_URL=http://localhost:11434/v1
export MODEL=llama3
ds-mcp-webuiGPUStack / 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-webuiRunning 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 privilegesread_file,write_file,patch_file,list_directory— arbitrary file I/Ofind_in_files— regex-search anywhere on diskrun_background_process,stop_background_process,list_background_processeshttp_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-toolsWhen 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
importandfrom ... importstatements (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-execWhen 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-serverLaunch 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-4oThen 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 |
| No | One of |
| Usually | Generic API key used by OpenAI-compatible providers and as a fallback for Anthropic. |
| Anthropic only | Preferred Anthropic key. |
| Sometimes | Required for |
| 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 |
|
| Max LLM↔tool rounds per single-agent turn. On exceeding it the turn stops with a "stopped after N steps" notice instead of hanging. |
|
| Per-request timeout (seconds) for the OpenAI/Anthropic SDK calls. |
|
| Per-tool-call timeout (seconds). A tool that never returns (slow URL fetch, stuck shell command, ...) is aborted with a readable error. |
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 |
|
|
| Model for the supervisor |
Worker model |
|
|
| Model for the workers (make it cheaper) |
Rounds |
|
| 3 | Supervisor planning/re-planning rounds |
Worker retries |
|
| 2 | Retries after a worker's first failed attempt |
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_histogramplot_interactive_scatterplotplot_interactive_boxplotplot_interactive_lineplotplot_interactive_barchartplot_interactive_scatter_matrixplot_interactive_correlation_heatmapgenerate_custom_plotlyget_all_columns_summaryget_column_summary
Static plots
plot_static_histogramplot_static_scatterplotplot_static_boxplotplot_static_lineplotplot_static_barchartplot_static_pairplotplot_static_correlation_heatmapplot_static_wordcloudgenerate_custom_static_plot
Statistical analysis
run_correlationrun_group_comparisonrun_linear_regressionrank_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_commandread_filewrite_filepatch_filelist_directoryfind_in_filesrun_background_processstop_background_processlist_background_processeshttp_request
Web tools
search_web— DuckDuckGo search, no key requiredfetch_webpage— fetch & parse a URL to structured text (title, headings, text)screenshot_webpage— single-page Chromium screenshot (requiresplaywright)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 |
| Search arXiv; returns titles, authors, dates, abstracts, PDF links |
| Search GitHub repos ( |
| Read any file from a public repo — accepts blob URLs, raw URLs, or |
| Fetch a Wikipedia article as clean plain text; optional |
| Get a video's transcript with minute-level timestamps; requires |
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 |
| Extract text (and optionally tables) from a PDF; supports page ranges like |
|
| Pull structured tables out of a PDF as markdown |
|
| Extract paragraphs and tables from a Word |
|
| List every sheet in a workbook and preview the first rows of each |
|
| OCR text out of a screenshot or photo |
|
| Chunk a long PDF/DOCX/TXT and hand it to the model to summarize | (uses |
| Generate an interactive ydata-profiling HTML report for a dataset |
|
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+
mcppandas,numpyplotly,matplotlib,seaborn,wordcloudpingouin,statsmodelsbeautifulsoup4,ddgsopenaianthropic(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]', foryoutube_transcripttool)
Available Tools
26 toolsfetch_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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| python_code | Yes | ||
| data_file_path | Yes | ||
| plot_filename_keyword | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| python_code | Yes | ||
| data_file_path | Yes | ||
| plot_filename_keyword | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| data_file_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| column | Yes | ||
| data_file_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| x_column | Yes | ||
| y_column | Yes | ||
| aggregation | No | mean | |
| color_column | No | ||
| data_file_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| x_column | Yes | ||
| y_column | Yes | ||
| color_column | No | ||
| data_file_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| method | No | pearson | |
| column_filter | No | ||
| data_file_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| column | Yes | ||
| color_column | No | ||
| data_file_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| x_column | Yes | ||
| y_column | Yes | ||
| color_column | No | ||
| data_file_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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').
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| columns | Yes | ||
| color_column | No | ||
| data_file_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| x_column | Yes | ||
| y_column | Yes | ||
| color_column | No | ||
| data_file_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| x_label | Yes | ||
| y_label | Yes | ||
| x_column | Yes | ||
| y_column | Yes | ||
| hue_column | No | ||
| aggregation | No | mean | |
| data_file_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It 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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| x_label | Yes | ||
| y_label | Yes | ||
| x_column | Yes | ||
| y_column | Yes | ||
| data_file_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| method | No | pearson | |
| column_filter | No | ||
| data_file_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It 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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| column | Yes | ||
| x_label | Yes | ||
| data_file_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| x_label | Yes | ||
| y_label | Yes | ||
| x_column | Yes | ||
| y_column | Yes | ||
| hue_column | No | ||
| data_file_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | Pair Plot | |
| columns | Yes | ||
| hue_column | No | ||
| data_file_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| x_label | Yes | ||
| y_label | Yes | ||
| x_column | Yes | ||
| y_column | Yes | ||
| hue_column | No | ||
| data_file_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden; it 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.
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.
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.
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.
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.
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").
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | Word Cloud | |
| text_column | Yes | ||
| data_file_path | Yes | ||
| extra_stopwords | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| method | No | pearson | |
| target_col | Yes | ||
| data_file_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| method | No | pearson | |
| x_column | Yes | ||
| y_column | Yes | ||
| data_file_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| group_col | Yes | ||
| target_col | Yes | ||
| data_file_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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"].
| Name | Required | Description | Default |
|---|---|---|---|
| target_col | Yes | ||
| data_file_path | Yes | ||
| predictor_cols | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| save_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| max_results | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
10 tool updates
v0.1.3- Removed
find_in_files - Removed
http_request - Removed
list_background_processes - Removed
list_directory - Removed
patch_file - Removed
read_file - Removed
run_background_process - Removed
run_shell_command - Removed
stop_background_process - Removed
write_file
36 tool updates
v0.1.1- First observed
fetch_webpage - First observed
find_in_files - First observed
generate_custom_plotly - First observed
generate_custom_static_plot - First observed
get_all_columns_summary - First observed
get_column_summary - First observed
http_request - First observed
list_background_processes - First observed
list_directory - First observed
patch_file - First observed
plot_interactive_barchart - First observed
plot_interactive_boxplot - First observed
plot_interactive_correlation_heatmap - First observed
plot_interactive_histogram - First observed
plot_interactive_lineplot - First observed
plot_interactive_scatter_matrix - First observed
plot_interactive_scatterplot - First observed
plot_static_barchart - First observed
plot_static_boxplot - First observed
plot_static_correlation_heatmap - First observed
plot_static_histogram - First observed
plot_static_lineplot - First observed
plot_static_pairplot - First observed
plot_static_scatterplot - First observed
plot_static_wordcloud - First observed
rank_target_correlations - First observed
read_file - First observed
run_background_process - First observed
run_correlation - First observed
run_group_comparison - First observed
run_linear_regression - First observed
run_shell_command - First observed
screenshot_webpage - First observed
search_web - First observed
stop_background_process - First observed
write_file
TDQS
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.
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.
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.
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
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
Shared memory and actions for Claude, Kiro, OpenAI, Cursor, and other MCP-compatible AI clients.
Your org's AI agents, tasks, runs, search, and brain files as MCP tools and resources.
- QuallaaOAuthcom.quallaa
Talk to your public-facing AI from any MCP client — Claude, ChatGPT, Cursor, Cline, Windsurf.
Free OpenAI-compatible inference with signed provenance receipts and 3 focused MCP tools.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA 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.-
- FlicenseNot gradedqualityDmaintenanceA 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.-
- FlicenseBqualityCmaintenanceCommand-line interface for interactive chat with AI models via Anthropic API, supporting document retrieval and command-based prompts through MCP.2-
- AlicenseNot gradedqualityCmaintenanceProvides 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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ahmad-zurih/ds-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server