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)

kanzi-runtime-api

C++

Kanzi Engine 核心 API

kanzi-java-api

Java

Kanzi Engine Java 绑定

kanzi-droidfw-api

Java

Kanzi Android Framework API

kanzi-appfw-android-api

Java

Kanzi Android App Framework API

kanzi-studio-plugin-api

C#

Kanzi Studio 插件 API

kanzi-localization-api

C#

Kanzi 本地化插件 API

kanzi-lua-api

Lua

Kanzi Engine Lua API

kanzi-rust-api

Rust

Kanzi Engine Rust API

设置 Kanzi API MCP 服务器

要让 AI 编码代理自动配置,从而一次性设置两个 Kanzi MCP 服务器,请参见 快速设置。以下步骤介绍如何手动配置此服务器。

在 Claude Desktop 中设置

要在 Claude Desktop 中设置 Kanzi API MCP 服务器,请将该服务器添加到 Claude Desktop 配置文件中:

  1. 在 Claude Desktop 配置文件中添加以下内容:

    {
       "mcpServers": {
          "kanzi-api": {
             "command": "npx",
             "args": [
                "-y",
                "mcp-remote",
                "https://api.mcp.kanzi.com"
             ]
          }
       }
    }
    
  2. 重新启动 Claude Desktop。

在 VS Code 中设置

要在 VS Code 中设置 Kanzi API MCP 服务器:

  1. 在 VS Code 中,打开 Command Palette (Ctrl Shift P) 并选择 MCP: Open User Configuration。

  2. 在 mcp.json 文件中添加服务器配置:

    {
       "servers": {
          "kanzi-api": {
             "type": "http",
             "url": "https://api.mcp.kanzi.com"
          }
       },
       "inputs": []
    }
    
  3. 打开 Command Palette 并选择 Developer: Reload Window。

  4. 使用 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

在 Codex 中设置

要在 Codex 中设置 Kanzi API MCP 服务器,请将其添加到 ~/.codex/config.toml 文件中:

[mcp_servers.kanzi-api]
url = "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 版本。

如果您传入的 Kanzi 版本没有 API 参考,服务器会尽可能对其进行解析。3.9.12.111 等构建号会解析为 3.9.12,3.9 等版本系列会解析为该系列中最新的可用版本,而没有 API 参考的补丁版本会解析为同一系列中最接近的版本。当服务器无法解析该版本时,会使用最新的可用版本。在上述每种情况下,响应中都会说明服务器使用了哪个版本。请检查该版本,因为不同 Kanzi 版本之间的签名可能有所不同。

list_apis

列出可用的 Kanzi 版本、API 集以及每个 API 集中的记录数。显示服务器默认使用的版本以及其他可用版本。

参数

version

要描述其 API 集的 Kanzi 版本。例如,4.1.0 或 3.9.15。默认值:可用的最新稳定版本。无论此参数如何,可用版本列表均相同。

示例

# List all available Kanzi versions and API sets.
list_apis()

set_kanzi_version

确认某个 Kanzi 版本是否可用,并报告其包含的 API 集数量。

由于服务器在调用之间不保留状态,此工具不会更改后续调用所使用的版本。要查询特定版本,请在每次调用工具时传递 version 参数。

参数

version (必需)

Kanzi 版本字符串。例如,3.9.15 或 4.1.0。

示例

# 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 类、方法、属性和类型。

参数

query (必需)

搜索词。例如,Node setProperty、Button2D click 或 Matrix4x4 multiply。

n_results

要返回的最大结果数。默认值:5。最大值:20。

language

语言过滤器:cpp、java、csharp、lua 或 rust。

member_type

成员类型过滤器:class、struct、interface、function、variable、enum 或 typedef。

api

API 集过滤器。使用 list_apis 查看可用的 API 集。

version

要查询的 Kanzi 版本。例如,4.1.0 或 3.9.15。每当处理特定 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 并需要其确切的参数、返回类型和弃用状态时,请使用此工具。该工具还可以通过前缀匹配查找重载。

参数

name (必需)

API 成员名称,可以是短名称(setProperty、Node),也可以是完全限定名称(kanzi::Node::setProperty、com.rightware.kanzi.Node)。C++ 使用 :: 分隔符,Java 和 C# 使用 . 分隔符。

language

语言过滤器:cpp、java、csharp、lua 或 rust。

api

API 集过滤器。使用 list_apis 查看可用的 API 集。

version

要查询的 Kanzi 版本。例如,4.1.0 或 3.9.15。每当处理特定 Kanzi 版本时,都应传入此参数。默认值:可用的最新稳定版本。

示例

# 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。

参数

name (必需)

类或类型名称。例如,Node、Button2D、Matrix4x4 或 PropertyType。

language

语言过滤器:cpp、java、csharp、lua 或 rust。

api

API 集过滤器。使用 list_apis 查看可用的 API 集。

version

要查询的 Kanzi 版本。例如,4.1.0 或 3.9.15。每当处理特定 Kanzi 版本时,都应传入此参数。默认值:可用的最新稳定版本。

示例

# 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 类的完整参考,包括所有公开方法、属性和枚举,以及从父类和接口继承的成员。

参数

name (必需)

类名称,可以带或不带命名空间。例如,Node、Button2D、kanzi::Node 或 Matrix4x4。

language

语言过滤器:cpp、java、csharp、lua 或 rust。

api

API 集过滤器。使用 list_apis 查看可用的 API 集。

version

要查询的 Kanzi 版本。例如,4.1.0 或 3.9.15。每当处理特定 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 版本返回按字母顺序排序、分页且带有总数的完整列表。

参数

base (必需)

基类型名称,可以是短名称(Node),也可以是完全限定名称(kanzi::Node)。

language

语言过滤器:cpp、java、csharp、lua 或 rust。默认值:cpp。

api

API 集过滤器。使用 list_apis 查看可用的 API 集。

include_indirect

是否包括间接后代,而不仅限于直接子类型。默认值:true。

member_type

结果类型过滤器:class、struct、interface 或 all。默认值:class。

limit

每页的最大结果数。默认值:200。

offset

用于大型类型系列的分页偏移量。默认值:0。

version

要查询的 Kanzi 版本。例如,4.1.0 或 3.9.15。每当处理特定 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

显示类型在类层次结构中的位置:其直接基类型和直接子类型。

参数

name (必需)

类型名称,可以是短名称(Node2D),也可以是完全限定名称(kanzi::Node2D)。

language

语言过滤器:cpp、java、csharp、lua 或 rust。默认值:cpp。

api

API 集过滤器。使用 list_apis 查看可用的 API 集。

version

要查询的 Kanzi 版本。例如,4.1.0 或 3.9.15。每当处理特定 Kanzi 版本时,都应传入此参数。默认值:可用的最新稳定版本。

示例

# Show the base types and direct subtypes of Node2D.
get_type_hierarchy(name="Node2D")

list_types

列出 API 集或命名空间中的 Kanzi 类型。使用此工具可以按类别枚举,例如列出 API 集中的所有类。要列出派生自特定基类型的类型,请改用 list_derived_types。

参数

api

API 集过滤器。使用 list_apis 查看可用的 API 集。

namespace

命名空间过滤器。例如,kanzi 或 kanzi::ui。

language

语言过滤器:cpp、java、csharp、lua 或 rust。默认值:cpp。

member_type

结果类型过滤器:class、struct、interface 或 all。默认值:class。

limit

每页的最大结果数。默认值:200。

offset

分页偏移量。默认值:0。

version

要查询的 Kanzi 版本。例如,4.1.0 或 3.9.15。每当处理特定 Kanzi 版本时,都应传入此参数。默认值:可用的最新稳定版本。

示例

# List all classes in the C++ runtime API.
list_types(api="kanzi-runtime-api", language="cpp")

get_deprecation_warnings

检查 Kanzi API 成员是否已弃用,并返回替代项。在使用任何您怀疑可能已过时的 API 之前,请使用此工具。

参数

name (必需)

要检查的类或成员名称。例如,Node、setProperty 或 kanzi::Node::setFocusable。

language

语言过滤器:cpp、java、csharp、lua 或 rust。

api

API 集过滤器。使用 list_apis 查看可用的 API 集。

version

要查询的 Kanzi 版本。例如,4.1.0 或 3.9.15。每当处理特定 Kanzi 版本时,都应传入此参数。默认值:可用的最新稳定版本。

示例

# 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。

参数

from_version (必需)

源版本。例如,3.9.12。

to_version (必需)

目标版本。例如,4.0.0。

language

语言过滤器:cpp、java、csharp、lua 或 rust。

api

API 集过滤器。使用 list_apis 查看可用的 API 集。

member_type

成员类型过滤器:class、function、variable、enum、struct、interface 或 typedef。

class_name

将比较范围限定为单个类。例如 Node。

change_type

按更改类型过滤:added、removed、changed 或 deprecated。

limit

每个类别的最大结果数。默认值:50。最大值:200。

offset

结果的分页偏移量。默认值:0。

示例

# 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 何时引入、何时更改签名,以及何时被弃用或移除。

参数

fqn (必需)

完全限定名称。例如 kanzi::Node::setProperty。

language

语言过滤器:cpp、java、csharp、lua 或 rust。

api

API 集过滤器。使用 list_apis 查看可用的 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")

另请参阅

Kanzi 文档 MCP 服务器

使用 Kanzi AI 工具