@pinepaper.studio/mcp-server 1.6.5 → 1.6.7
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.de.md +20 -1
- package/README.es.md +20 -1
- package/README.fr.md +20 -1
- package/README.hi.md +18 -1
- package/README.ja.md +19 -1
- package/README.ko.md +18 -1
- package/README.md +177 -5
- package/README.pt-BR.md +20 -1
- package/README.zh-CN.md +18 -1
- package/assets/edit-whenever.svg +75 -0
- package/dist/agent/export-manager.d.ts.map +1 -1
- package/dist/agent/export-manager.js +2 -2
- package/dist/agent/export-manager.js.map +1 -1
- package/dist/agent/session-manager.d.ts.map +1 -1
- package/dist/agent/session-manager.js.map +1 -1
- package/dist/assets/repositories/fontawesome.d.ts.map +1 -1
- package/dist/assets/repositories/fontawesome.js.map +1 -1
- package/dist/assets/repositories/openclipart.d.ts.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/ontology/design-graph.d.ts.map +1 -1
- package/dist/ontology/design-graph.js +0 -1
- package/dist/ontology/design-graph.js.map +1 -1
- package/dist/ontology/vocabulary.d.ts.map +1 -1
- package/dist/ontology/vocabulary.js +119 -0
- package/dist/ontology/vocabulary.js.map +1 -1
- package/dist/taxonomy/classifier.js +1 -1
- package/dist/taxonomy/classifier.js.map +1 -1
- package/dist/taxonomy/error-recovery.d.ts.map +1 -1
- package/dist/taxonomy/matcher.d.ts.map +1 -1
- package/dist/taxonomy/matcher.js.map +1 -1
- package/dist/tools/definitions.d.ts +1 -1
- package/dist/tools/definitions.d.ts.map +1 -1
- package/dist/tools/definitions.js +906 -34
- package/dist/tools/definitions.js.map +1 -1
- package/dist/tools/handlers.d.ts.map +1 -1
- package/dist/tools/handlers.js +71 -7
- package/dist/tools/handlers.js.map +1 -1
- package/dist/tools/minimal-descriptions.d.ts.map +1 -1
- package/dist/tools/minimal-descriptions.js +11 -2
- package/dist/tools/minimal-descriptions.js.map +1 -1
- package/dist/tools/toolkits.d.ts.map +1 -1
- package/dist/tools/toolkits.js +14 -0
- package/dist/tools/toolkits.js.map +1 -1
- package/dist/types/code-generator.d.ts +46 -2
- package/dist/types/code-generator.d.ts.map +1 -1
- package/dist/types/code-generator.js +1004 -24
- package/dist/types/code-generator.js.map +1 -1
- package/dist/types/schemas.d.ts +2266 -215
- package/dist/types/schemas.d.ts.map +1 -1
- package/dist/types/schemas.js +553 -50
- package/dist/types/schemas.js.map +1 -1
- package/manifest.json +37 -1
- package/package.json +17 -7
package/README.de.md
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
Der PinePaper MCP-Server lässt KI-Assistenten über das Model Context Protocol Grafiken in [PinePaper Studio](https://pinepaper.studio) erstellen und animieren. Funktioniert mit jeder KI, die MCP-Tool-Aufrufe unterstützt (Claude, GPT, Gemini, lokale Modelle usw.).
|
|
16
16
|
|
|
17
|
-
Der Server bietet **
|
|
17
|
+
Der Server bietet **144 Tools**: Zeichnen, Animation, Diagramme, Karten, Typografie, Physik, Bildbearbeitung, Datenvisualisierung und Export:
|
|
18
18
|
|
|
19
19
|
- Text, Formen, Geometrie und komplexe Grafiken erstellen
|
|
20
20
|
- Mit deklarativen **Relationen** animieren statt mit Keyframes
|
|
@@ -64,6 +64,25 @@ Bitten Sie Ihre KI zum Beispiel:
|
|
|
64
64
|
- **`pinepaper_image_filter` repariert und erweitert** — an die echte GPU-Filter-Engine angebunden, alle 15 Filter (Halbton-Familie, Posterisieren, Vignette, HSL, Dithering …)
|
|
65
65
|
- **README als MCP-Ressource** — Clients können `pinepaper://docs/readme` (mit Sprachvarianten) direkt im Protokoll lesen
|
|
66
66
|
|
|
67
|
+
## Lokal oder gehostet
|
|
68
|
+
|
|
69
|
+
**Lokal ist kostenlos und vollständig.** Alle Tools funktionieren, wenn Sie
|
|
70
|
+
diesen Server selbst betreiben. Es gibt keine reduzierte Stufe.
|
|
71
|
+
|
|
72
|
+
Benötigt: Node 18 oder neuer, rund **320 MB** Speicherplatz (Puppeteer lädt
|
|
73
|
+
Chrome herunter) und etwa 1 GB Arbeitsspeicher, solange ein Job läuft. Auf
|
|
74
|
+
einem Laptop ist das unproblematisch, auf einem kleinen VPS oder einem
|
|
75
|
+
gesperrten Arbeitsrechner eher nicht.
|
|
76
|
+
|
|
77
|
+
**[cloud.pinepaper.studio](https://cloud.pinepaper.studio) betreibt denselben
|
|
78
|
+
Server für Sie** — gleiche Tools, gleiche Version, über HTTP, ohne Installation
|
|
79
|
+
und ohne Browser auf Ihrem Rechner.
|
|
80
|
+
|
|
81
|
+
Hosting kostet Geld, daher ist es kostenpflichtig: **Starter 4,99 $/Monat**
|
|
82
|
+
(500 Anfragen/Tag) und **Pro 14,99 $/Monat** (5.000/Tag, plus die
|
|
83
|
+
Animationsvorlagen). Wenn Sie lokal laufen lassen können, tun Sie das — Sie
|
|
84
|
+
verlieren dadurch nichts.
|
|
85
|
+
|
|
67
86
|
## Mehr
|
|
68
87
|
|
|
69
88
|
Die vollständige Tool-Referenz, Toolkits und Token-Budget sowie die Relationsliste stehen im [englischen README](README.md). Der kanonische Agenten-Workflow liegt in der Ressource `pinepaper://docs/agent-guide`.
|
package/README.es.md
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
El servidor MCP de PinePaper permite a los asistentes de IA crear y animar gráficos en [PinePaper Studio](https://pinepaper.studio) a través del Model Context Protocol. Funciona con cualquier IA que soporte llamadas a herramientas MCP (Claude, GPT, Gemini, modelos locales, etc.).
|
|
16
16
|
|
|
17
|
-
Expone **
|
|
17
|
+
Expone **144 herramientas**: dibujo, animación, diagramas, mapas, tipografía, física, edición de imágenes, visualización de datos y exportación:
|
|
18
18
|
|
|
19
19
|
- Crear texto, formas, geometría y gráficos complejos
|
|
20
20
|
- Animar con **relaciones** declarativas en lugar de fotogramas clave
|
|
@@ -64,6 +64,25 @@ Prueba a pedirle a tu IA:
|
|
|
64
64
|
- **`pinepaper_image_filter` corregido y ampliado** — conectado al motor real de filtros GPU con los 15 filtros (familia de semitonos, posterizar, viñeta, HSL, dither…)
|
|
65
65
|
- **El README como recurso MCP** — los clientes pueden leer `pinepaper://docs/readme` (con variantes por idioma) sin salir del protocolo
|
|
66
66
|
|
|
67
|
+
## Local o alojado
|
|
68
|
+
|
|
69
|
+
**Local es gratis y completo.** Todas las herramientas funcionan si ejecuta
|
|
70
|
+
este servidor usted mismo. No hay una versión reducida.
|
|
71
|
+
|
|
72
|
+
Necesita: Node 18 o superior, unos **320 MB** de disco (Puppeteer descarga
|
|
73
|
+
Chrome) y alrededor de 1 GB de memoria mientras se ejecuta un trabajo. En un
|
|
74
|
+
portátil no supone problema; en un VPS pequeño o un equipo de trabajo
|
|
75
|
+
restringido, sí.
|
|
76
|
+
|
|
77
|
+
**[cloud.pinepaper.studio](https://cloud.pinepaper.studio) ejecuta el mismo
|
|
78
|
+
servidor por usted** — mismas herramientas, misma versión, por HTTP, sin
|
|
79
|
+
instalación y sin navegador en su máquina.
|
|
80
|
+
|
|
81
|
+
El alojamiento cuesta dinero, así que es de pago: **Starter 4,99 $/mes**
|
|
82
|
+
(500 peticiones/día) y **Pro 14,99 $/mes** (5.000/día, más la biblioteca de
|
|
83
|
+
plantillas de animación). Si puede ejecutarlo localmente, hágalo — no pierde
|
|
84
|
+
nada.
|
|
85
|
+
|
|
67
86
|
## Más
|
|
68
87
|
|
|
69
88
|
La referencia completa de herramientas, los toolkits y el presupuesto de tokens, y la lista de relaciones están en el [README en inglés](README.md). El flujo de trabajo canónico para agentes está en el recurso `pinepaper://docs/agent-guide`.
|
package/README.fr.md
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
Le serveur MCP PinePaper permet aux assistants IA de créer et d'animer des graphiques dans [PinePaper Studio](https://pinepaper.studio) via le Model Context Protocol. Compatible avec toute IA gérant les appels d'outils MCP (Claude, GPT, Gemini, modèles locaux, etc.).
|
|
16
16
|
|
|
17
|
-
Il expose **
|
|
17
|
+
Il expose **144 outils** : dessin, animation, diagrammes, cartes, typographie, physique, retouche d'image, visualisation de données et export :
|
|
18
18
|
|
|
19
19
|
- Créer du texte, des formes, de la géométrie et des graphiques complexes
|
|
20
20
|
- Animer avec des **relations** déclaratives plutôt que des images clés
|
|
@@ -64,6 +64,25 @@ Essayez de demander à votre IA :
|
|
|
64
64
|
- **`pinepaper_image_filter` corrigé et enrichi** — branché sur le vrai moteur de filtres GPU avec les 15 filtres (famille demi-teinte, postérisation, vignettage, HSL, tramage…)
|
|
65
65
|
- **Le README devient une ressource MCP** — les clients peuvent lire `pinepaper://docs/readme` (avec variantes par langue) sans quitter le protocole
|
|
66
66
|
|
|
67
|
+
## En local ou hébergé
|
|
68
|
+
|
|
69
|
+
**Le local est gratuit et complet.** Tous les outils fonctionnent si vous
|
|
70
|
+
exécutez ce serveur vous-même. Il n'existe pas de version réduite.
|
|
71
|
+
|
|
72
|
+
Il faut : Node 18 ou plus récent, environ **320 Mo** de disque (Puppeteer
|
|
73
|
+
télécharge Chrome) et à peu près 1 Go de mémoire pendant l'exécution d'une
|
|
74
|
+
tâche. Sur un ordinateur portable, cela passe ; sur un petit VPS ou une machine
|
|
75
|
+
de travail verrouillée, moins.
|
|
76
|
+
|
|
77
|
+
**[cloud.pinepaper.studio](https://cloud.pinepaper.studio) exécute le même
|
|
78
|
+
serveur à votre place** — mêmes outils, même version, en HTTP, sans
|
|
79
|
+
installation ni navigateur sur votre machine.
|
|
80
|
+
|
|
81
|
+
L'hébergement a un coût, il est donc payant : **Starter 4,99 $/mois**
|
|
82
|
+
(500 requêtes/jour) et **Pro 14,99 $/mois** (5 000/jour, plus la bibliothèque
|
|
83
|
+
de modèles d'animation). Si vous pouvez l'exécuter en local, faites-le — vous
|
|
84
|
+
n'y perdez rien.
|
|
85
|
+
|
|
67
86
|
## Aller plus loin
|
|
68
87
|
|
|
69
88
|
La référence complète des outils, les toolkits et le budget de jetons, et la liste des relations sont dans le [README anglais](README.md). Le flux de travail canonique pour agents est dans la ressource `pinepaper://docs/agent-guide`.
|
package/README.hi.md
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
PinePaper MCP सर्वर AI असिस्टेंट्स को Model Context Protocol के ज़रिए [PinePaper Studio](https://pinepaper.studio) में ग्राफ़िक्स बनाने और एनिमेट करने देता है। MCP टूल कॉलिंग वाले किसी भी AI (Claude, GPT, Gemini, लोकल मॉडल आदि) के साथ काम करता है।
|
|
16
16
|
|
|
17
|
-
सर्वर **
|
|
17
|
+
सर्वर **144 टूल** देता है — ड्रॉइंग, एनिमेशन, डायग्राम, नक्शे, टाइपोग्राफ़ी, फिज़िक्स, इमेज एडिटिंग, डेटा विज़ुअलाइज़ेशन और एक्सपोर्ट:
|
|
18
18
|
|
|
19
19
|
- टेक्स्ट, आकृतियाँ, ज्यामिति और जटिल ग्राफ़िक्स बनाना
|
|
20
20
|
- कीफ़्रेम की जगह व्यवहार बताने वाले **रिलेशन** से एनिमेशन
|
|
@@ -64,6 +64,23 @@ npm install -g @pinepaper.studio/mcp-server
|
|
|
64
64
|
- **`pinepaper_image_filter` ठीक और विस्तारित** — असली GPU फ़िल्टर इंजन से जुड़ा, पूरे 15 फ़िल्टर (हाफ़टोन परिवार, पोस्टराइज़, विनेट, HSL, डिदर…)
|
|
65
65
|
- **README अब MCP रिसोर्स है** — क्लाइंट `pinepaper://docs/readme` (भाषा-वार वेरिएंट सहित) प्रोटोकॉल के भीतर पढ़ सकते हैं
|
|
66
66
|
|
|
67
|
+
## लोकल या होस्टेड
|
|
68
|
+
|
|
69
|
+
**लोकल मुफ़्त और पूरा है।** अगर आप यह सर्वर खुद चलाते हैं तो सारे टूल काम करते
|
|
70
|
+
हैं। कोई सीमित संस्करण नहीं है।
|
|
71
|
+
|
|
72
|
+
ज़रूरत: Node 18 या नया, लगभग **320 MB** डिस्क (Puppeteer क्रोम डाउनलोड करता है)
|
|
73
|
+
और जॉब चलने के दौरान करीब 1 GB मेमोरी। लैपटॉप पर यह ठीक है; छोटे VPS या
|
|
74
|
+
प्रतिबंधित ऑफ़िस मशीन पर मुश्किल।
|
|
75
|
+
|
|
76
|
+
**[cloud.pinepaper.studio](https://cloud.pinepaper.studio) वही सर्वर आपके लिए
|
|
77
|
+
चलाता है** — वही टूल, वही वर्ज़न, HTTP पर, बिना इंस्टॉल और बिना ब्राउज़र के।
|
|
78
|
+
|
|
79
|
+
होस्टिंग पर खर्च होता है, इसलिए यह सशुल्क है: **Starter $4.99/माह**
|
|
80
|
+
(500 अनुरोध/दिन) और **Pro $14.99/माह** (5,000/दिन, साथ में एनिमेशन टेम्पलेट
|
|
81
|
+
लाइब्रेरी)। अगर आप इसे लोकल चला सकते हैं, तो लोकल ही चलाएँ — इससे कुछ नहीं
|
|
82
|
+
खोता।
|
|
83
|
+
|
|
67
84
|
## और जानें
|
|
68
85
|
|
|
69
86
|
टूल का पूरा संदर्भ, टूलकिट और टोकन बजट, तथा रिलेशन की सूची [अंग्रेज़ी README](README.md) में है। एजेंटों के लिए मानक वर्कफ़्लो `pinepaper://docs/agent-guide` रिसोर्स में है।
|
package/README.ja.md
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
PinePaper MCP サーバーは、MCP 経由で AI アシスタントが [PinePaper Studio](https://pinepaper.studio) 上にグラフィックを作成・アニメーションさせるためのサーバーです。MCP ツールコールに対応した AI(Claude、GPT、Gemini、ローカルモデルなど)で動作します。
|
|
16
16
|
|
|
17
|
-
**
|
|
17
|
+
**144 個のツール**を提供 — 描画・アニメーション・図・地図・タイポグラフィ・物理・画像編集・データ可視化・エクスポート:
|
|
18
18
|
|
|
19
19
|
- テキスト、図形、ジオメトリ、複雑なグラフィックの作成
|
|
20
20
|
- キーフレームではなく、ふるまいを宣言する**リレーション**でアニメーション
|
|
@@ -64,6 +64,24 @@ AI にこう頼んでみてください:
|
|
|
64
64
|
- **`pinepaper_image_filter` を修正・拡充** — 実際の GPU フィルターエンジンに接続、全 15 フィルター(ハーフトーン、ポスタリゼーション、ビネット、HSL、ディザなど)
|
|
65
65
|
- **README が MCP リソースに** — クライアントは `pinepaper://docs/readme`(言語別あり)をプロトコル内で読めます
|
|
66
66
|
|
|
67
|
+
## ローカルまたはホスティング
|
|
68
|
+
|
|
69
|
+
**ローカルは無料で、機能に制限はありません。** 自分でこのサーバーを動かせば、
|
|
70
|
+
すべてのツールが使えます。制限版はありません。
|
|
71
|
+
|
|
72
|
+
必要なもの: Node 18 以降、約 **320 MB** のディスク (Puppeteer が Chrome を
|
|
73
|
+
ダウンロードします)、ジョブ実行中は約 1 GB のメモリ。ノート PC なら問題あり
|
|
74
|
+
ませんが、小さな VPS や制限のある業務用マシンでは厳しいことがあります。
|
|
75
|
+
|
|
76
|
+
**[cloud.pinepaper.studio](https://cloud.pinepaper.studio) は同じサーバーを
|
|
77
|
+
代わりに動かします** — 同じツール、同じバージョン、HTTP 経由。インストールも
|
|
78
|
+
ブラウザも不要です。
|
|
79
|
+
|
|
80
|
+
ホスティングには費用がかかるため有料です: **Starter 月額 $4.99**
|
|
81
|
+
(1 日 500 リクエスト)、**Pro 月額 $14.99** (1 日 5,000、アニメーション
|
|
82
|
+
テンプレート付き)。ローカルで動かせるなら、ローカルで動かしてください。
|
|
83
|
+
それで失うものはありません。
|
|
84
|
+
|
|
67
85
|
## さらに詳しく
|
|
68
86
|
|
|
69
87
|
ツールの完全なリファレンス、ツールキットとトークン予算、リレーション一覧は[英語版 README](README.md) を参照してください。AI エージェント向けの正準ワークフローはリソース `pinepaper://docs/agent-guide` にあります。
|
package/README.ko.md
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
PinePaper MCP 서버는 AI 어시스턴트가 MCP를 통해 [PinePaper Studio](https://pinepaper.studio)에서 그래픽을 만들고 애니메이션하게 해줍니다. MCP 툴 콜을 지원하는 모든 AI(Claude, GPT, Gemini, 로컬 모델 등)와 호환됩니다.
|
|
16
16
|
|
|
17
|
-
**
|
|
17
|
+
**144개의 툴** 제공 — 드로잉, 애니메이션, 다이어그램, 지도, 타이포그래피, 물리, 이미지 편집, 데이터 시각화, 내보내기:
|
|
18
18
|
|
|
19
19
|
- 텍스트·도형·기하·복잡한 그래픽 생성
|
|
20
20
|
- 키프레임 대신 행동을 선언하는 **릴레이션**으로 애니메이션
|
|
@@ -64,6 +64,23 @@ AI에게 이렇게 말해 보세요:
|
|
|
64
64
|
- **`pinepaper_image_filter` 수정·확장** — 실제 GPU 필터 엔진에 연결, 15종 전체 필터(하프톤 계열, 포스터라이즈, 비네트, HSL, 디더 등)
|
|
65
65
|
- **README가 MCP 리소스로** — 클라이언트가 `pinepaper://docs/readme`(언어별 변형 포함)를 프로토콜 안에서 읽을 수 있음
|
|
66
66
|
|
|
67
|
+
## 로컬 또는 호스팅
|
|
68
|
+
|
|
69
|
+
**로컬은 무료이며 기능 제한이 없습니다.** 이 서버를 직접 실행하면 모든 도구가
|
|
70
|
+
동작합니다. 축소된 버전은 없습니다.
|
|
71
|
+
|
|
72
|
+
필요한 것: Node 18 이상, 약 **320 MB** 디스크 (Puppeteer가 Chrome을
|
|
73
|
+
내려받습니다), 작업 실행 중 약 1 GB 메모리. 노트북에서는 문제가 없지만 작은
|
|
74
|
+
VPS나 제한된 업무용 컴퓨터에서는 부담스러울 수 있습니다.
|
|
75
|
+
|
|
76
|
+
**[cloud.pinepaper.studio](https://cloud.pinepaper.studio)가 같은 서버를 대신
|
|
77
|
+
실행합니다** — 같은 도구, 같은 버전, HTTP 방식이며 설치도 브라우저도 필요
|
|
78
|
+
없습니다.
|
|
79
|
+
|
|
80
|
+
호스팅에는 비용이 들기 때문에 유료입니다: **Starter 월 $4.99**
|
|
81
|
+
(하루 500회), **Pro 월 $14.99** (하루 5,000회, 애니메이션 템플릿 라이브러리
|
|
82
|
+
포함). 로컬에서 실행할 수 있다면 로컬로 실행하세요 — 잃는 것은 없습니다.
|
|
83
|
+
|
|
67
84
|
## 더 보기
|
|
68
85
|
|
|
69
86
|
전체 툴 레퍼런스, 툴킷과 토큰 예산, 릴레이션 목록은 [영어 README](README.md)를 참고하세요. AI 에이전트용 표준 워크플로는 리소스 `pinepaper://docs/agent-guide`에 있습니다.
|
package/README.md
CHANGED
|
@@ -8,7 +8,15 @@
|
|
|
8
8
|
**English** · [简体中文](README.zh-CN.md) · [日本語](README.ja.md) · [한국어](README.ko.md) · [Español](README.es.md) · [Português (BR)](README.pt-BR.md) · [Français](README.fr.md) · [Deutsch](README.de.md) · [हिन्दी](README.hi.md)
|
|
9
9
|
|
|
10
10
|
<p align="center">
|
|
11
|
-
<img src="assets/
|
|
11
|
+
<img src="assets/edit-whenever.svg" alt="Generate once. Edit whenever. — animated PinePaper poster: the headline assembles from scatter, a color wave runs through every letter, and 'generate twice / thrice' get struck out before 'once' is highlighted" width="720">
|
|
12
|
+
</p>
|
|
13
|
+
|
|
14
|
+
<p align="center">
|
|
15
|
+
<b>The animation engine agents can drive.</b><br>
|
|
16
|
+
This poster is one 16 KB SVG — 100+ animations, no scripts. View source on it.<br><br>
|
|
17
|
+
<a href="https://pinepaper.studio/?utm_source=github&utm_medium=readme&utm_campaign=launch_pinned&utm_content=hero">Try PinePaper Studio</a> ·
|
|
18
|
+
<a href="https://pinepaper.studio/docs?utm_source=github&utm_medium=readme&utm_campaign=launch_pinned&utm_content=docs">Docs</a> ·
|
|
19
|
+
<a href="https://www.npmjs.com/package/@pinepaper.studio/mcp-server">npm</a>
|
|
12
20
|
</p>
|
|
13
21
|
|
|
14
22
|
*Everything above and below moves — these are animated SVGs exported straight from PinePaper tool calls, no video files, no GIFs. Open this README on GitHub and watch.*
|
|
@@ -17,7 +25,7 @@
|
|
|
17
25
|
|
|
18
26
|
PinePaper MCP Server enables AI assistants to create and animate graphics in [PinePaper Studio](https://pinepaper.studio) via the Model Context Protocol (MCP). Works with any AI that supports MCP tool calling (Claude, GPT, Gemini, local models, etc.).
|
|
19
27
|
|
|
20
|
-
The server exposes **
|
|
28
|
+
The server exposes **144 tools** across drawing, animation, diagrams, maps, typography, physics, image editing, data visualization, and export. Using natural language, you can:
|
|
21
29
|
|
|
22
30
|
- Create text, shapes, geometry, and complex graphics
|
|
23
31
|
- Animate items with behavior-driven **relations** rather than keyframes
|
|
@@ -27,8 +35,35 @@ The server exposes **135 tools** across drawing, animation, diagrams, maps, typo
|
|
|
27
35
|
- Edit images: crop, chroma-key background removal, GPU filters, lasso cutouts, object detection
|
|
28
36
|
- Export animated SVG, video frames, embeddable widgets, and LLM training data
|
|
29
37
|
|
|
38
|
+
## Running it: local or hosted
|
|
39
|
+
|
|
40
|
+
**Local is free and complete.** Every one of the 144 tools works when you run
|
|
41
|
+
this server yourself. There is no reduced tier and nothing held back.
|
|
42
|
+
|
|
43
|
+
What it needs:
|
|
44
|
+
|
|
45
|
+
| | |
|
|
46
|
+
|---|---|
|
|
47
|
+
| Node | 18 or newer |
|
|
48
|
+
| Disk | Puppeteer downloads Chrome on install — roughly **320 MB** per version |
|
|
49
|
+
| Memory | a Chrome process plus the Studio canvas, so budget ~1 GB while a job runs |
|
|
50
|
+
|
|
51
|
+
That is fine on a laptop and awkward on a small VPS, a locked-down work machine,
|
|
52
|
+
or a container you would rather keep thin.
|
|
53
|
+
|
|
54
|
+
**[cloud.pinepaper.studio](https://cloud.pinepaper.studio) runs the same server
|
|
55
|
+
for you** — same tools, same version, over HTTP with no install and no browser
|
|
56
|
+
on your machine. It exists for three cases: you have no MCP client, you cannot
|
|
57
|
+
install one, or your machine cannot spare the browser.
|
|
58
|
+
|
|
59
|
+
Hosting costs money, so it is paid: **Starter $4.99/mo** (500 requests/day) and
|
|
60
|
+
**Pro $14.99/mo** (5,000/day, plus the animation template library). If you can
|
|
61
|
+
run it locally, run it locally — you lose nothing by doing so.
|
|
62
|
+
|
|
30
63
|
## Made with tool calls
|
|
31
64
|
|
|
65
|
+
<p align="center"><img src="assets/hero.svg" width="720" alt="Animated vector graphics, made by tool calls — a tool call on the left runs and becomes a curve drawing itself on the right, composed with PinePaper Studio"></p>
|
|
66
|
+
|
|
32
67
|
Every graphic below is an animated SVG produced through this server's tool surface — the arguments shown with each result are what an AI agent passes to the named tool. They aren't shell commands; **[Run these yourself](#run-these-yourself)** below shows the three ways to execute them.
|
|
33
68
|
|
|
34
69
|
<!-- Stacked (image then code) rather than a two-column table so the SVGs render on
|
|
@@ -144,6 +179,129 @@ app.animate(sq, { animationType: 'rotate' });
|
|
|
144
179
|
|
|
145
180
|
The same code an agent generates is the code you can paste — the canvas is yours either way, undo included.
|
|
146
181
|
|
|
182
|
+
## What's new in 1.6.7
|
|
183
|
+
|
|
184
|
+
**Four more item-stage shader effects** — `electric_arc`, `vortex`, `rain_veil`, `caustics` (ABYSSAL's noise library). The `item` shader stage went from four built-ins to eight and nothing here named the new half.
|
|
185
|
+
|
|
186
|
+
**`on_key_fire` now matches a chord exactly.** Its modifier tests were one-way — they required a modifier that was asked for but never rejected one that was not — so `{ key: 'Enter' }` fired on Ctrl+Enter, Shift+Enter and Cmd+Enter alike, and `{ key: 's' }` fired on the browser's own Ctrl+S. Those are different intents. The relation's documentation says so now, along with the focus gate that keeps it from taking keys from the rest of the page. (Reported from this repo during the relation audit; fixed engine-side.)
|
|
187
|
+
|
|
188
|
+
**Three appliers that failed in silence now report.** The engine's `animate`, `applyAnimatedMask` and `applyCutoutStyle` refused an unknown key only through `console.warn`, and the production build strips the console — while returning values identical between success and failure (`undefined` either way, a Paper Group either way, and the very item it was given). Over MCP, where there is no console to read, an unknown key left the canvas unchanged and told every caller it had worked.
|
|
189
|
+
|
|
190
|
+
The engine now records the refusal on the item it already hands back, and these tools read it: a refused animation type, a mask that applied but will never animate, and a cutout preset that returned the item untouched are all reported as failures, each carrying the requested value **and the known list**, so a caller can correct itself without a second round trip.
|
|
191
|
+
|
|
192
|
+
**New tool: `pinepaper_character`** — place a figure from the graph and direct it. The character layer was reachable from the cloud's build script and nowhere else, which by this project's own rule means it did not exist: an MCP client, a cloud caller and a small on-device model all see these schemas and nothing behind them.
|
|
193
|
+
|
|
194
|
+
- It replaces roughly thirty exactly-right calls — create the skeleton, add each bone with the right parent and angle, create each shape, attach each to the right bone, then author poses — where one mistake anywhere leaves a broken figure. That volume of exactly-right output is the reported reason characters do not work for smaller models.
|
|
195
|
+
- Direction is declarative beats: `{ concept: "pp:Pigeon", at: {...}, height: 300, beats: [{ at: 0, channel: "bob", until: 8 }, { at: 1.4, channel: "blink" }] }`.
|
|
196
|
+
|
|
197
|
+
**`create_item` gains `shader` and `field` item types.** The cloud renderer has drawn shaders and parametric fields for months, reachable only by hand-writing a scene document — so the capability existed for whoever writes the build script and for nobody else.
|
|
198
|
+
|
|
199
|
+
- The description names the parameters and the expression variables a field is written in: a parameter nobody can discover is the same as a parameter that is not there.
|
|
200
|
+
- `bornAt`/`ttl` are documented on `properties`. They always passed through (`properties` is a free record) and nothing mentioned them, so no caller could build a piece that cuts between shots — which is why the only multi-shot pieces that exist had their shots inferred from a naming convention in a build script.
|
|
201
|
+
- **A surface is not a shape**, and the ontology now says so instead of filing these under Path because they also end up as pixels: `pp:CanvasSurface`, with `pp:ShaderSurface` and `pp:ParametricField` under it. A shape is built as an item and drawn from its geometry; a surface is evaluated as the frame is drawn.
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
**New tool: `pinepaper_import_motion_capture`** — BVH import and retarget. The engine has had `importBVH`/`retargetBVH` for releases and nothing exposed them; a model cannot use a capability no tool call reaches.
|
|
205
|
+
|
|
206
|
+
- `mode: 'import'` builds a new skeleton shaped like the capture file. `mode: 'retarget'` drives an **existing** rig, so proportions stay the character's and only the motion comes from the clip — that distinction is the reason the tool exists.
|
|
207
|
+
- Angles transfer as bind-pose deltas, so a T-posed CMU rest is not slammed onto a rig with a relaxed stance. Bones the alias table cannot place come back as `unmatchedSource`/`unmatchedTarget` instead of silently driving half a rig, so a caller can build `boneMap` from the failure. `fps` defaults to 15 — CMU records at 120, and nobody wants 120 poses a second on a canvas timeline.
|
|
208
|
+
|
|
209
|
+
**`pinepaper_rigging` gains the pose-motion half — 18 actions.** The engine had 26 pose methods; the tool exposed two. The pose library (`list_poses`, `load_pose`, `interpolate_poses`, `list_skeletons`), playback (`play_pose_sequence`, `stop_pose_sequence`, `apply_pose_transition`), procedural layers (`auto_walk`, `auto_breath`, `auto_idle`, `auto_jump`), root locomotion (`move_root`, `stop_root_track`), and the export/deform edges (`bake_animation`, `add_secondary_motion`, `skin_path`, `list_shape_keys`, `load_shape_key`). Each was checked against the engine source rather than its docs, which name tools that were never registered.
|
|
210
|
+
|
|
211
|
+
- **New capability: `stitch_poses`** — join clips into one continuous performance, entering a cyclic clip at the phase closest to where the previous one ended so the legs do not teleport mid-stride.
|
|
212
|
+
|
|
213
|
+
**New tool: `pinepaper_design_medium`** — the third design axis: what physically makes the marks. Every medium declares a *fidelity*, and `resolve` refuses the ones it cannot honestly render rather than producing flat shapes in their colours. `apply_thread` renders an item as needlepainting; the direction field is what separates that from hatching.
|
|
214
|
+
|
|
215
|
+
**New tool: `pinepaper_text_effect`** — 37 character-level text animations (terminaltexteffects' vocabulary, reimplemented in the engine from source). `list` returns the effects; `apply` explodes a text item into one animated item per character.
|
|
216
|
+
|
|
217
|
+
- The planner is pure and emits **keyframes**, so the result is ordinary animated items: it scrubs on the timeline, survives undo and session restore, and exports through the existing MP4 / SMIL / Lottie paths. Every effect ends at rest.
|
|
218
|
+
- **It replaces the text item.** Unlike `pinepaper_text_style` (which adopts the text's registry id), this removes the original and returns the new per-character ids — so relations and keyframes on the source id do not survive. `keepSource: true` is the escape hatch. The tool is marked `destructiveHint` and says so in its description, because it inverts the id-preservation convention every neighbouring tool follows.
|
|
219
|
+
- Resting characters are painted with a gradient across the text block by default (what the upstream effects actually do); `gradient: false` keeps the authored fill. `seed` defaults to 1, so a given text + effect + seed animates identically every run.
|
|
220
|
+
|
|
221
|
+
**Two more enums that named things the engine does not have.** Both were the same shape as the relation gap, found by diffing every validated enum against the engine rather than by anything failing.
|
|
222
|
+
|
|
223
|
+
- **`canvasPreset` on the agent-flow tools** passed an export *platform* name (`instagram`, `youtube`, `web`) straight to `setCanvasSize`, which keys on `instagram-post` and `full-hd-1080p`. Seven of ten matched nothing: the engine fell through to its default, resized the artboard to 800×600, and recorded the preset as applied — so asking for an Instagram canvas got neither the size nor an error. Now mapped, and pinned by a test against the engine's preset list. The platform vocabulary is unchanged, because `instagram` is the right word for an export target and only the canvas-size use was wrong.
|
|
224
|
+
- **`pinepaper_modify_item` now documents `pathData`** — reshaping the geometry itself, not just its styling, so a traced or hand-drawn outline can be corrected without deleting and recreating the item (which would lose its id and every relation and keyframe pointing at it).
|
|
225
|
+
|
|
226
|
+
**`pinepaper_animate` offered an animation that does not exist.** `slide` was in the enum, in three JSON schemas and in two prose lists. The engine has no such type — the real ones are `slideLeftRight` and `slideUpDown`. It accepted the value, wrote it to the item, and the driver's switch fell through: the item sat still while its own data claimed a slide, and the call reported success. The same enum hid twelve types that do work (`breathe`, `glow`, `jelly`, `path`, `shake`, `swing`, `scrollUp/Down/Left/Right`, and the two real slides), so the surface both invented one animation and concealed a dozen.
|
|
227
|
+
|
|
228
|
+
All 18 driver types are now offered, and a parity test pins the enum, every JSON-Schema copy of it, and the prose against a fixture of the engine's `ANIMATION_TYPES`. A unit test that asserted `slide` parses — pinning the bug in place — was corrected. Letter collages keep their own separate four-name vocabulary, which is not drift.
|
|
229
|
+
|
|
230
|
+
**95 live relations were not callable.** `pinepaper_add_relation` offered 39 of the engine's 134, and the enum is a hard gate — a name missing from it is rejected at validation. The missing set was not a random 95: it was essentially the entire **interactive** vocabulary, every event-channel relation included, so the state-machine-via-relations capability was undiscoverable and unusable. `pinepaper_scene_graph` was emitting `on_click_fire` and `on_event_set_active` relations that an agent could not then create, inspect or recreate by hand.
|
|
231
|
+
|
|
232
|
+
Nothing was broken at runtime, which is why it survived: the engine could do it and nothing could *name* it. For a model those are the same condition.
|
|
233
|
+
|
|
234
|
+
- **42 relations are now callable** — the input triggers (`on_click_fire`, `on_pointer_enter_fire`, `on_pointer_exit_fire`, `on_key_fire`), the full `on_event_*` reaction set including template-interpolated property writes and the persistent-store pair, the `on_enter_*`/`on_exit_*` proximity families, `exclusive_group` / `menubar_group`, and the behavioural relations `repels`, `wiggle`, `spring_follow`, `syncs_with`, `triggers_animation`, `connects_to`, `part_of`, `attached_to_tail`, `head_points_to`, `anchored_in_world`, `tours`, `synced_to_audio`, and `expresses` — which `pinepaper_import_layered_character` already promised would make an imported character blink, while the enum made it unnameable.
|
|
235
|
+
- **Relations a dedicated tool emits stay out** — `deform_*`, `effect_*`, `geo_*`, `bone_*` and friends. The agent authors those *through* that tool, and a second name here would be a worse way to do the same thing. That exclusion list is written down with its reason, so the next engine diff doesn't re-litigate all 95.
|
|
236
|
+
- **The map behind the validator was the same bug one layer down.** `RELATION_TYPE_MAP` gates "is this a known relation", so a relation callable but unmapped makes the validator report a perfectly valid scene as using an unknown one. 40 entries and 42 `pp:` edge definitions were backfilled from the engine's own descriptions.
|
|
237
|
+
- **The real fix is the parity test.** The enum is duplicated across five tool schemas plus the zod schema, and nothing checked any copy against the engine or against each other. It's now pinned to a fixture of the engine's registry map, asserting in both directions — nothing offered that the engine cannot run, nothing runnable that the surface hides — and that all six copies agree. The additions are just this week's payload.
|
|
238
|
+
|
|
239
|
+
The relation catalogue in the tool description now names families rather than all 80 members, and points at `pinepaper_query_capabilities { kind: 'relation' }` for the live list, which reads the registry instead of a list written down in prose.
|
|
240
|
+
|
|
241
|
+
**Hatching reaches the tool surface** — `pinepaper_design_medium` gains `apply_hatch`, `list_flow_fields` and `list_hatch_options`. PinePaper could fill and it could stitch, and it could not hatch; the gap was already named in the thread-painting code, which notes that a constant stitch field "looks like hatching, which is a different medium."
|
|
242
|
+
|
|
243
|
+
- **Hatching states value through line density, not colour.** The same shape at 6px spacing and at 3px reads as light and dark with nothing else changed. `gradient` makes the density fall off across the shape — a shaded ramp rather than a flat tone.
|
|
244
|
+
- The straight ruling is what a printer makes; `flowField` is what makes it read as *drawn* — `hand` is the small correlated wander of a hand-drawn line, `waves` for water and hair, `spiral` for wood grain around a knot. `continuous` joins the whole set into one serpentine path.
|
|
245
|
+
- Reimplemented from [p5.brush](https://github.com/acamposuribe/p5.brush)'s source (MIT, Alejandro Campos Uribe), **not vendored**: p5.brush is WebGL2-only and its output is raster, so vendoring it would put a second renderer in front of Paper's vector geometry and forfeit infinite-resolution scaling, SVG export and the relation graph. The maths is renderer-agnostic and is the part worth having.
|
|
246
|
+
- Every refusal names its fix. The engine reports all five of its distinct failures as `console.warn`, which production strips — so the tool checks the shape first and answers "text has no outline, convert it with `pinepaper_text_style` first" or "distance is 400px against bounds 150x150" instead of a bare null. A group is hatched up to 40 paths and says so when there were more.
|
|
247
|
+
|
|
248
|
+
**GSAP's vocabulary, PinePaper's engine.** An audit of GSAP's concept set against the 49 relations found most of it already present under other names — MotionPath is `moves_along_path`, MorphSVG is `morphs_to`, DrawSVG is trim paths, Physics2D is `spring_follow`, SplitText is the 37 text effects, nested timelines are precomps, and `wiggle` is richer than CustomWiggle. Five concepts were genuinely missing. They are adopted as **vocabulary, not as a dependency**: a second animation runtime is one that none of the SMIL, Lottie or MP4 exporters would understand, so the grammar is GSAP's and the implementations are independent.
|
|
249
|
+
|
|
250
|
+
**New tool: `pinepaper_sequence`** (`pp:TimelinePosition`) — say WHEN relative to something else instead of in absolute seconds. `"<"`, `">"`, `"+=1"`, `"-=25%"`, labels and `"intro+=0.5"` resolve to seconds, and `place` threads a whole run so each clip resolves against the ones before it. A pure planner; it touches nothing.
|
|
251
|
+
|
|
252
|
+
- The one thing to get right: **a percentage means different things in different forms.** `"-=25%"` is a quarter of the clip *being inserted*; `"<25%"` is a quarter of the *previous* one. They agree only when the two clips are the same length, and getting it backwards yields timings that look almost right.
|
|
253
|
+
|
|
254
|
+
**New tool: `pinepaper_stagger`** (`pp:Stagger`) — the shape of a delay across many items: a grid lighting up outward from the centre, a row converging from both edges. `each` fixes the gap between neighbours; `amount` fixes the total. Delays are written to the channel the engine and the SMIL exporter already read, so a staggered scene scrubs and exports — nothing here is playback-only. `staggered_with` gains the same shape parameters (`count`, `from`, `amount`, `grid`, `axis`, `distributeEase`).
|
|
255
|
+
|
|
256
|
+
**New tool: `pinepaper_flip`** (`pp:Flip`) — animate a layout change *without describing the motion*. Record where things are, rearrange them however you like, and the transition is derived from the difference: the one animation an author never has to specify, which is what makes it usable for re-sorts, auto-layout passes and filters nobody could enumerate in advance. It writes ordinary keyframes, so the transition scrubs and exports. Rotation is compared on the shortest arc — 359° to 1° is a two-degree move, not a near-full spin the wrong way.
|
|
257
|
+
|
|
258
|
+
**`pinepaper_play_timeline` gains rate, progress and scroll** (`pp:TimeScale`, `pp:InputDrivenPlayback`) — `set_time_scale` / `get_time_scale`, `get_progress` / `set_progress`, `bind_scroll` / `unbind_scroll` / `list_scrub_anchors`.
|
|
259
|
+
|
|
260
|
+
- Rate is deliberately unclamped: 0 freezes the clock without stopping playback, and a negative rate runs the scene backwards. Changing it rebases the clock, so the playhead does not jump. **Export is unaffected** — a scene watched at 0.5x still exports its real duration rather than a file twice as long.
|
|
261
|
+
- Scroll binding always releases a previous binding first: the listener holds the scene alive, so a rebind without an unbind is a leak *and* leaves two bindings scrubbing one timeline.
|
|
262
|
+
|
|
263
|
+
**`orbits` gains `phaseDegrees`.** `phase` was the single parameter in the whole relation vocabulary measured in radians, against this engine's own stated convention that angles are degrees. `phaseDegrees` now takes precedence; `phase` is kept, and documented as the exception, because changing it outright would silently re-time every scene that already sets it — a 57× error of exactly the kind the convention exists to prevent.
|
|
264
|
+
|
|
265
|
+
**`pinepaper_design_medium` was served but unlisted.** It had been missing from `manifest.json`'s tool list since it shipped — introduced above, but invisible to the marketplace listing. Caught by the prepublish guard while regenerating the manifest for the tools above.
|
|
266
|
+
|
|
267
|
+
**New tool: `pinepaper_scene_graph`** — compiles an interactive story or quiz into native items and relations: cards, answer buttons, click→event routing, exclusive-group mutex visibility, and score tracking.
|
|
268
|
+
|
|
269
|
+
- `action: 'validate'` runs the same structural check **without drawing anything** — errors, warnings, reachable nodes, cycles. Check a generated graph before committing a canvas full of cards to it.
|
|
270
|
+
- The schema refuses a graph the engine would refuse, and one it would silently mangle: a dangling `to`, a `start` naming no node, a non-terminal card with no way out, and **duplicate node ids** — the engine keys its node index by id, so a repeated id quietly replaces the earlier node rather than erroring.
|
|
271
|
+
- Two ways out of a card: `answers` waits for a click, `next` (+ `duration`) auto-advances for a linear story beat.
|
|
272
|
+
- The result forwards `failed`, `wired` and `cycles`. A graph can render completely and still leave relations unwired — it looks built and is inert, and that count is the only thing that says so.
|
|
273
|
+
|
|
274
|
+
**New tool: `pinepaper_query_capabilities`** — asks the engine what it can do (text styles, character effects, generators, deforms, relations) and recommends one: `list`, `find`, `coverage`, and a mood/subject-weighted `choose`.
|
|
275
|
+
|
|
276
|
+
- It reads `app.getCapabilities()`, which **warms the lazy registries first**. Generators do not exist until the heavy modules land (~1.2s after boot) and the rigging/blending/deform relation rules only register once their subsystem is touched — answered cold, the engine reports zero generators and roughly 77 of ~100 relations. `warm: false` opts out when a cheap re-read of what is already resident is enough.
|
|
277
|
+
- `coverage` names its own blind spots: kinds with no source wired, and entries that can be applied but not *ranked* because they carry no description. A chooser that scores on description can never recommend those, so it says so.
|
|
278
|
+
- `seed` gives a stable tiebreak among equal-scoring candidates; with no seed the order is stable by key. Either way a repeated call answers the same way.
|
|
279
|
+
|
|
280
|
+
**Every tool property now declares a type.** Ten inputs across `pinepaper_event`, `pinepaper_component`, `pinepaper_world3d`, `pinepaper_rigging`, `pinepaper_text_style`, `pinepaper_equation_path` and the new capabilities tool were published with a description and no `type` — valid JSON Schema, but strict function-calling clients reject a typeless property, and this server claims to work with any MCP-capable model. They are `anyOf` unions now.
|
|
281
|
+
|
|
282
|
+
**`pinepaper_connect` / `connect_ports` accept an `id`.** `update_connector` and `remove_connector` address a connector by `connectorId`, and there was previously no value a caller could correctly pass — creation returns code rather than a result, and the engine's fallback is timestamp-based. Assign your own and reuse it.
|
|
283
|
+
|
|
284
|
+
**`pinepaper_world3d` `add_object` forwards PBR material fields** — `metalness`, `roughness`, `emissiveIntensity`.
|
|
285
|
+
|
|
286
|
+
Follows 1.6.6, whose dependency-security work is described below.
|
|
287
|
+
|
|
288
|
+
**Dependency security.** `puppeteer` moves to ^25, clearing GHSA-jmr9-qjv8-65gv (`extract-zip` symlink path traversal) — `@puppeteer/browsers` 3.2.1 drops `extract-zip` entirely. The published package was never exposed (puppeteer is an optional peer), but the browser tools need one, and the path was re-verified against real Chrome rather than a green unit suite that never launches a browser.
|
|
289
|
+
|
|
290
|
+
`qs` is pinned to ^6.16.0, clearing GHSA-4mjr-xmp4-gh2g — a denial of service on the **production** chain, via `@modelcontextprotocol/sdk` → `express`. `npm audit` reported zero against it, as it did through the 1.6.6 work: its registry feed lags GitHub's. Verified instead with an OSV sweep of all 82 production packages, which is clean.
|
|
291
|
+
|
|
292
|
+
**Engine requirement.** Several capabilities this server has always emitted correct calls for did nothing until recent FxTool builds: **physics** (the step callback was never registered, so nothing moved), scene-wide **GPU filters** on the WebGPU tier, **map region colour animation** (which reported success while animating nothing), and `modify_item`'s `pathData`. No change was needed here — the calls were right — but run an FxTool from 2026-08-29 or later to get them.
|
|
293
|
+
|
|
294
|
+
## What's new in 1.6.6
|
|
295
|
+
|
|
296
|
+
Dependency security, no new tools and no API changes:
|
|
297
|
+
|
|
298
|
+
- **10 vulnerable transitive pins cleared** (21 advisories: 1 critical, 13 high, 6 moderate, 1 low) across `basic-ftp`, `fast-uri`, `js-yaml`, `path-to-regexp`, `ws`, `ip-address`, `qs`, `flatted`, `body-parser` and `ajv`. Each is pinned to a floor in `overrides` so neither resolver can drift back.
|
|
299
|
+
- **Root cause was a stale committed `bun.lock`.** It pinned the vulnerable versions while `package-lock.json` had already re-resolved most of them — and `bun test`/`bun run build` install from `bun.lock`, so that was the tree in use. Both lockfiles now agree.
|
|
300
|
+
- **`npm audit` reported zero** against all of this; its registry advisory feed lags GitHub's. Verified instead with an OSV.dev sweep of both lockfiles, red-tested against the previous commit.
|
|
301
|
+
- **`manifest.json` version parity is now tested.** It had silently sat at 1.6.4 through the 1.6.5 release.
|
|
302
|
+
|
|
303
|
+
Exposure note: `puppeteer` has been an optional peer since 1.6.5, so its chain (`basic-ftp`, `ws`, `ip-address`, `js-yaml`) never reached installs of this package. The `@modelcontextprotocol/sdk` chain (`fast-uri`, `path-to-regexp`, `qs`, `body-parser`, `ajv`) is the production surface.
|
|
304
|
+
|
|
147
305
|
## What's new in 1.6.5
|
|
148
306
|
|
|
149
307
|
Security hardening, no new tools:
|
|
@@ -185,7 +343,7 @@ Fourteen new tools (121 → 135) and new actions across the surface — the rele
|
|
|
185
343
|
|
|
186
344
|
## Toolkits & Token Budget
|
|
187
345
|
|
|
188
|
-
|
|
346
|
+
144 tools is a lot of context. The server ships a **toolkit** system that serves only the tools a given client needs, plus a **verbosity** system that controls how long each tool description is.
|
|
189
347
|
|
|
190
348
|
**Toolkit profiles** (`PINEPAPER_TOOLKIT`):
|
|
191
349
|
|
|
@@ -390,7 +548,7 @@ Generate instruction/code pairs for LLM fine-tuning:
|
|
|
390
548
|
|
|
391
549
|
## Tools Reference
|
|
392
550
|
|
|
393
|
-
All
|
|
551
|
+
All 144 tools, grouped by the tag used for toolkit filtering.
|
|
394
552
|
|
|
395
553
|
### Canvas (`canvas`)
|
|
396
554
|
| Tool | Description |
|
|
@@ -424,6 +582,7 @@ All 135 tools, grouped by the tag used for toolkit filtering.
|
|
|
424
582
|
### Import (`import`)
|
|
425
583
|
| Tool | Description |
|
|
426
584
|
|------|-------------|
|
|
585
|
+
| `pinepaper_import_motion_capture` | Import or retarget a BVH motion-capture clip |
|
|
427
586
|
| `pinepaper_import_svg` | Import SVG markup |
|
|
428
587
|
| `pinepaper_import_image` | Import a raster image |
|
|
429
588
|
| `pinepaper_detect_objects` | Detect objects in an image (text queries, composite as nodes) |
|
|
@@ -448,7 +607,9 @@ All 135 tools, grouped by the tag used for toolkit filtering.
|
|
|
448
607
|
|------|-------------|
|
|
449
608
|
| `pinepaper_animate` | Apply a simple loop animation |
|
|
450
609
|
| `pinepaper_keyframe_animate` | Timed keyframe animation |
|
|
451
|
-
| `pinepaper_play_timeline` | Control playback |
|
|
610
|
+
| `pinepaper_play_timeline` | Control playback, rate, progress, scroll-driven scrubbing |
|
|
611
|
+
| `pinepaper_stagger` | Shape a delay across many items |
|
|
612
|
+
| `pinepaper_flip` | Animate a layout change without describing the motion |
|
|
452
613
|
| `pinepaper_get_animatable_properties` | List animatable properties |
|
|
453
614
|
| `pinepaper_get_available_easings` | List easing functions |
|
|
454
615
|
| `pinepaper_construction_sequence` | Staged construction animation |
|
|
@@ -475,6 +636,9 @@ All 135 tools, grouped by the tag used for toolkit filtering.
|
|
|
475
636
|
| `pinepaper_create_scene` | Create a scene |
|
|
476
637
|
| `pinepaper_manage_scenes` | Manage scenes |
|
|
477
638
|
| `pinepaper_scene_playback` | Scene playback control |
|
|
639
|
+
| `pinepaper_scene_graph` | Interactive story / quiz card scene graph |
|
|
640
|
+
| `pinepaper_sequence` | Relative timeline positions for a run of clips |
|
|
641
|
+
| `pinepaper_sequence` | Relative timeline positions for a run of clips |
|
|
478
642
|
| `pinepaper_event` | Create / pulse event channels for scene chains |
|
|
479
643
|
|
|
480
644
|
### Generators, Effects & Filters
|
|
@@ -483,6 +647,7 @@ All 135 tools, grouped by the tag used for toolkit filtering.
|
|
|
483
647
|
| `pinepaper_execute_generator` | Run a background generator |
|
|
484
648
|
| `pinepaper_list_generators` | List available generators |
|
|
485
649
|
| `pinepaper_apply_effect` | Apply sparkle, blast, and other effects |
|
|
650
|
+
| `pinepaper_text_effect` | 37 character-level text animations; replaces the text with one keyframed item per character |
|
|
486
651
|
| `pinepaper_add_filter` | Add an image filter |
|
|
487
652
|
|
|
488
653
|
### Editing (`selection`, `transform`, `history`)
|
|
@@ -492,6 +657,7 @@ All 135 tools, grouped by the tag used for toolkit filtering.
|
|
|
492
657
|
| `pinepaper_transform` | Transform items — fit to frame, nudge, flip, reorder |
|
|
493
658
|
| `pinepaper_history` | Undo / redo |
|
|
494
659
|
| `pinepaper_compose` | Arrange items into a named collage pattern and film it |
|
|
660
|
+
| `pinepaper_design_medium` | What makes the marks — media with honest fidelity, and needlepainting |
|
|
495
661
|
| `pinepaper_brand_kit` | Apply brand colours / fonts by role, with a contrast audit |
|
|
496
662
|
| `pinepaper_component` | Reusable master + instances, with per-instance overrides |
|
|
497
663
|
| `pinepaper_artboard` | Resize the artboard; per-item reflow constraints |
|
|
@@ -558,6 +724,7 @@ All 135 tools, grouped by the tag used for toolkit filtering.
|
|
|
558
724
|
|------|-------------|
|
|
559
725
|
| `pinepaper_rigging` | Skeletons, bones, IK, breakdown poses; BVH mocap import/retarget, Spine import |
|
|
560
726
|
| `pinepaper_import_layered_character` | Decomposed character layers → role-bound parts (blink/smile work immediately) |
|
|
727
|
+
| `pinepaper_character` | Place a figure from the design graph and direct it with beats — no geometry, no bones, no poses |
|
|
561
728
|
|
|
562
729
|
### Typography (`font`, `letter_collage`)
|
|
563
730
|
| Tool | Description |
|
|
@@ -583,6 +750,7 @@ All 135 tools, grouped by the tag used for toolkit filtering.
|
|
|
583
750
|
| `pinepaper_get_items` | Get canvas items |
|
|
584
751
|
| `pinepaper_get_relation_stats` | Relation statistics |
|
|
585
752
|
| `pinepaper_query` | General canvas query |
|
|
753
|
+
| `pinepaper_query_capabilities` | Query and recommend capabilities |
|
|
586
754
|
|
|
587
755
|
### Ontology (`ontology`)
|
|
588
756
|
| Tool | Description |
|
|
@@ -736,6 +904,10 @@ The server does not draw anything itself. It validates a tool call, generates Ja
|
|
|
736
904
|
|
|
737
905
|
### Setup
|
|
738
906
|
|
|
907
|
+
> Installing pulls Chrome down through Puppeteer (~320 MB). If that is more than
|
|
908
|
+
> the machine can spare, [cloud.pinepaper.studio](https://cloud.pinepaper.studio)
|
|
909
|
+
> runs the same server over HTTP with nothing to install.
|
|
910
|
+
|
|
739
911
|
```bash
|
|
740
912
|
git clone https://github.com/pinepaper/mcp-server.git
|
|
741
913
|
cd mcp-server
|
package/README.pt-BR.md
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
O servidor MCP do PinePaper permite que assistentes de IA criem e animem gráficos no [PinePaper Studio](https://pinepaper.studio) via Model Context Protocol. Funciona com qualquer IA que suporte chamadas de ferramenta MCP (Claude, GPT, Gemini, modelos locais etc.).
|
|
16
16
|
|
|
17
|
-
São **
|
|
17
|
+
São **144 ferramentas**: desenho, animação, diagramas, mapas, tipografia, física, edição de imagens, visualização de dados e exportação:
|
|
18
18
|
|
|
19
19
|
- Criar texto, formas, geometria e gráficos complexos
|
|
20
20
|
- Animar com **relações** declarativas em vez de keyframes
|
|
@@ -64,6 +64,25 @@ Experimente pedir à sua IA:
|
|
|
64
64
|
- **`pinepaper_image_filter` corrigido e ampliado** — ligado ao motor real de filtros GPU com os 15 filtros (família de meio-tom, posterizar, vinheta, HSL, dither…)
|
|
65
65
|
- **README como recurso MCP** — clientes podem ler `pinepaper://docs/readme` (com variantes por idioma) sem sair do protocolo
|
|
66
66
|
|
|
67
|
+
## Local ou hospedado
|
|
68
|
+
|
|
69
|
+
**Local é gratuito e completo.** Todas as ferramentas funcionam se você mesmo
|
|
70
|
+
executar este servidor. Não existe uma versão reduzida.
|
|
71
|
+
|
|
72
|
+
Requisitos: Node 18 ou mais recente, cerca de **320 MB** de disco (o Puppeteer
|
|
73
|
+
baixa o Chrome) e aproximadamente 1 GB de memória enquanto um trabalho roda. Em
|
|
74
|
+
um notebook isso é tranquilo; em um VPS pequeno ou uma máquina de trabalho
|
|
75
|
+
restrita, nem tanto.
|
|
76
|
+
|
|
77
|
+
**O [cloud.pinepaper.studio](https://cloud.pinepaper.studio) executa o mesmo
|
|
78
|
+
servidor para você** — mesmas ferramentas, mesma versão, por HTTP, sem
|
|
79
|
+
instalação e sem navegador na sua máquina.
|
|
80
|
+
|
|
81
|
+
Hospedagem custa dinheiro, então é paga: **Starter US$ 4,99/mês**
|
|
82
|
+
(500 requisições/dia) e **Pro US$ 14,99/mês** (5.000/dia, mais a biblioteca de
|
|
83
|
+
modelos de animação). Se você consegue rodar localmente, rode localmente — você
|
|
84
|
+
não perde nada.
|
|
85
|
+
|
|
67
86
|
## Mais
|
|
68
87
|
|
|
69
88
|
A referência completa de ferramentas, toolkits e orçamento de tokens, e a lista de relações estão no [README em inglês](README.md). O fluxo canônico para agentes está no recurso `pinepaper://docs/agent-guide`.
|
package/README.zh-CN.md
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
PinePaper MCP 服务器让 AI 助手通过 MCP 协议在 [PinePaper Studio](https://pinepaper.studio) 中创建和驱动图形动画。兼容任何支持 MCP 工具调用的 AI(Claude、GPT、Gemini、本地模型等)。
|
|
16
16
|
|
|
17
|
-
服务器提供 **
|
|
17
|
+
服务器提供 **144 个工具**,覆盖绘图、动画、图表、地图、排版、物理、图像编辑、数据可视化与导出:
|
|
18
18
|
|
|
19
19
|
- 创建文本、形状、几何图形与复杂图稿
|
|
20
20
|
- 用行为驱动的**关系(relations)**做动画,而不是逐帧关键帧
|
|
@@ -64,6 +64,23 @@ npm install -g @pinepaper.studio/mcp-server
|
|
|
64
64
|
- **`pinepaper_image_filter` 修复并扩充** —— 直连真实 GPU 滤镜引擎,完整 15 种滤镜(半调家族、色调分离、暗角、HSL、抖动等)
|
|
65
65
|
- **README 成为 MCP 资源** —— 客户端可直接读取 `pinepaper://docs/readme`(含多语言变体)
|
|
66
66
|
|
|
67
|
+
## 本地运行或托管
|
|
68
|
+
|
|
69
|
+
**本地运行免费且功能完整。** 只要你自己运行这个服务器,所有工具都可用,
|
|
70
|
+
没有功能缩水的版本。
|
|
71
|
+
|
|
72
|
+
需要:Node 18 或更高版本、约 **320 MB** 磁盘空间(Puppeteer 会下载 Chrome),
|
|
73
|
+
以及任务运行期间约 1 GB 内存。笔记本电脑没问题,小型 VPS 或受限的办公电脑
|
|
74
|
+
则未必。
|
|
75
|
+
|
|
76
|
+
**[cloud.pinepaper.studio](https://cloud.pinepaper.studio) 替你运行同一个
|
|
77
|
+
服务器** —— 相同的工具、相同的版本,通过 HTTP 提供,无需安装,也不需要在你的
|
|
78
|
+
机器上运行浏览器。
|
|
79
|
+
|
|
80
|
+
托管需要成本,因此是付费的:**Starter 每月 $4.99**(每天 500 次请求)与
|
|
81
|
+
**Pro 每月 $14.99**(每天 5,000 次,另含动画模板库)。如果你能在本地运行,
|
|
82
|
+
就在本地运行 —— 这样不会损失任何功能。
|
|
83
|
+
|
|
67
84
|
## 更多
|
|
68
85
|
|
|
69
86
|
完整的工具参考、工具包(toolkit)与令牌预算、关系类型列表等,请见 [英文版 README](README.md)。文档也可以在 MCP 协议内读取:资源 `pinepaper://docs/agent-guide` 是为 AI 代理准备的规范工作流。
|