Skip to main content
Glama
Inochi Creator MCP

Inochi Creator MCP

by ozekimasaki

Inochi Creator MCP

起動中の Inochi Creator を、Cursor などから MCP 経由でライブ操作します。

Inochi Creator には公式のプラグイン/IPC がないため、v0_8 をソース改変して再ビルドする必要があります。itch.io / Steam の公式バイナリでは動きません。

構成

Cursor  --stdio MCP-->  このリポジトリの Node サーバー
                              |
                              | HTTP POST http://127.0.0.1:17320/rpc
                              v
                    パッチ済み Inochi Creator(UI スレッドで inc* API を実行)

待ち受けは 127.0.0.1 のみです。任意で INOCHI_MCP_TOKEN を Creator と MCP の両方に設定すると、Bearer / X-Inochi-Token 照合が入ります。

Related MCP server: TouchDesigner MCP

必要環境

  • Node.js 18 以降

  • Inochi Creator v0_8 のソースと、公式 README どおりのビルド環境

    • Windows: Visual Studio 2022(C++)、CMake、LDC または DMD

1. ブリッジを Creator に入れる

git clone --branch v0_8 --recursive https://github.com/Inochi2D/inochi-creator.git
# 依存関係は公式 README に従って準備する

.\scripts\apply-bridge.ps1 -CreatorRoot "C:\path\to\inochi-creator"

スクリプトは次を行います。

  • creator-bridge/mcp/*.d を source/creator/mcp/ へコピー

  • source/app.d に incMcpInit() / incMcpPoll() を挿入(再実行しても二重には入りません)

その後、Inochi Creator 側でいつもどおり dub ビルドして起動します。

curl http://127.0.0.1:17320/health

{"ok":true,...} が返ればブリッジは生きています。

ポートを変える場合は、Creator 起動前に INOCHI_MCP_PORT(デフォルト 17320)を設定し、MCP 側にも同じ値を渡してください。

2. MCP サーバーをビルドする

cd C:\Users\masam\Documents\inochi-creator-mcp
npm install
npm run build

開発中は npm run dev(tsx src/index.ts)でも起動できます。

3. Cursor に接続する

Cursor の MCP 設定例:

{
  "mcpServers": {
    "inochi-creator": {
      "command": "node",
      "args": ["C:/Users/masam/Documents/inochi-creator-mcp/dist/index.js"],
      "env": {
        "INOCHI_MCP_PORT": "17320"
      }
    }
  }
}

ログは stdout を汚さないよう stderr に出します。Creator が起動していないと、各ツールは「パッチ済み Inochi Creator を起動してください」と返します。

ツール

接続できないときは、パッチ済み Creator が 127.0.0.1:17320 で待っているか確認してください。

状態・プロジェクト

  • creator_ping / creator_get_status

  • creator_set_edit_mode(model / vertex / anim / test)

  • creator_new_project / creator_open_project / creator_save_project

  • creator_export_inp(エクスポート UI は開かず、デフォルト設定で .inp を書く)

ノード・パラメータ

  • creator_list_nodes / creator_get_node / creator_select_node / creator_focus_camera

  • creator_rename_node / creator_set_node_enabled / creator_set_node_transform

  • creator_create_node(Node / Composite / MeshGroup / SimplePhysics / Camera)

  • creator_duplicate_node / creator_delete_node / creator_reparent_node

  • creator_list_parameters / creator_set_parameter / creator_arm_parameter / creator_disarm_parameter

  • creator_add_parameter / creator_remove_parameter

  • creator_undo / creator_redo

Part はテクスチャが必要なので、creator_import_images で PNG/TGA/JPEG から作ります。

取り込み

creator_import_psd / creator_import_kra / creator_import_inp / creator_import_folder は内部で新規プロジェクトを作るため、今開いているプロジェクトを置き換えます。

creator_import_images だけは現在のプロジェクトを維持し、選択中(または指定した親)の下に Part を足します。

アニメ・撮影

  • creator_list_animations / creator_set_animation

  • creator_play_animation / creator_pause_animation / creator_stop_animation / creator_seek_animation

  • creator_add_keyframe / creator_remove_keyframe

  • creator_capture_viewport — ビューポート PNG。既定では長辺 1024 に縮小。full: true で原寸。MCP の画像として返します。

対象外: メッシュ頂点編集、パラメータ binding の詳細、トラッキング、動画書き出し。

手動でブリッジを入れる場合

apply-bridge.ps1 を使わないときは、次を source/app.d に足します。

  1. import creator.mcp;

  2. 初期化のあと(incInitAtlassing(); の近く)に incMcpInit();

  3. incUpdate() と incUpdateNoEv() の inUpdate(); の直後に incMcpPoll();

コマンド実行は必ず UI スレッド(incMcpPoll)側です。ソケット受信は別スレッドです。

プロトコル

POST /rpc HTTP/1.1
Host: 127.0.0.1:17320
Content-Type: application/json

{"method":"list_nodes","params":{"detail":false}}
{"ok":true,"result":{...}}

失敗時は {"ok":false,"error":"..."} です。

Available Tools

40 tools
creator_add_keyframeB

Add or update a keyframe on the current animation at the current frame.

Inputs: axis, name, uuid, value.

creator_add_parameterB

Add a new parameter to the puppet.

Inputs: name (required), is_vec2.

creator_arm_parameterA

Arm a parameter for deformation editing (disables drivers while armed).

Inputs: name, uuid.

creator_capture_viewportA

Capture the current Inochi Creator viewport as a PNG. Returns an image the model can see. By default the long side is scaled to 1024 pixels.

Inputs: full, path.

creator_create_nodeA

Create a node under a parent. Types match the Nodes panel Add menu: Node, Composite, MeshGroup, SimplePhysics, Camera. Parts must be created via creator_import_images.

Inputs: type (required), name, parent_uuid.

creator_delete_nodeA

Delete a node (and its children) with undo history.

Inputs: uuid (required).

creator_disarm_parameterA

Disarm the currently armed parameter and re-enable drivers.

Inputs: no named parameters.

creator_duplicate_nodeA

Duplicate a node and its children (cameras cannot be duplicated).

Inputs: uuid (required).

creator_export_inpA

Export the current puppet as a packed .inp file using default atlas settings. Does not open the export UI.

Inputs: path (required).

creator_focus_cameraB

Focus the viewport camera on a node.

Inputs: uuid (required).

creator_get_nodeA

Get one node by UUID, including transform and type-specific fields.

Inputs: uuid (required).

creator_get_statusA

Get the current Inochi Creator project path, edit mode, selection, armed parameter, and undo state.

Inputs: no named parameters.

creator_import_folderA

Import PNG/TGA/JPEG images from a folder as a new project. THIS REPLACES THE CURRENT PROJECT.

Inputs: path (required).

creator_import_imagesA

Import PNG/TGA/JPEG files as Parts under the selected (or specified) node. Does not replace the project.

Inputs: paths (required), parent_uuid.

creator_import_inpA

Import an Inochi2D .inp puppet as a new project. THIS REPLACES THE CURRENT PROJECT.

Inputs: path (required).

creator_import_kraA

Import a Krita .kra file as a new project. THIS REPLACES THE CURRENT PROJECT.

Inputs: path (required), keep_structure.

creator_import_psdA

Import a Photoshop .psd file as a new project. THIS REPLACES THE CURRENT PROJECT.

Inputs: path (required), keep_structure.

creator_list_animationsA

List animation clip names and the current playback state.

Inputs: no named parameters.

creator_list_nodesA

List the puppet node tree (uuid, name, type, enabled, children).

Inputs: detail.

creator_list_parametersA

List puppet parameters (including groups) with current values and ranges.

Inputs: no named parameters.

creator_new_projectA

Create a new empty Inochi Creator project. Discards the unsaved current project.

Inputs: no named parameters.

creator_open_projectC

Open an .inx (or compatible INP) project in the running Inochi Creator.

Inputs: path (required).

creator_pause_animationB

Pause the current animation.

Inputs: no named parameters.

creator_pingA

Check that a patched Inochi Creator instance is reachable on localhost.

Inputs: no named parameters.

creator_play_animationA

Play an animation. If name is omitted, plays the current clip.

Inputs: loop, name.

creator_redoA

Redo the last undone Inochi Creator action.

Inputs: no named parameters.

creator_remove_keyframeB

Remove a keyframe from the current animation at the current frame.

Inputs: axis, name, uuid.

creator_remove_parameterB

Remove a parameter from the puppet.

Inputs: name, uuid.

creator_rename_nodeB

Rename a node.

Inputs: name (required), uuid (required).

creator_reparent_nodeA

Move a node to a new parent. index is the insertion offset among siblings (0 = first).

Inputs: uuid (required), parent_uuid (required), index.

creator_save_projectA

Save the current project as .inx. If path is omitted, saves to the current project path.

Inputs: path.

creator_seek_animationB

Seek the current animation to a frame.

Inputs: frame (required).

creator_select_nodeA

Select a node by UUID. Omit uuid to clear the selection.

Inputs: uuid.

creator_set_animationA

Select the animation clip to edit or play.

Inputs: name (required).

creator_set_edit_modeA

Switch Inochi Creator edit mode. Use model, vertex, anim, or test.

Inputs: mode (required).

creator_set_node_enabledB

Enable or disable a node (visibility).

Inputs: uuid (required), enabled (required).

creator_set_node_transformA

Set a node's local translation, rotation (radians), and/or scale. Unspecified axes are left unchanged.

Inputs: uuid (required), scale, zsort, rotation, +1 more.

creator_set_parameterA

Set a parameter value. For 1D params only x is used. For 2D params provide x and y.

Inputs: x (required), y, name, uuid.

creator_stop_animationC

Stop all animations.

Inputs: immediate.

creator_undoA

Undo the last Inochi Creator action.

Inputs: no named parameters.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

    TDQS

    A3.6/5.0

    Scored across 40 tools

    Disambiguation5/5

    Tools are grouped by clear domains (parameters, animations, nodes, project, import), and each tool has a distinct action-target pair. Even similar tools like import_folder vs import_images are differentiated by whether they replace the project or add under a node.

    Naming Consistency5/5

    All tools use the 'creator_' prefix with a consistent verb_noun pattern (set_parameter, list_nodes, import_psd). Actions and targets are uniformly ordered, and variations like set_node_enabled vs set_node_transform follow the same convention.

    Tool Count2/5

    With 40 tools, the surface is large and exceeds the 25-tool threshold for 'too many'. While the tools cover many facets of the application, the count is heavy and may overwhelm agents; some consolidation (e.g., generic import tool) could reduce redundancy.

    Completeness4/5

    The tool set covers the core domains of Inochi Creator: parameter lifecycle, node tree manipulation, animation control, project import/export, and viewport interaction. Minor gaps exist such as no explicit texture/material editing tools, but the primary workflows are well represented.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      B
      maintenance
      Connects MCP clients directly to a live Godot editor, enabling AI assistants to build scenes, edit nodes, and control the editor through over 120 operations.
      47
      30,790 PyPI
      3,434
      MIT
    • A
      license
      A
      quality
      C
      maintenance
      Enables full control and observation of VNyan VTuber avatar software from any MCP client, including reading and writing parameters, triggers, blendshapes, bones, node graphs, and settings.
      30
      MIT
    • A
      license
      A
      quality
      C
      maintenance
      Enables MCP clients to drive VRoid Studio's GUI by launching the app, capturing screenshots, locating UI elements via OCR/color, and simulating clicks/typing to adjust parameters and export .vrm files.
      18
      9
      MIT