touchdesigner-mcp-server 0.2.3 → 0.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.ja.md +4 -2
- package/README.md +4 -2
- package/dist/gen/endpoints/TouchDesignerAPI.js +1 -1
- package/dist/gen/mcp/touchDesignerAPI.zod.js +1 -1
- package/dist/server/touchDesignerServer.js +1 -1
- package/package.json +1 -1
- package/td/modules/mcp/controllers/api_controller.py +26 -17
- package/td/modules/td_server/openapi_server/openapi/openapi.yaml +1 -1
package/README.ja.md
CHANGED
|
@@ -2,9 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
TouchDesignerのためのMCP(Model Context Protocol) サーバー実装です。AIエージェントがTouchDesignerプロジェクトを制御・操作できるようになることを目指しています。
|
|
4
4
|
|
|
5
|
+
[English](https://github.com/8beeeaaat/touchdesigner-mcp/blob/main/README.md) / [日本語](https://github.com/8beeeaaat/touchdesigner-mcp/blob/main/README.ja.md)
|
|
6
|
+
|
|
5
7
|
## 概要
|
|
6
8
|
|
|
7
|
-

|
|
8
10
|
|
|
9
11
|
TouchDesigner MCPは、AIモデルとTouchDesigner WebServer DAT 間のブリッジとして機能し、AIエージェントが以下のことが可能になります
|
|
10
12
|
- ノードの作成、変更、削除
|
|
@@ -28,7 +30,7 @@ TouchDesignerを起動し、`td/mcp_webserver_base.tox` コンポーネントを
|
|
|
28
30
|
|
|
29
31
|
tox のimport により `td/import_modules.py` スクリプトが動作し、APIサーバのコントローラなどのモジュールがロードされます。
|
|
30
32
|
|
|
31
|
-

|
|
32
34
|
|
|
33
35
|
#### APIサーバの動作確認
|
|
34
36
|
`npm run test` を実行することでMCPサーバーコードのユニットテストと TouchDesigner への接続テストが実行されます。
|
package/README.md
CHANGED
|
@@ -2,9 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
This is an implementation of an MCP (Model Context Protocol) server for TouchDesigner. The goal is to enable AI agents to control and operate TouchDesigner projects.
|
|
4
4
|
|
|
5
|
+
[English](https://github.com/8beeeaaat/touchdesigner-mcp/blob/main/README.md) / [日本語](https://github.com/8beeeaaat/touchdesigner-mcp/blob/main/README.ja.md)
|
|
6
|
+
|
|
5
7
|
## Overview
|
|
6
8
|
|
|
7
|
-

|
|
8
10
|
|
|
9
11
|
TouchDesigner MCP acts as a bridge between AI models and the TouchDesigner WebServer DAT, enabling AI agents to:
|
|
10
12
|
- Create, modify, and delete nodes
|
|
@@ -28,7 +30,7 @@ Example: Place it as `/project1/mcp_webserver_base`
|
|
|
28
30
|
|
|
29
31
|
Importing the tox will trigger the `td/import_modules.py` script, which loads modules such as API server controllers.
|
|
30
32
|
|
|
31
|
-

|
|
32
34
|
|
|
33
35
|
#### Verify API server operation
|
|
34
36
|
Run `npm run test` to execute unit tests for the MCP server code and connection tests to TouchDesigner.
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Do not edit manually.
|
|
4
4
|
* TouchDesigner API
|
|
5
5
|
* OpenAPI schema for generating TouchDesigner API client code
|
|
6
|
-
* OpenAPI spec version: 0.2.
|
|
6
|
+
* OpenAPI spec version: 0.2.5
|
|
7
7
|
*/
|
|
8
8
|
import { customInstance } from '../../api/customInstance.js';
|
|
9
9
|
// eslint-disable-next-line @typescript-eslint/no-redeclare
|
package/package.json
CHANGED
|
@@ -14,25 +14,34 @@ from mcp.controllers.openapi_router import OpenAPIRouter
|
|
|
14
14
|
from utils.error_handling import ErrorCategory
|
|
15
15
|
from utils.logging import log_message
|
|
16
16
|
from utils.result import error_result
|
|
17
|
+
from utils.serialization import safe_serialize
|
|
17
18
|
from utils.types import LogLevel, Result
|
|
18
19
|
|
|
19
20
|
try:
|
|
20
|
-
from td_server.openapi_server.models.create_node200_response import
|
|
21
|
-
CreateNode200Response
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
from td_server.openapi_server.models.
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
from td_server.openapi_server.models.
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
21
|
+
from td_server.openapi_server.models.create_node200_response import (
|
|
22
|
+
CreateNode200Response,
|
|
23
|
+
)
|
|
24
|
+
from td_server.openapi_server.models.delete_node200_response import (
|
|
25
|
+
DeleteNode200Response,
|
|
26
|
+
)
|
|
27
|
+
from td_server.openapi_server.models.exec_node_method200_response import (
|
|
28
|
+
ExecNodeMethod200Response,
|
|
29
|
+
)
|
|
30
|
+
from td_server.openapi_server.models.exec_python_script200_response import (
|
|
31
|
+
ExecPythonScript200Response,
|
|
32
|
+
)
|
|
33
|
+
from td_server.openapi_server.models.get_node_detail200_response import (
|
|
34
|
+
GetNodeDetail200Response,
|
|
35
|
+
)
|
|
36
|
+
from td_server.openapi_server.models.get_nodes200_response import (
|
|
37
|
+
GetNodes200Response,
|
|
38
|
+
)
|
|
39
|
+
from td_server.openapi_server.models.get_td_info200_response import (
|
|
40
|
+
GetTdInfo200Response,
|
|
41
|
+
)
|
|
42
|
+
from td_server.openapi_server.models.update_node200_response import (
|
|
43
|
+
UpdateNode200Response,
|
|
44
|
+
)
|
|
36
45
|
|
|
37
46
|
log_message("OpenAPI response models imported successfully", LogLevel.DEBUG)
|
|
38
47
|
except ImportError as e:
|
|
@@ -300,7 +309,7 @@ class APIControllerOpenAPI(IController):
|
|
|
300
309
|
if result["success"]:
|
|
301
310
|
response["statusCode"] = 200
|
|
302
311
|
response["statusReason"] = "OK"
|
|
303
|
-
response["data"] = json.dumps(result)
|
|
312
|
+
response["data"] = json.dumps(safe_serialize(result))
|
|
304
313
|
else:
|
|
305
314
|
error_category = result.get("errorCategory", ErrorCategory.VALIDATION)
|
|
306
315
|
response["statusCode"] = 200
|