Skip to main content
Glama

VTK API Validation via MCP

Post-generation validation of VTK Python code using Model Context Protocol (MCP).

Overview

This module provides automatic validation of generated VTK code to catch API hallucinations:

  • Direct API lookups - No vector search overhead, exact class/method verification

  • Method existence validation - Detects when LLM invents non-existent methods

  • Import validation - Verifies VTK classes are imported from correct modules

  • Fast in-memory index - Loads ~2,900 VTK classes at startup

  • Structured error reporting - Clear error messages with suggestions


Related MCP server: mcp-server-analyzer

Quick Start

1. Install the Package

From PyPI (recommended once published):

pip install vtkapi-mcp

For local development we standardize on uv to manage the virtualenv and extras:

uv venv .venv
source .venv/bin/activate
uv sync --extra dev      # runtime + pytest + ruff

Note: The 64 MB data/vtk-python-docs.jsonl file is required at runtime but is not bundled in the wheel. Place it under data/ (or pass --api-docs /path/to/file) before launching the MCP server.

Prefer automation? ./setup.sh now wraps the same uv workflow and accepts --dev to include the testing toolchain.

2. Test MCP Integration (Optional)

uv run python demo_mcp_integration.py

This runs a complete demo showing how to use vtkapi-mcp as an MCP server (not as standalone Python library). It demonstrates all 18 MCP tools and error detection.

3. Developer Workflow (uv-native)

Task

Command

Run unit + integration tests

uv run pytest

Run tests with coverage report

uv run pytest --cov=vtkapi_mcp --cov-report=term-missing

Run Ruff lint & format checks

uv run ruff check / uv run ruff format --check

These commands automatically reuse the .venv created via uv venv / uv sync. No manual activation is required.

3. Configure MCP Client

Add to your MCP settings (e.g., Claude Desktop config):

{
  "mcpServers": {
    "vtk-api": {
      "command": "python",
      "args": [
        "-m",
        "vtkapi_mcp",
        "--api-docs",
        "/absolute/path/to/vtkapi-mcp/data/vtk-python-docs.jsonl"
      ]
    }
  }
}

4. Use VTK Tools

The MCP server provides 18 tools for VTK API validation and lookup. See MCP Tools below.


Project Structure

Package Organization

vtkapi_mcp/
├── core/              # API indexing and data loading
│   └── api_index.py
├── validation/        # Code validation logic
│   ├── models.py
│   ├── validator.py
│   ├── import_validator.py
│   ├── class_validator.py
│   └── method_validator.py
├── server/           # MCP server implementation
│   ├── mcp_server.py
│   └── tools.py
└── utils/            # Utilities for parsing and search
    ├── extraction.py
    └── search.py

Supporting Files

File

Purpose

demo_mcp_integration.py

Demo showing proper MCP integration (not standalone)

pyproject.toml

Python package configuration and dependencies

README.md

This file

Data

File

Purpose

Size

data/vtk-python-docs.jsonl

VTK API documentation (~2,900 classes)

~64 MB


Architecture

VTKAPIIndex (vtkapi_mcp/core/api_index.py)

Fast in-memory index of all VTK classes and methods:

VTKAPIIndex
├── Classes Dict: {class_name → {module, methods, docs}}
├── Modules Dict: {module_name → [class_names]}
└── Load Time: <1 second for ~2,900 classes

Key Methods:

  • get_class_info(class_name) - Get module and documentation

  • search_classes(query) - Search by name or keyword

  • get_module_classes(module) - List classes in module

  • class_exists(class_name) - Check if class exists

VTKCodeValidator (vtkapi_mcp/validation/validator.py)

AST-based validation of generated Python code:

VTKCodeValidator
├── Parse Code: Uses Python's ast module
├── Extract VTK Usage:
│   ├── Import statements
│   ├── Class instantiations
│   └── Method calls
├── Validate Against Index:
│   ├── Check classes exist
│   ├── Check imports correct
│   └── Check methods exist
└── Generate Error Report

Validation Types:

  1. Import Validation - Verifies module paths

  2. Class Validation - Checks class existence

  3. Method Validation - Detects hallucinated methods


MCP Tools Provided

When running as MCP server, provides these 18 tools:

1. vtk_get_class_info

Get complete information about a VTK class.

Input:

{
  "class_name": "vtkPolyDataMapper"
}

Output:

{
  "class_name": "vtkPolyDataMapper",
  "module": "vtkmodules.vtkRenderingCore",
  "content_preview": "vtkPolyDataMapper - map vtkPolyData to graphics primitives..."
}

2. vtk_search_classes

Search for VTK classes by name or keyword.

Input:

{
  "query": "reader",
  "limit": 5
}

Output:

[
  {
    "class_name": "vtkSTLReader",
    "module": "vtkmodules.vtkIOGeometry",
    "description": "Read ASCII or binary stereo lithography files."
  }
]

5. vtk_validate_import

Validate and correct VTK import statements.

Input:

{
  "import_statement": "from vtkmodules.vtkCommonDataModel import vtkPolyDataMapper"
}

Output:

{
  "valid": false,
  "message": "Incorrect module. 'vtkPolyDataMapper' is in 'vtkmodules.vtkRenderingCore'",
  "suggested": "from vtkmodules.vtkRenderingCore import vtkPolyDataMapper"
}

6. vtk_get_method_info

Get full information about a specific method including section context.

Input:

{
  "class_name": "vtkPolyDataMapper",
  "method_name": "SetInputData"
}

Output:

{
  "class_name": "vtkPolyDataMapper",
  "method_name": "SetInputData",
  "content": "SetInputData(vtkDataObject) - Set the input data...",
  "section": "Methods defined here"
}

7. vtk_get_method_doc

Get just the docstring for a specific method.

Input:

{
  "class_name": "vtkPolyDataMapper",
  "method_name": "SetInputData"
}

Output:

{
  "class_name": "vtkPolyDataMapper",
  "method_name": "SetInputData",
  "docstring": "SetInputData(vtkDataObject) - Set the input data...",
  "found": true
}

8. vtk_get_class_doc

Get the class documentation string.

Input:

{
  "class_name": "vtkPolyDataMapper"
}

Output:

{
  "class_name": "vtkPolyDataMapper",
  "class_doc": "vtkPolyDataMapper - map vtkPolyData to graphics primitives. Superclass: vtkMapper",
  "found": true
}

9. vtk_get_class_synopsis

Get a brief synopsis/summary of what a class does.

Input:

{
  "class_name": "vtkPolyDataMapper"
}

Output:

{
  "class_name": "vtkPolyDataMapper",
  "synopsis": "Maps polygonal data (vtkPolyData) to graphics primitives for rendering.",
  "found": true
}

10. vtk_get_class_action_phrase

Get the action phrase describing what a class does.

Input:

{
  "class_name": "vtkPolyDataMapper"
}

Output:

{
  "class_name": "vtkPolyDataMapper",
  "action_phrase": "polygon mapping",
  "found": true
}

11. vtk_get_class_role

Get the functional role/category of a class.

Input:

{
  "class_name": "vtkPolyDataMapper"
}

Output:

{
  "class_name": "vtkPolyDataMapper",
  "role": "rendering",
  "found": true
}

12. vtk_get_class_visibility

Get the visibility/exposure level of a class.

Input:

{
  "class_name": "vtkPolyDataMapper"
}

Output:

{
  "class_name": "vtkPolyDataMapper",
  "visibility": "likely",
  "found": true
}

13. vtk_get_module_classes

List all classes in a specific module.

Input:

{
  "module": "vtkmodules.vtkRenderingCore"
}

Output:

{
  "module": "vtkmodules.vtkRenderingCore",
  "classes": ["vtkActor", "vtkPolyDataMapper", ...],
  "count": 42
}

14. vtk_get_class_module

Return the vtkmodules.* import path for a given VTK class.

Input:

{
  "class_name": "vtkPolyDataMapper"
}

Output:

{
  "class_name": "vtkPolyDataMapper",
  "module": "vtkmodules.vtkRenderingCore",
  "found": true
}

15. vtk_get_class_input_datatype

Get the input data type for a VTK class.

Input:

{
  "class_name": "vtkPolyDataMapper"
}

Output:

{
  "class_name": "vtkPolyDataMapper",
  "input_datatype": "vtkPolyData",
  "found": true
}

16. vtk_get_class_output_datatype

Get the output data type for a VTK class.

Input:

{
  "class_name": "vtkContourFilter"
}

Output:

{
  "class_name": "vtkContourFilter",
  "output_datatype": "vtkPolyData",
  "found": true
}

17. vtk_get_class_semantic_methods

Get semantically tagged methods for a VTK class (input setters, output getters, configuration methods).

Input:

{
  "class_name": "vtkContourFilter"
}

Output:

{
  "class_name": "vtkContourFilter",
  "semantic_methods": {
    "input_setters": ["SetInputData", "SetInputConnection"],
    "output_getters": ["GetOutput", "GetOutputPort"],
    "configuration": ["SetValue", "SetNumberOfContours"]
  },
  "found": true
}

18. vtk_is_a_class

Check if a given name is a valid VTK class.

Input:

{
  "class_name": "vtkPolyDataMapper"
}

Output:

{
  "class_name": "vtkPolyDataMapper",
  "is_vtk_class": true
}

Benefits Over RAG Retrieval

Aspect

RAG Retrieval

MCP Validation

Speed

Vector search + reranking

Direct hash lookup (instant)

Accuracy

Semantic similarity (can drift)

Exact API match (100%)

Coverage

Top-K only (~10 results)

All ~2,900 classes available

Tokens

Consumes prompt tokens

Tool calls (minimal cost)

Errors

Silent hallucinations

Explicit error messages


Validation Examples

Example 1: Method Hallucination (CAUGHT ✅)

Generated Code:

stencil = vtkImageStencilToImage()
stencil.SetOutputWholeExtent([0, 10, 0, 10, 0, 10])  # ❌ Doesn't exist!

Validation Error:

UNKNOWN_METHOD: Method 'SetOutputWholeExtent' not found on class 'vtkImageStencilToImage'
Suggestion: Did you mean SetOutputOrigin or SetOutputSpacing?

Example 2: Wrong Import Module (CAUGHT ✅)

Generated Code:

from vtkmodules.vtkCommonDataModel import vtkPolyDataMapper  # ❌ Wrong module!

Validation Error:

IMPORT_ERROR: 'vtkPolyDataMapper' is not in module 'vtkmodules.vtkCommonDataModel'
Correct import: from vtkmodules.vtkRenderingCore import vtkPolyDataMapper

Example 3: Non-existent Class (CAUGHT ✅)

Generated Code:

converter = vtkImageDataToPolyDataConverter()  # ❌ Class doesn't exist!

Validation Error:

UNKNOWN_CLASS: Class 'vtkImageDataToPolyDataConverter' not found in VTK
Suggestion: Did you mean vtkImageDataGeometryFilter?

Data Source

Input: data/vtk-python-docs.jsonl

Each line is a VTK class documentation in JSON format:

{
  "class_name": "vtkPolyDataMapper",
  "module_name": "vtkmodules.vtkRenderingCore",
  "class_doc": "vtkPolyDataMapper - map vtkPolyData to graphics primitives. Superclass: vtkMapper",
  "synopsis": "Maps polygonal data (vtkPolyData) to graphics primitives for rendering.",
  "action_phrase": "polygon mapping",
  "role": "rendering",
  "visibility_score": "likely",
  "input_datatype": "vtkPolyData",
  "output_datatype": "",
  "semantic_methods": { "input_setters": [...], "output_getters": [...] },
  "structured_docs": { "sections": { ... } }
}

Coverage: ~2,900 VTK classes from VTK Python API


Future Enhancements

  • Method signature validation - Check parameter types and counts

  • Deprecation warnings - Flag deprecated VTK methods

  • Pipeline validation - Verify data flow compatibility

  • Auto-fix suggestions - Generate corrected code automatically

  • Performance profiling - Track validation overhead

  • Cache layer - Cache frequent lookups for speed


License

This is a standalone MCP server for VTK API validation. Extracted from the vtk-rag project.


Status: Production ready MCP server for VTK API validation.

Available Tools

18 tools
vtk_get_class_action_phraseB

Get the action phrase describing what a VTK class does (e.g., 'data reading', 'mesh filtering')

ParametersJSON Schema
NameRequiredDescriptionDefault
class_nameYesVTK class name (e.g., 'vtkPolyDataMapper')

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It does not disclose any behavioral traits such as error handling, performance, or the source of the action phrase. The description is too minimal for a tool with no metadata.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that directly states the purpose with an example. No unnecessary words.

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

Completeness3/5

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

Given the tool's simplicity (one parameter, no output schema), the description is minimally adequate but could explain what an action phrase is and under what circumstances it should be used.

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

Parameters3/5

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

The schema description for 'class_name' is already clear. The tool description adds no further semantics beyond the schema. With 100% schema coverage, the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'Get' and the resource 'action phrase'. It provides an example ('data reading', 'mesh filtering') which helps distinguish from sibling tools like vtk_get_class_synopsis.

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

Usage Guidelines2/5

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

The description does not provide any guidance on when to use this tool versus the many sibling tools. No context is given about appropriate scenarios or exclusions.

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

vtk_get_class_docB

Get the class documentation string for a VTK class

ParametersJSON Schema
NameRequiredDescriptionDefault
class_nameYesVTK class name (e.g., 'vtkPolyDataMapper')

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description must convey behavior. It states the action but does not disclose potential failure modes (e.g., if class not found), return format, or side effects. However, the tool's simplicity limits the need for extensive disclosure.

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

Conciseness5/5

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

The description is a single, clear sentence that is front-loaded and contains no unnecessary words. It is optimally concise.

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 tool with one parameter and no output schema, the description adequately covers the essential purpose. However, it could briefly indicate typical return value length or behavior if the class is missing.

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

Parameters3/5

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

The schema already provides good coverage (100%) for the single parameter. The description adds 'documentation string' context but does not significantly enhance understanding beyond the schema's parameter description.

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

Purpose4/5

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

The description clearly states the action (Get) and resource (class documentation string), making the purpose clear. It distinguishes from siblings like vtk_get_class_synopsis, though without explicit differentiation.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as vtk_get_class_synopsis or vtk_get_class_info. The description lacks any context for decision-making.

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

vtk_get_class_infoB

Get complete information about a VTK class including module path, description, and methods

ParametersJSON Schema
NameRequiredDescriptionDefault
class_nameYesVTK class name (e.g., 'vtkPolyDataMapper')

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided, so description bears full burden. It only states purpose without disclosing behavioral traits like performance or limitations. Minimal addition over verb.

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

Conciseness5/5

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

Single sentence with no redundancy. Front-loaded with key information. Every word serves a purpose.

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

Completeness2/5

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

No output schema provided, yet description only vaguely lists included fields without specifying structure or format. Agent cannot predict return shape reliably.

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 already documents the class_name parameter with example. Description adds no extra semantic value beyond the schema.

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

Purpose5/5

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

Description clearly states it retrieves complete VTK class info including module path, description, and methods. It distinguishes from sibling tools that return only specific aspects like methods or synopsis.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus siblings. The description implies it's for comprehensive data, but lacks alternative selection criteria.

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

vtk_get_class_input_datatypeA

Get the input data type for a VTK class (e.g., 'vtkPolyData', 'vtkImageData')

ParametersJSON Schema
NameRequiredDescriptionDefault
class_nameYesVTK class name (e.g., 'vtkPolyDataMapper')

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the basic function without revealing what happens on invalid input, error handling, or whether it returns a string or other type. This lack of transparency is a 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?

Single sentence with a parenthetical example. No wasted words and the core purpose is front-loaded. Highly concise and well-structured.

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

Completeness3/5

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

For a simple query tool with one parameter and no output schema, the description covers the basic purpose adequately but omits details on return format or error behavior. It is minimally complete but could be improved.

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% as the only parameter has a clear description. The tool description adds no new meaning to the parameter beyond what the schema already provides, so baseline of 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb 'Get' and clearly identifies the resource 'input data type for a VTK class' with illustrative examples. It effectively distinguishes this tool from its sibling, vtk_get_class_output_datatype, by specifying 'input' thus differentiating the two.

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

Usage Guidelines3/5

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

The description implies usage when needing the input data type but provides no explicit guidance on when to choose this tool over alternatives. Given multiple siblings, such guidance would be valuable but is absent.

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

vtk_get_class_methodsA

List all methods (with signatures) for a VTK class and optionally verify a specific method

ParametersJSON Schema
NameRequiredDescriptionDefault
class_nameYesVTK class name
method_nameNoOptional method to verify existence

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It states the tool lists methods with signatures, which is a read operation. However, it omits details like error handling, whether inherited methods are included, or output format, leaving some ambiguity.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that captures the main purpose and optional behavior. It contains no unnecessary words and effectively communicates the tool's function.

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

Completeness3/5

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

The description is functional but incomplete. It does not specify whether methods include inherited, protected, or private ones, nor the exact behavior of the method_name verification (e.g., exact match). Given the simplicity of the tool, more context would improve usability.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond the schema's parameter descriptions ('VTK class name' and 'Optional method to verify existence'). The description itself does not elaborate further.

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

Purpose5/5

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

The description uses a specific verb 'List' and clearly identifies the resource 'methods (with signatures) for a VTK class'. It also mentions an optional verification function, which distinguishes it from sibling tools like vtk_get_method_signature or vtk_get_method_info that focus on single methods.

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

Usage Guidelines3/5

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

The description implies usage scenarios (listing all methods or verifying one), but lacks explicit guidance on when to choose this tool over alternatives, prerequisites like a valid class name, or constraints such as case sensitivity for method verification.

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

vtk_get_class_moduleA

Return the vtkmodules.* import path for a given VTK class

ParametersJSON Schema
NameRequiredDescriptionDefault
class_nameYesVTK class name (e.g., 'vtkPolyDataMapper')

TDQS

A3.6/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 describes a read-only operation (returning an import path) but does not disclose behavior for invalid class names or error conditions. The description is adequate but lacks details on edge cases.

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

Conciseness4/5

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

The description is a single sentence that is concise and front-loaded with the key action. However, it could be slightly more structured (e.g., clarifying the result format). Still, it is efficient.

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

Completeness3/5

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

Given the tool's simplicity (one parameter, no output schema), the description covers the basic purpose. However, it does not explain what a 'vtkmodules.* import path' looks like or how the result is used, leaving some ambiguity. Adequate but not thorough.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents the class_name parameter. The description adds 'VTK class' context, but this closely mirrors the schema description ('VTK class name'). Minimal added value beyond the schema.

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

Purpose5/5

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

The description clearly states the tool returns the vtkmodules.* import path for a given VTK class. It uses a specific verb 'Return' and resource 'import path', effectively distinguishing it from sibling tools that provide documentation, methods, or other class info.

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

Usage Guidelines3/5

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

The description implies the tool is used when the import path for a VTK class is needed, but it does not provide explicit guidance on when to use this tool versus siblings like vtk_get_class_doc or vtk_validate_import. No exclusions or alternatives are mentioned.

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

vtk_get_class_output_datatypeA

Get the output data type for a VTK class (e.g., 'vtkPolyData', 'vtkImageData')

ParametersJSON Schema
NameRequiredDescriptionDefault
class_nameYesVTK class name (e.g., 'vtkContourFilter')

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It only states what the tool does without disclosing behavior such as error handling on invalid class names, return format, or whether the result is a string or object.

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

Conciseness5/5

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

The description is a single, concise sentence with immediate front-loading of the purpose, containing no extraneous information.

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

Completeness3/5

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

Given the tool's simplicity (one required parameter, no output schema), the description is adequate but does not fully specify the return type or behavior with invalid inputs, leaving some gaps for an agent to infer.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description adds an example output but does not provide additional semantic meaning beyond what the schema already offers for the 'class_name' parameter.

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

Purpose5/5

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

The description clearly states the action 'Get' and the resource 'output data type for a VTK class' with concrete examples like 'vtkPolyData', distinguishing it from sibling tools that retrieve other aspects of a class.

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

Usage Guidelines3/5

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

The description implies usage for retrieving output data types but provides no explicit guidance on when to prefer this tool over alternatives like vtk_get_class_input_datatype or vtk_get_class_synopsis, nor does it mention any exclusions.

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

vtk_get_class_roleA

Get the pipeline role of a VTK class. Returns one of: input, filter, properties, renderer, scene, infrastructure, output, utility, color

ParametersJSON Schema
NameRequiredDescriptionDefault
class_nameYesVTK class name (e.g., 'vtkPolyDataMapper')

TDQS

A4/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It discloses that the tool returns one of a specific set of roles, which is transparent for a read-only lookup. It does not cover error behavior or performance, but the core behavior is clear.

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

Conciseness5/5

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

The description is a single sentence followed by a list of possible values. It is front-loaded and concise, containing 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?

For a simple tool with one parameter and no output schema, the description adequately explains the purpose and return values. It could mention what happens if the class is not found, but overall it is 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?

Only one parameter exists with schema description 'VTK class name (e.g., 'vtkPolyDataMapper')'. The description does not add additional semantics beyond the schema, and schema coverage is 100%, so a baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Get the pipeline role of a VTK class.' It lists the possible return values, making it distinct from sibling tools like vtk_get_class_info or vtk_get_class_synopsis.

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

Usage Guidelines3/5

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

The description implies usage when needing the pipeline role but does not provide explicit when-to-use or when-not-to-use guidance, nor does it mention alternatives among siblings.

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

vtk_get_class_semantic_methodsA

Get non-boilerplate callable methods for a VTK class. Excludes dunder methods, private methods, and VTK infrastructure methods.

ParametersJSON Schema
NameRequiredDescriptionDefault
class_nameYesVTK class name (e.g., 'vtkContourFilter')

TDQS

A4.3/5.0
Behavior4/5

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

No annotations are provided, so the description carries the burden. It clearly discloses that dunder, private, and infrastructure methods are excluded, which is key behavioral information for a retrieval tool.

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

Conciseness5/5

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

The description is a single, clear sentence that is front-loaded with the verb and resource. Every word adds value, and it is concise without being under-specified.

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

Completeness5/5

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

For a simple retrieval tool with one parameter and no output schema, the description is complete. It explains the return value (non-boilerplate methods) and exclusions, making it sufficient for an agent to select and invoke correctly.

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

Parameters3/5

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

The schema covers 100% of parameters with a description of class_name. The tool's description does not add 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 the tool's purpose: getting non-boilerplate callable methods for a VTK class. It specifies what is excluded (dunder, private, infrastructure methods), distinguishing it from siblings like vtk_get_class_methods.

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 implies when to use this tool (when only public, meaningful methods are needed) by specifying exclusions. It does not explicitly mention alternatives like vtk_get_class_methods, but the sibling list provides context.

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

vtk_get_class_synopsisA

Get a brief synopsis/summary of what a VTK class does

ParametersJSON Schema
NameRequiredDescriptionDefault
class_nameYesVTK class name (e.g., 'vtkPolyDataMapper')

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries full burden for behavioral disclosure. It states that a synopsis/summary is returned, which is correct, but lacks details on error handling or response format.

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

Conciseness5/5

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

Single, front-loaded sentence with no extraneous words; every word contributes to purpose clarity.

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

Completeness4/5

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

For a simple read tool with one parameter and no output schema, the description adequately conveys input and output nature; however, it could optionally clarify that the synopsis is brief relative to full documentation.

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%, providing a clear parameter description. The tool description adds an example but does not significantly extend meaning beyond the schema, placing it at baseline.

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

Purpose5/5

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

Description clearly states the verb 'Get' and resource 'brief synopsis/summary of a VTK class', distinguishing it from siblings that retrieve other specific details.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like vtk_get_class_doc or vtk_get_class_info; explicit usage instructions are absent.

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

vtk_get_class_visibilityA

Get the visibility score of a VTK class (0.0-1.0). Higher scores indicate classes more likely to be used directly.

ParametersJSON Schema
NameRequiredDescriptionDefault
class_nameYesVTK class name (e.g., 'vtkPolyDataMapper')

TDQS

A4/5.0
Behavior4/5

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

The description explains the output range and interpretation, which goes beyond the input schema. Since annotations are absent, this adequately informs the agent of the return value nature, though no error or edge case behavior is mentioned.

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

Conciseness5/5

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

The description is a single sentence with no extraneous words. It efficiently conveys purpose, range, and interpretation.

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 one-parameter tool with no output schema, the description provides essential context (range and meaning). It lacks details on error handling or response format, but given the complexity, it is largely complete.

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

Parameters3/5

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

Schema description coverage is 100% with a clear example for class_name. The description adds no further parameter meaning; baseline 3 is appropriate as the schema already documents the parameter sufficiently.

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 a visibility score (0.0-1.0) and interprets higher scores as more likely to be used directly. This specific metric differentiates it from sibling tools that return documentation, methods, or synopsis.

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

Usage Guidelines3/5

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

No explicit when-to-use or when-not-to-use guidance is provided. While the purpose is clear, the description does not mention alternatives or contexts where this metric is appropriate, leaving inference to the agent.

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

vtk_get_method_docA

Get just the docstring for a specific method of a VTK class

ParametersJSON Schema
NameRequiredDescriptionDefault
class_nameYesVTK class name
method_nameYesMethod name

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose behavioral traits such as read-only nature, error handling, or return value behavior. It only states the functional purpose, which is insufficient for full transparency.

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

Conciseness5/5

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

The description is a single concise sentence that is front-loaded and contains no wasted words. It is appropriately sized for the simple functionality.

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

Completeness4/5

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

For a tool with only two parameters and a straightforward purpose, the description is largely adequate. However, it does not specify the return type (e.g., string) or error behavior, which would improve completeness.

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

Parameters3/5

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

Schema description coverage is 100%, so the parameters are already well-described. The description adds no additional meaning beyond the schema, resulting in 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 clearly states that the tool retrieves the docstring for a specific method of a VTK class, using a specific verb and resource. It distinguishes itself from sibling tools like vtk_get_method_info and vtk_get_method_signature by emphasizing 'just 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 Guidelines3/5

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

The description implies that the tool should be used when only the docstring is needed, but it does not explicitly contrast with sibling tools or provide when-not-to-use guidance. The usage is implied but not fully specified.

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

vtk_get_method_infoB

Get documentation for a specific method of a VTK class

ParametersJSON Schema
NameRequiredDescriptionDefault
class_nameYesVTK class name
method_nameYesMethod name

TDQS

B3.1/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It states the operation is to get documentation, implying read-only behavior. However, it does not disclose specifics like format, scope, or potential errors.

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

Conciseness4/5

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

The description is a single concise sentence with no redundant information. It is front-loaded and efficient.

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

Completeness2/5

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

Given no output schema and many sibling tools, the description does not explain what the output is (e.g., string, JSON) or how this tool differs from similar ones. It leaves the agent without enough context for correct invocation.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters are defined in the schema. The description adds no additional meaning beyond what the schema already provides.

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

Purpose4/5

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

The description clearly states the verb (Get) and resource (documentation for a specific method of a VTK class). It distinguishes from siblings like vtk_get_method_doc and vtk_get_method_signature by being more general, though it does not explicitly differentiate.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternative siblings (e.g., vtk_get_method_doc, vtk_get_method_signature). The description lacks context for selection.

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

vtk_get_method_signatureA

Return only the canonical signature for a specific method of a VTK class (minimal payload)

ParametersJSON Schema
NameRequiredDescriptionDefault
class_nameYesVTK class name (e.g., 'vtkSphereSource')
method_nameYesMethod name whose signature should be returned (e.g., 'GetOutput')

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It implies a lightweight, read-only operation returning a signature, but does not disclose specifics like rate limits, authentication needs, or the exact format of the returned signature.

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

Conciseness4/5

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

The single sentence is efficient and front-loaded, though it lacks explicit organization. It is concise but could add a brief note on return format.

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 tool with two parameters and no output schema, the description is adequate. It states the purpose and payload size, but omits details about the signature format, which may be inferred from the tool name.

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, so baseline is 3. The description adds minimal value beyond the schema, only hinting at the return being canonical and minimal.

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 'Return', the resource 'canonical signature for a specific method of a VTK class', and differentiates from siblings like vtk_get_method_doc and vtk_get_method_info by noting 'minimal payload', making it distinct.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as vtk_get_method_info or vtk_get_method_doc. There are no when-to-use or when-not-to-use instructions.

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

vtk_get_module_classesC

List all VTK classes in a specific module

ParametersJSON Schema
NameRequiredDescriptionDefault
moduleYesModule name (e.g., 'vtkmodules.vtkRenderingCore')

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only states 'list all VTK classes', omitting whether the operation is read-only, what the output format is (e.g., list of strings), or any side effects. This is insufficient.

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

Conciseness4/5

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

The description is a single concise sentence that front-loads the core action. It is efficient and avoids unnecessary words, though it could include more detail without becoming verbose.

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

Completeness3/5

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

For a simple tool with one parameter and no output schema, the description is adequate but lacks mention of return format (e.g., list of class names). It is complete enough for basic understanding but could improve.

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 by linking the parameter 'module' to the tool's purpose, but provides no additional syntax or formatting details beyond the schema.

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

Purpose4/5

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

The description clearly states the verb 'List' and the resource 'all VTK classes' with scope 'in a specific module', which distinguishes it from siblings like vtk_get_class_module. However, it does not explicitly differentiate from similar tools, leaving some ambiguity.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as vtk_search_classes or vtk_get_class_module. The description does not mention prerequisites or typical use cases.

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

vtk_is_a_classA

Check if a given name is a valid VTK class. Returns true if it exists in the VTK API, false otherwise.

ParametersJSON Schema
NameRequiredDescriptionDefault
class_nameYesName to check (e.g., 'vtkPolyDataMapper')

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries the full burden of transparency. It accurately describes the behavior (check validity, return boolean), but it does not disclose potential side effects, performance characteristics, or any authorization requirements. For a simple lookup, this is adequate but not exceptional.

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

Conciseness5/5

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

The description is a single sentence that is direct and to the point. It contains no extraneous information and effectively communicates the tool's 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?

For a simple boolean-check tool with one parameter and no output schema, the description is complete. It provides enough context for an agent to understand what the tool does and how to use it correctly.

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 provides a clear description for the only parameter 'class_name' with an example. The tool description adds no additional meaning beyond what the schema already provides. Since schema coverage is 100%, the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb ('Check'), the resource ('VTK class name'), and the expected result (boolean true/false). It effectively distinguishes this tool from sibling tools that retrieve various class details, as this one is a simple validation check.

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

Usage Guidelines2/5

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

The description does not provide any guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or exclusions. For a validation tool, it would be helpful to suggest using it before calling other vtk tools to ensure the class name is valid.

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

vtk_search_classesC

Search for VTK classes by name or keyword

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch term (e.g., 'reader', 'mapper', 'actor')
limitNoMaximum number of results (default: 10)

TDQS

C2.9/5.0
Behavior1/5

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

No annotations provided, and the description does not disclose any behavioral traits such as read-only, side effects, rate limits, or result properties. With no annotations, the description fails to inform the agent about operational behavior.

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

Conciseness4/5

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

Single sentence with 8 words, no redundancy. However, it could include more context without becoming verbose. Slightly under-informative for a search tool.

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

Completeness2/5

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

Given the simplicity and sibling context, the description lacks details on result ordering, matching behavior, and how it fits into the workflow of using other VTK tools. Incomplete for optimal agent decision-making.

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

Parameters3/5

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

Schema coverage is 100%, so parameters are already documented. Description adds minimal value by noting 'by name or keyword', which aligns with the query parameter. 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?

Description clearly states 'Search for VTK classes by name or keyword' with verb 'search' and resource 'VTK classes'. It distinguishes from sibling tools which retrieve specific class details.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like vtk_get_class_info or vtk_validate_import. Lacks context about prerequisites or recommended order.

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

vtk_validate_importC

Validate if a VTK import statement is correct and suggest corrections

ParametersJSON Schema
NameRequiredDescriptionDefault
import_statementYesPython import statement to validate

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries full burden. It states the tool validates and suggests corrections, but does not disclose if it is read-only, whether it requires network access, or what happens on invalid input. The behavioral traits are insufficiently documented.

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

Conciseness4/5

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

The description is a single concise sentence of 10 words, front-loading the purpose. It is efficient, though could include additional context without being verbose.

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

Completeness2/5

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

For a tool with no output schema and no annotations, the description should explain return values, error handling, and behavioral details. It only mentions validation and suggestion, leaving significant gaps.

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

Parameters3/5

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

Schema coverage is 100% with one parameter described. The description adds no extra meaning beyond the schema's 'Python import statement to validate'. For high coverage, baseline 3 is appropriate.

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

Purpose4/5

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

The description clearly states the tool validates VTK import statements and suggests corrections. It uses specific verb 'validate' and resource 'import statement', distinguishing it from sibling tools that retrieve class/method info.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, nor any context about prerequisites or typical use cases. The description lacks any 'when to use' or 'when not to use' information.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 18 tool updatesv0.1.0
    • First observedvtk_get_class_action_phrase
    • First observedvtk_get_class_doc
    • First observedvtk_get_class_info
    • First observedvtk_get_class_input_datatype
    • First observedvtk_get_class_methods
    • First observedvtk_get_class_module
    • First observedvtk_get_class_output_datatype
    • First observedvtk_get_class_role
    • First observedvtk_get_class_semantic_methods
    • First observedvtk_get_class_synopsis
    • First observedvtk_get_class_visibility
    • First observedvtk_get_method_doc
    • First observedvtk_get_method_info
    • First observedvtk_get_method_signature
    • First observedvtk_get_module_classes
    • First observedvtk_is_a_class
    • First observedvtk_search_classes
    • First observedvtk_validate_import

TDQS

A3.8/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose, querying different aspects of VTK classes (e.g., action phrase, doc, methods, module). Overlaps are minimal and well-defined (e.g., three method-query tools differentiate by payload: doc only, doc+signature, signature only).

Naming Consistency5/5

All tools follow a consistent snake_case pattern with 'vtk_' prefix, verb (mostly 'get', plus 'is_a', 'search', 'validate'), and specific resource. Naming is predictable and uniform.

Tool Count5/5

With 18 tools, the set is well-scoped for a reference API server that provides detailed class metadata. Each tool serves a clear need without clutter.

Completeness5/5

The tool surface covers all key aspects of VTK class information: identification, documentation, methods, module path, input/output types, role, visibility, search, import validation, and per-module listing. No obvious gaps for the stated purpose.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    An MCP server that exposes Pyright language server functionality for Python, providing tools for type checking, code completions, and finding definitions. It enables AI models to perform static analysis and code formatting through the Model Context Protocol.
    7
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that fixes, validates, and generates visual text content for AI coding assistants.
    MIT
  • A
    license
    B
    quality
    A
    maintenance
    An MCP server that validates generated code against project structure and installed dependencies, catching undefined symbols, wrong API calls, dead code, and type mismatches in real time. It provides tools for project indexing, symbol/API checking, sandboxed execution, file scanning, and code analysis.
    1
    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/patrickoleary/vtkapi-mcp'

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