From 3ac6cd5a29681371c7da4e260ee84af7068a85b5 Mon Sep 17 00:00:00 2001 From: Dominic Gundel Date: Mon, 19 Oct 2026 15:36:37 +0200 Subject: [PATCH] =?UTF-8?q?GridCraft-Skill=20erg=C3=A4nzen=20und=20die=20g?= =?UTF-8?q?emeinsamen=20Windows-MCP-Schritte=20auslagern.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + docs/windows-mcp-einrichtung.md | 18 ++++++ skills/gridcraft-mcp/CHANGELOG.md | 5 ++ skills/gridcraft-mcp/README.md | 95 +++++++++++++++++++++++++++++++ skills/gridcraft-mcp/SKILL.md | 80 ++++++++++++++++++++++++++ skills/wordcraft-mcp/README.md | 8 +-- 6 files changed, 201 insertions(+), 6 deletions(-) create mode 100644 docs/windows-mcp-einrichtung.md create mode 100644 skills/gridcraft-mcp/CHANGELOG.md create mode 100644 skills/gridcraft-mcp/README.md create mode 100644 skills/gridcraft-mcp/SKILL.md diff --git a/README.md b/README.md index 8a97726..d9b3269 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,7 @@ Sammlung von Skills für Claude. Jeder Skill ist ein abgeschlossener Ordner: `SK | Skill | Kurzbeschreibung | Version | Doku | Download | |---|---|---|---|---| +| [gridcraft-mcp](skills/gridcraft-mcp/) | Excel-Arbeitsmappen (.xlsx, .csv) über den GridCraft-MCP-Server erstellen, öffnen, ändern, berechnen, formatieren und prüfen – Kalkulationen, Stücklisten, Listen, Diagramme, PDF-Export. | 0.1.0 | [README](skills/gridcraft-mcp/README.md) | [gridcraft-mcp-v0.1.0.zip](https://git.gundel.dev/dg/claude-skills/releases/tag/gridcraft-mcp/v0.1.0) | | [wordcraft-mcp](skills/wordcraft-mcp/) | Word-Dokumente (.docx, .odt, .md, PDF) über den WordCraft-MCP-Server erstellen, bearbeiten und prüfen, inkl. Nachverfolgung – mit erprobten Fallen aus WordCraft 0.8.0; statt wordcraft-dokumente verwenden. | 0.1.1 | [README](skills/wordcraft-mcp/README.md) | [wordcraft-mcp-v0.1.1.zip](https://git.gundel.dev/dg/claude-skills/releases/tag/wordcraft-mcp/v0.1.1) | diff --git a/docs/windows-mcp-einrichtung.md b/docs/windows-mcp-einrichtung.md new file mode 100644 index 0000000..7a68cd6 --- /dev/null +++ b/docs/windows-mcp-einrichtung.md @@ -0,0 +1,18 @@ +# MCP-Server unter Windows einrichten + +[Alle Skills](../README.md) + +Gilt für Skills, die einen lokalen MCP-Server in Claude Desktop eintragen: [wordcraft-mcp](../skills/wordcraft-mcp/README.md), [gridcraft-mcp](../skills/gridcraft-mcp/README.md). Der Pfad zur jeweiligen Programmdatei und die Argumente stehen in der README des Skills. + +## Ort der Config + +- Claude-Installer: `%APPDATA%\Claude\claude_desktop_config.json` +- Microsoft-Store-App: `%LOCALAPPDATA%\Packages\Claude_\LocalCache\Roaming\Claude\claude_desktop_config.json` (existiert `%APPDATA%\Claude` nicht, ist es die Store-Version) + +## Nur mcpServers ergänzen + +Die Config enthält bereits Einstellungen der App. Nur den Block `"mcpServers"` ergänzen, sonst nichts verändern. Bestehende Einträge darin behalten. Auf gültiges JSON achten (Kommas, doppelte Backslashes in Pfaden). + +## App überschreibt die Config + +Die Claude-App speichert Einstellungen aus ihrem Arbeitsspeicher zurück und löscht dabei frisch eingetragene `mcpServers` (passiert zum Beispiel, wenn man im laufenden Betrieb einen Ordnerzugriff erteilt). Deshalb: eintragen, speichern, **sofort** Claude komplett beenden (auch im Tray) und neu starten, danach den Eintrag kontrollieren. diff --git a/skills/gridcraft-mcp/CHANGELOG.md b/skills/gridcraft-mcp/CHANGELOG.md new file mode 100644 index 0000000..59a6f1d --- /dev/null +++ b/skills/gridcraft-mcp/CHANGELOG.md @@ -0,0 +1,5 @@ +# Changelog – gridcraft-mcp + +## 0.1.0 (2026-10-19) + +- Erstveröffentlichung, getestet mit GridCraft 0.8.0. diff --git a/skills/gridcraft-mcp/README.md b/skills/gridcraft-mcp/README.md new file mode 100644 index 0000000..fd8e16c --- /dev/null +++ b/skills/gridcraft-mcp/README.md @@ -0,0 +1,95 @@ +# gridcraft-mcp + +[Alle Skills](../../README.md) + +## Zweck + +Erstellt und bearbeitet Excel-Arbeitsmappen (`.xlsx`, `.csv`) über den MCP-Server von GridCraft. GridCraft ist der Open-Source-Excel-Nachbau aus der ArtCraft-Suite, getestet mit 0.8.0. Die Anweisungen für Claude stehen in [SKILL.md](SKILL.md). + +## Voraussetzungen + +- GridCraft inklusive `gridcraft-cli.exe` ist installiert. Der ArtCraft-Launcher legt die Dateien nach `C:\Program Files\GridCraft\` und trägt nichts in den PATH ein. +- Claude Desktop ist installiert. +- Der MCP-Server ist in der `claude_desktop_config.json` eingetragen. + +**Keine Ordnerbeschränkung.** Anders als WordCraft kennt GridCraft keine `--automation-read-root` und `--automation-write-root`. Der Server kann jede Datei lesen und schreiben, die der Windows-Benutzer lesen und schreiben darf. In Claude bei den GridCraft-Werkzeugen `open_workbook`, `save_workbook` und `execute_command` auf „Immer fragen“ lassen. Der Skill weist Claude an, nie über ein Original zu speichern, sondern immer unter einem neuen Namen. + +## Installation + +Git ist nicht nötig. + +1. Das ZIP [gridcraft-mcp-v0.1.0.zip](https://git.gundel.dev/dg/claude-skills/releases/tag/gridcraft-mcp/v0.1.0) aus dem Release laden. +2. In Claude **„+“ → „Skill erstellen“ → „Skill hochladen“** wählen und das ZIP hochladen. + +## Einrichtung + +In der bestehenden `claude_desktop_config.json` nur einen Eintrag innerhalb von `mcpServers` ergänzen. Bestehende Einträge, zum Beispiel `wordcraft`, bleiben unverändert. + +```json +"gridcraft": { + "command": "C:\\Program Files\\GridCraft\\gridcraft-cli.exe", + "args": ["mcp"] +} +``` + +So sieht `mcpServers` aus, wenn WordCraft schon eingetragen ist. Den vorhandenen `wordcraft`-Block nicht durch dieses Beispiel ersetzen, nur `gridcraft` daneben setzen: + +```json +{ + "mcpServers": { + "wordcraft": { + "command": "C:\\Program Files\\WordCraft\\wordcraft-cli.exe", + "args": [ + "mcp", + "--author", "Claude", + "--automation-read-root", "C:\\Pfad\\zu\\Dokumente", + "--automation-write-root", "C:\\Pfad\\zu\\Dokumente\\claude_out" + ] + }, + "gridcraft": { + "command": "C:\\Program Files\\GridCraft\\gridcraft-cli.exe", + "args": ["mcp"] + } + } +} +``` + +## Einrichtung unter Windows – Stolpersteine + +Gemeinsame Punkte (Ort der Config, nur `mcpServers` ergänzen, App überschreibt die Datei): [MCP unter Windows einrichten](../../docs/windows-mcp-einrichtung.md). + +- Der ArtCraft-Launcher installiert nach `C:\Program Files\GridCraft\` (`gridcraft.exe` und `gridcraft-cli.exe`) und trägt nichts in den PATH ein. `Get-Command gridcraft-cli` findet die Datei daher nicht; in die Config den vollen Pfad schreiben. Auffinden mit: + + ```powershell + Get-ChildItem "$env:ProgramFiles","$env:LOCALAPPDATA" -Recurse -Filter "gridcraft-cli.exe" -ErrorAction SilentlyContinue + ``` + +## Im Test geprüft + +Formeln, Tabellen, Zahlenformate und der PDF-Export. Beim Öffnen und Speichern einer bestehenden `.xlsx` blieben erhalten: verbundene Zellen, Kommentare, bedingte Formatierung, Datenüberprüfung, Namen, blattübergreifende Formeln, Fixierung, A4 quer und die Kopfzeile. + +## Bekannte Grenzen + +Kurzfassung, die Einzelheiten stehen in [SKILL.md](SKILL.md): + +- Formeln nur englisch und mit Komma als Trenner. +- Deutsche Zahlen und Datumsangaben als Text werden nicht erkannt und rechnen nicht mit. +- Diagramme nur aus einem zusammenhängenden Bereich. +- CSV-Export ist komma-getrennt und schreibt das Anzeigeformat. +- Keine Makros. + +## Test + +Neuen Chat öffnen und fragen: „Sind die GridCraft-Tools verfügbar? Lies A1:E10 aus .“ + +Fehlen die Tools, zuerst den Eintrag in der Config prüfen. Nicht auf ein anderes Programm ausweichen. + +## Deinstallation/Update + +Deinstallation: In Claude den Skill aus der Liste entfernen. Den Block `gridcraft` unter `mcpServers` nur löschen, wenn GridCraft nicht mehr benutzt wird. Andere Einträge in der Config nicht anfassen. + +Update: das ZIP der neuen Version aus dem Release laden und wie bei der Installation hochladen. Liegt die alte Fassung noch in Claude, diese vorher entfernen. + +## Änderungen + +[CHANGELOG.md](CHANGELOG.md) diff --git a/skills/gridcraft-mcp/SKILL.md b/skills/gridcraft-mcp/SKILL.md new file mode 100644 index 0000000..89d4b4a --- /dev/null +++ b/skills/gridcraft-mcp/SKILL.md @@ -0,0 +1,80 @@ +--- +name: gridcraft-mcp +description: Excel-Arbeitsmappen (.xlsx, .csv) über den GridCraft-MCP-Server erstellen, öffnen, ändern, berechnen, formatieren und prüfen – Kalkulationen, Stücklisten, Listen, Diagramme, PDF-Export. +--- + +# Tabellen mit GridCraft (MCP) + +GridCraft ist eine Open-Source-Tabellenkalkulation (Rust), die Excel-Parität anstrebt. Alles ist ein Befehl mit stabiler ID nach dem Excel-Ribbon (`home.bold`, `insert.chart`, `data.sort` …); Ribbon, CLI und MCP rufen dieselben Befehle auf. Getestet mit Version 0.8.0. + +## Voraussetzung + +Der MCP-Server muss verbunden sein (Tools wie `write_range`, `read_range`, `execute_command`). Je nach Client heißen sie mit Präfix, z. B. `mcp__…__gridcraft__write_range`; sind sie zurückgestellt, erst per ToolSearch laden. Fehlen sie, dem Nutzer sagen, dass der Server nicht läuft (Claude-App komplett neu starten, Eintrag in `claude_desktop_config.json` prüfen – die App kann ihn beim Speichern eigener Einstellungen überschreiben), statt auf etwas anderes auszuweichen. + +**Keine Ordnerbeschränkung:** Anders als WordCraft kennt GridCraft keine `--automation-read-root/-write-root`. Der Server kann jede Datei lesen und schreiben, die der Nutzer lesen und schreiben darf. Deshalb: +- Nur Dateien öffnen, die der Nutzer genannt hat. +- Nie über ein Original speichern. Immer unter neuem Namen speichern (z. B. `_bearbeitet.xlsx` im selben Ordner oder in einem vom Nutzer genannten Ausgabeordner) und den Pfad nennen. +- Vor jedem `save_workbook` / `file.export*` den Zielpfad prüfen. + +## Tools + +| Tool | Zweck | +|---|---| +| `list_commands` | `{search}` – Befehls-IDs mit Parametern | +| `execute_command` | `{command, params}` – jeder Befehl | +| `inspect_workbook` | Blätter, genutzte Bereiche, Tabellen, Diagramme, Namen, Undo-Liste | +| `read_range` | `{range, sheet?, formulas?, formatted?}` – Werte, Formeln oder Anzeigetext | +| `write_range` | `{range, values}` – 2-D-Array; Strings mit `=` sind Formeln | +| `set_cell` / `get_cell` | eine Zelle schreiben/lesen (Wert, Formel, Text, Stil) | +| `evaluate_formula` | Formel testen, ohne das Blatt zu ändern | +| `format_range` | `bold, italic, underline, fontName, fontSize, fontColor, fillColor, numberFormat, horizontalAlign, wrapText, borders` | +| `create_table` | `{range, name?, header?, style?}` | +| `insert_chart` | `{range, type, title?, subtype?, at?}` | +| `sort_range` / `filter` | Sortieren / AutoFilter | +| `new_workbook` / `open_workbook` / `save_workbook` | Dateien (.xlsx, .csv, .tsv, .json, .html) | +| `undo` / `redo` | Verlauf | +| `list_functions` | verfügbare Tabellenfunktionen | +| `screenshot` | nur im Remote-Modus (`--connect`) | + +Bereiche mit Blatt: `"Kalkulation!A3:E8"`. + +## Arbeitsweise + +1. **Befehls-IDs nie raten:** `list_commands {search: "…"}` (z. B. `column width`, `freeze`, `page`, `rename`, `chart.`). +2. **Daten in einem Rutsch:** `write_range` mit ganzer Tabelle inkl. Formeln statt vieler `set_cell`. +3. **Formeln statt fester Werte** für alles Berechnete (Summen, MwSt, Aufschläge), damit der Nutzer in Excel weiterrechnen kann. Parameter (Aufschlag, MwSt-Satz) in eigene Zellen und per absolutem Bezug (`$B$1`) verwenden. +4. **Prüfen:** `read_range` (berechnete Werte), `read_range {formulas: true}` (Formeln), `read_range {formatted: true}` (Anzeige), `inspect_workbook` (Struktur). Beim PDF-Export das Ergebnis ansehen. +5. **Speichern** als .xlsx unter neuem Namen; zur Kontrolle mit `open_workbook` wieder öffnen und Formeln lesen. + +## Deutsche Eingaben – wichtigste Fallen (im Test bestätigt) + +- **Formeln nur englisch und mit Komma:** `=SUM(E2:E5)`, `=ROUND(E8,2)`, `=VLOOKUP(…,FALSE)`, `=IF(…)`. Deutsche Namen (`=SUMME(…)`) ergeben `#NAME?`, Semikolon als Trenner ergibt einen Formelfehler. Excel zeigt die Formeln beim Öffnen trotzdem auf Deutsch an. +- **Zahlen als JSON-Zahl mit Punkt** übergeben (`0.75`, nicht `"0,75"`). Ein String mit Komma wird **als Text** gespeichert und rechnet nicht mit. +- **Datumswerte als ISO** (`"2026-10-19"`) oder `=DATE(2026,10,19)`. `"19.10.2026"` wird zu Text. Danach Zahlenformat setzen: `numberFormat: "DD.MM.YYYY"`. +- **Zahlenformate sind sprachneutral:** `"#,##0.00 €"` erscheint in GridCraft als `1,114.10 €`, in einem deutschen Excel aber korrekt als `1.114,10 €`. Nicht „reparieren“. +- **Neue Mappe = US-Letter, Blatt heißt `Sheet1`:** für deutsche Dokumente `pageLayout.size {paper: "A4"}` und `sheet.rename {sheet: "Sheet1", name: "…"}`. + +## Weitere Fallen + +- **Diagramme nur aus zusammenhängendem Bereich:** `insert_chart {range: "B1:B5,E1:E5"}` liefert ein leeres Diagramm über den Daten. Kategorie und Werte nebeneinander anordnen (oder Hilfsbereich anlegen) und `range: "A1:B5"` nutzen. Immer `at` setzen (z. B. `"H2"`), damit das Diagramm keine Daten verdeckt. +- **PDF-Export** (`file.exportPdf {path}`) schneidet breite Inhalte ab: vorher `home.autofitColumnWidth {cols: "A:E"}`, ggf. `pageLayout.orientation {orientation: "landscape"}` und `pageLayout.scaleToFit {width: 1}`. +- **Spaltenbreiten** werden nicht automatisch angepasst: nach dem Befüllen `home.autofitColumnWidth`. +- **CSV-Export** (`save_workbook` mit `.csv`) schreibt Komma-getrennt und die **formatierte Anzeige** (`412.50 €`). Für deutsches Excel oder ERP-Import ungeeignet – lieber .xlsx liefern oder vor dem CSV-Export Zahlenformate entfernen und den Nutzer auf das Trennzeichen hinweisen. +- **`open_workbook` öffnet eine weitere Mappe** und macht sie aktiv; Befehle wirken auf die aktive Mappe. Bei mehreren Mappen mit `inspect_workbook` prüfen, welche aktiv ist. +- `undo` nach `open_workbook` hat keinen Verlauf; Fehler vor dem Speichern beheben. + +## Bestehende Mappen bearbeiten + +Im Test blieben beim Öffnen und Speichern einer Excel-Datei erhalten: verbundene Zellen, Schrift, Zahlenformate, Kommentare, bedingte Formatierung, Datenüberprüfung, benannte Bereiche, blattübergreifende Formeln, fixierte Bereiche, Spaltenbreiten, Seitenformat (A4 quer) und Kopfzeile. + +Ablauf: +1. `open_workbook` → `inspect_workbook` → relevante Bereiche mit `read_range {formulas: true}` lesen, bevor etwas geändert wird. +2. Nur die gewünschten Zellen ändern; Formeln anderer Zellen nicht durch Werte ersetzen. +3. Ergebnis gegenlesen (`read_range`), unter neuem Namen speichern. +4. Dem Nutzer kurz sagen, was geändert wurde (Zellen, alter → neuer Wert), und vorschlagen, die Datei einmal in Excel zu öffnen. + +## Grenzen + +- Keine Netzwerkfunktionen (`WEBSERVICE` liefert `#VALUE!`), keine Makros/VBA. +- Funktionsumfang mit `list_functions` prüfen, bevor exotische Funktionen genutzt werden. +- Im Remote-Modus (`--connect`) steuert der Server die geöffnete Desktop-App; das ist ebenfalls nicht auf Ordner beschränkt. diff --git a/skills/wordcraft-mcp/README.md b/skills/wordcraft-mcp/README.md index 5c70707..bdcbb60 100644 --- a/skills/wordcraft-mcp/README.md +++ b/skills/wordcraft-mcp/README.md @@ -42,19 +42,15 @@ In die bestehende `claude_desktop_config.json` nur den Block `mcpServers` einfü ## Einrichtung unter Windows – Stolpersteine +Gemeinsame Punkte (Ort der Config, nur `mcpServers` ergänzen, App überschreibt die Datei): [MCP unter Windows einrichten](../../docs/windows-mcp-einrichtung.md). + - Der ArtCraft-Launcher installiert nach `C:\Program Files\WordCraft\` (`wordcraft.exe` und `wordcraft-cli.exe`) und trägt nichts in den PATH ein. `Get-Command wordcraft-cli` findet die Datei daher nicht; in die Config den vollen Pfad schreiben. Auffinden mit: ```powershell Get-ChildItem "$env:ProgramFiles","$env:LOCALAPPDATA" -Recurse -Filter "wordcraft-cli.exe" -ErrorAction SilentlyContinue ``` -- Ort der Config: - - Claude-Installer: `%APPDATA%\Claude\claude_desktop_config.json` - - Microsoft-Store-App: `%LOCALAPPDATA%\Packages\Claude_\LocalCache\Roaming\Claude\claude_desktop_config.json` (existiert `%APPDATA%\Claude` nicht, ist es die Store-Version) -- Die Config enthält bereits Einstellungen der App. Nur den Block `"mcpServers"` ergänzen, sonst nichts verändern; auf gültiges JSON achten (Kommas, doppelte Backslashes). - Der Ordner aus `--automation-write-root` muss vorher existieren, sonst startet der Server nicht. -- Die Claude-App speichert Einstellungen aus ihrem Arbeitsspeicher zurück und löscht dabei frisch eingetragene `mcpServers` (passiert zum Beispiel, wenn man im laufenden Betrieb einen Ordnerzugriff erteilt). Deshalb: eintragen, speichern, **sofort** Claude komplett beenden (auch im Tray) und neu starten, danach den Eintrag kontrollieren. -- Test: neuen Chat öffnen und fragen „Sind die WordCraft-Tools verfügbar?“ ## Test