Add pdfcraft-mcp, figcraft-mcp and vectorcraft-mcp 0.1.0.
This commit is contained in:
1 parent
694de7d1d7
commit
ad0ea86adc
43 files changed
+1958
-27
No files matched your search
@@ -44,6 +44,13 @@ skills/<name>/
|
||||
|
||||
Jedes Skill mit `extension/` bekommt beim Build **automatisch ein eigenes Cursor-Plugin** (`dist/<name>-cursor-v<ver>.zip`) und eine Tabellenzeile inkl. 1-Klick-Deeplink. 1:1 zur Claude-Seite: eine `.mcpb` ↔ ein Cursor-Plugin. **Keine Sammel-Plugins.** Build: `scripts/build-cursor` (von `package-all` aufgerufen). Nur `cursor/plugin-template/` liegt im Git; Ausgaben unter `dist/cursor/`.
|
||||
|
||||
## Besonderheiten einzelner Server
|
||||
|
||||
- **PdfCraft** startet mit `--compact`. Ohne die Option sind es 171 Werkzeuge mit etwa 176 KB Beschreibung. Cursor begrenzt die aktiven Werkzeuge (siehe [docs/CURSOR.md](docs/CURSOR.md)); dieselbe Option steht deshalb auch im Plugin.
|
||||
- **FigCraft:** kein `--attach`. Mit Lese- und Schreib-Ordner ist die Anbindung an eine laufende App nicht erlaubt.
|
||||
- **VectorCraft:** ohne Ordner-Argumente versucht der Server zuerst `127.0.0.1:7979`. Mit Lese- und Schreib-Ordner läuft er ohne Fenster. Die Cursor-Übersetzung muss diese Argumente übernehmen.
|
||||
- **Schreib-Ordner im Lese-Ordner** (Standard: Dokumente und Dokumente/Claude). PdfCraft und VectorCraft öffnen eigene Ergebnisse sonst nicht wieder. Bei FigCraft ist die Lage egal; der Standard bleibt derselbe.
|
||||
|
||||
## Neuer Skill
|
||||
|
||||
1. `scripts/new-skill.sh <name>` bzw. `scripts\new-skill.ps1 -Name <name>`
|
||||
|
||||
@@ -10,7 +10,10 @@ Sammlung von Skills für Claude und Cursor. Jeder Skill ist ein abgeschlossener
|
||||
<!-- skills:start -->
|
||||
| Skill | Kurzbeschreibung | Version | Doku | Download | Erweiterung (.mcpb) | Cursor-Plugin | Cursor 1-Klick |
|
||||
|---|---|---|---|---|---|---|---|
|
||||
| [figcraft-mcp](skills/figcraft-mcp/) | Bedienoberflächen und Screens über den FigCraft-MCP-Server entwerfen, bearbeiten, ansehen und als PNG, PDF, SVG oder .fig exportieren (Figma-Klon, frühe Alpha). Verwenden, wenn FigCraft-Werkzeuge verbunden sind oder der Nutzer FigCraft nennt; typisch für HMI-Masken von Maschinensteuerungen, App-/Web-Entwürfe, Klick-Prototypen und Komponenten. | 0.1.0 | [README](skills/figcraft-mcp/README.md) | [figcraft-mcp-v0.1.0.zip](https://git.gundel.dev/dg/claude-skills/releases/download/figcraft-mcp%2Fv0.1.0/figcraft-mcp-v0.1.0.zip) | [figcraft-mcp-v0.1.0.mcpb](https://git.gundel.dev/dg/claude-skills/releases/download/figcraft-mcp%2Fv0.1.0/figcraft-mcp-v0.1.0.mcpb) | [figcraft-mcp-cursor-v0.1.0.zip](https://git.gundel.dev/dg/claude-skills/releases/download/figcraft-mcp%2Fv0.1.0/figcraft-mcp-cursor-v0.1.0.zip) | [Add to Cursor](cursor://anysphere.cursor-deeplink/mcp/install?name=figcraft&config=eyJjb21tYW5kIjoiQzovUHJvZ3JhbSBGaWxlcy9GaWdDcmFmdC9maWdjcmFmdC1jbGkuZXhlIiwiYXJncyI6WyJtY3AiLCItLWF1dG9tYXRpb24tcmVhZC1yb290IiwiJHt1c2VySG9tZX0vRG9jdW1lbnRzIiwiLS1hdXRvbWF0aW9uLXdyaXRlLXJvb3QiLCIke3VzZXJIb21lfS9Eb2N1bWVudHMvQ2xhdWRlIl19) |
|
||||
| [gridcraft-mcp](skills/gridcraft-mcp/) | Excel-Arbeitsmappen (.xlsx, .csv) mit dem GridCraft-MCP-Server erstellen, öffnen, ändern, berechnen und prüfen. Verwenden, wenn GridCraft-Werkzeuge verbunden sind oder der Nutzer GridCraft nennt; typisch für Kalkulationen, Stücklisten (BOM), Listen, Diagramme, PDF-Export. Nicht für eingebaute xlsx-Hilfen ohne GridCraft-Server. | 0.3.0 | [README](skills/gridcraft-mcp/README.md) | [gridcraft-mcp-v0.3.0.zip](https://git.gundel.dev/dg/claude-skills/releases/download/gridcraft-mcp%2Fv0.3.0/gridcraft-mcp-v0.3.0.zip) | [gridcraft-mcp-v0.3.0.mcpb](https://git.gundel.dev/dg/claude-skills/releases/download/gridcraft-mcp%2Fv0.3.0/gridcraft-mcp-v0.3.0.mcpb) | [gridcraft-mcp-cursor-v0.3.0.zip](https://git.gundel.dev/dg/claude-skills/releases/download/gridcraft-mcp%2Fv0.3.0/gridcraft-mcp-cursor-v0.3.0.zip) | [Add to Cursor](cursor://anysphere.cursor-deeplink/mcp/install?name=gridcraft&config=eyJjb21tYW5kIjoiQzovUHJvZ3JhbSBGaWxlcy9HcmlkQ3JhZnQvZ3JpZGNyYWZ0LWNsaS5leGUiLCJhcmdzIjpbIm1jcCJdfQ) |
|
||||
| [pdfcraft-mcp](skills/pdfcraft-mcp/) | PDFs über den PdfCraft-MCP-Server öffnen, auslesen, schwärzen, bereinigen, zusammenführen, aufteilen, mit Kopf-/Fußzeile, Seitenzahlen, Wasserzeichen und Lesezeichen versehen und nach Word exportieren. Verwenden, wenn PdfCraft-Werkzeuge verbunden sind oder der Nutzer PdfCraft nennt; typisch für Schwärzen vor der Weitergabe, Dokumentationspakete (Betriebsanleitung, Datenblätter, Konformitätserklärung), Angebote und Zeichnungen auslesen. | 0.1.0 | [README](skills/pdfcraft-mcp/README.md) | [pdfcraft-mcp-v0.1.0.zip](https://git.gundel.dev/dg/claude-skills/releases/download/pdfcraft-mcp%2Fv0.1.0/pdfcraft-mcp-v0.1.0.zip) | [pdfcraft-mcp-v0.1.0.mcpb](https://git.gundel.dev/dg/claude-skills/releases/download/pdfcraft-mcp%2Fv0.1.0/pdfcraft-mcp-v0.1.0.mcpb) | [pdfcraft-mcp-cursor-v0.1.0.zip](https://git.gundel.dev/dg/claude-skills/releases/download/pdfcraft-mcp%2Fv0.1.0/pdfcraft-mcp-cursor-v0.1.0.zip) | [Add to Cursor](cursor://anysphere.cursor-deeplink/mcp/install?name=pdfcraft&config=eyJjb21tYW5kIjoiQzovUHJvZ3JhbSBGaWxlcy9QZGZDcmFmdC9wZGZjcmFmdC1jbGkuZXhlIiwiYXJncyI6WyJtY3AiLCItLWNvbXBhY3QiLCItLWF1dG9tYXRpb24tcmVhZC1yb290IiwiJHt1c2VySG9tZX0vRG9jdW1lbnRzIiwiLS1hdXRvbWF0aW9uLXdyaXRlLXJvb3QiLCIke3VzZXJIb21lfS9Eb2N1bWVudHMvQ2xhdWRlIl19) |
|
||||
| [vectorcraft-mcp](skills/vectorcraft-mcp/) | Vektorgrafiken über den VectorCraft-MCP-Server zeichnen, bearbeiten und als SVG, PDF, DXF, EPS, PNG exportieren (Illustrator-Klon); öffnet auch DXF, SVG, PDF, AI, EPS. Verwenden, wenn VectorCraft-Werkzeuge verbunden sind oder der Nutzer VectorCraft nennt; typisch für Typenschilder und Laser-/Gravurvorlagen als DXF in mm, Hinweisschilder, Piktogramme, Skizzen und Illustrationen für Betriebsanleitungen. | 0.1.0 | [README](skills/vectorcraft-mcp/README.md) | [vectorcraft-mcp-v0.1.0.zip](https://git.gundel.dev/dg/claude-skills/releases/download/vectorcraft-mcp%2Fv0.1.0/vectorcraft-mcp-v0.1.0.zip) | [vectorcraft-mcp-v0.1.0.mcpb](https://git.gundel.dev/dg/claude-skills/releases/download/vectorcraft-mcp%2Fv0.1.0/vectorcraft-mcp-v0.1.0.mcpb) | [vectorcraft-mcp-cursor-v0.1.0.zip](https://git.gundel.dev/dg/claude-skills/releases/download/vectorcraft-mcp%2Fv0.1.0/vectorcraft-mcp-cursor-v0.1.0.zip) | [Add to Cursor](cursor://anysphere.cursor-deeplink/mcp/install?name=vectorcraft&config=eyJjb21tYW5kIjoiQzovUHJvZ3JhbSBGaWxlcy9WZWN0b3JDcmFmdC92ZWN0b3JjcmFmdC1jbGkuZXhlIiwiYXJncyI6WyJtY3AiLCItLWF1dG9tYXRpb24tcmVhZC1yb290IiwiJHt1c2VySG9tZX0vRG9jdW1lbnRzIiwiLS1hdXRvbWF0aW9uLXdyaXRlLXJvb3QiLCIke3VzZXJIb21lfS9Eb2N1bWVudHMvQ2xhdWRlIl19) |
|
||||
| [wordcraft-mcp](skills/wordcraft-mcp/) | Word-Dokumente (.docx, .odt, .md, PDF) mit dem WordCraft-MCP-Server erstellen, bearbeiten und prüfen (inkl. Nachverfolgung). Verwenden, wenn WordCraft-Werkzeuge verbunden sind oder der Nutzer WordCraft nennt; typisch für Angebote, Briefe, Betriebsanleitungen, Arbeitsanweisungen, 8D-Reports, Vorlagen. Nicht für eingebaute docx-Hilfen ohne WordCraft-Server. | 0.3.0 | [README](skills/wordcraft-mcp/README.md) | [wordcraft-mcp-v0.3.0.zip](https://git.gundel.dev/dg/claude-skills/releases/download/wordcraft-mcp%2Fv0.3.0/wordcraft-mcp-v0.3.0.zip) | [wordcraft-mcp-v0.3.0.mcpb](https://git.gundel.dev/dg/claude-skills/releases/download/wordcraft-mcp%2Fv0.3.0/wordcraft-mcp-v0.3.0.mcpb) | [wordcraft-mcp-cursor-v0.3.0.zip](https://git.gundel.dev/dg/claude-skills/releases/download/wordcraft-mcp%2Fv0.3.0/wordcraft-mcp-cursor-v0.3.0.zip) | [Add to Cursor](cursor://anysphere.cursor-deeplink/mcp/install?name=wordcraft&config=eyJjb21tYW5kIjoiQzovUHJvZ3JhbSBGaWxlcy9Xb3JkQ3JhZnQvd29yZGNyYWZ0LWNsaS5leGUiLCJhcmdzIjpbIm1jcCIsIi0tYXV0aG9yIiwiQ2xhdWRlIiwiLS1hdXRvbWF0aW9uLXJlYWQtcm9vdCIsIiR7dXNlckhvbWV9L0RvY3VtZW50cyIsIi0tYXV0b21hdGlvbi13cml0ZS1yb290IiwiJHt1c2VySG9tZX0vRG9jdW1lbnRzL0NsYXVkZSJdfQ) |
|
||||
<!-- skills:end -->
|
||||
|
||||
@@ -25,8 +28,8 @@ Sammlung von Skills für Claude und Cursor. Jeder Skill ist ein abgeschlossener
|
||||
1. Voraussetzung: ArtCraft-Launcher mit der jeweiligen App ([Abschnitt 1](docs/INSTALLATION.md#1-artcraft-launcher-und-apps-installieren)).
|
||||
2. Cursor-Plugin-ZIP aus der Tabelle laden → nach `~/.cursor/plugins/local/<skill>` entpacken → **Developer: Reload Window**. Jedes Werkzeug einzeln, wie in Claude.
|
||||
3. Alternativ: „Add to Cursor“ (1-Klick) für den MCP-Server und den Skill-Ordner nach `~/.cursor/skills/` kopieren.
|
||||
4. WordCraft: Lese-/Schreib-Ordner in Plugin-Einstellungen bzw. `~/.cursor/mcp.json` prüfen (Standard: Lese = Dokumente, Schreib = Dokumente\Claude).
|
||||
5. Test: im Agent „Sind die WordCraft-Werkzeuge verfügbar?“
|
||||
4. WordCraft, PdfCraft, FigCraft und VectorCraft: Lese-/Schreib-Ordner prüfen (Standard: Lese = Dokumente, Schreib = Dokumente\Claude, Schreib-Ordner darin). PdfCraft startet mit `--compact`. VectorCraft nie ohne die Ordner-Argumente starten.
|
||||
5. Test: im Agent „Sind die WordCraft-Werkzeuge verfügbar?“ – und je App einen kleinen Auftrag aus dem Skill.
|
||||
6. Auch Cursor sendet Inhalte an Cloud-Modelle → Datenschutz-Ampel in den Skills beachten.
|
||||
|
||||
Mehr: [docs/CURSOR.md](docs/CURSOR.md).
|
||||
|
||||
+68
-6
@@ -1,4 +1,4 @@
|
||||
# Cursor: WordCraft und GridCraft
|
||||
# Cursor: Craft-Werkzeuge
|
||||
|
||||
Kurzfassung in der [Wurzel-README](../README.md). Für Claude Desktop: [INSTALLATION.md](INSTALLATION.md).
|
||||
|
||||
@@ -6,7 +6,7 @@ Jedes Werkzeug ist ein **eigenes** Cursor-Plugin (1:1 zur Claude-`.mcpb`). Keine
|
||||
|
||||
## Voraussetzung
|
||||
|
||||
1. [ArtCraft-Launcher](https://getartcraft.com/apps) und darin WordCraft bzw. GridCraft (Standardpfad `C:\Program Files\…`).
|
||||
1. [ArtCraft-Launcher](https://getartcraft.com/apps) und darin die jeweilige App (Standardpfad `C:\Program Files\…\<app>-cli.exe`, nicht auf PATH). FigCraft steht im Katalog seit Launcher 0.4.1.
|
||||
2. Cursor Desktop.
|
||||
|
||||
## Plugin installieren (empfohlen)
|
||||
@@ -16,7 +16,9 @@ Jedes Werkzeug ist ein **eigenes** Cursor-Plugin (1:1 zur Claude-`.mcpb`). Keine
|
||||
3. **Developer: Reload Window**.
|
||||
4. Unter Customize prüfen, dass Skill und MCP-Server sichtbar sind.
|
||||
|
||||
WordCraft: Lese-/Schreib-Ordner in den Plugin-Variablen (Configure) oder in `mcp.json` prüfen. Standard: Lese = `${userHome}/Documents`, Schreib = `${userHome}/Documents/Claude`.
|
||||
WordCraft, PdfCraft, FigCraft und VectorCraft: Lese-/Schreib-Ordner in den Plugin-Variablen (Configure) oder in `mcp.json` prüfen. Standard: Lese = `${userHome}/Documents`, Schreib = `${userHome}/Documents/Claude`. Der Schreib-Ordner muss im Lese-Ordner liegen (PdfCraft und VectorCraft lehnen sonst das erneute Öffnen ab; bei FigCraft ist die Lage egal, der Standard bleibt).
|
||||
|
||||
PdfCraft startet mit `--compact` (17 Kernwerkzeuge plus `tool_search`/`tool_call`). VectorCraft immer mit beiden Ordner-Argumenten starten, sonst versucht der Server zuerst `127.0.0.1:7979`. FigCraft ohne `--attach`.
|
||||
|
||||
## Alternativ: nur MCP + Skill
|
||||
|
||||
@@ -54,21 +56,81 @@ GridCraft:
|
||||
}
|
||||
```
|
||||
|
||||
PdfCraft (`--compact` nicht weglassen):
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"pdfcraft": {
|
||||
"command": "C:\\Program Files\\PdfCraft\\pdfcraft-cli.exe",
|
||||
"args": [
|
||||
"mcp",
|
||||
"--compact",
|
||||
"--automation-read-root", "${userHome}/Documents",
|
||||
"--automation-write-root", "${userHome}/Documents/Claude"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
FigCraft (kein `--attach`):
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"figcraft": {
|
||||
"command": "C:\\Program Files\\FigCraft\\figcraft-cli.exe",
|
||||
"args": [
|
||||
"mcp",
|
||||
"--automation-read-root", "${userHome}/Documents",
|
||||
"--automation-write-root", "${userHome}/Documents/Claude"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
VectorCraft (Ordner-Argumente nicht weglassen):
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"vectorcraft": {
|
||||
"command": "C:\\Program Files\\VectorCraft\\vectorcraft-cli.exe",
|
||||
"args": [
|
||||
"mcp",
|
||||
"--automation-read-root", "${userHome}/Documents",
|
||||
"--automation-write-root", "${userHome}/Documents/Claude"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Unterstützte Variablen in `mcp.json`: `${userHome}`, `${env:NAME}`, `${workspaceFolder}`, `${pathSeparator}` (siehe Cursor-MCP-Doku). In Plugin-`mcp.json` zusätzlich Plugin-Variablen (`${READ_ROOT}`, …) und `${CURSOR_PLUGIN_ROOT}` (hier unnötig, keine gebündelte EXE).
|
||||
|
||||
**1-Klick-Deeplink:** `config` ist nur das Transport-Objekt (`{command, args}`), der Servername steht in `name=`. Pfade mit Schrägstrich (`C:/Program Files/...`). Ein Wrapper `{ servername: {command…} }` im `config` führt in Cursor zu leerem `command`.
|
||||
|
||||
## Werkzeug-Grenze
|
||||
|
||||
Die [MCP-Doku](https://cursor.com/docs/mcp) nennt keine feste Höchstzahl. Die [IDE-Release-Notes](https://cursor.com/docs/release-notes/ide) sagen, dass Agenten bei vielen MCP-Werkzeugen nicht mehr abbrechen, sondern die an das Modell gesendete Menge kappen. Die zuletzt von Cursor benannte Grenze lag bei **80** Werkzeugen, angehoben von 40 in Cursor 1.5 (Team-Antwort im [Forum](https://forum.cursor.com/t/cursor-v1-5-release-discussions/131103), August 2025).
|
||||
|
||||
PdfCraft ohne `--compact` liefert 171 Werkzeuge mit etwa 176 KB Beschreibung und liegt über dieser Grenze. Das Plugin übergibt deshalb `--compact`.
|
||||
|
||||
## Test
|
||||
|
||||
Im Agent: „Sind die WordCraft-Werkzeuge verfügbar?“ bzw. GridCraft. Kleines Testdokument im Schreib-Ordner anlegen.
|
||||
Im Agent: „Sind die WordCraft-Werkzeuge verfügbar?“ bzw. die andere App. PdfCraft: Test-PDF schwärzen und `doc_audit_redactions`. FigCraft: kleine HMI-Maske als PNG. VectorCraft: Typenschild 100×50 mm als DXF, Maße im CAD prüfen.
|
||||
|
||||
## Probleme
|
||||
|
||||
| Problem | Lösung |
|
||||
|---|---|
|
||||
| Keine Werkzeuge | Plugin unter `plugins/local/<skill>`? Reload? CLI unter `C:\Program Files\…`? |
|
||||
| WordCraft path rejected | Schreib-Ordner prüfen (`WRITE_ROOT` / mcp.json). |
|
||||
| Doppelte Server | Alten Eintrag in `~/.cursor/mcp.json` entfernen, wenn das Plugin denselben Namen (`wordcraft` / `gridcraft`) registriert. |
|
||||
| path rejected | Schreib-Ordner prüfen (`WRITE_ROOT` / mcp.json). Er muss im Lese-Ordner liegen. |
|
||||
| VectorCraft spricht Port 7979 an | Ordner-Argumente fehlen. Plugin-`mcp.json` prüfen. |
|
||||
| Zu viele Werkzeuge / PdfCraft wirkt abgeschnitten | `--compact` muss in den Args stehen. |
|
||||
| Doppelte Server | Alten Eintrag in `~/.cursor/mcp.json` entfernen, wenn das Plugin denselben Namen (`wordcraft`, `gridcraft`, `pdfcraft`, `figcraft`, `vectorcraft`) registriert. |
|
||||
|
||||
## Datenschutz
|
||||
|
||||
|
||||
+35
-15
@@ -1,6 +1,6 @@
|
||||
# Claude-Werkzeuge für Word und Excel einrichten
|
||||
# Claude-Werkzeuge einrichten
|
||||
|
||||
Mit dieser Anleitung kann Claude Word-Dokumente (über **WordCraft for Claude**) und Excel-Tabellen (über **GridCraft for Claude**) direkt auf deinem Rechner erstellen und bearbeiten. Dauer: etwa 10 Minuten. Du brauchst keine Programmierkenntnisse.
|
||||
Mit dieser Anleitung kann Claude auf deinem Rechner Word-Dokumente, Excel-Tabellen, PDFs, Oberflächen-Entwürfe und Vektorgrafiken bearbeiten. Dauer: etwa 10 Minuten je Werkzeug. Du brauchst keine Programmierkenntnisse.
|
||||
|
||||
Für jedes Werkzeug installierst du zwei Dinge:
|
||||
|
||||
@@ -23,18 +23,29 @@ Ohne Erweiterung kann Claude nichts tun, ohne Skill macht es mehr Fehler. Instal
|
||||
|
||||
## 1. ArtCraft-Launcher und Apps installieren
|
||||
|
||||
Installiere den [ArtCraft-Launcher](https://getartcraft.com/apps) und darin **WordCraft** und **GridCraft**. Den Standardpfad nicht ändern: `C:\Program Files\WordCraft` bzw. `C:\Program Files\GridCraft`. Die Claude-Erweiterung enthält die Programme **nicht**.
|
||||
Installiere den [ArtCraft-Launcher](https://getartcraft.com/apps) und darin die Apps, die du brauchst. Den Standardpfad nicht ändern. Die CLI liegt im Programmordner und ist **nicht** auf PATH. Die Claude-Erweiterung enthält die Programme **nicht**.
|
||||
|
||||
(Installer auch unter [GitHub Releases](https://github.com/storytold/craft-launcher/releases).)
|
||||
| App | Wofür | CLI |
|
||||
|---|---|---|
|
||||
| WordCraft | Word-Dokumente | `C:\Program Files\WordCraft\wordcraft-cli.exe` |
|
||||
| GridCraft | Excel-Tabellen | `C:\Program Files\GridCraft\gridcraft-cli.exe` |
|
||||
| PdfCraft | Schwärzen, Doku-Pakete | `C:\Program Files\PdfCraft\pdfcraft-cli.exe` |
|
||||
| FigCraft | HMI-/Oberflächen-Entwürfe | `C:\Program Files\FigCraft\figcraft-cli.exe` |
|
||||
| VectorCraft | Typenschilder, Schilder, DXF für Laser | `C:\Program Files\VectorCraft\vectorcraft-cli.exe` |
|
||||
|
||||
FigCraft steht im Launcher seit Version **0.4.1**. Ältere Kataloge mit zwölf Apps führen es nicht. Fehlt die Kachel, den Launcher aktualisieren. Installer: [GitHub Releases](https://github.com/storytold/craft-launcher/releases).
|
||||
|
||||
---
|
||||
|
||||
## 2. Dateien herunterladen
|
||||
|
||||
Lade jeweils die Version **0.3.0** herunter:
|
||||
Lade die passende Version herunter (WordCraft und GridCraft **0.3.0**, PdfCraft, FigCraft und VectorCraft **0.1.0**):
|
||||
|
||||
- [wordcraft-mcp-v0.3.0.mcpb](https://git.gundel.dev/dg/claude-skills/releases/download/wordcraft-mcp%2Fv0.3.0/wordcraft-mcp-v0.3.0.mcpb) und [wordcraft-mcp-v0.3.0.zip](https://git.gundel.dev/dg/claude-skills/releases/download/wordcraft-mcp%2Fv0.3.0/wordcraft-mcp-v0.3.0.zip)
|
||||
- [gridcraft-mcp-v0.3.0.mcpb](https://git.gundel.dev/dg/claude-skills/releases/download/gridcraft-mcp%2Fv0.3.0/gridcraft-mcp-v0.3.0.mcpb) und [gridcraft-mcp-v0.3.0.zip](https://git.gundel.dev/dg/claude-skills/releases/download/gridcraft-mcp%2Fv0.3.0/gridcraft-mcp-v0.3.0.zip)
|
||||
- [pdfcraft-mcp-v0.1.0.mcpb](https://git.gundel.dev/dg/claude-skills/releases/download/pdfcraft-mcp%2Fv0.1.0/pdfcraft-mcp-v0.1.0.mcpb) und [pdfcraft-mcp-v0.1.0.zip](https://git.gundel.dev/dg/claude-skills/releases/download/pdfcraft-mcp%2Fv0.1.0/pdfcraft-mcp-v0.1.0.zip)
|
||||
- [figcraft-mcp-v0.1.0.mcpb](https://git.gundel.dev/dg/claude-skills/releases/download/figcraft-mcp%2Fv0.1.0/figcraft-mcp-v0.1.0.mcpb) und [figcraft-mcp-v0.1.0.zip](https://git.gundel.dev/dg/claude-skills/releases/download/figcraft-mcp%2Fv0.1.0/figcraft-mcp-v0.1.0.zip)
|
||||
- [vectorcraft-mcp-v0.1.0.mcpb](https://git.gundel.dev/dg/claude-skills/releases/download/vectorcraft-mcp%2Fv0.1.0/vectorcraft-mcp-v0.1.0.mcpb) und [vectorcraft-mcp-v0.1.0.zip](https://git.gundel.dev/dg/claude-skills/releases/download/vectorcraft-mcp%2Fv0.1.0/vectorcraft-mcp-v0.1.0.zip)
|
||||
|
||||
Die ZIP-Dateien **nicht entpacken**.
|
||||
|
||||
@@ -48,12 +59,12 @@ Für jede `.mcpb`-Datei:
|
||||
2. Die `.mcpb`-Datei **doppelklicken** – oder sie ins Claude-Fenster ziehen.
|
||||
*Klappt beides nicht:* Einstellungen → Erweiterungen → Erweiterte Einstellungen → „Erweiterung installieren…“ → Datei auswählen.
|
||||
3. Es öffnet sich ein Installationsfenster. Angaben prüfen und bestätigen.
|
||||
4. **Nur bei WordCraft for Claude** fragt Claude nach zwei Ordnern:
|
||||
- **Lese-Ordner (weit):** z. B. `Dokumente` oder der Benutzerordner. Lesen ist per Freigabe-Dialog kontrollierbar.
|
||||
- **Schreib-Ordner (eng):** nur hier darf Claude speichern – z. B. `Dokumente\Claude`. Nicht denselben wie den Lese-Ordner.
|
||||
4. **WordCraft, PdfCraft, FigCraft und VectorCraft** fragen nach zwei Ordnern. GridCraft nicht.
|
||||
- **Lese-Ordner (weit):** `Dokumente`.
|
||||
- **Schreib-Ordner (eng, und bei PdfCraft und VectorCraft darin):** `Dokumente\Claude`. PdfCraft und VectorCraft öffnen eigene Ergebnisse sonst nicht wieder. Bei FigCraft ist die Lage egal; denselben Standard verwenden.
|
||||
5. Installieren. Die Erweiterung erscheint unter Einstellungen → Erweiterungen.
|
||||
|
||||
**Danach unter Einstellungen → Erweiterungen prüfen, dass beide Erweiterungen eingeschaltet sind.** Frisch installierte Erweiterungen können ausgeschaltet sein.
|
||||
**Danach unter Einstellungen → Erweiterungen prüfen, dass die Erweiterungen eingeschaltet sind.** Frisch installierte Erweiterungen können ausgeschaltet sein.
|
||||
|
||||
> **Windows meldet „Der Computer wurde durch Windows geschützt“ oder Defender schlägt an?**
|
||||
> Die Erweiterungen sind nicht signiert. Nur installieren, wenn du der Quelle vertraust.
|
||||
@@ -67,7 +78,7 @@ Für jede `.zip`-Datei:
|
||||
1. In Claude auf **„+“** → **„Skill erstellen“** → **„Skill hochladen“**.
|
||||
2. Die ZIP-Datei auswählen und bestätigen.
|
||||
|
||||
Die Skills heißen danach `wordcraft-mcp` und `gridcraft-mcp`.
|
||||
Die Skills heißen danach `wordcraft-mcp`, `gridcraft-mcp`, `pdfcraft-mcp`, `figcraft-mcp` und `vectorcraft-mcp`.
|
||||
|
||||
---
|
||||
|
||||
@@ -81,11 +92,19 @@ Claude **komplett beenden** – auch das Symbol unten rechts in der Taskleiste (
|
||||
|
||||
Einen **neuen** Chat öffnen (offene Chats sehen neue Werkzeuge evtl. erst später) und eintippen:
|
||||
|
||||
> Sind die WordCraft- und GridCraft-Werkzeuge verfügbar? Leg zum Test eine kleine Excel-Tabelle mit drei Zeilen in meinem Claude-Ausgabeordner an.
|
||||
> Sind die Werkzeuge verfügbar?
|
||||
|
||||
Claude sollte beide Werkzeuge finden und eine `.xlsx`-Datei im Ausgabeordner speichern. Beim ersten Mal fragt Claude, ob es die Werkzeuge benutzen darf – erlauben. Die Werkzeuge heißen mit Präfix `…WordCraft_for_Claude…` bzw. `…GridCraft_for_Claude…`.
|
||||
Je App ein kurzer Test:
|
||||
|
||||
Lass bei WordCraft `open_document` / `save_document` und bei GridCraft `open_workbook` / `save_workbook` / `execute_command` auf **„Immer fragen“**, wenn du Pfade mitkontrollieren willst.
|
||||
- **PdfCraft:** ein Test-PDF schwärzen und `doc_audit_redactions` ausführen.
|
||||
- **FigCraft:** eine kleine HMI-Maske als PNG exportieren.
|
||||
- **VectorCraft:** ein Typenschild 100×50 mm als DXF exportieren und die Maße im CAD prüfen.
|
||||
- **GridCraft:** eine kleine Excel-Tabelle mit drei Zeilen im Ausgabeordner anlegen.
|
||||
- **WordCraft:** ein kurzes Dokument im Schreib-Ordner speichern.
|
||||
|
||||
Beim ersten Mal fragt Claude, ob es die Werkzeuge benutzen darf – erlauben. Die Werkzeuge heißen mit Präfix `…PdfCraft_for_Claude…` (und entsprechend für die anderen Apps).
|
||||
|
||||
Lass bei WordCraft `open_document` / `save_document`, bei GridCraft `open_workbook` / `save_workbook` / `execute_command`, bei PdfCraft `doc_open` / `doc_save` / `tool_call` und bei FigCraft und VectorCraft `open_file` / `save_file` / `export` auf **„Immer fragen“**, wenn du Pfade mitkontrollieren willst.
|
||||
|
||||
---
|
||||
|
||||
@@ -103,8 +122,9 @@ Lass bei WordCraft `open_document` / `save_document` und bei GridCraft `open_wor
|
||||
| Problem | Lösung |
|
||||
|---|---|
|
||||
| Claude sagt, die Werkzeuge fehlen | Einstellungen → Erweiterungen: ist die Erweiterung eingeschaltet? Einschalten, dann neuen Chat öffnen. |
|
||||
| Werkzeuge fehlen, Erweiterung ist eingeschaltet | Prüfen, ob `C:\Program Files\WordCraft\wordcraft-cli.exe` (bzw. `C:\Program Files\GridCraft\gridcraft-cli.exe`) existiert; sonst über den ArtCraft-Launcher installieren. |
|
||||
| WordCraft speichert nicht („path rejected“) | Claude wollte außerhalb des Schreib-Ordners speichern. Ordner prüfen: Einstellungen → Erweiterungen → WordCraft for Claude → Einstellungen. |
|
||||
| Werkzeuge fehlen, Erweiterung ist eingeschaltet | Prüfen, ob `C:\Program Files\<App>\<app>-cli.exe` existiert; sonst über den ArtCraft-Launcher installieren. |
|
||||
| Speichern scheitert („path rejected“) | Ziel lag außerhalb des Schreib-Ordners, oder (PdfCraft, VectorCraft) der Schreib-Ordner liegt nicht im Lese-Ordner. Einstellungen → Erweiterungen → die App → Einstellungen. |
|
||||
| FigCraft fehlt im Launcher | Launcher auf 0.4.1 oder neuer aktualisieren. |
|
||||
| Excel-Formeln zeigen `#NAME?` | Claude hat deutsche Funktionsnamen benutzt. Sagen: „Nutze englische Formeln, wie im Skill beschrieben.“ |
|
||||
| Zahlen sehen im Chat wie `1,450.00 €` aus | Normal. In Excel erscheinen sie richtig als `1.450,00 €`. |
|
||||
| Doppelklick auf `.mcpb` tut nichts | Über Einstellungen → Erweiterungen → Erweiterte Einstellungen → „Erweiterung installieren…“ gehen. |
|
||||
|
||||
@@ -8,6 +8,9 @@ $CursorDist = Join-Path $DistDir 'cursor'
|
||||
$ServerKeys = @{
|
||||
'wordcraft-mcp' = 'wordcraft'
|
||||
'gridcraft-mcp' = 'gridcraft'
|
||||
'pdfcraft-mcp' = 'pdfcraft'
|
||||
'figcraft-mcp' = 'figcraft'
|
||||
'vectorcraft-mcp' = 'vectorcraft'
|
||||
}
|
||||
|
||||
function Get-McpServerKey([string]$SkillName) {
|
||||
|
||||
@@ -12,7 +12,13 @@ import json, os, re, shutil, sys
|
||||
from pathlib import Path
|
||||
|
||||
root, skills_dir, cursor_dist, name_filter = Path(sys.argv[1]), Path(sys.argv[2]), Path(sys.argv[3]), sys.argv[4]
|
||||
SERVER_KEYS = {"wordcraft-mcp": "wordcraft", "gridcraft-mcp": "gridcraft"}
|
||||
SERVER_KEYS = {
|
||||
"wordcraft-mcp": "wordcraft",
|
||||
"gridcraft-mcp": "gridcraft",
|
||||
"pdfcraft-mcp": "pdfcraft",
|
||||
"figcraft-mcp": "figcraft",
|
||||
"vectorcraft-mcp": "vectorcraft",
|
||||
}
|
||||
|
||||
def skill_names():
|
||||
names = sorted([p.name for p in skills_dir.iterdir() if p.is_dir()], key=lambda s: s)
|
||||
|
||||
+20
-1
@@ -27,6 +27,24 @@ $defaults = @{
|
||||
Repo = 'https://github.com/storytold/gridcraft'
|
||||
RepoSlug = 'storytold/gridcraft'
|
||||
}
|
||||
'pdfcraft-mcp' = @{
|
||||
ExeName = 'pdfcraft-cli.exe'
|
||||
Default = 'C:\Program Files\PdfCraft\pdfcraft-cli.exe'
|
||||
Repo = 'https://github.com/storytold/pdfcraft'
|
||||
RepoSlug = 'storytold/pdfcraft'
|
||||
}
|
||||
'figcraft-mcp' = @{
|
||||
ExeName = 'figcraft-cli.exe'
|
||||
Default = 'C:\Program Files\FigCraft\figcraft-cli.exe'
|
||||
Repo = 'https://github.com/storytold/figcraft'
|
||||
RepoSlug = 'storytold/figcraft'
|
||||
}
|
||||
'vectorcraft-mcp' = @{
|
||||
ExeName = 'vectorcraft-cli.exe'
|
||||
Default = 'C:\Program Files\VectorCraft\vectorcraft-cli.exe'
|
||||
Repo = 'https://github.com/storytold/vectorcraft'
|
||||
RepoSlug = 'storytold/vectorcraft'
|
||||
}
|
||||
}
|
||||
|
||||
if (-not $defaults.ContainsKey($Name)) {
|
||||
@@ -37,7 +55,7 @@ $meta = $defaults[$Name]
|
||||
$src = if ($CliPath) { $CliPath } else { $meta.Default }
|
||||
if (-not (Test-Path -LiteralPath $src)) {
|
||||
Write-Host "CLI fehlt: $src"
|
||||
Write-Host "Bitte WordCraft/GridCraft ueber den ArtCraft-Launcher installieren, oder -CliPath angeben."
|
||||
Write-Host "Bitte die App ueber den ArtCraft-Launcher installieren, oder -CliPath angeben."
|
||||
exit 1
|
||||
}
|
||||
|
||||
@@ -97,3 +115,4 @@ foreach ($f in @('LICENSE-MIT', 'LICENSE-APACHE', 'NOTICE')) {
|
||||
}
|
||||
|
||||
Write-Host "OK $Name $ver (nicht gebundelt) $src"
|
||||
exit 0
|
||||
+19
-1
@@ -31,6 +31,24 @@ case "$name" in
|
||||
repo='https://github.com/storytold/gridcraft'
|
||||
repo_slug='storytold/gridcraft'
|
||||
;;
|
||||
pdfcraft-mcp)
|
||||
exe_name=pdfcraft-cli.exe
|
||||
default='C:/Program Files/PdfCraft/pdfcraft-cli.exe'
|
||||
repo='https://github.com/storytold/pdfcraft'
|
||||
repo_slug='storytold/pdfcraft'
|
||||
;;
|
||||
figcraft-mcp)
|
||||
exe_name=figcraft-cli.exe
|
||||
default='C:/Program Files/FigCraft/figcraft-cli.exe'
|
||||
repo='https://github.com/storytold/figcraft'
|
||||
repo_slug='storytold/figcraft'
|
||||
;;
|
||||
vectorcraft-mcp)
|
||||
exe_name=vectorcraft-cli.exe
|
||||
default='C:/Program Files/VectorCraft/vectorcraft-cli.exe'
|
||||
repo='https://github.com/storytold/vectorcraft'
|
||||
repo_slug='storytold/vectorcraft'
|
||||
;;
|
||||
*)
|
||||
echo "Kein CLI-Mapping fuer Skill '$name'." >&2
|
||||
exit 1
|
||||
@@ -40,7 +58,7 @@ esac
|
||||
src="${cli_path:-$default}"
|
||||
if [[ ! -f "$src" ]]; then
|
||||
echo "CLI fehlt: $src" >&2
|
||||
echo "Bitte WordCraft/GridCraft ueber den ArtCraft-Launcher installieren, oder Pfad als Argument angeben." >&2
|
||||
echo "Bitte die App ueber den ArtCraft-Launcher installieren, oder Pfad als Argument angeben." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
@@ -19,6 +19,9 @@ if ($start -lt 0 -or $end -lt $start) {
|
||||
$ServerKeys = @{
|
||||
'wordcraft-mcp' = 'wordcraft'
|
||||
'gridcraft-mcp' = 'gridcraft'
|
||||
'pdfcraft-mcp' = 'pdfcraft'
|
||||
'figcraft-mcp' = 'figcraft'
|
||||
'vectorcraft-mcp' = 'vectorcraft'
|
||||
}
|
||||
|
||||
function Get-McpServerKey([string]$SkillName) {
|
||||
|
||||
@@ -40,7 +40,7 @@ trap 'rm -f "$table"' EXIT
|
||||
import json, base64, sys, urllib.parse, re
|
||||
man = json.load(open(sys.argv[1], encoding="utf-8"))
|
||||
name = sys.argv[2]
|
||||
sk = {"wordcraft-mcp":"wordcraft","gridcraft-mcp":"gridcraft"}.get(name)
|
||||
sk = {"wordcraft-mcp":"wordcraft","gridcraft-mcp":"gridcraft","pdfcraft-mcp":"pdfcraft","figcraft-mcp":"figcraft","vectorcraft-mcp":"vectorcraft"}.get(name)
|
||||
if not sk:
|
||||
m = re.match(r"^(.+)-mcp$", name)
|
||||
sk = m.group(1) if m else name
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
# Changelog – figcraft-mcp
|
||||
|
||||
## 0.1.0 (2026-10-19)
|
||||
|
||||
- Erste Version: Skill und Claude-Desktop-Erweiterung für FigCraft 0.7.0 aus dem ArtCraft-Launcher (`C:\Program Files\FigCraft\figcraft-cli.exe`, nicht auf PATH).
|
||||
- Kein `--attach`: mit Lese- und Schreib-Ordner ist die Anbindung an eine laufende App nicht erlaubt. Der Server läuft ohne Fenster.
|
||||
- Standardordner wie bei WordCraft (Lese = Dokumente, Schreib = Dokumente\Claude). Bei FigCraft ist die Lage des Schreib-Ordners im Lese-Ordner nicht zwingend; der Standard bleibt derselbe.
|
||||
- Cursor-Plugin `figcraft-mcp-cursor-v0.1.0.zip` (Server `figcraft`) inkl. Deeplink.
|
||||
@@ -0,0 +1,83 @@
|
||||
# figcraft-mcp
|
||||
|
||||
[Alle Skills](../../README.md)
|
||||
|
||||
## Zweck
|
||||
|
||||
Entwirft Bedienoberflächen (HMI-Masken, App-Screens) über den MCP-Server von FigCraft und exportiert sie als PNG, PDF oder SVG. Frühe Alpha, getestet mit 0.7.0. Die Anweisungen für den Agenten stehen in [SKILL.md](SKILL.md) (clientneutral).
|
||||
|
||||
## Voraussetzungen
|
||||
|
||||
- **FigCraft** über den ArtCraft-Launcher (`C:\Program Files\FigCraft\figcraft-cli.exe`, im MSI enthalten, nicht auf PATH). FigCraft steht im Launcher seit Version 0.4.1; ältere Kataloge mit zwölf Apps führen es nicht. Fehlt die Kachel, den Launcher aktualisieren.
|
||||
- Claude Desktop **oder** Cursor (siehe unten)
|
||||
- Die Erweiterung bzw. das Plugin sowie dieses Skill-ZIP
|
||||
|
||||
**Cursor:** siehe [Wurzel-README](../../README.md) und [docs/CURSOR.md](../../docs/CURSOR.md).
|
||||
|
||||
## Installation (Claude Desktop)
|
||||
|
||||
Schritt-für-Schritt: [docs/INSTALLATION.md](../../docs/INSTALLATION.md). Kurz:
|
||||
|
||||
1. `figcraft-mcp-v0.1.0.mcpb` und `figcraft-mcp-v0.1.0.zip` aus dem [Release](https://git.gundel.dev/dg/claude-skills/releases/download/figcraft-mcp%2Fv0.1.0/figcraft-mcp-v0.1.0.mcpb) laden.
|
||||
2. Die `.mcpb` doppelklicken (oder über Einstellungen → Erweiterungen installieren).
|
||||
3. **Lese-Ordner:** `Dokumente`. **Schreib-Ordner:** `Dokumente\Claude`. Bei FigCraft ist es unerheblich, ob der Schreib-Ordner im Lese-Ordner liegt; der Standard bleibt derselbe wie bei PdfCraft und VectorCraft.
|
||||
4. Unter Einstellungen → Erweiterungen prüfen, dass **FigCraft for Claude** eingeschaltet ist.
|
||||
5. Skill-ZIP hochladen: **„+“ → „Skill erstellen“ → „Skill hochladen“**.
|
||||
6. Claude komplett beenden (auch Taskleiste) und neu starten. **Neuen** Chat öffnen.
|
||||
|
||||
**Umsteigen von der manuellen Config:** Eintrag `figcraft` unter `mcpServers` vor der Installation entfernen.
|
||||
|
||||
## Ordner und Start
|
||||
|
||||
Der Server bekommt Lese- und Schreib-Ordner und läuft ohne Fenster. **Kein `--attach`:** mit Ordnergrenzen ist die Anbindung an eine laufende App nicht erlaubt.
|
||||
|
||||
## Freigaben
|
||||
|
||||
In Claude bei `open_file`, `save_file` und `export` auf **„Immer fragen“** lassen, wenn du Pfade mitkontrollieren willst.
|
||||
|
||||
## Enthaltene Software
|
||||
|
||||
Die Erweiterung steuert [FigCraft](https://github.com/storytold/figcraft) (MIT oder Apache-2.0) aus dem ArtCraft-Launcher; die CLI wird **nicht** mitgeliefert. Lizenztexte liegen in der `.mcpb` unter `LICENSES/`. Das Icon ist `assets/app-icon/figcraft-512.png` (MIT oder Apache-2.0).
|
||||
|
||||
## Test
|
||||
|
||||
Neuen Chat öffnen und eine kleine HMI-Maske als PNG in den Schreib-Ordner exportieren lassen. Präfix `…FigCraft_for_Claude…`.
|
||||
|
||||
Fehlen die Tools: Erweiterung eingeschaltet? CLI unter `C:\Program Files\FigCraft\figcraft-cli.exe`? Neu starten, neuer Chat.
|
||||
|
||||
## Stolpersteine
|
||||
|
||||
- Erweiterungen sind nicht signiert; nur installieren, wenn du der Quelle vertraust.
|
||||
- FigCraft ist eine frühe Alpha. Der Entwurf ist eine Vorlage, keine importierbare Maske für die Steuerung.
|
||||
|
||||
## Deinstallation/Update
|
||||
|
||||
Einstellungen → Erweiterungen → entfernen; Skill löschen. Update: neue `.mcpb` und Skill-ZIP, ersetzen lassen, neu starten.
|
||||
|
||||
## Alternative: manuell (für Entwickler)
|
||||
|
||||
Statt der Erweiterung in `claude_desktop_config.json` eintragen. Stolpersteine: [MCP unter Windows einrichten](../../docs/windows-mcp-einrichtung.md).
|
||||
|
||||
- Claude-Installer: `%APPDATA%\Claude\claude_desktop_config.json`
|
||||
- Microsoft-Store-App: `%LOCALAPPDATA%\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\claude_desktop_config.json`
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"figcraft": {
|
||||
"command": "C:\\Program Files\\FigCraft\\figcraft-cli.exe",
|
||||
"args": [
|
||||
"mcp",
|
||||
"--automation-read-root", "C:\\Pfad\\zu\\Dokumente",
|
||||
"--automation-write-root", "C:\\Pfad\\zu\\Dokumente\\Claude"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
`--attach` nicht setzen.
|
||||
|
||||
## Änderungen
|
||||
|
||||
[CHANGELOG.md](CHANGELOG.md)
|
||||
@@ -0,0 +1,79 @@
|
||||
---
|
||||
name: figcraft-mcp
|
||||
description: Bedienoberflächen und Screens über den FigCraft-MCP-Server entwerfen, bearbeiten, ansehen und als PNG, PDF, SVG oder .fig exportieren (Figma-Klon, frühe Alpha). Verwenden, wenn FigCraft-Werkzeuge verbunden sind oder der Nutzer FigCraft nennt; typisch für HMI-Masken von Maschinensteuerungen, App-/Web-Entwürfe, Klick-Prototypen und Komponenten.
|
||||
---
|
||||
|
||||
# Oberflächen mit FigCraft (MCP)
|
||||
|
||||
FigCraft ist ein Open-Source-Designwerkzeug (Rust), das Figma-Parität anstrebt. Es ist noch eine frühe Alpha. Getestet mit Version 0.7.0.
|
||||
|
||||
## Voraussetzung
|
||||
|
||||
Die Werkzeuge `create_node`, `set_properties`, `batch`, `screenshot`, `export` … müssen verbunden sein. Ihr Präfix hängt vom Client und vom Namen der Erweiterung bzw. des Servers ab (z. B. `mcp__…__FigCraft_for_Claude__create_node`). Sind sie zurückgestellt, nach dem Werkzeugnamen ohne Präfix suchen und alle benötigten auf einmal laden. Fehlen sie, dem Nutzer sagen, dass der Server nicht verbunden ist (Einrichtung siehe README).
|
||||
|
||||
Der Server arbeitet ohne Fenster (headless). Lesen darf er im Lese- und Schreib-Ordner, schreiben nur im Schreib-Ordner. Die erlaubten Ordner stehen in den Server-Anweisungen beim Start.
|
||||
|
||||
## Werkzeuge
|
||||
|
||||
| Tool | Zweck |
|
||||
|---|---|
|
||||
| `create_node` | Ebene anlegen: frame, rectangle, ellipse, polygon, star, line, arrow, text, vector, section, component |
|
||||
| `set_properties` | Eigenschaften setzen (`ids`, `props`) |
|
||||
| `batch` | mehrere Befehle als **ein** Undo-Schritt; `{"$step": n}` verweist auf die id aus Schritt n |
|
||||
| `inspect_document` / `get_node` | Ebenenbaum als JSON |
|
||||
| `screenshot` | Seite oder Ebenen als PNG ansehen |
|
||||
| `export` | png, jpg, svg, webp, pdf, fig |
|
||||
| `open_file` / `save_file` | .figcraft, .fig (best effort), .svg, Bilder |
|
||||
| `list_commands` / `run_command` | alle Menübefehle |
|
||||
| `undo` / `redo`, `select` | Verlauf, Auswahl |
|
||||
|
||||
## Arbeitsweise
|
||||
|
||||
1. **Befehle nie raten:** `list_commands {filter: "…"}` (z. B. `component`, `instance`, `align`, `prototype`).
|
||||
2. **Ganze Screens in einem `batch`** aufbauen: Rahmen → Bereiche → Texte, Verweise per `{"$step": n}`.
|
||||
3. **Auto-Layout statt Koordinaten:** Rahmen mit `layout: "vertical"|"horizontal"`, `gap`, `padding`, `mainAlign`/`crossAlign`. Kinder darin bekommen kein x/y.
|
||||
4. **Ansehen:** nach jedem größeren Schritt `screenshot {maxSize: 1024}`.
|
||||
5. **Speichern** als `.figcraft` unter neuem Namen im Schreib-Ordner, exportieren für die Weitergabe.
|
||||
|
||||
## Fallen (im Test bestätigt)
|
||||
|
||||
- **`export` ohne `ids` exportiert die Auswahl**, also meist die zuletzt angelegte Ebene: Es kam ein PNG mit nur einer Textzeile heraus. Immer `ids: [<id des Hauptrahmens>]` angeben. Die id steht in `inspect_document` unter `pages[0].children`.
|
||||
- **`run_command` erwartet `{command, params}`**, nicht `{id, …}` (anders als bei PdfCraft). Ebenso `batch {commands: [{command, params}]}`.
|
||||
- **x/y sind relativ zum Elternrahmen**, y zeigt nach unten, Einheit px.
|
||||
- **`save_file` ohne `path` überschreibt** die geöffnete Datei. Für Varianten immer einen neuen `path` angeben.
|
||||
- **Schriftschnitt:** `fontStyle: "Bold"` funktioniert. Gibt es den Schnitt nicht, nimmt FigCraft den nächstliegenden und meldet das in `warnings`.
|
||||
- **Transparenter Rahmen:** `fill: "#00000000"`.
|
||||
- **.fig-Import/-Export** ist „best effort“: Figma öffnet nicht jede Datei. Für die Weitergabe PNG/PDF/SVG bevorzugen.
|
||||
|
||||
## Rezepte
|
||||
|
||||
1. **HMI-Maske** (z. B. 1024×600 für ein 7"-Panel):
|
||||
1. Rahmen in Panelgröße mit dunklem Hintergrund anlegen.
|
||||
2. Kopfleiste mit Anlagenname und Uhrzeit.
|
||||
3. Statuskarte (vertikales Auto-Layout, Messwerte mit Einheit).
|
||||
4. Tastenzeile (horizontales Auto-Layout; Start grün, Stop rot, Quittieren gelb, mindestens 80 px hoch für Handschuhe).
|
||||
5. Meldungsliste (Zeit, Code, Text; Warnung gelb, Info grau).
|
||||
|
||||
Farben nach der gängigen Bedeutung: Rot für Halt/Störung, Gelb für Warnung, Grün für Betrieb.
|
||||
2. **Komponenten:** Taste fertig gestalten → `run_command {command: "component.create", params: {ids: [id]}}` → Kopien über `instance.create {component, x, y, parent}`.
|
||||
3. **Weitergabe:** `export {ids: [rahmen], format: "pdf", path}` für Doku/Kunde, `format: "png", scale: 2` für Präsentationen, `svg` für Web.
|
||||
|
||||
## Abschlussprüfung
|
||||
|
||||
- `screenshot` der ganzen Seite angesehen: Texte lesbar, nichts abgeschnitten, Abstände einheitlich.
|
||||
- Export-Datei geprüft (Größe plausibel, bei PNG kurz ansehen).
|
||||
- `.figcraft` gespeichert, Pfad dem Nutzer genannt.
|
||||
|
||||
## Datenschutz
|
||||
|
||||
Ampel:
|
||||
- 🟢 Allgemeine und technische Inhalte ohne Kundenbezug.
|
||||
- 🟡 Projekt- und Geschäftsinfos: nur nach Abwägung oder anonymisiert.
|
||||
- 🔴 Personenbezogene Daten und NDA-Inhalte gehören nicht in die Cloud-KI.
|
||||
|
||||
In Entwürfen Beispieldaten statt echter Kundennamen und Anlagennummern verwenden. Kundenlogos nur einsetzen, wenn der Nutzer sie liefert.
|
||||
|
||||
## Grenzen
|
||||
|
||||
- Frühe Alpha: Für die echte Steuerung (TIA Portal/WinCC usw.) ist der Entwurf nur eine Vorlage, keine importierbare Maske.
|
||||
- Zusammenarbeit (Multiplayer) und Prototyp-Funktionen sind Vorschau; im headless Server nicht nutzen.
|
||||
@@ -0,0 +1,2 @@
|
||||
server/*.exe
|
||||
**/*.exe
|
||||
@@ -0,0 +1,177 @@
|
||||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2026 ArtCraft Team and the FigCraft contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -0,0 +1,53 @@
|
||||
FigCraft
|
||||
Copyright (c) 2026 ArtCraft Team and the FigCraft contributors.
|
||||
Licensed under the MIT License or the Apache License, Version 2.0, at your option
|
||||
(LICENSE-MIT, LICENSE-APACHE).
|
||||
|
||||
The ArtCraft name, wordmark and logos in docs/brand/ are trademarks of the ArtCraft Team. They are
|
||||
not open source and are not covered by the license above; their terms are in
|
||||
docs/brand/LICENSE-brand.txt.
|
||||
|
||||
Third-party material
|
||||
|
||||
This product bundles no third-party fonts, icons or images in the repository: every icon is
|
||||
drawn in code and original to FigCraft. The per-file list (author, source, license) of any bundled
|
||||
asset is in ATTRIBUTION.md.
|
||||
|
||||
Release builds made with the optional craft-fonts build input (CRAFT_FONTS_DIR) embed the fonts
|
||||
listed in ATTRIBUTION.md (Inter and others, SIL Open Font License 1.1); each package carries their
|
||||
licence texts.
|
||||
|
||||
Rust crate dependencies keep their own licenses (MIT, Apache-2.0, BSD, ISC, Zlib, OFL for egui's
|
||||
default fonts, CDLA-Permissive-2.0 for the root certificate list webpki-roots compiles in, and
|
||||
similar permissive licenses); see each crate's metadata.
|
||||
|
||||
Linux Wayland window decorations
|
||||
-------------------------------
|
||||
sctk-adwaita 0.10.1 (https://github.com/PolyMeilex/sctk-adwaita,
|
||||
commit d5f343c45c04d4a026db57f76760819b7325db00) is used by winit on Linux
|
||||
for vector window controls. Its title-font features are disabled: no Cantarell
|
||||
font is embedded by this dependency and no font file is added to this repo.
|
||||
|
||||
sctk-adwaita's MIT licence:
|
||||
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2022 Bartłomiej Maryńczak
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 138 KiB |
@@ -0,0 +1,126 @@
|
||||
{
|
||||
"manifest_version": "0.3",
|
||||
"name": "figcraft-mcp",
|
||||
"display_name": "FigCraft for Claude",
|
||||
"version": "0.1.0",
|
||||
"description": "Bedienoberflächen und Screens (z. B. HMI-Masken) entwerfen und als PNG/PDF/SVG exportieren. Frühe Alpha, getestet mit FigCraft 0.7.0. Benötigt FigCraft aus dem ArtCraft-Launcher unter C:\\Program Files\\FigCraft\\.",
|
||||
"author": {
|
||||
"name": "Dominic Gundel"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://git.gundel.dev/dg/claude-skills.git"
|
||||
},
|
||||
"homepage": "https://git.gundel.dev/dg/claude-skills",
|
||||
"license": "MIT",
|
||||
"icon": "icon.png",
|
||||
"compatibility": {
|
||||
"platforms": [
|
||||
"win32"
|
||||
]
|
||||
},
|
||||
"server": {
|
||||
"type": "binary",
|
||||
"entry_point": "server/README.txt",
|
||||
"mcp_config": {
|
||||
"command": "C:\\Program Files\\FigCraft\\figcraft-cli.exe",
|
||||
"args": [
|
||||
"mcp",
|
||||
"--automation-read-root",
|
||||
"${user_config.read_root}",
|
||||
"--automation-write-root",
|
||||
"${user_config.write_root}"
|
||||
]
|
||||
}
|
||||
},
|
||||
"tools": [
|
||||
{
|
||||
"name": "list_commands",
|
||||
"description": "List FigCraft commands: id, label, menu path, shortcut, whether it is undoable, and a parameter description."
|
||||
},
|
||||
{
|
||||
"name": "run_command",
|
||||
"description": "Execute one FigCraft command by id with JSON params (ids and params from list_commands)."
|
||||
},
|
||||
{
|
||||
"name": "batch",
|
||||
"description": "Run several commands in order as ONE undo step (engine `command.batch`)."
|
||||
},
|
||||
{
|
||||
"name": "create_node",
|
||||
"description": "Create a layer (engine `node.create`) and return its id and inspected properties."
|
||||
},
|
||||
{
|
||||
"name": "set_properties",
|
||||
"description": "Set properties on one or more layers as one undo step (engine `node.set`)."
|
||||
},
|
||||
{
|
||||
"name": "inspect_document",
|
||||
"description": "The active document as JSON: name, path, dirty flag, current page, selection, the current page's layer tree (id, name, type, x/y relative to the parent frame (groups don't count), width, height, absoluteBounds in page co"
|
||||
},
|
||||
{
|
||||
"name": "get_node",
|
||||
"description": "One layer as JSON (same fields as inspect_document) with its children to `depth`."
|
||||
},
|
||||
{
|
||||
"name": "select",
|
||||
"description": "Replace the selection with `ids` (switching to their page)."
|
||||
},
|
||||
{
|
||||
"name": "export",
|
||||
"description": "Export layers (default: the selection, else every top-level layer of the current page) as png, jpg, svg, webp or pdf at `scale`, or the whole file as `fig` (experimental: written from public format knowledge, with `warni"
|
||||
},
|
||||
{
|
||||
"name": "screenshot",
|
||||
"description": "Look at the design: renders the given layers (or the whole current page, with its background) to PNG and returns it as image content, plus its size and the scale used."
|
||||
},
|
||||
{
|
||||
"name": "open_file",
|
||||
"description": "Open a .figcraft or .json document (FigCraft or REST API file JSON), a .fig file (best effort, with `warnings` for what wasn't imported), an .svg (becomes vectors) or an image (becomes an image layer) as the active docum"
|
||||
},
|
||||
{
|
||||
"name": "save_file",
|
||||
"description": "Save the active document as a .figcraft file."
|
||||
},
|
||||
{
|
||||
"name": "undo",
|
||||
"description": "Undo the last change (one command, batch or gesture)."
|
||||
},
|
||||
{
|
||||
"name": "redo",
|
||||
"description": "Redo the last undone change."
|
||||
},
|
||||
{
|
||||
"name": "pointer",
|
||||
"description": "Drive the canvas with the mouse in page coordinates, exactly as a user would with the current tool: click to select, drag to move/resize/marquee, or draw with a shape tool (set `tool` first, e.g."
|
||||
},
|
||||
{
|
||||
"name": "key",
|
||||
"description": "Press a key or shortcut as if typed on the canvas: a menu shortcut (e.g."
|
||||
},
|
||||
{
|
||||
"name": "type_text",
|
||||
"description": "Type into a text layer."
|
||||
},
|
||||
{
|
||||
"name": "inspect_ui",
|
||||
"description": "UI state: current tool, view (zoom, centre), status, panels, timings and the app's windows (`windows`: id, title, files) when attached to the app; headless reports the session status."
|
||||
}
|
||||
],
|
||||
"user_config": {
|
||||
"read_root": {
|
||||
"type": "directory",
|
||||
"title": "Lese-Ordner",
|
||||
"description": "Hier darf Claude Dateien lesen. Ruhig weit fassen (z. B. Dokumente); der Schreib-Ordner sollte darin liegen, damit Ergebnisse wieder geöffnet werden können.",
|
||||
"required": true,
|
||||
"default": "${HOME}/Documents"
|
||||
},
|
||||
"write_root": {
|
||||
"type": "directory",
|
||||
"title": "Schreib-Ordner",
|
||||
"description": "Nur hier darf Claude speichern. Eng fassen, eigener Ordner, z. B. Dokumente\\Claude.",
|
||||
"required": true,
|
||||
"default": "${HOME}/Documents/Claude"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
Diese Erweiterung enthaelt keine CLI.
|
||||
Installiere FigCraft ueber den ArtCraft-Launcher.
|
||||
Erwarteter Pfad: C:\Program Files\FigCraft\figcraft-cli.exe
|
||||
@@ -0,0 +1 @@
|
||||
{"version":"0.7.0","repository":"https://github.com/storytold/figcraft","bundled":false,"source":"ArtCraft-Launcher","exe":"figcraft-cli.exe","path":"C:\\Program Files\\FigCraft\\figcraft-cli.exe","tag":"v0.7.0","sha256":"34c2ca22281d1176d6750be15acd8c1b9d1626128fa44c76356144a3866df69a"}
|
||||
@@ -0,0 +1,8 @@
|
||||
# Changelog – pdfcraft-mcp
|
||||
|
||||
## 0.1.0 (2026-10-19)
|
||||
|
||||
- Erste Version: Skill und Claude-Desktop-Erweiterung für PdfCraft 0.9.0 aus dem ArtCraft-Launcher (`C:\Program Files\PdfCraft\pdfcraft-cli.exe`, nicht auf PATH).
|
||||
- Der Server startet mit `--compact`: 17 Kernwerkzeuge plus `tool_search`/`tool_call`. Ohne die Option sind es 171 Werkzeuge mit etwa 176 KB Beschreibung; das übersteigt die zuletzt von Cursor genannte Werkzeuggrenze.
|
||||
- Lese-Ordner `${HOME}/Documents`, Schreib-Ordner `${HOME}/Documents/Claude`. Der Schreib-Ordner muss im Lese-Ordner liegen, sonst lassen sich eigene Ergebnisse nicht wieder öffnen.
|
||||
- Cursor-Plugin `pdfcraft-mcp-cursor-v0.1.0.zip` (Server `pdfcraft`) inkl. Deeplink; die Argumente inklusive `--compact` und der Ordner werden übernommen.
|
||||
@@ -0,0 +1,89 @@
|
||||
# pdfcraft-mcp
|
||||
|
||||
[Alle Skills](../../README.md)
|
||||
|
||||
## Zweck
|
||||
|
||||
Öffnet, liest, schwärzt, bereinigt und bündelt PDFs über den MCP-Server von PdfCraft. Getestet mit 0.9.0 (Schwärzen, Doku-Pakete). Die Anweisungen für den Agenten stehen in [SKILL.md](SKILL.md) (clientneutral).
|
||||
|
||||
## Voraussetzungen
|
||||
|
||||
- **PdfCraft** über den ArtCraft-Launcher (`C:\Program Files\PdfCraft\pdfcraft-cli.exe`, im MSI enthalten, nicht auf PATH)
|
||||
- Claude Desktop **oder** Cursor (siehe unten)
|
||||
- Die Erweiterung bzw. das Plugin sowie dieses Skill-ZIP
|
||||
|
||||
**Cursor:** siehe [Wurzel-README](../../README.md) und [docs/CURSOR.md](../../docs/CURSOR.md).
|
||||
|
||||
## Installation (Claude Desktop)
|
||||
|
||||
Schritt-für-Schritt: [docs/INSTALLATION.md](../../docs/INSTALLATION.md). Kurz:
|
||||
|
||||
1. `pdfcraft-mcp-v0.1.0.mcpb` und `pdfcraft-mcp-v0.1.0.zip` aus dem [Release](https://git.gundel.dev/dg/claude-skills/releases/download/pdfcraft-mcp%2Fv0.1.0/pdfcraft-mcp-v0.1.0.mcpb) laden.
|
||||
2. Die `.mcpb` doppelklicken (oder über Einstellungen → Erweiterungen installieren).
|
||||
3. **Lese-Ordner weit:** `Dokumente` (`${HOME}/Documents`). **Schreib-Ordner eng und darin:** `Dokumente\Claude`. PdfCraft lehnt es ab, eine selbst geschriebene Datei wieder zu öffnen, wenn der Schreib-Ordner außerhalb des Lese-Ordners liegt.
|
||||
4. Unter Einstellungen → Erweiterungen prüfen, dass **PdfCraft for Claude** eingeschaltet ist.
|
||||
5. Skill-ZIP hochladen: **„+“ → „Skill erstellen“ → „Skill hochladen“**.
|
||||
6. Claude komplett beenden (auch Taskleiste) und neu starten. **Neuen** Chat öffnen.
|
||||
|
||||
**Umsteigen von der manuellen Config:** Eintrag `pdfcraft` unter `mcpServers` vor der Installation der Erweiterung entfernen (vorher Sicherungskopie).
|
||||
|
||||
## Ordner
|
||||
|
||||
| | Standard |
|
||||
|---|---|
|
||||
| Lesen | `${HOME}/Documents` |
|
||||
| Schreiben | `${HOME}/Documents/Claude` |
|
||||
|
||||
Der Server startet mit `--compact`. Ohne die Option liefert er 171 Werkzeuge mit etwa 176 KB Beschreibung. Mit ihr sind es 17 Kernwerkzeuge plus `tool_search` und `tool_call`. Dieselbe Option steht im Cursor-Plugin, weil Cursor die Zahl der aktiven Werkzeuge begrenzt (siehe [docs/CURSOR.md](../../docs/CURSOR.md)).
|
||||
|
||||
## Freigaben
|
||||
|
||||
In Claude bei `doc_open`, `doc_save` und `tool_call` auf **„Immer fragen“** lassen, wenn du Pfade und Schwärzungen mitkontrollieren willst. `redact_apply` und `doc_remove_hidden` ändern die Datei endgültig.
|
||||
|
||||
## Enthaltene Software
|
||||
|
||||
Die Erweiterung steuert [PdfCraft](https://github.com/storytold/pdfcraft) (MIT oder Apache-2.0) aus dem ArtCraft-Launcher; die CLI wird **nicht** mitgeliefert. Lizenztexte liegen in der `.mcpb` unter `LICENSES/`. Das Icon ist die App-Kachel aus `assets/app-icon/` (512×512, ebenfalls MIT oder Apache-2.0).
|
||||
|
||||
## Test
|
||||
|
||||
Neuen Chat öffnen. Ein Test-PDF schwärzen lassen und `doc_audit_redactions` ausführen (Ergebnis `count: 0`). Die Werkzeuge heißen mit Präfix `…PdfCraft_for_Claude…`.
|
||||
|
||||
Fehlen die Tools: Erweiterung eingeschaltet? CLI unter `C:\Program Files\PdfCraft\pdfcraft-cli.exe`? Neu starten, neuer Chat.
|
||||
|
||||
## Stolpersteine
|
||||
|
||||
- Speichern oder erneutes Öffnen mit „path rejected“: Ziel lag außerhalb des erlaubten Ordners, oder der Schreib-Ordner liegt nicht im Lese-Ordner. Einstellungen → Erweiterungen → PdfCraft for Claude.
|
||||
- Erweiterungen sind nicht signiert; nur installieren, wenn du der Quelle vertraust.
|
||||
|
||||
## Deinstallation/Update
|
||||
|
||||
Einstellungen → Erweiterungen → entfernen; Skill löschen. Update: neue `.mcpb` und Skill-ZIP, ersetzen lassen, neu starten.
|
||||
|
||||
## Alternative: manuell (für Entwickler)
|
||||
|
||||
Statt der Erweiterung den MCP-Server in `claude_desktop_config.json` eintragen. Stolpersteine: [MCP unter Windows einrichten](../../docs/windows-mcp-einrichtung.md).
|
||||
|
||||
- Claude-Installer: `%APPDATA%\Claude\claude_desktop_config.json`
|
||||
- Microsoft-Store-App: `%LOCALAPPDATA%\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\claude_desktop_config.json`
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"pdfcraft": {
|
||||
"command": "C:\\Program Files\\PdfCraft\\pdfcraft-cli.exe",
|
||||
"args": [
|
||||
"mcp",
|
||||
"--compact",
|
||||
"--automation-read-root", "C:\\Pfad\\zu\\Dokumente",
|
||||
"--automation-write-root", "C:\\Pfad\\zu\\Dokumente\\Claude"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
`--compact` nicht weglassen. Beide Ordner setzen; der Schreib-Ordner muss im Lese-Ordner liegen.
|
||||
|
||||
## Änderungen
|
||||
|
||||
[CHANGELOG.md](CHANGELOG.md)
|
||||
@@ -0,0 +1,93 @@
|
||||
---
|
||||
name: pdfcraft-mcp
|
||||
description: PDFs über den PdfCraft-MCP-Server öffnen, auslesen, schwärzen, bereinigen, zusammenführen, aufteilen, mit Kopf-/Fußzeile, Seitenzahlen, Wasserzeichen und Lesezeichen versehen und nach Word exportieren. Verwenden, wenn PdfCraft-Werkzeuge verbunden sind oder der Nutzer PdfCraft nennt; typisch für Schwärzen vor der Weitergabe, Dokumentationspakete (Betriebsanleitung, Datenblätter, Konformitätserklärung), Angebote und Zeichnungen auslesen.
|
||||
---
|
||||
|
||||
# PDFs mit PdfCraft (MCP)
|
||||
|
||||
PdfCraft ist ein Open-Source-PDF-Programm (Rust), das Acrobat-Pro-Parität anstrebt. Getestet mit Version 0.9.0.
|
||||
|
||||
## Voraussetzung
|
||||
|
||||
Die Werkzeuge `doc_open`, `text_extract`, `tool_search`, `tool_call` … müssen verbunden sein. Ihr Präfix hängt vom Client und vom Namen der Erweiterung bzw. des Servers ab (z. B. `mcp__…__PdfCraft_for_Claude__doc_open`). Sind sie zurückgestellt, nach dem Werkzeugnamen ohne Präfix suchen und alle benötigten auf einmal laden. Fehlen sie, dem Nutzer sagen, dass der Server nicht verbunden ist (Einrichtung siehe README), statt auf ein anderes Programm auszuweichen.
|
||||
|
||||
Der Server läuft im **Kompaktmodus** (`--compact`): Er zeigt 17 Kernwerkzeuge. Die übrigen gut 150 erreicht man über `tool_search` und `tool_call`. Ohne Kompaktmodus wären es 171 Werkzeuge mit rund 45.000 Tokens Beschreibung.
|
||||
|
||||
Dateizugriff: Lesen nur im Lese-Ordner, Schreiben nur im Schreib-Ordner. Andere Pfade werden mit `automation path rejected: outside the read root …` bzw. `… write root …` abgelehnt. Das ist ein normaler Fehler: dem Nutzer den erlaubten Ordner nennen. Der Schreib-Ordner muss **im** Lese-Ordner liegen (z. B. Lese = Dokumente, Schreib = Dokumente\Claude), sonst lassen sich eigene Ergebnisse nicht wieder öffnen.
|
||||
|
||||
## Werkzeuge
|
||||
|
||||
| Direkt | Zweck |
|
||||
|---|---|
|
||||
| `doc_open` / `doc_close` / `doc_save` | öffnen (liefert `doc`-Nummer), schließen, speichern (`path` = neue Datei) |
|
||||
| `doc_info` / `doc_inspect` | Seiten, Metadaten, Zustand |
|
||||
| `text_extract` / `text_find` | Text je Seite; Fundstellen mit Rechtecken |
|
||||
| `page_render` / `render_preview` | Seite als PNG ansehen |
|
||||
| `doc_combine` / `doc_split` | zusammenführen / aufteilen |
|
||||
| `edit_undo` | rückgängig |
|
||||
| `command_list` / `command_run` / `command_batch` | Befehlskatalog |
|
||||
| `tool_search` / `tool_call` | alle weiteren Werkzeuge finden / ausführen |
|
||||
|
||||
Wichtige Werkzeuge über `tool_call`: `redact_mark`, `redact_apply`, `doc_audit_redactions`, `doc_hidden_info`, `doc_remove_hidden`, `doc_header_footer`, `doc_watermark`, `page_add_text`, `bookmark_list`/`bookmark_add`/`bookmark_rename`, `page_delete`/`page_move`/`page_rotate`/`page_extract`/`page_insert_file`, `doc_export_office`, `doc_export_text`, `form_fields`/`form_fill`, `comment_list`, `doc_compare`, `doc_protect`, `ocr_status`/`ocr_recognize`, `pdfa_verify`.
|
||||
|
||||
## Arbeitsweise
|
||||
|
||||
1. **Parameter nie raten:** Vor dem ersten Aufruf eines Werkzeugs `tool_search {name: "<werkzeug>"}`. Die Namen sind uneinheitlich, z. B. `doc_combine {out}`, `doc_split {out_dir}`, `doc_set_info {key, value}`. Unbekannte Parameter werden mit `-32602` abgelehnt und der Fehler nennt die erlaubten. Dann korrigieren und erneut aufrufen.
|
||||
2. **Seiten zählen ab 1.** Rechtecke sind PDF-Punkte, Ursprung oben links (1 mm = 2,835 pt).
|
||||
3. Änderungen bleiben im Speicher, bis `doc_save` aufgerufen wird. Bis dahin lassen sie sich mit `edit_undo` zurücknehmen.
|
||||
4. **Speichern immer unter neuem Namen** in den Schreib-Ordner (`doc_save {doc, path}`). `doc_save` ohne `path` überschreibt die geöffnete Datei.
|
||||
5. **Prüfen:** `render_preview` ansehen, `text_extract` gegenlesen, gespeicherte Datei neu öffnen.
|
||||
|
||||
## Fallen (im Test bestätigt)
|
||||
|
||||
- **Schwärzen erfasst nur, was markiert ist.** `redact_mark {find: "EUR"}` schwärzt nur „EUR“, der Betrag davor bleibt stehen. Ganze Werte markieren:
|
||||
- per `words` (Liste exakter Werte) oder
|
||||
- per Rechteck: mit `text_find` das Label suchen (z. B. „Preis:“), dann `redact_mark {page, rect: [x1+2, y0-1, <rechter Rand>, y1+1]}`.
|
||||
- **`overlay`-Text ist echter Text.** Er erscheint danach in `text_extract` und in der Datei. Nur neutrale Wörter verwenden („geschwärzt“), nie den Originalwert.
|
||||
- **`redact_mark` allein entfernt nichts.** Erst `redact_apply` löscht endgültig. Danach `doc_audit_redactions`: Es findet Scheinschwärzungen (schwarze Kästen über weiterhin lesbarem Text) und nicht angewendete Markierungen.
|
||||
- **Metadaten:** `doc_hidden_info` zeigt Autor, Programm, Kommentare, Anhänge, versteckte Ebenen; `doc_remove_hidden` entfernt sie. Vor jeder Weitergabe ausführen.
|
||||
- **Muster** für `redact_mark {pattern}`: `email`, `phone`, `date`, `credit-card`, `ssn`. Es gibt kein Muster für Geldbeträge und keins für Namen; diese per `words` oder Rechteck schwärzen.
|
||||
- **`doc_combine {paths, out, open: true}`** schreibt die Datei sofort. Das geöffnete Ergebnis heißt „Combined“ und hat keinen Pfad: Spätere Änderungen mit `doc_save {path}` speichern. Lesezeichen heißen danach wie die Quelldateien; mit `bookmark_rename` umbenennen.
|
||||
- **Kopf-/Fußzeile:** `doc_header_footer {footer_right: "Seite <<1>> von <<n>>"}` funktioniert. Datums-Platzhalter gibt es nur amerikanisch (`<<m/d/yyyy>>`, `<<d/m/yyyy>>`, `<<yyyy-mm-dd>>`), `<<dd.mm.yyyy>>` bleibt als Text stehen. Das Datum ausgeschrieben einsetzen (`Stand 19.10.2026`).
|
||||
- `page_add_text`/Kopfzeilen: Schriften nur helvetica, times, courier; Umlaute, ß und € gehen.
|
||||
- **OCR:** vorher `ocr_status`. Ohne mitgelieferte Sprachmodelle ist `available: false`; dann dem Nutzer sagen, dass gescannte PDFs nicht durchsuchbar gemacht werden können.
|
||||
|
||||
## Rezepte
|
||||
|
||||
1. **Schwärzen vor der Weitergabe** (z. B. Kunden-PDF für eine Vorlage oder Cloud-KI):
|
||||
1. `doc_open`.
|
||||
2. Markieren:
|
||||
- `redact_mark {pattern: "email"}` und `{pattern: "phone"}`;
|
||||
- `{words: [Namen, Firma, Adresse]}` mit den Werten vom Nutzer;
|
||||
- Beträge per Rechteck.
|
||||
3. `redact_apply`, dann `doc_audit_redactions` (Ergebnis muss `count: 0` sein), dann `doc_remove_hidden`.
|
||||
4. `text_extract` auf Reste prüfen und `render_preview` ansehen.
|
||||
5. Mit `doc_save {path: "<name>_geschwaerzt.pdf"}` speichern.
|
||||
2. **Dokumentationspaket:** `doc_combine {paths: [Deckblatt, Konformitätserklärung, Betriebsanleitung, Datenblätter, Schaltplan], out, open: true}` → Lesezeichen umbenennen → `doc_header_footer` (Projekt, „Seite <<1>> von <<n>>“) → ggf. `doc_watermark {text: "ENTWURF", opacity: 0.15}` → `doc_save {path}`.
|
||||
3. **Auslesen:** `text_extract {doc, pages}` bzw. `text_find`; Tabellen/Formulare über `form_fields`. Ergebnis als Text/Tabelle zurückgeben, Original nicht verändern.
|
||||
4. **Nach Word:** `doc_export_office {doc, path: "….docx"}`, danach mit WordCraft weiterbearbeiten.
|
||||
|
||||
## Abschlussprüfung
|
||||
|
||||
- Alle geänderten Seiten mit `render_preview` angesehen.
|
||||
- Bei Schwärzungen: `doc_audit_redactions` hat `count: 0`, `text_extract` zeigt keine geschwärzten Werte, `doc_hidden_info` ist leer.
|
||||
- Gespeicherte Datei neu geöffnet, Seitenzahl plausibel, Pfad dem Nutzer genannt.
|
||||
|
||||
## Datenschutz
|
||||
|
||||
Ampel:
|
||||
- 🟢 Allgemeine und technische Inhalte ohne Kundenbezug.
|
||||
- 🟡 Projekt- und Geschäftsinfos, Preise: nur nach Abwägung oder anonymisiert.
|
||||
- 🔴 Personenbezogene Daten und NDA-Inhalte gehören nicht in die Cloud-KI.
|
||||
|
||||
**Blind schwärzen** bei 🔴-Dokumenten: Das Original nie mit `text_extract`, `page_render`, `render_preview` oder `doc_audit_redactions` lesen. Diese Werkzeuge schicken den Inhalt ans Modell. Stattdessen:
|
||||
1. Nur mit Mustern und vom Nutzer genannten Werten markieren (`redact_mark` meldet nur Anzahlen).
|
||||
2. Erst nach `redact_apply` das Ergebnis ansehen und prüfen.
|
||||
|
||||
Dem Nutzer sagen, welche Kategorien geschwärzt wurden, und ihn das Ergebnis selbst gegenlesen lassen.
|
||||
|
||||
## Grenzen
|
||||
|
||||
- Digitale Signaturen: Nach Schwärzen, Zusammenführen oder Seitenänderungen ist eine bestehende Signatur ungültig. Den Nutzer vorher darauf hinweisen.
|
||||
- Komplexe Layouts exportieren nur näherungsweise nach Word (`doc_export_office`).
|
||||
- Formulare und JavaScript nur bearbeiten, wenn der Nutzer das ausdrücklich will.
|
||||
@@ -0,0 +1,2 @@
|
||||
server/*.exe
|
||||
**/*.exe
|
||||
@@ -0,0 +1,177 @@
|
||||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2026 ArtCraft Team and the PdfCraft contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -0,0 +1,60 @@
|
||||
PdfCraft
|
||||
Copyright (c) 2026 ArtCraft Team and the PdfCraft contributors.
|
||||
Licensed under the MIT License or the Apache License, Version 2.0, at your option
|
||||
(LICENSE-MIT, LICENSE-APACHE).
|
||||
|
||||
The ArtCraft name, wordmark and logos in docs/brand/ are trademarks of the ArtCraft Team. They are
|
||||
not open source and are not covered by the license above; their terms are in
|
||||
docs/brand/LICENSE-brand.txt.
|
||||
|
||||
Third-party material
|
||||
|
||||
This product bundles third-party material under its own licenses, listed below. The per-file
|
||||
list (author, source, license) is in ATTRIBUTION.md.
|
||||
|
||||
- Lucide icons (assets/icons/*.svg) — ISC License. See assets/icons/LICENSE-lucide.txt.
|
||||
The Windows PDF file icon (assets/app-icon/pdfcraft-document.svg and .ico) adapts Lucide's
|
||||
file-text outline and combines it with contributor-original artwork. See
|
||||
assets/app-icon/LICENSE-document.txt (ISC AND (MIT OR Apache-2.0)), packaged as
|
||||
LICENSE-document.txt beside the Windows executables.
|
||||
- Inter typeface (assets/fonts/Inter-*.ttf) — SIL Open Font License 1.1. See assets/fonts/OFL-Inter.txt.
|
||||
- JetBrains Mono typeface (assets/fonts/JetBrainsMono-*.ttf) — SIL Open Font License 1.1. See assets/fonts/OFL-JetBrainsMono.txt.
|
||||
- Dancing Script typeface (assets/fonts/DancingScript.ttf), Copyright 2016 The Dancing Script Project Authors — SIL Open Font License 1.1 (Reserved Font Name "Dancing Script"). See assets/fonts/OFL-DancingScript.txt.
|
||||
- Fonts from craft-fonts (https://github.com/storytold/craft-fonts), an optional build input
|
||||
(CRAFT_FONTS_DIR) that is not part of this repository. Builds made with it, which includes every
|
||||
official release, embed the fonts listed in
|
||||
https://github.com/storytold/craft-fonts/blob/main/ATTRIBUTION.md (BIZ UDPGothic, Shippori Mincho,
|
||||
BIZ UDMincho; the web build only BIZ UDPGothic Regular) under the SIL Open Font License 1.1. Those
|
||||
packages carry each font's licence as OFL-<family>.txt. Builds made with the craft-fonts revision
|
||||
pinned in .github/workflows/ also include Noto Sans Thai (in the web build too), Copyright 2022
|
||||
The Noto Project Authors (https://github.com/notofonts/thai), under SIL OFL 1.1; its licence is
|
||||
fonts/noto-sans-thai/OFL.txt in the craft-fonts build input.
|
||||
- hayro (rendering, via crates.io) — Apache-2.0 OR MIT. Its `embed-fonts` feature bundles the Foxit
|
||||
standard-14 Type 1 fonts under BSD-3-Clause ("Copyright 2014 PDFium Authors"), and hayro-cmap bundles
|
||||
Adobe CMap resources under BSD-3-Clause.
|
||||
- lopdf (bootstrap document inspection, via crates.io) — MIT.
|
||||
- egui default fonts (epaint_default_fonts, via eframe) — Ubuntu Light (Ubuntu Font Licence 1.0),
|
||||
Hack (MIT / Bitstream Vera licence), Noto Emoji (SIL OFL 1.1), emoji-icon-font (MIT).
|
||||
- Colour profile in hayro-interpret — CGATS001Compat-v2-micro.icc (CC0-1.0, Clinton Ingram).
|
||||
|
||||
Required notices:
|
||||
|
||||
Foxit standard-14 substitute fonts (vendor/hayro-interpret/assets/*.pfb):
|
||||
Copyright 2014 PDFium Authors. All rights reserved. Original code copyright 2014 Foxit Software Inc.
|
||||
Redistributed under the BSD-3-Clause licence in vendor/hayro-interpret/assets/LICENSE_FOXIT.
|
||||
|
||||
CMap resources (bundled by hayro-cmap; character-mapping data, not visual assets):
|
||||
Copyright 1990-2023 Adobe. All rights reserved. Redistributed under the BSD-3-Clause licence
|
||||
(https://github.com/adobe-type-tools/cmap-resources/blob/master/LICENSE.txt). Neither the name of
|
||||
Adobe nor the names of its contributors are used to endorse or promote this product.
|
||||
|
||||
Showcase PDF (built by `cargo xtask demo-pdf`, not committed): fonts are downloaded at build time from
|
||||
google/fonts at a pinned commit, verified by SHA-256, all under the SIL Open Font License 1.1 — see the
|
||||
"Downloaded at build time" table in ATTRIBUTION.md.
|
||||
|
||||
Asset licences are not visible to cargo-deny; keep this file current whenever assets or asset-bundling
|
||||
dependencies change (plan/adr/0002, 0006).
|
||||
|
||||
Vendored (vendor/, patched; see vendor/README.md):
|
||||
- hayro 0.7.1 — Apache-2.0 OR MIT, Copyright the hayro authors (licence files kept in vendor/hayro).
|
||||
- hayro-interpret 0.7.0 — Apache-2.0 OR MIT, Copyright the hayro authors (LICENSE-APACHE, LICENSE-MIT kept in vendor/hayro-interpret).
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 141 KiB |
@@ -0,0 +1,123 @@
|
||||
{
|
||||
"manifest_version": "0.3",
|
||||
"name": "pdfcraft-mcp",
|
||||
"display_name": "PdfCraft for Claude",
|
||||
"version": "0.1.0",
|
||||
"description": "PDFs öffnen, auslesen, schwärzen, bereinigen, zusammenführen und mit Seitenzahlen/Wasserzeichen versehen. Getestet mit PdfCraft 0.9.0. Benötigt PdfCraft aus dem ArtCraft-Launcher unter C:\\Program Files\\PdfCraft\\.",
|
||||
"author": {
|
||||
"name": "Dominic Gundel"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://git.gundel.dev/dg/claude-skills.git"
|
||||
},
|
||||
"homepage": "https://git.gundel.dev/dg/claude-skills",
|
||||
"license": "MIT",
|
||||
"icon": "icon.png",
|
||||
"compatibility": {
|
||||
"platforms": [
|
||||
"win32"
|
||||
]
|
||||
},
|
||||
"server": {
|
||||
"type": "binary",
|
||||
"entry_point": "server/README.txt",
|
||||
"mcp_config": {
|
||||
"command": "C:\\Program Files\\PdfCraft\\pdfcraft-cli.exe",
|
||||
"args": [
|
||||
"mcp",
|
||||
"--compact",
|
||||
"--automation-read-root",
|
||||
"${user_config.read_root}",
|
||||
"--automation-write-root",
|
||||
"${user_config.write_root}"
|
||||
]
|
||||
}
|
||||
},
|
||||
"tools": [
|
||||
{
|
||||
"name": "doc_open",
|
||||
"description": "Open a PDF file and return its document id, page count and whether it can be edited."
|
||||
},
|
||||
{
|
||||
"name": "doc_info",
|
||||
"description": "Metadata, page sizes and labels, bookmarks, annotations, form fields, links, layers, page transitions and display times, attachments, fonts, security and repair notes."
|
||||
},
|
||||
{
|
||||
"name": "doc_save",
|
||||
"description": "Save to its own file (an incremental update, which keeps signatures valid) or to a new path (a full rewrite)."
|
||||
},
|
||||
{
|
||||
"name": "doc_close",
|
||||
"description": "Close a document."
|
||||
},
|
||||
{
|
||||
"name": "page_render",
|
||||
"description": "Render one page to a PNG image (default 96 dpi, at most 600)."
|
||||
},
|
||||
{
|
||||
"name": "text_extract",
|
||||
"description": "Extract the text of some or all pages, in reading order."
|
||||
},
|
||||
{
|
||||
"name": "text_find",
|
||||
"description": "Find a phrase (case-insensitive, whitespace-normalised) and return matches in page order with page and line rectangles in points (origin top-left)."
|
||||
},
|
||||
{
|
||||
"name": "doc_combine",
|
||||
"description": "Combine files, in order, into one PDF (bookmarks are kept under one entry per file)."
|
||||
},
|
||||
{
|
||||
"name": "doc_split",
|
||||
"description": "Split into several files written to out_dir: every N pages, before given pages, at top-level bookmarks (bookmarks: true; files named after them, repeated titles get -2, -3), or by file size (max_mb)."
|
||||
},
|
||||
{
|
||||
"name": "edit_undo",
|
||||
"description": "Undo the last edit of a document."
|
||||
},
|
||||
{
|
||||
"name": "command_list",
|
||||
"description": "Every registered PdfCraft command with its menu, shortcut, whether it is enabled now, and the tool that automates it."
|
||||
},
|
||||
{
|
||||
"name": "command_run",
|
||||
"description": "Run a registry command through its headless tool."
|
||||
},
|
||||
{
|
||||
"name": "command_batch",
|
||||
"description": "Run steps in order (at most 1000)."
|
||||
},
|
||||
{
|
||||
"name": "doc_inspect",
|
||||
"description": "With doc, return doc_info; otherwise return information for every open document (empty documents array when none are open)."
|
||||
},
|
||||
{
|
||||
"name": "render_preview",
|
||||
"description": "Render a PNG bounded by max_side (default 1024), without changing or saving the document."
|
||||
},
|
||||
{
|
||||
"name": "tool_search",
|
||||
"description": "Search and list all PdfCraft automation tools, including the core tools, with a one-sentence description each."
|
||||
},
|
||||
{
|
||||
"name": "tool_call",
|
||||
"description": "Run any PdfCraft tool by name with its arguments, exactly as if it were called directly."
|
||||
}
|
||||
],
|
||||
"user_config": {
|
||||
"read_root": {
|
||||
"type": "directory",
|
||||
"title": "Lese-Ordner",
|
||||
"description": "Hier darf Claude Dateien lesen. Ruhig weit fassen (z. B. Dokumente); der Schreib-Ordner sollte darin liegen, damit Ergebnisse wieder geöffnet werden können.",
|
||||
"required": true,
|
||||
"default": "${HOME}/Documents"
|
||||
},
|
||||
"write_root": {
|
||||
"type": "directory",
|
||||
"title": "Schreib-Ordner",
|
||||
"description": "Nur hier darf Claude speichern. Eng fassen, eigener Ordner, z. B. Dokumente\\Claude.",
|
||||
"required": true,
|
||||
"default": "${HOME}/Documents/Claude"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
Diese Erweiterung enthaelt keine CLI.
|
||||
Installiere PdfCraft ueber den ArtCraft-Launcher.
|
||||
Erwarteter Pfad: C:\Program Files\PdfCraft\pdfcraft-cli.exe
|
||||
@@ -0,0 +1 @@
|
||||
{"version":"0.9.0","repository":"https://github.com/storytold/pdfcraft","bundled":false,"source":"ArtCraft-Launcher","exe":"pdfcraft-cli.exe","path":"C:\\Program Files\\PdfCraft\\pdfcraft-cli.exe","tag":"v0.9.0","sha256":"149c8b55364fde4da332fed5cba3b31c084402867e5e5f8655fd05a69e995f60"}
|
||||
@@ -0,0 +1,8 @@
|
||||
# Changelog – vectorcraft-mcp
|
||||
|
||||
## 0.1.0 (2026-10-19)
|
||||
|
||||
- Erste Version: Skill und Claude-Desktop-Erweiterung für VectorCraft 0.13.1 aus dem ArtCraft-Launcher (`C:\Program Files\VectorCraft\vectorcraft-cli.exe`, nicht auf PATH).
|
||||
- Lese- und Schreib-Ordner sind Pflicht. Ohne sie versucht der Server zuerst, eine laufende App auf `127.0.0.1:7979` zu erreichen; mit beiden Ordnern läuft er ohne Fenster.
|
||||
- Der Schreib-Ordner muss im Lese-Ordner liegen, sonst lassen sich eigene Ergebnisse nicht wieder öffnen. Standard: Lese = Dokumente, Schreib = Dokumente\Claude.
|
||||
- Cursor-Plugin `vectorcraft-mcp-cursor-v0.1.0.zip` (Server `vectorcraft`) inkl. Deeplink; die Ordner-Argumente werden übernommen.
|
||||
@@ -0,0 +1,88 @@
|
||||
# vectorcraft-mcp
|
||||
|
||||
[Alle Skills](../../README.md)
|
||||
|
||||
## Zweck
|
||||
|
||||
Zeichnet Vektorgrafiken über den MCP-Server von VectorCraft und exportiert sie als SVG, PDF oder DXF. Getestet mit 0.13.1 (Typenschilder, Schilder, DXF für Laser). Die Anweisungen für den Agenten stehen in [SKILL.md](SKILL.md) (clientneutral).
|
||||
|
||||
## Voraussetzungen
|
||||
|
||||
- **VectorCraft** über den ArtCraft-Launcher (`C:\Program Files\VectorCraft\vectorcraft-cli.exe`, im MSI enthalten, nicht auf PATH)
|
||||
- Claude Desktop **oder** Cursor (siehe unten)
|
||||
- Die Erweiterung bzw. das Plugin sowie dieses Skill-ZIP
|
||||
|
||||
**Cursor:** siehe [Wurzel-README](../../README.md) und [docs/CURSOR.md](../../docs/CURSOR.md).
|
||||
|
||||
## Installation (Claude Desktop)
|
||||
|
||||
Schritt-für-Schritt: [docs/INSTALLATION.md](../../docs/INSTALLATION.md). Kurz:
|
||||
|
||||
1. `vectorcraft-mcp-v0.1.0.mcpb` und `vectorcraft-mcp-v0.1.0.zip` aus dem [Release](https://git.gundel.dev/dg/claude-skills/releases/download/vectorcraft-mcp%2Fv0.1.0/vectorcraft-mcp-v0.1.0.mcpb) laden.
|
||||
2. Die `.mcpb` doppelklicken (oder über Einstellungen → Erweiterungen installieren).
|
||||
3. **Lese-Ordner weit:** `Dokumente`. **Schreib-Ordner eng und darin:** `Dokumente\Claude`. VectorCraft lehnt es ab, eine selbst geschriebene Datei wieder zu öffnen, wenn der Schreib-Ordner außerhalb des Lese-Ordners liegt.
|
||||
4. Unter Einstellungen → Erweiterungen prüfen, dass **VectorCraft for Claude** eingeschaltet ist.
|
||||
5. Skill-ZIP hochladen: **„+“ → „Skill erstellen“ → „Skill hochladen“**.
|
||||
6. Claude komplett beenden (auch Taskleiste) und neu starten. **Neuen** Chat öffnen.
|
||||
|
||||
**Umsteigen von der manuellen Config:** Eintrag `vectorcraft` unter `mcpServers` vor der Installation entfernen.
|
||||
|
||||
## Ordner und Start
|
||||
|
||||
Ohne Lese- und Schreib-Ordner versucht der Server zuerst, eine laufende App auf `127.0.0.1:7979` zu erreichen. Mit beiden Ordnern läuft er ohne Fenster. Deshalb nie ohne die Ordner-Argumente starten. Die Cursor-Übersetzung übernimmt dieselben Argumente.
|
||||
|
||||
| | Standard |
|
||||
|---|---|
|
||||
| Lesen | `${HOME}/Documents` |
|
||||
| Schreiben | `${HOME}/Documents/Claude` |
|
||||
|
||||
## Freigaben
|
||||
|
||||
In Claude bei `open_file`, `save_file` und `export` auf **„Immer fragen“** lassen, wenn du Pfade mitkontrollieren willst.
|
||||
|
||||
## Enthaltene Software
|
||||
|
||||
Die Erweiterung steuert [VectorCraft](https://github.com/storytold/vectorcraft) (MIT oder Apache-2.0) aus dem ArtCraft-Launcher; die CLI wird **nicht** mitgeliefert. Lizenztexte liegen in der `.mcpb` unter `LICENSES/`. Das Icon ist die App-Kachel aus `assets/app-icon/` (512×512, ebenfalls MIT oder Apache-2.0).
|
||||
|
||||
## Test
|
||||
|
||||
Neuen Chat öffnen und ein Typenschild 100×50 mm als DXF exportieren lassen. Im CAD prüfen, ob die Maße 100×50 mm sind. Präfix `…VectorCraft_for_Claude…`.
|
||||
|
||||
Fehlen die Tools: Erweiterung eingeschaltet? CLI unter `C:\Program Files\VectorCraft\vectorcraft-cli.exe`? Neu starten, neuer Chat.
|
||||
|
||||
## Stolpersteine
|
||||
|
||||
- „path rejected“ oder die gespeicherte Datei lässt sich nicht wieder öffnen: Schreib-Ordner liegt nicht im Lese-Ordner. Einstellungen → Erweiterungen → VectorCraft for Claude.
|
||||
- Erweiterungen sind nicht signiert; nur installieren, wenn du der Quelle vertraust.
|
||||
|
||||
## Deinstallation/Update
|
||||
|
||||
Einstellungen → Erweiterungen → entfernen; Skill löschen. Update: neue `.mcpb` und Skill-ZIP, ersetzen lassen, neu starten.
|
||||
|
||||
## Alternative: manuell (für Entwickler)
|
||||
|
||||
Statt der Erweiterung in `claude_desktop_config.json` eintragen. Stolpersteine: [MCP unter Windows einrichten](../../docs/windows-mcp-einrichtung.md).
|
||||
|
||||
- Claude-Installer: `%APPDATA%\Claude\claude_desktop_config.json`
|
||||
- Microsoft-Store-App: `%LOCALAPPDATA%\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\claude_desktop_config.json`
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"vectorcraft": {
|
||||
"command": "C:\\Program Files\\VectorCraft\\vectorcraft-cli.exe",
|
||||
"args": [
|
||||
"mcp",
|
||||
"--automation-read-root", "C:\\Pfad\\zu\\Dokumente",
|
||||
"--automation-write-root", "C:\\Pfad\\zu\\Dokumente\\Claude"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Die Ordner-Argumente nicht weglassen, sonst spricht der Server zuerst `127.0.0.1:7979` an.
|
||||
|
||||
## Änderungen
|
||||
|
||||
[CHANGELOG.md](CHANGELOG.md)
|
||||
@@ -0,0 +1,84 @@
|
||||
---
|
||||
name: vectorcraft-mcp
|
||||
description: Vektorgrafiken über den VectorCraft-MCP-Server zeichnen, bearbeiten und als SVG, PDF, DXF, EPS, PNG exportieren (Illustrator-Klon); öffnet auch DXF, SVG, PDF, AI, EPS. Verwenden, wenn VectorCraft-Werkzeuge verbunden sind oder der Nutzer VectorCraft nennt; typisch für Typenschilder und Laser-/Gravurvorlagen als DXF in mm, Hinweisschilder, Piktogramme, Skizzen und Illustrationen für Betriebsanleitungen.
|
||||
---
|
||||
|
||||
# Vektorgrafik mit VectorCraft (MCP)
|
||||
|
||||
VectorCraft ist ein Open-Source-Vektorprogramm (Rust), das Illustrator-Parität anstrebt. Getestet mit Version 0.13.1.
|
||||
|
||||
## Voraussetzung
|
||||
|
||||
Die Werkzeuge `draw_shape`, `draw_path`, `add_text`, `run_command`, `export`, `render_preview` … müssen verbunden sein. Ihr Präfix hängt vom Client und vom Namen der Erweiterung bzw. des Servers ab (z. B. `mcp__…__VectorCraft_for_Claude__draw_shape`). Sind sie zurückgestellt, nach dem Werkzeugnamen ohne Präfix suchen und alle benötigten auf einmal laden. Fehlen sie, dem Nutzer sagen, dass der Server nicht verbunden ist (Einrichtung siehe README).
|
||||
|
||||
Dateizugriff: Lesen nur im Lese-Ordner, Schreiben nur im Schreib-Ordner. Wegen der Ordnergrenzen läuft der Server immer ohne Fenster (headless). Die Werkzeuge `inspect_ui`, `type_text`, `open_panel`, `ui_*` und `screenshot {window: true}` gehen deshalb nicht.
|
||||
|
||||
## Werkzeuge
|
||||
|
||||
| Tool | Zweck |
|
||||
|---|---|
|
||||
| `run_command {command, params}` | jeder Menübefehl, z. B. `file.new` |
|
||||
| `list_commands {filter, brief}` | Befehle suchen |
|
||||
| `draw_shape` | rectangle/ellipse (`x,y,width,height`, `radius`), polygon, star, line (`x1,y1,x2,y2`) |
|
||||
| `draw_path` | `points: [[x,y],…]` oder SVG-`d`; `closed`, `fill`, `stroke`, `strokeWidth`, `join`, `cap`, `dash` |
|
||||
| `add_text` | Punkttext (`x,y` = Grundlinie) oder Flächentext (`width,height`); `size`, `font`, `color`, `justify` |
|
||||
| `set_paint`, `transform`, `pathfinder`, `apply_effect` | Farbe, verschieben/drehen/skalieren, Boolesche Operationen, Effekte |
|
||||
| `inspect_document {depth}` / `doc_inspect` | Ebenen, Objekte, Begrenzungen |
|
||||
| `render_preview` / `screenshot` | Zeichenfläche als PNG |
|
||||
| `open_file` / `save_file` / `export` | .vectorcraft, SVG, PDF, AI, EPS, DXF, EMF, PNG, JPG … |
|
||||
| `undo` / `redo` | Verlauf |
|
||||
|
||||
## Arbeitsweise
|
||||
|
||||
1. **Neues Dokument in mm-Größe:** `run_command {command: "file.new", params: {name, width: "100 mm", height: "50 mm", units: "Millimeters"}}`. Ohne `file.new` ist das Format US-Letter (612 × 792 pt).
|
||||
2. **Koordinaten sind immer Punkt**, auch wenn die Einheit auf mm steht. Umrechnen: `pt = mm × 72 / 25,4` (1 mm = 2,8346 pt). Ursprung oben links, y nach unten.
|
||||
3. **Befehle nie raten:** `list_commands {filter: "…", brief: true}`.
|
||||
4. **Ansehen:** `render_preview {max_side: 1000}`. Für scharfe Bilder lieber `export {format: "png", scale: 3}`.
|
||||
5. **Speichern** als `.vectorcraft` unter neuem Namen, dann in das Zielformat exportieren.
|
||||
|
||||
## Fallen (im Test bestätigt)
|
||||
|
||||
- **`add_text {y}` ist die Grundlinie**, nicht die Oberkante. Die Schrift ragt um etwa 0,7 × `size` nach oben.
|
||||
- **Schriften:** Fehlt eine Schrift (z. B. `Helvetica-Bold`), wird still auf „Source Sans 3“ ausgewichen; der Export meldet das in `warnings`. Unter Windows z. B. `Arial` verwenden und die Warnungen beim Export lesen. `run_command text.fontList` listet die vorhandenen Schriften.
|
||||
- **DXF für Laser/Gravur:**
|
||||
- `export {format: "dxf", path}` schreibt im Maßstab 1:1 in mm (`$INSUNITS` = mm), y nach oben, Ursprung unten links. Im Test hatte ein 100 × 50 mm großes Schild genau 0–100 × 0–50.
|
||||
- Text wird als Kontur geschrieben, Kreise als echte CIRCLE.
|
||||
- Flächen bekommen zusätzlich Schraffuren (HATCH). Für Laser- und CAD-Programme ggf. `run_command document.exportDxf {path, version: "R12"}` ohne Schraffuren, oder `preserve: "editability"`, wenn Text als Text bleiben soll.
|
||||
- **SVG:** Text bleibt `<text>` (Schrift muss beim Empfänger vorhanden sein). Mit `outlineText: true` wird er zu Pfaden; das ist für die Weitergabe sicherer.
|
||||
- **Lese-/Schreib-Ordner getrennt:** Eine Datei im Schreib-Ordner kann nur wieder geöffnet werden, wenn der Schreib-Ordner im Lese-Ordner liegt.
|
||||
- `open_file` öffnet ein **neues** Dokument und macht es aktiv; Befehle wirken auf das aktive Dokument.
|
||||
|
||||
## Rezepte
|
||||
|
||||
1. **Typenschild (DXF für Laser/Gravur, PDF zur Freigabe):**
|
||||
1. `file.new` in Schildgröße.
|
||||
2. Kontur mit `draw_shape rectangle {radius}`, Bohrungen als `ellipse`, eine Trennlinie.
|
||||
3. Texte zeilenweise mit `add_text` (Hersteller, Typ, Serien-Nr., Baujahr, Spannung/Frequenz, Strom, Schutzart, Gewicht).
|
||||
4. `render_preview` ansehen.
|
||||
5. Speichern, dann `export` als PDF und DXF.
|
||||
|
||||
Pflichtangaben nach Maschinenrichtlinie/Maschinenverordnung und das CE-Zeichen in Originalproportionen gibt der Nutzer vor; nicht selbst ergänzen.
|
||||
2. **Hinweis-/Warnschild:** Dreieck mit `draw_path {closed, join: "round"}`, Symbol aus einfachen Formen, Text darunter mit `justify: "center"`. Export als SVG (für WordCraft-Dokumente) und PNG `scale: 3`.
|
||||
3. **Grafik für die Betriebsanleitung:** DXF/PDF vom Konstrukteur mit `open_file` öffnen, Beschriftungen, Pfeile und Positionsnummern ergänzen, als SVG/PNG exportieren.
|
||||
|
||||
## Abschlussprüfung
|
||||
|
||||
- `render_preview` angesehen: Texte innerhalb der Kontur, nichts verdeckt.
|
||||
- Export-`warnings` gelesen (Schriftersatz, nicht unterstützte Effekte).
|
||||
- Bei DXF: Maße im Ergebnis plausibel (Breite × Höhe in mm), dem Nutzer Version und Einheit nennen.
|
||||
- Pfade der gespeicherten Dateien dem Nutzer genannt.
|
||||
|
||||
## Datenschutz
|
||||
|
||||
Ampel:
|
||||
- 🟢 Allgemeine und technische Inhalte ohne Kundenbezug.
|
||||
- 🟡 Projekt- und Geschäftsinfos: nur nach Abwägung oder anonymisiert.
|
||||
- 🔴 Personenbezogene Daten und NDA-Inhalte gehören nicht in die Cloud-KI.
|
||||
|
||||
Kundenzeichnungen (DXF/PDF) mit Kundenname oder NDA-Vermerk sind 🔴: nur mit Zustimmung des Nutzers öffnen.
|
||||
|
||||
## Grenzen
|
||||
|
||||
- **Keine zertifizierten Sicherheitszeichen.** Selbst gezeichnete Warnschilder sind Entwürfe. Für die Maschine die offiziellen ISO-7010-Zeichen verwenden und das dem Nutzer sagen.
|
||||
- Logos und Marken Dritter nicht nachzeichnen. Eigenes Firmenlogo nur aus einer Datei, die der Nutzer liefert.
|
||||
- DWG kann nicht geschrieben werden, nur DXF. Binäre DXF und DWG werden nicht geöffnet.
|
||||
@@ -0,0 +1,2 @@
|
||||
server/*.exe
|
||||
**/*.exe
|
||||
@@ -0,0 +1,177 @@
|
||||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2026 ArtCraft Team and the VectorCraft contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -0,0 +1,94 @@
|
||||
VectorCraft
|
||||
Copyright (c) 2026 ArtCraft Team and the VectorCraft contributors.
|
||||
Licensed under the MIT License or the Apache License, Version 2.0, at your option
|
||||
(LICENSE-MIT, LICENSE-APACHE).
|
||||
|
||||
The ArtCraft name, wordmark and logos in docs/brand/ are trademarks of the ArtCraft Team. They are
|
||||
not open source and are not covered by the license above; their terms are in
|
||||
docs/brand/LICENSE-brand.txt.
|
||||
|
||||
Third-party material
|
||||
|
||||
This product bundles third-party material under its own licenses, listed below. The per-file
|
||||
list (author, source, license) is in ASSETS.md.
|
||||
|
||||
- Lucide icons (assets/icons/*.svg except dc-*.svg) — ISC License; the icons Lucide derived from Feather are also under the MIT License (Cole Bemis). See assets/icons/LICENSE-lucide.txt.
|
||||
- Source Sans 3 and Source Serif 4 (assets/fonts/Source*) — SIL Open Font License 1.1. See assets/fonts/OFL-SourceSans3.txt, OFL-SourceSerif4.txt.
|
||||
- Inter (assets/fonts/Inter-*.ttf) — SIL Open Font License 1.1. See assets/fonts/OFL-Inter.txt.
|
||||
- JetBrains Mono (assets/fonts/JetBrainsMono-*.ttf) — SIL Open Font License 1.1. See assets/fonts/OFL-JetBrainsMono.txt.
|
||||
- egui's default fonts, compiled into the app through the epaint_default_fonts crate — Ubuntu Light
|
||||
(Ubuntu Font Licence 1.0), Hack (MIT), Noto Emoji (SIL Open Font License 1.1) and emoji-icon-font
|
||||
(MIT). Their license texts ship with that crate.
|
||||
|
||||
Rust dependencies (vello_cpu, kurbo, peniko, skrifa, harfrust, usvg, linesweeper, egui, eframe, …) are
|
||||
fetched through crates.io under their own permissive licenses (mostly MIT and/or Apache-2.0; also
|
||||
BSD, ISC, Zlib, BSL-1.0 and Unicode-3.0).
|
||||
|
||||
JPEG export uses the jpeg-encoder crate (MIT OR Apache-2.0, and the IJG License): this software is
|
||||
based in part on the work of the Independent JPEG Group.
|
||||
|
||||
WebAssembly plug-ins run in the wasmi interpreter (MIT OR Apache-2.0); its wasmparser dependency is
|
||||
under the Apache License 2.0 with the LLVM exception.
|
||||
|
||||
The experimental Windows 7 build (packaging/windows/windows7.ps1) compiles a modified copy of the
|
||||
windows-link crate 0.2.1 (vendor/windows-link; Microsoft, MIT OR Apache-2.0) that binds CoTaskMemFree
|
||||
through ole32.dll. Its license texts are in vendor/windows-link and ship in that build's ZIP; every
|
||||
other build uses the unmodified crate from crates.io.
|
||||
|
||||
Builds made with craft-fonts (the CRAFT_FONTS_DIR build option; all official releases) embed the
|
||||
fonts listed in https://github.com/storytold/craft-fonts/blob/main/ATTRIBUTION.md (BIZ UDPGothic,
|
||||
Shippori Mincho, BIZ UDMincho, Noto Sans CJK SC and Noto Sans Arabic in the current manifest;
|
||||
web builds BIZ UDPGothic Regular only) under the SIL
|
||||
Open Font License 1.1. Their license texts ship with the release packages as OFL-<family>.txt.
|
||||
|
||||
PDF import decodes CJK text with Adobe's CMap resources (https://github.com/adobe-type-tools/cmap-resources),
|
||||
compiled into the app through the hayro-cmap crate under the BSD 3-Clause License:
|
||||
|
||||
Copyright 1990-2023 Adobe. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
|
||||
Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
|
||||
Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
|
||||
Neither the name of Adobe nor the names of its contributors may be
|
||||
used to endorse or promote products derived from this software without
|
||||
specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
Shared PDF backend
|
||||
|
||||
The patched hayro-interpret 0.7.0, hayro-syntax 0.7.2 and hayro-jbig2 0.3.0
|
||||
are fetched from https://github.com/storytold/craft-libs at revision
|
||||
ca50d63b773c99f96e75c77ce5a1d21e7c9cda0d. Their upstream project is
|
||||
https://github.com/LaurenzV/hayro, licensed MIT OR Apache-2.0. The snapshot retains each
|
||||
crate's upstream licence files. The patch ledger is at
|
||||
https://github.com/storytold/craft-libs/blob/ca50d63b773c99f96e75c77ce5a1d21e7c9cda0d/vendor/README.craft-reader.md.
|
||||
|
||||
Assets already bundled through Hayro's default features retain their licences:
|
||||
- Foxit standard-14 substitutes: Copyright 2014 PDFium Authors. All rights reserved.
|
||||
Original code copyright 2014 Foxit Software Inc. BSD-3-Clause; see
|
||||
licenses/pdf-backend/hayro-interpret/assets/LICENSE_FOXIT.
|
||||
- CGATS001Compat-v2-micro.icc: CC0-1.0, Clinton Ingram; see
|
||||
licenses/pdf-backend/hayro-interpret/assets/CGATS_LICENSE.txt.
|
||||
- Predefined CMaps: Copyright 1990-2023 Adobe. All rights reserved. BSD-3-Clause,
|
||||
non-visual character-mapping data; see licenses/pdf-backend/hayro-cmap/LICENSE.txt.
|
||||
Adobe and contributor names do not endorse or promote this product.
|
||||
Per-file hashes and sources are recorded in ASSETS.md.
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 148 KiB |
@@ -0,0 +1,182 @@
|
||||
{
|
||||
"manifest_version": "0.3",
|
||||
"name": "vectorcraft-mcp",
|
||||
"display_name": "VectorCraft for Claude",
|
||||
"version": "0.1.0",
|
||||
"description": "Vektorgrafiken zeichnen – Typenschilder, Schilder, Piktogramme – und als SVG/PDF/DXF exportieren. Getestet mit VectorCraft 0.13.1. Benötigt VectorCraft aus dem ArtCraft-Launcher unter C:\\Program Files\\VectorCraft\\.",
|
||||
"author": {
|
||||
"name": "Dominic Gundel"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://git.gundel.dev/dg/claude-skills.git"
|
||||
},
|
||||
"homepage": "https://git.gundel.dev/dg/claude-skills",
|
||||
"license": "MIT",
|
||||
"icon": "icon.png",
|
||||
"compatibility": {
|
||||
"platforms": [
|
||||
"win32"
|
||||
]
|
||||
},
|
||||
"server": {
|
||||
"type": "binary",
|
||||
"entry_point": "server/README.txt",
|
||||
"mcp_config": {
|
||||
"command": "C:\\Program Files\\VectorCraft\\vectorcraft-cli.exe",
|
||||
"args": [
|
||||
"mcp",
|
||||
"--automation-read-root",
|
||||
"${user_config.read_root}",
|
||||
"--automation-write-root",
|
||||
"${user_config.write_root}"
|
||||
]
|
||||
}
|
||||
},
|
||||
"tools": [
|
||||
{
|
||||
"name": "command_list",
|
||||
"description": "Discover command ids, labels, parameter descriptions and enabled state."
|
||||
},
|
||||
{
|
||||
"name": "command_run",
|
||||
"description": "Run an engine command by id with its JSON params."
|
||||
},
|
||||
{
|
||||
"name": "command_batch",
|
||||
"description": "Run steps in order; each edit is its own undo step, or with atomic:true the whole batch is one (named `label`, else after its first edit)."
|
||||
},
|
||||
{
|
||||
"name": "doc_inspect",
|
||||
"description": "Summary of the active document, including artboards, layer tree, selection and history."
|
||||
},
|
||||
{
|
||||
"name": "render_preview",
|
||||
"description": "Render an artboard (default the first) as inline PNG without changing the document."
|
||||
},
|
||||
{
|
||||
"name": "ui_inspect",
|
||||
"description": "Inspect the connected desktop interface; returns a tool error in headless mode."
|
||||
},
|
||||
{
|
||||
"name": "ui_screenshot",
|
||||
"description": "Capture the connected desktop window as inline PNG; requires a running desktop app."
|
||||
},
|
||||
{
|
||||
"name": "list_commands",
|
||||
"description": "List VectorCraft commands (id, label, menu path, shortcut, parameter description, enabled state)."
|
||||
},
|
||||
{
|
||||
"name": "run_command",
|
||||
"description": "Execute any VectorCraft command by id with JSON params (see list_commands for ids and params)."
|
||||
},
|
||||
{
|
||||
"name": "inspect_document",
|
||||
"description": "Summary of the active document: artboards, layer tree (ids, names, kinds, bounds, fill/stroke), selection, undo history, current tool and default paint."
|
||||
},
|
||||
{
|
||||
"name": "inspect_ui",
|
||||
"description": "UI state of the running desktop app: tool and options, panels, dialogs, view (zoom/center), window, documents, perf."
|
||||
},
|
||||
{
|
||||
"name": "select_tool",
|
||||
"description": "Switch the active tool (as clicking it in the Tools panel)."
|
||||
},
|
||||
{
|
||||
"name": "pointer_gesture",
|
||||
"description": "Drive the active tool with mouse events in document coordinates, exactly like the mouse would (e.g."
|
||||
},
|
||||
{
|
||||
"name": "draw_path",
|
||||
"description": "Create a path from points ([[x,y],…] or [{x,y,in?:[x,y],out?:[x,y]},…] with Bézier handles) or SVG path data `d`, then apply optional paint, stroke dash/cap/join, opacity, name and live effects."
|
||||
},
|
||||
{
|
||||
"name": "draw_shape",
|
||||
"description": "Create a live shape and apply optional paint."
|
||||
},
|
||||
{
|
||||
"name": "set_paint",
|
||||
"description": "Set fill, stroke and/or stroke weight on the selection (or `ids`) and as the default for new art."
|
||||
},
|
||||
{
|
||||
"name": "press_key",
|
||||
"description": "Send a key press with modifiers, e.g."
|
||||
},
|
||||
{
|
||||
"name": "type_text",
|
||||
"description": "Type text into the focused widget (text tool, dialog field)."
|
||||
},
|
||||
{
|
||||
"name": "invoke_menu",
|
||||
"description": "Invoke a menu item by its command id (same ids as list_commands, including UI-only commands like view.zoomIn or window.* in the desktop app)."
|
||||
},
|
||||
{
|
||||
"name": "open_panel",
|
||||
"description": "Open a panel in the desktop app's dock by id (layers, swatches, stroke, align, pathfinder, transform, …; case-insensitive, display labels like \"Layers\" work too)."
|
||||
},
|
||||
{
|
||||
"name": "screenshot",
|
||||
"description": "Render the active artboard to PNG and return it as an image (optionally also saving it to `path`)."
|
||||
},
|
||||
{
|
||||
"name": "open_file",
|
||||
"description": "Open a file as a new, active document: .vectorcraft, .drawcraft, .svg, .svgz, .pdf, .ai, .ait, .png, .jpg, .jpeg, .gif, .webp, .tif, .tiff, .bmp, .tga, .vda, .icb, .vst, .psd, .psb, .vctemplate, .dxf, .emf, .wmf, .eps, ."
|
||||
},
|
||||
{
|
||||
"name": "save_file",
|
||||
"description": "Save the active document with the engine's document.save: by default to its own file in its own format (native .vectorcraft unless it was opened from or saved as SVG, PDF or a restorable .ai)."
|
||||
},
|
||||
{
|
||||
"name": "export",
|
||||
"description": "Export the active document with the engine's document.export (the same bytes in the app and headless), in any format of the `format` enum: vectors (svg/svgz with the artboard as viewBox, eps, dxf, emf, wmf), pdf and ai ("
|
||||
},
|
||||
{
|
||||
"name": "add_text",
|
||||
"description": "Create point type at (x, y) (the first baseline), area type when width/height are given (`fit` autoHeight grows the frame to the text, shrinkText scales the text down to fit), or type in/on an existing path (`path` id + "
|
||||
},
|
||||
{
|
||||
"name": "apply_effect",
|
||||
"description": "Append a live effect (Effect menu) to the selection or `ids`."
|
||||
},
|
||||
{
|
||||
"name": "pathfinder",
|
||||
"description": "Combine the selected (or `ids`) objects destructively, back to front: unite, minusFront, intersect, exclude, divide, trim, merge, crop, outline, minusBack."
|
||||
},
|
||||
{
|
||||
"name": "transform",
|
||||
"description": "Move, rotate, scale, reflect or shear the selection (or `ids`); several may be combined and run in that order."
|
||||
},
|
||||
{
|
||||
"name": "create_graph",
|
||||
"description": "Create a graph (graph tools) in the plot rectangle."
|
||||
},
|
||||
{
|
||||
"name": "text_wrap",
|
||||
"description": "Make the selected (or `ids`) objects wrap objects: area type below them in the same layer flows around them (offset in pt, invert = flow inside)."
|
||||
},
|
||||
{
|
||||
"name": "undo",
|
||||
"description": "Undo the last change (Edit → Undo)."
|
||||
},
|
||||
{
|
||||
"name": "redo",
|
||||
"description": "Redo the last undone change (Edit → Redo)."
|
||||
}
|
||||
],
|
||||
"user_config": {
|
||||
"read_root": {
|
||||
"type": "directory",
|
||||
"title": "Lese-Ordner",
|
||||
"description": "Hier darf Claude Dateien lesen. Ruhig weit fassen (z. B. Dokumente); der Schreib-Ordner sollte darin liegen, damit Ergebnisse wieder geöffnet werden können.",
|
||||
"required": true,
|
||||
"default": "${HOME}/Documents"
|
||||
},
|
||||
"write_root": {
|
||||
"type": "directory",
|
||||
"title": "Schreib-Ordner",
|
||||
"description": "Nur hier darf Claude speichern. Eng fassen, eigener Ordner, z. B. Dokumente\\Claude.",
|
||||
"required": true,
|
||||
"default": "${HOME}/Documents/Claude"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
Diese Erweiterung enthaelt keine CLI.
|
||||
Installiere VectorCraft ueber den ArtCraft-Launcher.
|
||||
Erwarteter Pfad: C:\Program Files\VectorCraft\vectorcraft-cli.exe
|
||||
@@ -0,0 +1 @@
|
||||
{"version":"0.13.1","repository":"https://github.com/storytold/vectorcraft","bundled":false,"source":"ArtCraft-Launcher","exe":"vectorcraft-cli.exe","path":"C:\\Program Files\\VectorCraft\\vectorcraft-cli.exe","tag":"v0.13.1","sha256":"fb1867428fc134c1e02418ff010e81a05a01d39e6148177accfb5b4944c48dd9"}
|
||||
Reference in new issue
Block a user