Token导航 LogoToken导航

MCP Server · 运维云端

Vtkapi MCP

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

stdio官方级别未说明来源级核验工具 16
静态分析PythonClaudeClaude Desktop

快速开始

作者 / 组织
patrickoleary
提供方
patrickoleary

工具数量

16

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

1 个

MCP World

选型结论

Vtkapi MCP 属于运维云端类 MCP Server,公开资料标注 16 个工具,通过stdio 本地进程接入,适配 Claude Desktop、Claude,有可以直接复制的安装命令;接入前先确认权限范围。

分类

运维云端

传输方式

stdio

认证方式

无需认证

部署方式

公开资料未说明

安装与配置

安装命令

pip install vtkapi-mcp

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 对应的运行时,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 16 个工具,随便调一个只读工具确认能返回结果。

接入前确认

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

详细介绍

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验证。

工具与能力

工具数量

16

资源数量

0

提示词数量

0

能力标签

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

支持客户端

Claude DesktopClaude

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

看服务状态

查询容器、日志和监控指标,定位异常。

执行部署变更

在权限范围内触发发布、回滚和环境切换。

核对资源用量

汇总用量,找出闲置和超额的部分。

选择建议

值得选的地方

  • 工具数量 16 个,一次接入能覆盖的操作比单点工具更全。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 已经适配 Claude Desktop、Claude,换客户端不用重新研究配置。

先想清楚的地方

  • stdio 方式要求本地装好 运行环境,换机器要重新装一遍。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在运维云端场景里让模型直接调用外部能力的人。
  • 已经在用 Claude Desktop 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Vtkapi MCP

MCP World · 本页

16stdio有1 个2026-05-17
Ui Tars Desktop 8a825770

MCP World

0stdio有1 个2026-05-17
Elie222 MCP

MCP World

0未说明未标注1 个2026-05-17
Arizeai Phoenix MCP

MCP World

0stdio有3 个2026-05-17
Unity MCP 87ee506e

MCP World

42HTTP有2 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Vtkapi MCP 怎么安装?

公开资料给出的安装命令是 pip install vtkapi-mcp,运行环境为 未标注。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Vtkapi MCP 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

Vtkapi MCP 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Vtkapi MCP 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

Vtkapi MCP 支持哪些客户端?

公开资料标注支持 Claude Desktop、Claude;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP