Kanzi API MCP 服务器¶
Kanzi API MCP 服务器将您的 AI 助手连接到 Kanzi API 参考文档。这使 AI 助手能够查找 API 签名、检查弃用状态、解析 include 指令、列举派生自某个基类型的类型,以及比较不同 Kanzi 版本之间的 API。该服务器涵盖 C++、Java、C#、Lua 和 Rust 中的 Kanzi API。
Kanzi API MCP 服务器可防止 AI 助手臆造 API 签名。AI 助手不再进行猜测,而是直接从服务器获取经过验证的 API 信息。
Kanzi API MCP 服务器支持以下 API 集:
API 集 |
语言 |
描述 (Description) |
|---|---|---|
|
C++ |
Kanzi Engine 核心 API |
|
Java |
Kanzi Engine Java 绑定 |
|
Java |
Kanzi Android Framework API |
|
Java |
Kanzi Android App Framework API |
|
C# |
Kanzi Studio 插件 API |
|
C# |
Kanzi 本地化插件 API |
|
Lua |
Kanzi Engine Lua API |
|
Rust |
Kanzi Engine Rust API |
设置 Kanzi API MCP 服务器¶
要让 AI 编码代理自动配置,从而一次性设置两个 Kanzi MCP 服务器,请参见 快速设置。以下步骤介绍如何手动配置此服务器。
在 Claude Desktop 中设置¶
要在 Claude Desktop 中设置 Kanzi API MCP 服务器,请将该服务器添加到 Claude Desktop 配置文件中:
在 Claude Desktop 配置文件中添加以下内容:
{ "mcpServers": { "kanzi-api": { "command": "npx", "args": [ "-y", "mcp-remote", "https://api.mcp.kanzi.com" ] } } }
重新启动 Claude Desktop。
在 VS Code 中设置¶
要在 VS Code 中设置 Kanzi API MCP 服务器:
在 VS Code 中,打开 Command Palette (Ctrl Shift P) 并选择 MCP: Open User Configuration。
在
mcp.json文件中添加服务器配置:{ "servers": { "kanzi-api": { "type": "http", "url": "https://api.mcp.kanzi.com" } }, "inputs": [] }
打开 Command Palette 并选择 Developer: Reload Window。
使用 Ctrl Alt I 打开 Chat 窗口。
在 Claude Code 中设置¶
要在 Claude Code 中设置 Kanzi API MCP 服务器,请运行:
claude mcp add --scope user --transport http kanzi-api https://api.mcp.kanzi.com
在其他工具中设置¶
要在其他支持 MCP 的 AI 工具中设置 Kanzi API MCP 服务器,请参阅该工具的文档。在工具配置中,将服务器 URL 与 mcp-remote 一起使用:
{
"mcpServers": {
"kanzi-api": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://api.mcp.kanzi.com"
]
}
}
}
查询示例¶
设置 Kanzi API MCP 服务器后,您可以向 AI 助手提出如下问题。助手会使用服务器工具获取准确的 API 信息。
基本查找¶
您可以搜索 API 成员、验证签名、检查弃用状态以及获取 include 指令:
“在 Java API 中查找 Node 类。”
“
kanzi::Node::setName的签名是什么?”“
kanzi::Page是否已弃用?我应该改用什么?”“要在 C++ 中使用
Button2D,我需要包含哪个头文件?”
跨版本迁移¶
Kanzi API MCP 服务器可以比较不同版本的 API,帮助您估算迁移所需的工作量,并找出需要处理的更改。这正是该服务器最有价值的地方,因为没有人能够快速比较多个版本中数以万计的 API 记录之间的差异。
“我正在将 Kanzi 工程从 3.9.8 迁移到 4.0.0。哪些 C++ API 被删除或更改了?重点关注
Node和RenderPass类。”“列出 Kanzi 3.9.13 到 4.0.0 之间弃用的所有 API 及其替代项。”
“Kanzi 3.9.9 到 3.9.12 之间新增了哪些 Java API?我想了解有哪些新功能可用。”
跟踪 API 演变¶
您可以跟踪特定 API 成员在所有可用 Kanzi 版本中的变化:
“
kanzi::ResourceManager从 Kanzi 3.6.21 到 4.0.0 是如何演变的?请显示完整历史。”“跟踪
kanzi::Node::trySetFocus在所有版本中的历史。它的签名是否发生过变化?”“
Button2D的 Lua API 是何时引入的?其接口在各版本之间是否有变化?”
跨语言比较¶
您可以比较同一功能在不同 Kanzi 语言 API 中的公开方式:
“比较属性类型在 C++、Java 和 Lua 中的工作方式。向我展示每种语言中的
PropertyType或其等效项。”“我需要在运行时加载 prefab。向我展示 C++、Java 和 Lua 中用于此操作的 API,以及正确的 include 和 import。”
“在 C++ 和 Java 中创建动画时间线有何不同?向我展示
TimelinePlayer或AnimationPlayer的签名。”
实际编码任务¶
您可以让 AI 助手使用经过验证的 API 调用帮助您编写代码:
“用 C# 编写一个 Kanzi Studio 插件,遍历工程中的所有
Node2D项并列出其名称。仅使用经过验证的 API 调用。”“向我展示如何在 Kanzi 3.9.15 中用 C++ 创建自定义
RenderPass。我需要继承哪个类、包含哪些头文件,以及重写哪些虚方法?”“我正在使用 Kanzi 编写 Java Android 应用程序。如何处理触摸输入?向我展示相关的类及其方法。”
配置您的 AI 助手¶
为获得最佳效果,请向您的 AI 助手添加说明,告诉它如何有效地使用 Kanzi API MCP 服务器工具。这些说明可帮助 AI 助手为每项任务选择合适的工具、使用正确的命名约定,并在代码中使用 API 信息之前对其进行验证。
添加这些说明的方式取决于您使用的 AI 助手:
在 Claude Code 中,将说明添加到工程根目录中的
CLAUDE.md文件。在使用 GitHub Copilot 的 VS Code 中,将说明添加到工程根目录中的
.github/copilot-instructions.md文件。在 Claude Desktop 中,将说明添加到您工程的系统提示词中。
以下说明是推荐的起点。您可以根据需要进行调整。
Kanzi API MCP server — tool selection guide:
- Discovery (do not know exact name): search_kanzi_api() — supports
member_type filter (class/function/variable/enum/struct/interface/typedef)
and n_results up to 20.
- Verification (know the fully-qualified name): get_method_signature() — also
finds overloads through prefix matching. For example,
"kanzi::Node::setProperty" returns all setProperty variants.
- Include and import directives: get_include() — returns #include (C++),
import (Java), using (C#), or use (Rust).
- Full class overview: get_class_reference() — shows all members at a glance,
including inherited members labeled with their origin class.
- Type enumeration: list_derived_types() — list every type that derives from a
base type, for example all node types that derive from kanzi::Node. Use
get_type_hierarchy() for one type's bases and direct subtypes, and
list_types() to list the types in an API set or namespace.
- Deprecation check: get_deprecation_warnings() — check before using any API.
- Migration: compare_versions() — scope with class_name and change_type
(added/removed/changed/deprecated) for focused diffs. Supports pagination
with limit/offset.
- API evolution: get_api_history() — shows signature changes across all
versions.
Naming conventions:
- C++ uses :: separators (kanzi::Node::setName).
- Java and C# use . separators (com.rightware.kanzi.Node).
- All tools accept optional language (cpp/java/csharp/lua/rust) and api
parameters to narrow results.
Kanzi versions:
- The server is stateless. Pass version="<version>" on every call when you
work with a specific Kanzi version. There is no current version that
persists between calls; omitting it uses the newest stable version.
Workflow:
- When writing Kanzi code, verify each API with get_method_signature()
before using it.
- When migrating between versions, start with compare_versions(), then
drill into changed APIs with get_api_history().
- After finding a class, use get_class_reference() to see available methods
rather than guessing member names.
- Do not hallucinate Kanzi API signatures. Use these tools to verify.
Kanzi API MCP 工具参考¶
将 Kanzi API MCP 服务器连接到 AI 助手后,助手即可使用这些工具。
备注
服务器不会在调用之间记住您正在使用的 Kanzi 版本。要查询特定版本,请向每个查询工具传递 version 参数。compare_versions 和 get_api_history 跨越多个版本,因此改为使用各自的版本参数。省略 version 时,服务器使用其可用的最新稳定 Kanzi 版本。
list_apis¶
列出可用的 Kanzi 版本、API 集以及每个 API 集中的记录数。显示服务器默认使用的版本以及其他可用版本。
参数 |
|
||
示例 |
# List all available Kanzi versions and API sets.
list_apis()
|
set_kanzi_version¶
确认某个 Kanzi 版本是否可用,并报告其包含的 API 集数量。
由于服务器在调用之间不保留状态,此工具不会更改后续调用所使用的版本。要查询特定版本,请在每次调用工具时传递 version 参数。
参数 |
|
||
示例 |
# Check that Kanzi 3.9.15 is available.
set_kanzi_version(version="3.9.15")
# Check that Kanzi 4.1.0 is available.
set_kanzi_version(version="4.1.0")
|
search_kanzi_api¶
按关键字搜索 Kanzi API 文档。使用此工具查找 Kanzi 类、方法、属性和类型。
参数 |
|
||||||||||||
示例 |
# Find all classes related to RenderPass.
search_kanzi_api(query="RenderPass", member_type="class")
# Search for touch handling in the Java API.
search_kanzi_api(query="touch input", language="java", n_results=10)
# Find all enums in the C++ runtime API.
search_kanzi_api(query="enum", language="cpp", member_type="enum", n_results=20)
|
get_method_signature¶
按名称返回 Kanzi API 成员的确切签名。当您知道具体的 API 并需要其确切的参数、返回类型和弃用状态时,请使用此工具。该工具还可以通过前缀匹配查找重载。
参数 |
|
||||||||
示例 |
# Get the exact signature of a fully-qualified C++ method.
get_method_signature(name="kanzi::Node::setProperty")
# Find all overloads of addChild in C++.
get_method_signature(name="kanzi::Node::addChild", language="cpp")
# Look up a Java method by short name.
get_method_signature(name="setName", language="java")
|
get_include¶
返回 Kanzi 类型的正确包含指令:C++ 为 #include,Java 为 import,C# 为 using,Rust 为 use。
参数 |
|
||||||||
示例 |
# Get the C++ include directive for Button2D.
get_include(name="Button2D", language="cpp")
# Get the Java import statement for Node.
get_include(name="Node", language="java")
|
get_class_reference¶
返回 Kanzi 类的完整参考,包括所有公开方法、属性和枚举,以及从父类和接口继承的成员。
参数 |
|
||||||||
示例 |
# Get all members of the Node class in C++.
get_class_reference(name="kanzi::Node", language="cpp")
# Get the Java Button2D class reference.
get_class_reference(name="Button2D", language="java")
# Get the Lua API for Node.
get_class_reference(name="Node", language="lua")
|
list_derived_types¶
列出派生自某个基类型的所有 Kanzi 类型。使用此工具可以枚举一系列类型,例如派生自 kanzi::Node 的所有节点类型,或派生自 Node2D 的所有类型。该工具针对一个 Kanzi 版本返回按字母顺序排序、分页且带有总数的完整列表。
参数 |
|
||||||||||||||||
示例 |
# List every node type in the C++ runtime API.
list_derived_types(base="Node", api="kanzi-runtime-api")
# List the direct subtypes of Node2D only.
list_derived_types(base="Node2D", include_indirect=false)
|
get_type_hierarchy¶
显示类型在类层次结构中的位置:其直接基类型和直接子类型。
参数 |
|
||||||||
示例 |
# Show the base types and direct subtypes of Node2D.
get_type_hierarchy(name="Node2D")
|
list_types¶
列出 API 集或命名空间中的 Kanzi 类型。使用此工具可以按类别枚举,例如列出 API 集中的所有类。要列出派生自特定基类型的类型,请改用 list_derived_types。
参数 |
|
||||||||||||||
示例 |
# List all classes in the C++ runtime API.
list_types(api="kanzi-runtime-api", language="cpp")
|
get_deprecation_warnings¶
检查 Kanzi API 成员是否已弃用,并返回替代项。在使用任何您怀疑可能已过时的 API 之前,请使用此工具。
参数 |
|
||||||||
示例 |
# Check whether the Page class is deprecated.
get_deprecation_warnings(name="kanzi::Page", language="cpp")
# Check deprecation status of a specific method.
get_deprecation_warnings(name="kanzi::Node::setFocusable")
|
compare_versions¶
比较两个版本之间的 Kanzi API,找出发生的变化。使用此工具获取迁移指导。该工具显示两个版本之间新增、移除、更改或弃用的 API。
参数 |
|
||||||||||||||||||
示例 |
# Show all C++ API changes between two versions.
compare_versions(from_version="3.9.8", to_version="4.0.0", language="cpp")
# Show only removed APIs in the Node class between two versions.
compare_versions(from_version="3.9.13", to_version="4.0.0", class_name="Node", change_type="removed")
# Show newly deprecated Java APIs between two versions.
compare_versions(from_version="3.9.9", to_version="3.9.12", language="java", change_type="deprecated")
|
get_api_history¶
显示特定 Kanzi API 成员在所有可用版本中的演变过程。该工具跨越多个版本,不接受 version 参数。使用该工具可以追踪 API 何时引入、何时更改签名,以及何时被弃用或移除。
参数 |
|
||||||
示例 |
# Track how a C++ method evolved across all versions.
get_api_history(fqn="kanzi::Node::trySetFocus", language="cpp")
# Track the history of ResourceManager::acquireResource.
get_api_history(fqn="kanzi::ResourceManager::acquireResource")
|