Token导航 LogoToken导航TokenDH.com
Vtkapi MCP logo
运维云端stdio官方级别未说明来源级核验

Vtkapi MCP

MCP Server

通过Model Context Protocol (MCP)对生成的VTK Python代码进行自动验证,确保API调用的准确性和正确性。

工具数

16

提示词数

0

GitHub Stars

0

资源数

0
静态分析PythonClaudeClaude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

patrickoleary

提供方

patrickoleary

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install vtkapi-mcp

详细介绍

VTK API通过MCP验证

使用模型上下文协议(MCP)对VTK Python代码进行生成后验证。

概述

该模块提供生成的VTK代码的自动验证,以捕捉API幻觉:

  • 直接API查找 -无向量搜索开销,精确的类/方法验证
  • 方法存在性验证 -检测LLM何时发明不存在的方法
  • 导入验证 -验证VTK类是否从正确的模块导入
  • 快速内存索引 -启动时加载约2900个VTK类
  • 结构化错误报告 -清除带有建议的错误消息

______________________________________________________________________

快速开始

1.安装软件包

PyPI(发布后推荐):

pip install vtkapi-mcp

对于地方发展,我们标准化 紫外线 要管理virtualenv和附加功能:

uv venv .venv
source .venv/bin/activate
uv sync --extra dev      # runtime + pytest + ruff
注: 64 MB data/vtk-python-docs.jsonl 文件在运行时是必需的,但未捆绑在控制盘中。把它放在下面 data/ (或通行证 --api-docs /path/to/file)在启动MCP服务器之前。

更喜欢自动化? ./setup.sh 现在包装相同的uv工作流程并接受 --dev 包括测试工具链。

2.测试MCP集成(可选)

uv run python demo_mcp_integration.py

这运行了一个完整的演示,展示了如何将vtkapi-mcp用作mcp服务器(而不是独立的Python库)。它演示了所有18个MCP工具和错误检测。

3.开发人员工作流程(uv原生)

任务命令
运行单元+集成测试uv run pytest
使用覆盖率报告运行测试uv run pytest --cov=vtkapi_mcp --cov-report=term-missing
运行Ruff-lint和格式检查uv run ruff check / uv run ruff format --check
这些命令会自动重用 .venv 通过创建 uv venv / uv sync。不需要手动激活。

3.配置MCP客户端

添加到您的MCP设置中(例如,Claude Desktop配置):

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

4.使用VTK工具

MCP服务器为VTK API验证和查找提供了18个工具。看 MCP工具 在......下面

______________________________________________________________________

项目结构

包装组织

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

支持文件

文件目的
demo_mcp_integration.py演示显示正确的MCP集成(非独立)
pyproject.tomlPython包配置和依赖关系
README.md此文件

数据

文件用途大小
data/vtk-python-docs.jsonlVTK API文档(约2900个类)约64 MB

______________________________________________________________________

建筑

VTKAPIIndex(vtkapi_mcp/core/api_index.py)

所有VTK类和方法的快速内存索引:

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

关键方法:

  • get_class_info(class_name) -获取模块和文档
  • search_classes(query) -按名称或关键字搜索
  • get_module_classes(module) -列出模块中的类
  • class_exists(class_name) -检查类是否存在

VTKCodeValidator(vtkapi_mcp/验证/验证器.py)

基于AST的生成Python代码验证:

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

验证类型:

  1. 导入验证 -验证模块路径
  2. 类验证 -检查类是否存在
  3. 方法验证 -检测幻觉方法

______________________________________________________________________

提供的MCP工具

当作为MCP服务器运行时,提供以下18个工具:

1. vtk_get_class_info

获取有关VTK类的完整信息。

输入:

{
  "class_name": "vtkPolyDataMapper"
}

输出:

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

2. vtk_search_classes

按名称或关键字搜索VTK类。

输入:

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

输出:

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

5. vtk_validate_import

验证并更正VTK导入语句。

输入:

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

输出:

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

6. vtk_get_method_info

获取有关特定方法的完整信息,包括节上下文。

输入:

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

输出:

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

7. vtk_get_method_doc

只获取特定方法的docstring。

输入:

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

输出:

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

8. vtk_get_class_doc

获取类文档字符串。

输入:

{
  "class_name": "vtkPolyDataMapper"
}

输出:

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

9. vtk_get_class_synopsis

获取一个类所做工作的简要概述/摘要。

输入:

{
  "class_name": "vtkPolyDataMapper"
}

输出:

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

10. vtk_get_class_action_phrase

获取描述类功能的动作短语。

输入:

{
  "class_name": "vtkPolyDataMapper"
}

输出:

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

11. vtk_get_class_role

获取类的功能角色/类别。

输入:

{
  "class_name": "vtkPolyDataMapper"
}

输出:

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

12. vtk_get_class_visibility

获取一个类的可见性/暴露水平。

输入:

{
  "class_name": "vtkPolyDataMapper"
}

输出:

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

13. vtk_get_module_classes

列出特定模块中的所有类。

输入:

{
  "module": "vtkmodules.vtkRenderingCore"
}

输出:

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

14. vtk_get_class_module

返回给定VTK类的vtkmodules.\*导入路径。

输入:

{
  "class_name": "vtkPolyDataMapper"
}

输出:

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

15. vtk_get_class_input_datatype

获取VTK类的输入数据类型。

输入:

{
  "class_name": "vtkPolyDataMapper"
}

输出:

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

16. vtk_get_class_output_datatype

获取VTK类的输出数据类型。

输入:

{
  "class_name": "vtkContourFilter"
}

输出:

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

17. vtk_get_class_semantic_methods

获取VTK类的语义标记方法(输入setter、输出getter、配置方法)。

输入:

{
  "class_name": "vtkContourFilter"
}

输出:

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

18. vtk_is_a_class

检查给定名称是否是有效的VTK类。

输入:

{
  "class_name": "vtkPolyDataMapper"
}

输出:

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

______________________________________________________________________

与RAG检索相比的优势

方面RAG检索MCP验证
速度矢量搜索+重新排序直接哈希查找(即时)
准确度语义相似性(可以漂移)API精确匹配(100%)
覆盖仅Top-K(约10个结果)共有约2900个课程可供选择
代币消耗提示令牌工具调用(最低成本)
错误无声的幻觉明确的错误信息

______________________________________________________________________

验证示例

示例1:方法幻觉(CAUGHT✅)

生成代码:

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

验证错误:

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

示例2:导入模块错误(小心✅)

生成代码:

from vtkmodules.vtkCommonDataModel import vtkPolyDataMapper  # ❌ Wrong module!

验证错误:

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

示例3:不存在的类(CAUGHT✅)

生成代码:

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

验证错误:

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

______________________________________________________________________

数据源

输入: data/vtk-python-docs.jsonl

每一行都是JSON格式的VTK类文档:

{
  "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": { ... } }
}

新闻报道: VTK Python API中的约2900个VTK类

______________________________________________________________________

未来的增强功能

  • \[ \] 方法签名验证 -检查参数类型和计数
  • \[ \] 弃用警告 -标记已弃用的VTK方法
  • \[ \] 管道验证 -验证数据流兼容性
  • \[ \] 自动修复建议 -自动生成更正代码
  • \[ \] 性能评测 -跟踪验证开销
  • \[ \] 缓存层 -缓存频繁查找以提高速度

______________________________________________________________________

许可证

这是一个独立的MCP服务器,用于VTK API验证。摘录自 vtk抹布 项目。

______________________________________________________________________

状态: 生产就绪的MCP服务器,用于VTK API验证。

目录标签

目录标签

静态分析PythonClaude代码验证本地部署API检查VTK工具Python开发

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

16

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP