Kanzi API MCP サーバー

Kanzi API MCP サーバーは、AI アシスタントを Kanzi API リファレンスドキュメントに接続します。これにより、AI アシスタントは API シグネチャの検索、非推奨ステータスの確認、インクルードディレクティブの解決、ベースタイプから派生するタイプの列挙、および Kanzi バージョン間での API の比較を行えます。このサーバーは、C++、Java、C#、Lua、Rust にわたる Kanzi API を対象としています。

Kanzi API MCP サーバーは、AI アシスタントが API シグネチャをハルシネーションで生成するのを防ぎます。アシスタントは推測する代わりに、検証済みの 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 フレームワーク API

kanzi-appfw-android-api

Java

Kanzi Android アプリケーションフレームワーク 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 サーバーをセットアップするには、そのツールのドキュメントを参照してください。ツールの設定では、mcp-remote とともにサーバー URL を使用します。

{
   "mcpServers": {
      "kanzi-api": {
         "command": "npx",
         "args": [
            "-y",
            "mcp-remote",
            "https://api.mcp.kanzi.com"
         ]
      }
   }
}

クエリの例

Kanzi API MCP サーバーをセットアップすると、AI アシスタントに次のような質問ができます。アシスタントはサーバーのツールを使用して、正確な API 情報を取得します。

基本的な検索

API メンバーの検索、シグネチャの確認、非推奨ステータスの確認、インクルードディレクティブの取得ができます。

  • 「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 またはそれに相当するものを表示してください。」

  • 「ランタイムでプレハブを読み込む必要があります。C++、Java、Lua でこれを行うための API を、正しいインクルードとインポートとともに表示してください。」

  • 「アニメーションタイムラインの作成は C++ と Java でどのように異なりますか?TimelinePlayer または AnimationPlayer のシグネチャを表示してください。」

実際のコーディングタスク

検証済みの API 呼び出しを使用してコードを書くのを手伝うよう、AI アシスタントに依頼できます。

  • 「プロジェクト内のすべての Node2D アイテムを反復処理し、その名前を一覧表示する Kanzi Studio プラグインを C# で書いてください。検証済みの API 呼び出しのみを使用してください。」

  • 「Kanzi 3.9.15 用のカスタム RenderPass を C++ で作成する方法を教えてください。どのクラスをサブクラス化し、どのヘッダーをインクルードし、どの仮想メソッドをオーバーライドする必要がありますか?」

  • 「Kanzi を使用して Java の Android アプリを書いています。タッチ入力はどのように処理しますか?関連するクラスとそのメソッドを表示してください。」

AI アシスタントの設定

最良の結果を得るには、Kanzi API MCP サーバーのツールを効果的に使用する方法を指示する命令を AI アシスタントに追加します。これらの命令は、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 バージョンを使用します。

API リファレンスが存在しない Kanzi バージョンを渡した場合、サーバーは可能な範囲でそのバージョンを解決します。3.9.12.111 などのビルド番号は 3.9.12 に解決され、3.9 などのバージョンファミリーはそのファミリーで利用可能な最新のリリースに解決され、API リファレンスが存在しないパッチリリースは同じファミリー内で最も近いリリースに解決されます。サーバーがバージョンを解決できない場合は、利用可能な最新のバージョンを使用します。いずれの場合も、レスポンスにはサーバーが使用したバージョンが示されます。シグネチャは Kanzi のバージョンによって異なる場合があるため、そのバージョンを確認してください。

list_apis

利用可能な Kanzi バージョン、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 を使用します。

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 を使用します。

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 を使用します。

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 を使用します。

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

ベース (Base) タイプから派生するすべての Kanzi タイプを一覧表示します。このツールは、kanzi::Node から派生するすべてのノード (Node) タイプや、Node2D から派生するすべてのタイプなど、タイプのファミリーを列挙する場合に使用します。このツールは、1 つの Kanzi バージョンについて、アルファベット順に並べ替えられ、ページ分割された完全なリストを合計数とともに返します。

パラメーター

base (必須)

ベース (Base) タイプのネーム (Name)。短い形式 (Node) または完全修飾形式 (kanzi::Node) のいずれかです。

language

ランゲージ (Language) フィルタ (Filter): cpp、java、csharp、lua、または rust。デフォルト (Default): cpp。

api

API セットフィルタ。利用可能なセットを確認するには、list_apis を使用します。

include_indirect

ダイレクト (Direct) サブタイプだけでなく、間接的な子孫もインクルード (Include) するかどうか。デフォルト (Default): true。

member_type

結果のタイプ (Type) フィルタ (Filter): class、struct、interface、または all。デフォルト (Default): class。

limit

1 ページあたりの結果の最大数。デフォルト (Default): 200。

offset

大規模なファミリー用のページネーションオフセット。デフォルト (Default): 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

クラス階層内でのタイプの位置 (ダイレクト (Direct) ベース (Base) タイプとダイレクト (Direct) サブタイプ) を表示します。

パラメーター

name (必須)

タイプ (Type) のネーム (Name)。短い形式 (Node2D) または完全修飾形式 (kanzi::Node2D) のいずれかです。

language

ランゲージ (Language) フィルタ (Filter): cpp、java、csharp、lua、または rust。デフォルト (Default): cpp。

api

API セットフィルタ。利用可能なセットを確認するには、list_apis を使用します。

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 セットまたはネームスペース (Namespace) 内の Kanzi タイプを一覧表示します。このツールは、API セット内のすべてのクラスを一覧表示するなど、カテゴリ (Category) 単位の列挙に使用します。特定のベース (Base) タイプから派生するタイプを一覧表示するには、代わりに list_derived_types を使用します。

パラメーター

api

API セットフィルタ。利用可能なセットを確認するには、list_apis を使用します。

namespace

ネームスペース (Namespace) フィルタ (Filter)。たとえば、kanzi または kanzi::ui。

language

ランゲージ (Language) フィルタ (Filter): cpp、java、csharp、lua、または rust。デフォルト (Default): cpp。

member_type

結果のタイプ (Type) フィルタ (Filter): class、struct、interface、または all。デフォルト (Default): class。

limit

1 ページあたりの結果の最大数。デフォルト (Default): 200。

offset

ページネーションオフセット。デフォルト (Default): 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 を使用します。

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

2 つのバージョン間で Kanzi API を比較し、変更点を見つけます。このツールは移行のガイダンスに使用します。2 つのバージョン間で追加、削除、変更、または非推奨になった API を表示します。

パラメーター

from_version (必須)

ソース (Source) バージョン。たとえば、3.9.12。

to_version (必須)

ターゲット (Target) バージョン。たとえば、4.0.0。

language

言語フィルタ: cpp、java、csharp、lua、または rust。

api

API セットフィルタ。利用可能なセットを確認するには、list_apis を使用します。

member_type

メンバータイプ (Type) フィルタ (Filter): class、function、variable、enum、struct、interface、または typedef。

class_name

比較の範囲を 1 つのクラスに限定します。たとえば、Node。

change_type

変更のタイプ (Type) でフィルタリングします: added、removed、changed、または deprecated。

limit

カテゴリ (Category) あたりの結果の最大数。デフォルト (Default): 50。マキシマム (Maximum): 200。

offset

結果のページネーションオフセット。デフォルト (Default): 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 アーギュメント (Argument) を取りません。API が導入された時期、シグネチャが変更された時期、または非推奨になった時期や削除された時期を追跡するために使用します。

パラメーター

fqn (必須)

完全修飾名。たとえば、kanzi::Node::setProperty。

language

言語フィルタ: cpp、java、csharp、lua、または rust。

api

API セットフィルタ。利用可能なセットを確認するには、list_apis を使用します。

例

# 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 ツールの使用