@dpantani/tdmcp 0.4.0 → 0.5.0
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.md +12 -7
- package/dist/cli/agent.d.ts +13 -0
- package/dist/cli/agent.js +12324 -1726
- package/dist/cli/agent.js.map +1 -1
- package/dist/index.js +27930 -14302
- package/dist/index.js.map +1 -1
- package/dist/recipes/animus_rings_visualizer.json +37 -0
- package/dist/recipes/body_tracking_reactive.json +127 -0
- package/dist/recipes/mediapipe_body_dots.json +86 -0
- package/dist/recipes/pose_skeleton_mediapipe.json +67 -0
- package/package.json +16 -5
- package/recipes/animus_rings_visualizer.json +37 -0
- package/recipes/body_tracking_reactive.json +127 -0
- package/recipes/mediapipe_body_dots.json +86 -0
- package/recipes/pose_skeleton_mediapipe.json +67 -0
- package/scripts/fetch-shader-park-td.mjs +79 -0
- package/scripts/tdmcp-lops.mjs +52 -0
- package/td/modules/utils/version.py +1 -1
- package/td/tests/test_api_controller.py +0 -307
- package/td/tests/test_services.py +0 -209
package/README.md
CHANGED
|
@@ -2,7 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://github.com/Pantani/tdmcp/actions/workflows/ci.yml)
|
|
4
4
|
[](https://pantani.github.io/tdmcp/)
|
|
5
|
+
[](https://www.npmjs.com/package/@dpantani/tdmcp)
|
|
6
|
+
[](https://nodejs.org)
|
|
7
|
+
[](https://modelcontextprotocol.io)
|
|
5
8
|
[](LICENSE)
|
|
9
|
+
[](https://glama.ai/mcp/servers/Pantani/tdmcp)
|
|
6
10
|
|
|
7
11
|
**tdmcp is a [Model Context Protocol](https://modelcontextprotocol.io) (MCP) server
|
|
8
12
|
for [TouchDesigner](https://derivative.ca)** — build TouchDesigner from plain
|
|
@@ -34,9 +38,10 @@ Full guides and reference live on the **docs site → <https://pantani.github.io
|
|
|
34
38
|
| [What is tdmcp?](https://pantani.github.io/tdmcp/guide/what-is-tdmcp) | [Architecture](https://pantani.github.io/tdmcp/reference/architecture) |
|
|
35
39
|
| [Install (no terminal)](https://pantani.github.io/tdmcp/guide/install) | [Tools reference](https://pantani.github.io/tdmcp/reference/tools) |
|
|
36
40
|
| [Your first visual](https://pantani.github.io/tdmcp/guide/first-visual) | [Environment variables](https://pantani.github.io/tdmcp/reference/environment) |
|
|
37
|
-
| [
|
|
38
|
-
| [
|
|
39
|
-
| [
|
|
41
|
+
| [Shader Park](https://pantani.github.io/tdmcp/guide/shader-park) | [CLI & local copilot](https://pantani.github.io/tdmcp/reference/cli) |
|
|
42
|
+
| [Prompt cookbook](https://pantani.github.io/tdmcp/guide/prompt-cookbook) | [Bridge & REST API](https://pantani.github.io/tdmcp/reference/bridge-api) |
|
|
43
|
+
| [Recipe gallery](https://pantani.github.io/tdmcp/guide/recipes) | [Roadmap](docs/ROADMAP.md) |
|
|
44
|
+
| [Troubleshooting](https://pantani.github.io/tdmcp/guide/troubleshooting) | [Deployment](docs/DEPLOYMENT.md) |
|
|
40
45
|
|
|
41
46
|
🇧🇷 **Documentação em português:** <https://pantani.github.io/tdmcp/pt/>
|
|
42
47
|
|
|
@@ -66,7 +71,7 @@ Three pieces talk to each other on your computer:
|
|
|
66
71
|
|
|
67
72
|
Node.js is only needed for the build-from-source path (**[Node 20+](https://nodejs.org)**).
|
|
68
73
|
The one-click Claude Desktop extension needs nothing extra — the server is bundled
|
|
69
|
-
inside the `.dxt`.
|
|
74
|
+
inside the `.mcpb` (formerly `.dxt`; legacy `.dxt` files still install).
|
|
70
75
|
|
|
71
76
|
## Get started
|
|
72
77
|
|
|
@@ -85,8 +90,8 @@ Do every step yourself; only stop when you need me to paste one line into TouchD
|
|
|
85
90
|
It clones, builds and wires everything up; the only manual step is pasting one
|
|
86
91
|
line into TouchDesigner (Step 2 below).
|
|
87
92
|
|
|
88
|
-
**🟢 Claude Desktop — one-click `.
|
|
89
|
-
**[tdmcp.
|
|
93
|
+
**🟢 Claude Desktop — one-click `.mcpb` (no terminal, no Node).** Download
|
|
94
|
+
**[tdmcp.mcpb](https://github.com/Pantani/tdmcp/releases/latest/download/tdmcp.mcpb)**,
|
|
90
95
|
then in Claude Desktop open **Settings → Extensions** and install it (drag it in or
|
|
91
96
|
**Install from file**). Leave host/port at `127.0.0.1` / `9980`. Full walkthrough:
|
|
92
97
|
[the install guide](https://pantani.github.io/tdmcp/guide/install).
|
|
@@ -131,7 +136,7 @@ the [prompt cookbook](https://pantani.github.io/tdmcp/guide/prompt-cookbook).
|
|
|
131
136
|
|
|
132
137
|
## What you can do
|
|
133
138
|
|
|
134
|
-
**
|
|
139
|
+
**175 tools** across three layers, plus library/packaging and Obsidian vault integrations — from
|
|
135
140
|
one-line artist generators (`create_feedback_network`, `create_audio_reactive`,
|
|
136
141
|
`create_particle_system`, `create_generative_art`, …) to building blocks
|
|
137
142
|
(`create_control_panel`, `animate_parameter`, `create_external_io` for
|
package/dist/cli/agent.d.ts
CHANGED
|
@@ -529,6 +529,11 @@ interface ToolContext {
|
|
|
529
529
|
* allowed (the default); only an explicit `false` locks them out.
|
|
530
530
|
*/
|
|
531
531
|
allowRawPython?: boolean;
|
|
532
|
+
/**
|
|
533
|
+
* Tool exposure profile. `"safe"` hides destructive/raw-code tools.
|
|
534
|
+
* Undefined means `"full"` (the default).
|
|
535
|
+
*/
|
|
536
|
+
toolProfile?: "full" | "safe";
|
|
532
537
|
}
|
|
533
538
|
|
|
534
539
|
declare const ConfigSchema: z.ZodObject<{
|
|
@@ -555,6 +560,10 @@ declare const ConfigSchema: z.ZodObject<{
|
|
|
555
560
|
on: "on";
|
|
556
561
|
off: "off";
|
|
557
562
|
}>>;
|
|
563
|
+
toolProfile: z.ZodDefault<z.ZodEnum<{
|
|
564
|
+
full: "full";
|
|
565
|
+
safe: "safe";
|
|
566
|
+
}>>;
|
|
558
567
|
bridgeToken: z.ZodOptional<z.ZodString>;
|
|
559
568
|
llmBaseUrl: z.ZodDefault<z.ZodString>;
|
|
560
569
|
llmModel: z.ZodDefault<z.ZodString>;
|
|
@@ -577,6 +586,10 @@ declare function runCli(argv: string[], opts?: RunCliOptions): Promise<CliResult
|
|
|
577
586
|
interface RunWatchOptions {
|
|
578
587
|
config?: TdmcpConfig;
|
|
579
588
|
includeHighFrequency?: boolean;
|
|
589
|
+
/** Only emit events whose `type` is in this list (e.g. ["beat","onset"]). */
|
|
590
|
+
filter?: string[];
|
|
591
|
+
/** Drop events whose `type` is in this list (e.g. ["timeline.frame"]). */
|
|
592
|
+
exclude?: string[];
|
|
580
593
|
/** Where each event line goes; defaults to stdout. Overridable for tests. */
|
|
581
594
|
write?: (line: string) => void;
|
|
582
595
|
/** Inject a stream factory for tests; defaults to a real `TdEventStream`. */
|