Skip to main content
Glama

✨ HoloViz MCP

CI Docker conda-forge pypi-version python-version docs

A comprehensive Model Context Protocol (MCP) server that provides intelligent access to the HoloViz ecosystem, enabling AI assistants to help you build interactive dashboards and data visualizations with Panel, hvPlot, Lumen, Datashader and your favorite Python libraries.

HoloViz Logo

πŸ“– Full Documentation | πŸš€ Quick Start | 🐳 Docker Guide | πŸ€— Explore the Tools

✨ What This Provides

Documentation Access: Search through comprehensive HoloViz documentation, including tutorials, reference guides, how-to guides, and API references.

Display Server: Create and share Python visualizations with instant URLs. The show tool executes code in an isolated server and provides web-accessible visualizations that you can view, share, and manage.

Agents Skills: Agents and Skills for LLMs.

Component Intelligence: Discover and understand 100+ Panel components with detailed parameter information and usage examples. Similar features are available for hvPlot.

Extension Support: Automatic detection and information about Panel extensions such as Material UI, Graphic Walker, and other community packages.

Smart Context: Get contextual code assistance that understands your development environment and available packages.

Related MCP server: Metabase MCP Plus

🎯 Why Use This?

  • ⚑ Faster Development: No more hunting through docs - get instant, accurate component information.

  • 🎨 Better Design: AI suggests appropriate components and layout patterns for your use case.

  • 🧠 Smart Context: The assistant understands your environment and available Panel extensions.

  • πŸ“– Always Updated: Documentation stays current with the latest HoloViz ecosystem changes.

  • πŸ”§ Zero Setup: Works immediately with any MCP-compatible AI assistant.

πŸ› οΈ Agent Skills (Standalone)

The HoloViz MCP skills follow the Agent Skills specification and can be installed standalone β€” without running the MCP server β€” using any skills package manager.

Available skills: panel, hvplot, holoviews, param, panel-material-ui, panel-custom-components, panel-holoviews, holoviz-mcp-cli

With agr:

pip install agr
agr add MarcSkovMadsen/holoviz-mcp/panel

With Vercel skills:

npx skills add MarcSkovMadsen/holoviz-mcp --skill panel

With openskills:

npx openskills install MarcSkovMadsen/holoviz-mcp/panel

Manually: Copy the skills/<name>/SKILL.md file into your agent's skills directory (e.g., .claude/skills/).

Watch the HoloViz MCP Introduction on YouTube to see it in action.

HoloViz MCP Introduction

πŸ“š Learn More

Check out the holoviz-mcp documentation:

❀️ Contributing

We welcome contributions! See our Contributing Guide for details.

πŸ“„ License

HoloViz MCP is licensed under the BSD 3-Clause License.


Note: This MCP server can execute arbitrary Python code when serving Panel applications (configurable, enabled by default). See Security Considerations for details.

Available Tools

20 tools
doc_getA

Retrieve a specific document by path and project.

Use this tool to look up a specific document within a project.

Tip: Use the doc_list tool first to discover valid document paths for a project, then pass the exact source_path value here.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesThe relative path to the source document as returned by doc_list (e.g., "doc/about/index.md", "doc/how_to/callbacks/periodic.md"). Note: paths include a project-specific prefix such as "doc/".
projectYesthe name of the project (e.g., "panel", "panel-material-ui", "hvplot", "my-custom-project")

Output Schema

ParametersJSON Schema
NameRequiredDescription
titleYesThe title of the document.
urlYesThe URL of the rendered, target document.
projectYesThe project to which the document belongs.
source_pathYesThe path to the document within the project.
source_urlYesThe URL to the source document.
is_referenceYesIndicates if the document is a reference guide.
descriptionNoA brief description of the document.
contentNoThe content of the documentation, if available. In Markdown format if possible.
relevance_scoreNoRelevance score of the document, where 1 is the highest score indicating an exact match.

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It states the tool retrieves a document, which implies a read-only operation, but does not disclose error handling, authentication needs, or any side effects. The description is adequate but could be improved with more behavioral details.

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

Conciseness5/5

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

The description is extremely concise, with two sentences and a tip. The first sentence immediately states the purpose, and the tip provides actionable guidance. Every sentence earns its place with no redundancy.

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

Completeness4/5

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

Given the tool's simplicity (2 required parameters, 100% schema coverage, and an output schema), the description is nearly complete. It covers the core action, parameter usage, and a workflow tip. It does not explain the return value, but that is acceptable since an output schema exists.

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

Parameters4/5

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

The schema coverage is 100%, so baseline is 3. The description adds value by explaining the path format with examples and the tip about using 'doc_list' to get valid paths, which goes beyond the schema's descriptions and helps the agent understand how to use the parameters correctly.

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

Purpose5/5

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

The description clearly states the action ('Retrieve') and the resource ('a specific document'), along with the required parameters (path and project). It distinguishes itself from the sibling tool 'doc_list' by specifying that it retrieves a specific document, not a list.

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

Usage Guidelines4/5

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

The description explicitly says 'Use this tool to look up a specific document within a project' and provides a tip to use 'doc_list' first to discover valid paths. This gives clear context on when to use the tool and suggests an alternative, though it does not explicitly state when not to use it.

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

doc_listA

List all documents available for a given project.

Use this tool to discover what documents are available before using doc_get. Use project_list to see available projects.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectYesThe project name (e.g., "panel", "hvplot", "panel-material-ui").

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It implies a read-only, non-destructive operation but doesn't explicitly confirm or detail pagination/limits. However, the purpose is safe and straightforward, so minimal gap.

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

Conciseness5/5

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

Three concise sentences: purpose, usage guidance, alternative tool. No wasted words.

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

Completeness5/5

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

Given the tool's simplicity (one param, list operation), the description fully covers discovery and usage. Output schema exists elsewhere, so return format is covered. References to doc_get and project_list complete the contextual picture.

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

Parameters4/5

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

Schema coverage is 100% for the single parameter. The description adds context by suggesting use of project_list to find project names, adding value beyond schema.

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

Purpose5/5

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

The description clearly states 'List all documents available for a given project'β€”specific verb and resource with a constraint. It distinguishes from sibling tools like doc_get and project_list.

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

Usage Guidelines5/5

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

Explicitly says to use before doc_get and references project_list for available projects, providing clear when-to-use and alternatives.

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

hv_getA

Get the HoloViews docstring for a specific element, including available options and usage details.

Use this tool to retrieve the full docstring for an element, including generic and style options.

ParametersJSON Schema
NameRequiredDescriptionDefault
elementYesThe type of visualization element to provide help for (e.g., 'Annotation', 'Area', 'Arrow', 'Bars').
backendNobokeh

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description must convey behavioral traits. It fails to mention that the tool is read-only, safe, or non-destructive. There is no disclosure of side effects, authentication needs, or limitations beyond retrieval. The description assumes typical behavior but adds no transparency.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the purpose, and every sentence adds value. There is no redundancy or fluff.

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

Completeness3/5

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

Given the tool's simplicity (2 parameters, output schema exists), the description is adequate but not complete. It lacks behavioral transparency and parameter detail. Annotations are missing, so the description carries more weight but does not fully satisfy contextual needs.

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

Parameters2/5

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

Schema description coverage is 50% (only 'element' has a description). The description does not add further meaning beyond the schema. It does not clarify the format or valid values for 'element' or explain the 'backend' enum options. With low schema coverage, the description should compensate but fails to do so.

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

Purpose5/5

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

The description clearly states the tool retrieves the HoloViews docstring for a specific element, including options and usage details. It uses a specific verb (Get) and resource (HoloViews docstring) and differentiates from sibling tools like hv_list and hvplot_get by focusing on documentation retrieval.

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

Usage Guidelines4/5

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

The description explains when to use the tool ('retrieve the full docstring for an element') and implies its purpose relative to siblings, but it does not explicitly state when not to use it or mention alternatives. The context is clear but lacks exclusions.

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

hv_listA

List all available HoloViews visualization elements (~60 elements).

Use this tool to discover what visualizations you can generate with HoloViews.

Returns

list[str] Sorted list of all plot type names (e.g., 'Annotation', 'Area', 'Arrow', 'Bars', ...).

Examples

list_elements() ['Annotation', 'Area', 'Arrow', 'Bars', ...]

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

No annotations provided; this simple read-only listing tool's behavior is well-described: returns sorted list of names. No destructive hint needed as it's clearly non-mutating.

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

Conciseness5/5

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

The description is concise: two short sentences plus a clear Returns line and example. Every sentence adds value without redundancy.

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

Completeness5/5

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

Given zero parameters, high schema coverage (100%), and an output schema described in Returns, the description fully covers the tool's purpose and output. No gaps remain.

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

Parameters4/5

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

The tool has zero parameters, so baseline score is 4. The description adds no parameter details, which is appropriate as none exist.

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

Purpose5/5

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

The description clearly states it lists all available HoloViews visualization elements (~60), with a specific verb 'list' and resource 'visualization elements'. It distinguishes from siblings like hv_get by focusing on enumeration.

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

Usage Guidelines3/5

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

The description says 'Use this tool to discover what visualizations you can generate' but does not explicitly contrast with alternatives or mention when not to use it. Usage guidance is implied but not thorough.

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

hvplot_getA

Get the hvPlot docstring or signature for a specific plot type.

Returns only the plot-specific parameters by default (compact output). Set generic=True and/or style=True for the full docstring including all shared options. Equivalent to hvplot.help(plot_type) in the hvPlot API. Pass signature=True to get the function signature instead of the docstring.

ParametersJSON Schema
NameRequiredDescriptionDefault
plot_typeYesThe type of plot to provide help for (e.g., 'line', 'scatter').
signatureNoIf True, return the function signature instead of the docstring.
docstringNoWhether to include the docstring in the output.
genericNoWhether to include generic plotting options shared by all plot types.
styleNoPlotting backend to use for style options. If True, automatically infers the backend.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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

Description reveals behavioral traits: returns only plot-specific parameters by default, offers optional generic and style expansions, and equivalence to hvplot.help(). No annotations provided, so description carries full burden. No discussion of limitations or side effects, but acceptable for a help tool.

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

Conciseness5/5

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

Four sentences, efficient and well-structured. First sentence states main purpose, subsequent sentences detail options. No filler or redundancy.

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

Completeness5/5

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

Given output schema exists (not shown), description adequately covers all functionality: compact vs full, signature option, and equivalence to hvplot.help(). No missing context for effective invocation.

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

Parameters4/5

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

Schema coverage is 100%, baseline 3. Description adds meaning by explaining that generic and style control output breadth, and signature changes output type. It also provides example plot_type values ('line', 'scatter').

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

Purpose5/5

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

Description clearly states the tool retrieves the hvPlot docstring or signature for a specific plot type. It distinguishes from siblings by using 'hvplot' prefix and referencing hvplot API, differentiating from hvplot_list and hv_get.

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

Usage Guidelines4/5

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

Description explains when to use compact output (default) vs full docstring with generic and style parameters, and that signature=True returns signature. It lacks explicit when-not-to-use but provides clear usage context.

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

hvplot_listA

List all available hvPlot plot types (~28 types) supported in the current environment.

Use this tool to discover what plot types you can generate with hvPlot.

Note: The plot types are also called "kinds".

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It indicates read-only behavior implicitly but doesn't confirm no side effects or describe output format. Satisfactory for a list operation.

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

Conciseness5/5

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

Two coherent sentences, front-loads purpose, no unnecessary words.

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

Completeness4/5

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

With zero parameters and an output schema existing, the description is sufficient. It explains what the tool does and what to expect from the output.

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

Parameters4/5

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

No parameters, baseline 4. Description adds value by specifying the result is a list of hvPlot plot types, which is more than the empty schema.

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

Purpose5/5

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

Clearly states the tool lists all available hvPlot plot types (~28 types). Distinguishes from siblings like hvplot_get and hv_list by being a list of plot types.

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

Usage Guidelines4/5

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

Explicitly says 'Use this tool to discover what plot types you can generate with hvPlot.' Provides context but lacks explicit exclusion or alternatives; however, simplicity makes guidance clear.

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

inspectA

Inspect a running web app by capturing a screenshot and/or browser console logs.

Web apps (especially custom components) often have JavaScript errors that are invisible to users and LLMs. This tool captures both a visual screenshot and the browser console output in a single call, making it easy to diagnose rendering issues, JS errors, and runtime warnings.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoThe URL of the page to inspect.http://localhost:5006/
widthNoThe width of the browser viewport.
heightNoThe height of the browser viewport.
full_pageNoWhether to capture the full scrollable page.
delayNoSeconds to wait after page load before capturing, to allow dynamic content to render.
save_screenshotNoWhether and where to save the screenshot to disk: - True: Save to default screenshots directory (~/.holoviz-mcp/screenshots/) with auto-generated filename - False: Don't save screenshot to disk (only return to AI) - str: Save to specified absolute path (raises ValueError if path is not absolute)
screenshotNoWhether to capture a screenshot of the page.
console_logsNoWhether to capture browser console log messages.
log_levelNoFilter console logs by level. If None, all levels are captured. Common levels: 'log', 'info', 'warning', 'error', 'debug'.

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It transparently states the tool captures a screenshot and console logs in a single call, and mentions the delay parameter to allow dynamic content to render. It does not disclose potential side effects or whether the tool is read-only, but overall it adequately describes its behavior.

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

Conciseness5/5

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

The description consists of two sentences in the first paragraph stating the primary purpose, followed by a second paragraph providing context. It is front-loaded, uses minimal words, and every sentence adds value without redundancy.

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

Completeness4/5

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

Given the complexity of 9 parameters and no output schema, the description is largely complete. It explains the why (diagnosing hidden JS errors) and what (screenshot + console logs). It could benefit from mentioning the return format or disk saving behavior, but the schema covers the latter, and the tool's context signal indicates no output schema, so the description adequately compensates.

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

Parameters3/5

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

The input schema has 100% description coverage for its 9 parameters. The description does not add additional semantics beyond what the schema already provides, which is acceptable. Following the guidelines, this earns a baseline score of 3.

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

Purpose5/5

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

The description uses the verb 'Inspect' and clearly identifies the resource as a 'running web app'. It specifies the dual purpose of capturing screenshots and browser console logs, distinguishing it from sibling tools that likely focus on listing or retrieving items without interactive inspection.

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

Usage Guidelines4/5

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

The description provides clear context for when to use the tool: to diagnose rendering issues, JavaScript errors, and runtime warnings that are invisible to users and LLMs. It implicitly guides usage by highlighting hidden errors in web apps and custom components. However, it does not mention when not to use it or provide explicit alternatives among siblings.

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

pn_getA

Get complete details about a single Panel component including docstring and parameters.

Use this tool when you need full information about a specific Panel component, including its docstring, parameter specifications, and initialization signature.

Tip: If you only need parameter details and already know the component exists, use params instead for a lighter response without the docstring.

IMPORTANT: This tool returns exactly one component. If your criteria match multiple components, you'll get an error asking you to be more specific.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoComponent name to match (case-insensitive). If None, must specify other criteria. Examples: "Button", "TextInput", "Slider"
module_pathNoFull module path to match. If None, uses name and package to find component. Examples: "panel.widgets.Button", "panel_material_ui.Button"
packageNoPackage name to filter by. If None, searches all packages. Examples: "panel" or "panel_material_ui"

Output Schema

ParametersJSON Schema
NameRequiredDescription
module_pathYesFull module path of the component, e.g., 'panel.widgets.Button' or 'panel_material_ui.Button'.
nameYesName of the component, e.g., 'Button' or 'TextInput'.
packageYesPackage name of the component, e.g., 'panel' or 'panel_material_ui'.
descriptionYesShort description of the component's purpose and functionality.
init_signatureYesSignature of the component's __init__ method.
docstringYesDocstring of the component, providing detailed information about its usage.
parametersYesDictionary of parameters for the component, where keys are parameter names and values are ParameterInfo objects.

TDQS

A4.5/5.0
Behavior4/5

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

The description reveals key behavioral traits: it returns exactly one component and errors if multiple matches, which is critical for an agent. However, it does not mention side effects, authorization, or read-only natureβ€”though read-only is implied. With no annotations, the description carries the full burden and provides reasonable transparency.

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

Conciseness5/5

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

The description is concise and well-structured: it opens with a clear purpose statement, then adds usage guidelines, a tip, and an important noteβ€”all in a compact, front-loaded format. Every sentence adds value, and the formatting aids readability.

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

Completeness5/5

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

Given the tool's complexity (3 parameters, no nested objects, output schema present), the description covers all essential aspects: purpose, usage, return behavior, and error conditions. The presence of an output schema relieves the need to document return fields, making the description complete.

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

Parameters3/5

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

The input schema already provides detailed descriptions for all 3 parameters (including examples), achieving 100% coverage. The description adds only a tip about using pn_params for lighter output, which does not enhance parameter meaning. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool retrieves complete details of a single Panel component, including docstring and parameters. It is distinguished from siblings like pn_params (parametric details only) and pn_list (listing components). The verb 'Get' and resource 'Panel component' are specific and unambiguous.

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

Usage Guidelines5/5

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

The description explicitly advises when to use this tool (full details needed) and when to use the lighter alternative pn_params. It also warns about the error condition when multiple components match, providing clear usage context.

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

pn_listA

Get a summary list of Panel components without detailed docstring and parameter information.

Use this tool to get an overview of available Panel components when you want to browse or discover components without needing full parameter details. This is faster than get_component and provides just the essential information.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoComponent name to filter by (case-insensitive). If None, returns all components. Examples: "Button", "TextInput", "Slider"
module_pathNoModule path prefix to filter by. If None, returns all components. Examples: "panel.widgets" to get all widgets, "panel.pane" to get all panes
packageNoPackage name to filter by. If None, returns all components. Examples: "panel" or "panel_material_ui"

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

No annotations provided, so description handles behavioral disclosure. It indicates the tool is a read operation (no destructive hints) and returns a 'summary list', but does not detail what exactly is included (e.g., component names, brief descriptions). The output schema likely fills this gap, so minor missing info.

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

Conciseness5/5

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

Three sentences, all essential: states action, explains when to use, and provides a benefit (faster). No fluff, front-loaded with main purpose.

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

Completeness4/5

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

For a simple list tool with 3 optional filter parameters and an output schema, the description conveys purpose and usage context. It could mention filtering capability, but the schema covers that. With output schema present, it is sufficiently complete.

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

Parameters3/5

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

Schema coverage is 100%, with each parameter having a description and examples. The description does not add additional meaning beyond the schema, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action 'Get a summary list of Panel components' and specifies that it returns information without detailed docstring/parameter info. This distinguishes it from sibling tools like pn_get.

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

Usage Guidelines5/5

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

Explicitly advises when to use: 'when you want to browse or discover components without needing full parameter details' and contrasts with get_component (likely pn_get) by noting it's faster and provides only essential info.

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

pn_packagesA

List all installed packages that provide Panel UI components.

Use this tool to discover what Panel-related packages are available in your environment. The returned package names can be used in the 'package' parameter of: list, search, get, and params.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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

Despite no annotations, the description adequately describes the tool as a read-only listing operation with no side effects, which is sufficient for this simple tool.

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

Conciseness5/5

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

Two sentences with no fluff, front-loaded with the core purpose.

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

Completeness5/5

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

Complete for a parameterless tool with an output schema; describes what it lists and how the output can be used.

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

Parameters4/5

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

With zero parameters, the description adds no parameter info but meets the baseline expectation as schema coverage is 100%.

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

Purpose5/5

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

The description clearly states 'List all installed packages that provide Panel UI components' with a specific verb and resource, and the qualifier distinguishes it from sibling tools like doc_list or hv_list.

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

Usage Guidelines4/5

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

Explicitly says to use this tool to discover Panel packages and explains how returned names can be used in other tools' parameters, providing clear guidance on usage context.

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

pn_paramsA

Get detailed parameter information for a single Panel component (without the docstring).

Use this tool when you only need parameter details (types, defaults, constraints) and already know the component exists. This is lighter than get which also includes the full docstring.

IMPORTANT: This tool returns parameters for exactly one component. If your criteria match multiple components, you'll get an error asking you to be more specific.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoComponent name to match (case-insensitive). If None, must specify other criteria. Examples: "Button", "TextInput", "Slider"
module_pathNoFull module path to match. If None, uses name and package to find component. Examples: "panel.widgets.Button", "panel_material_ui.Button"
packageNoPackage name to filter by. If None, searches all packages. Examples: "panel" or "panel_material_ui"

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It discloses key behaviors: returns parameters for exactly one component, errors on multiple matches, and is lighter than pn_get. Missing explicit behavior for no-match case, but overall adequately transparent.

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

Conciseness5/5

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

Description is three short paragraphs, front-loaded with core purpose. Every sentence adds value: purpose line, usage guidance, and important constraint on multiple matches. No unnecessary words.

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

Completeness4/5

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

Given the tool has an output schema (so return values need not be explained) and three optional parameters with good schema descriptions, the description covers purpose, usage, and error behavior. Minor gap: no mention of behavior when no component matches. Overall very complete.

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

Parameters3/5

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

Input schema has 100% description coverage, providing clear meaning for each parameter (name, module_path, package). The tool description does not add significant extra semantics beyond what the schema already provides, so baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'Get' and the resource 'parameter information for a single Panel component (without the docstring)'. It explicitly distinguishes itself from the sibling tool 'pn_get' by noting it is lighter and does not include the docstring.

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

Usage Guidelines5/5

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

Provides explicit when-to-use guidance: 'Use this tool when you only need parameter details... already know the component exists.' Compares to sibling 'pn_get'. Also warns about error when multiple components match, helping the agent select appropriately.

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

project_listA

List all HoloViz and user-defined projects with indexed documentation (~20 projects).

This includes both built-in HoloViz projects (panel, hvplot, etc.) and any custom/internal documentation projects you have configured.

Returns

list[str]: A list of project names that have documentation available.
           Names are returned in hyphenated format (e.g., "panel-material-ui", "my-custom-project").
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses the return format (list of hyphenated names) but does not mention side effects, authentication, or dynamic nature. For a simple list tool, this is adequate but not detailed.

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

Conciseness4/5

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

The description is concise with two sections: purpose and return format. It is front-loaded and every sentence adds value. Slightly wordy in the return format but acceptable.

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

Completeness4/5

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

Given the tool has no parameters and an output schema exists, the description completes the picture by explicitly stating the return type and format. It is sufficient for an agent to understand the tool's behavior.

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

Parameters4/5

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

The tool has no parameters, so schema coverage is 100%. Per the rubric, baseline is 4. The description does not need to add parameter details and correctly omits them.

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

Purpose5/5

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

The description clearly states the tool lists all HoloViz and user-defined projects, specifying the verb 'list' and resource 'projects'. It distinguishes from sibling tools like doc_list, hv_list, and pn_list which focus on documentation items, not projects.

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

Usage Guidelines3/5

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

The description explains what the tool lists and includes scope clarification (built-in vs custom), but does not explicitly state when to use it over alternatives or provide scenarios to avoid. Usage context is implied but not explicitly guided.

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

ref_getA

Find reference guides for specific components in HoloViz or user-defined projects.

Use this when you know the exact component name and want its reference guide directly. For fuzzy or semantic search, use the search tool instead.

Reference guides are a subset of all documents that focus on specific UI components or plot types, such as:

  • panel: "Button", "TextInput", ...

  • hvplot: "bar", "scatter", ...

  • my-custom-project: custom components from your organization

ParametersJSON Schema
NameRequiredDescriptionDefault
componentYesName of the component (e.g., "Button", "TextInput", "bar", "scatter")
projectNoProject name. Defaults to None (searches all projects). Options: "panel", "panel-material-ui", "hvplot", "param", "holoviews"
contentNoWhether to include full content. Defaults to True. Set to False to only return metadata for faster responses.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior3/5

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

No annotations provided, so the description must cover behavioral traits. It explains that reference guides are a subset of documents focusing on UI components, but does not mention error handling, permissions, rate limits, or what happens if the component is not found. Partially adequate.

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

Conciseness5/5

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

The description is concise and well-structured: first sentence states purpose, second provides usage guidance, then examples in bullet points. No redundant information; every sentence is necessary.

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

Completeness4/5

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

Given the presence of an output schema (so return format is covered) and no annotations, the description provides sufficient context about purpose, parameters, and usage examples. Minor missing behavioral details but acceptable for a retrieval tool.

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

Parameters4/5

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

Schema coverage is 100%, but the description adds value by explaining the concept of reference guides, giving examples (panel, hvplot), and clarifying default behavior (project defaults to all). This goes beyond the schema definitions.

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

Purpose5/5

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

The description clearly states the tool finds reference guides for specific components in HoloViz or user-defined projects. It specifies the resource (reference guides), scope (specific components), and distinguishes from sibling tools like search.

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

Usage Guidelines5/5

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

Explicitly tells when to use (know exact component name) and when not to (fuzzy search), and provides an alternative tool (search). This is clear guidance for the agent.

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

showA

Display Python code visualization in a browser.

This tool executes Python code and renders it in a Panel web interface, returning a URL where you can view the output. The code is validated before execution and any errors are reported immediately.

Use this tool whenever the user asks to show, display, visualize data, plots, dashboards, and other Python objects.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesThe Python code to execute. For "jupyter" method, the last line is displayed. For "panel" method, objects marked .servable() are displayed.
nameNoA name for the visualization (displayed in admin/feed views)
descriptionNoA short description of the visualization
methodNoExecution mode: - "jupyter": Execute code and display the last expression's result. The last expression must be dedented fully. DO use this for standard data visualizations like plots, dataframes, etc. that do not import and use Panel directly. - "panel": Execute code and display Panel objects marked .servable() DO use this for code that imports and uses Panel to create dashboards, apps, and complex layouts.jupyter

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description must cover behavioral traits. It mentions code validation before execution and error reporting. However, it does not disclose potential risks (e.g., code injection, resource consumption) or details about the execution environment. This is adequate but not comprehensive.

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

Conciseness5/5

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

The description is three sentences, front-loaded with the main purpose, and each sentence is meaningful. No superfluous text.

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

Completeness4/5

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

Given the parameter count (4), required params (1), high schema coverage (100%), and presence of output schema, the description is reasonably complete. It explains execution behavior and use cases. Could add more on return values or error handling specifics.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds context about execution modes (jupyter vs panel) but mostly echoes the schema. It does not provide new meaning beyond what the schema already offers.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Display Python code visualization in a browser.' It specifies verb (display), resource (Python code visualization), and scope (browser via Panel). This distinguishes it from sibling tools which are mostly get/list operations for docs or panel objects.

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

Usage Guidelines4/5

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

The description explicitly says 'Use this tool whenever the user asks to show, display, visualize data, plots, dashboards, and other Python objects.' This provides clear context and use cases. However, it does not explicitly mention when not to use it or alternative tools.

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

skill_file_getA

Read a supporting file from a skill directory.

Use skill_files tool first to discover available files, then use this tool to read them.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe skill name (e.g., "panel-custom-components").
pathYesRelative path within the skill directory (e.g., "references/example.md").

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

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

No annotations provided. Description only states 'Read' without detailing behavioral traits like access control, file size limits, or response format. Output schema covers structure, but no beyond-annotation context.

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

Conciseness5/5

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

Two sentences, front-loaded with main action then usage hint. No unnecessary words.

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

Completeness5/5

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

Given output schema and 100% parameter coverage, the description is sufficient for a simple read tool. It provides necessary context for usage.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for both parameters. The description adds no further semantic details beyond what the schema provides.

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

Purpose5/5

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

The description uses specific verb 'Read' and identifies the resource as 'supporting file from a skill directory'. It clearly distinguishes from sibling tools like skill_files (list) and skill_get (info).

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

Usage Guidelines5/5

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

Explicitly states to 'Use skill_files tool first to discover available files, then use this tool to read them', providing clear when-to-use and sequential guidance.

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

skill_filesA

List supporting files in a skill directory (excludes SKILL.md).

Use this to discover additional resources (examples, references, templates) bundled with a skill beyond its main SKILL.md content.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe skill name (e.g., "panel-custom-components").

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It implies a read operation by stating 'List...', but does not explicitly confirm it is read-only or describe side effects, permissions, or rate limits. The exclusion of SKILL.md is noted, but overall transparency is adequate but not thorough.

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

Conciseness5/5

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

The description is two sentences, each earning its place: first sentence defines the action, second provides usage guidance. It is front-loaded and contains no unnecessary words. Ideal conciseness.

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

Completeness4/5

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

Given low complexity (1 required parameter), high schema coverage, and presence of an output schema, the description covers the essential aspects: what it does, usage recommendation, and key exclusion (SKILL.md). It could be more complete by specifying the return format, but the output schema likely covers that, making the description sufficient.

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

Parameters3/5

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

Schema description coverage is 100% (the single parameter 'name' is described with an example). The description does not add any meaning beyond the schema, so it meets the baseline of 3. It does not compensate with additional parameter context.

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

Purpose5/5

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

The description clearly states 'List supporting files in a skill directory (excludes SKILL.md)', providing a specific verb and resource. It distinguishes itself from siblings like skill_file_get (which gets a single file) by implying a listing operation. The examples of resources (examples, references, templates) further clarify the scope.

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

Usage Guidelines3/5

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

The description says 'Use this to discover additional resources... beyond its main SKILL.md content', which gives a clear use case. However, it does not explicitly state when not to use it or mention alternatives like skill_file_get for retrieving specific files. Some guidance is present but lacks exclusions.

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

skill_getA

Get the specified skill for usage with LLMs.

Use list_skills tool to see available skills.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe name of the skill to get. For example, "panel", "panel-material-ui",

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description must cover behavioral traits. It implies a read operation ('Get') and suggests the output is for LLM usage, but it does not specify error behavior (e.g., for missing skills) or side effects. It is adequate but lacks depth.

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

Conciseness4/5

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

The description is two sentences, concise and front-loaded. The first sentence states the purpose, the second gives a usage hint. Could be slightly more structured, but effective.

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

Completeness3/5

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

Given the simple tool with one parameter and an output schema (though details not provided), the description mentions use for LLMs but does not explain what a 'skill' conceptually entails or the output format. It is adequate but misses context for understanding the data model.

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

Parameters3/5

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

Schema coverage is 100% and the parameter 'name' is well-described in the schema with examples. The description adds no additional meaning beyond the schema, so baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states 'Get the specified skill for usage with LLMs.' It specifies the verb (get), the resource (skill), and mentions the purpose (for LLMs). This distinguishes it from sibling tools like skill_list, skill_file_get.

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

Usage Guidelines4/5

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

The description explicitly advises to 'Use list_skills tool to see available skills,' providing a clear prerequisite. However, it does not explicitly state when not to use the tool or suggest alternatives.

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

skill_listA

List all available skills with descriptions (~8 skills).

Use skill_get to retrieve the full content of a specific skill.

Returns

list[dict[str, str]]: Skills with 'name' and 'description' keys.
    Names are in hyphenated format (e.g., "panel-material-ui", "panel-custom-components").
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It discloses return format (list of dicts with 'name' and 'description'), the hyphenated name format, and an approximate count (~8 skills). This is adequate for a simple read tool, though it omits details like ordering or caching.

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

Conciseness5/5

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

Very concise: two short sentences plus a structured return description. No redundant information, and key guidance is front-loaded.

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

Completeness5/5

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

Given the tool's simplicity (no parameters, returns a small list), the description covers purpose, alternative usage, and output format completely. No gaps remain.

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

Parameters4/5

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

No input parameters exist (schema is empty). Baseline is 4 per rules. The description adds value by defining the output format, which indirectly helps agent understand the tool's behavior even though no parameters are involved.

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

Purpose5/5

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

The description clearly states the verb 'List' and the resource 'skills'. It distinguishes from sibling tool 'skill_get' by noting that skill_list provides a listing while skill_get retrieves full content.

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

Usage Guidelines5/5

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

Explicitly says to use skill_get for full content, providing clear when-to-use guidance and an alternative. This helps the agent choose correctly.

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

TDQS

A4.1/5.0
Disambiguation4/5

Most tools target distinct resources (documents, HoloViews elements, hvPlot types, Panel components, skills), but slight overlap exists between doc_get and ref_get (both retrieve documentation) and between pn_get and pn_params (get vs. params only). Overall, an agent can generally distinguish them.

Naming Consistency4/5

The majority of tools follow a consistent verb_noun pattern with underscores (e.g., doc_list, hv_get, pn_params). A few single-word tools (inspect, show, search) deviate, but they are still action-oriented and readable.

Tool Count4/5

20 tools is slightly above the ideal 3-15 range but justified by the breadth of the HoloViz ecosystem (multiple libraries, documentation, skills). The count feels reasonable and not overwhelming.

Completeness5/5

The tool surface is comprehensive for a documentation and exploration MCP: list, get, and search tools exist for each subdomain (documents, HoloViews, hvPlot, Panel), plus skill management, project listing, and a display tool. No obvious gaps for the intended purpose.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    A MCP server for data visualization. It exposes tools to render charts (line, bar, pie, scatter, heatmap, etc.) from data and returns plots as either image/text/mermaid diagram.
    2
    4
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    An MCP server that enables AI assistants to query databases, execute SQL, and manage Metabase resources like dashboards, cards, and collections through natural language.
    22
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    An MCP server that enables AI assistants to create interactive visualizations, perform statistical analysis, run auto-EDA, and build dashboards using the HoloViz ecosystem with self-contained HTML output.
    36
    MIT

Latest Blog Posts

MCP directory API

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

curl -X GET 'https://glama.ai/api/mcp/v1/servers/MarcSkovMadsen/holoviz-mcp'

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