diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 40636b2..d1f3036 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -75,7 +75,7 @@ skills// Ein Paket pro Skill, Dateiname `dist/-v.zip`. Im ZIP liegt der Ordner `/` mit `SKILL.md` auf oberster Ebene. `README.md` und `CHANGELOG.md` werden nicht eingepackt. -Skills mit `extension/` liefern zusätzlich `dist/-v.mcpb`. Die CLI wird aus der ArtCraft-Launcher-Installation kopiert (`scripts/fetch-cli`), nicht von GitHub heruntergeladen. Die `.mcpb` bleibt unsigniert, solange kein Code-Signing-Zertifikat vorliegt (`mcpb sign` braucht `--cert` / `--key`; `--self-signed` hilft nicht gegen Defender). +Skills mit `extension/` liefern zusätzlich `dist/-v.mcpb`. Die `.mcpb` enthält **keine** CLI-EXE: sie zeigt auf die Installation aus dem ArtCraft-Launcher (`C:\Program Files\…`). `scripts/fetch-cli` prüft nur, dass die EXE lokal vorhanden ist, und aktualisiert `upstream.json` sowie die Lizenztexte. Die `.mcpb` bleibt unsigniert, solange kein Code-Signing-Zertifikat vorliegt (`mcpb sign` braucht `--cert` / `--key`; `--self-signed` hilft nicht gegen Defender). ```sh scripts/package.sh # nur Skill-ZIPs diff --git a/README.md b/README.md index 4275ea9..02bd24b 100644 --- a/README.md +++ b/README.md @@ -9,8 +9,8 @@ Schritt-für-Schritt-Installation: [docs/INSTALLATION.md](docs/INSTALLATION.md). | Skill | Kurzbeschreibung | Version | Doku | Download | Erweiterung (.mcpb) | |---|---|---|---|---|---| -| [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.2.0 | [README](skills/gridcraft-mcp/README.md) | [gridcraft-mcp-v0.2.0.zip](https://git.gundel.dev/dg/claude-skills/releases/download/gridcraft-mcp%2Fv0.2.0/gridcraft-mcp-v0.2.0.zip) | [gridcraft-mcp-v0.2.0.mcpb](https://git.gundel.dev/dg/claude-skills/releases/download/gridcraft-mcp%2Fv0.2.0/gridcraft-mcp-v0.2.0.mcpb) | -| [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. | 0.2.0 | [README](skills/wordcraft-mcp/README.md) | [wordcraft-mcp-v0.2.0.zip](https://git.gundel.dev/dg/claude-skills/releases/download/wordcraft-mcp%2Fv0.2.0/wordcraft-mcp-v0.2.0.zip) | [wordcraft-mcp-v0.2.0.mcpb](https://git.gundel.dev/dg/claude-skills/releases/download/wordcraft-mcp%2Fv0.2.0/wordcraft-mcp-v0.2.0.mcpb) | +| [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.2.1 | [README](skills/gridcraft-mcp/README.md) | [gridcraft-mcp-v0.2.1.zip](https://git.gundel.dev/dg/claude-skills/releases/download/gridcraft-mcp%2Fv0.2.1/gridcraft-mcp-v0.2.1.zip) | [gridcraft-mcp-v0.2.1.mcpb](https://git.gundel.dev/dg/claude-skills/releases/download/gridcraft-mcp%2Fv0.2.1/gridcraft-mcp-v0.2.1.mcpb) | +| [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. | 0.2.1 | [README](skills/wordcraft-mcp/README.md) | [wordcraft-mcp-v0.2.1.zip](https://git.gundel.dev/dg/claude-skills/releases/download/wordcraft-mcp%2Fv0.2.1/wordcraft-mcp-v0.2.1.zip) | [wordcraft-mcp-v0.2.1.mcpb](https://git.gundel.dev/dg/claude-skills/releases/download/wordcraft-mcp%2Fv0.2.1/wordcraft-mcp-v0.2.1.mcpb) | ## Skill installieren diff --git a/docs/INSTALLATION.md b/docs/INSTALLATION.md index 3000c6e..24b42c2 100644 --- a/docs/INSTALLATION.md +++ b/docs/INSTALLATION.md @@ -17,10 +17,9 @@ Ohne Erweiterung kann Claude nichts tun, ohne Skill macht es mehr Fehler. Instal - Windows 10 oder 11 - **Claude Desktop** installiert und angemeldet (die App, nicht nur der Browser) +- **ArtCraft-Launcher:** darüber **WordCraft** und **GridCraft** installieren (legt die Programme nach `C:\Program Files\WordCraft\` bzw. `C:\Program Files\GridCraft\`). Die Claude-Erweiterung enthält die Programme **nicht**. - Ein eigener Ordner, in den Claude speichern darf, z. B. `Dokumente\Claude-Ausgabe`. Leg ihn jetzt an. -WordCraft oder GridCraft selbst musst du **nicht** installieren – das Nötige steckt in der Erweiterung. - --- ## 1. Dateien herunterladen @@ -94,7 +93,7 @@ Claude sollte beide Werkzeuge finden und eine `.xlsx`-Datei im Ausgabeordner spe | Problem | Lösung | |---|---| -| Claude sagt, die Werkzeuge fehlen | Einstellungen → Erweiterungen: Ist die Erweiterung eingeschaltet? Dann Claude komplett beenden (auch Taskleiste) und neu starten. | +| Claude sagt, die Werkzeuge fehlen | ArtCraft-Launcher: Sind WordCraft bzw. GridCraft installiert? Einstellungen → Erweiterungen: Ist die Erweiterung eingeschaltet? Dann Claude komplett beenden (auch Taskleiste) und neu starten. | | WordCraft speichert nicht („path rejected“) | Claude wollte außerhalb des Schreib-Ordners speichern. Ordner prüfen: Einstellungen → Erweiterungen → WordCraft für Claude → Einstellungen. | | 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 €`. | diff --git a/scripts/fetch-cli.ps1 b/scripts/fetch-cli.ps1 index 09cdb45..0479ada 100644 --- a/scripts/fetch-cli.ps1 +++ b/scripts/fetch-cli.ps1 @@ -1,6 +1,5 @@ -# Copies the ArtCraft-Launcher CLI into skills\\extension\server\ -# and writes upstream.json plus LICENSES from the matching upstream tag. -# No GitHub binary download. Requires WordCraft/GridCraft installed via ArtCraft Launcher. +# Checks that the ArtCraft-Launcher CLI is installed and refreshes upstream.json + LICENSES. +# Does NOT copy or ship the EXE into the extension package. # Usage: scripts\fetch-cli.ps1 -Name [-CliPath ] param( [Parameter(Mandatory = $true)][string]$Name, @@ -42,14 +41,22 @@ if (-not (Test-Path -LiteralPath $src)) { exit 1 } +# Ensure no EXE is left in the extension package from older builds. $serverDir = Join-Path $ext 'server' New-Item -ItemType Directory -Force -Path $serverDir | Out-Null -$dest = Join-Path $serverDir $meta.ExeName -Copy-Item -LiteralPath $src -Destination $dest -Force +Get-ChildItem -LiteralPath $serverDir -Filter '*.exe' -ErrorAction SilentlyContinue | Remove-Item -Force +$readme = Join-Path $serverDir 'README.txt' +if (-not (Test-Path $readme)) { + Write-Text $readme @" +Diese Erweiterung enthaelt keine CLI. +Installiere die App ueber den ArtCraft-Launcher. +Erwarteter Pfad: $src +"@ +} -$verOut = & $dest --version 2>&1 | Out-String +$verOut = & $src --version 2>&1 | Out-String if ($LASTEXITCODE -ne 0 -and $Name -eq 'gridcraft-mcp') { - $verOut = & $dest version 2>&1 | Out-String + $verOut = & $src version 2>&1 | Out-String } $ver = '' if ($verOut -match '(\d+\.\d+\.\d+)') { $ver = $Matches[1] } @@ -58,7 +65,7 @@ if (-not $ver) { exit 1 } -$hash = (Get-FileHash -LiteralPath $dest -Algorithm SHA256).Hash.ToLowerInvariant() +$hash = (Get-FileHash -LiteralPath $src -Algorithm SHA256).Hash.ToLowerInvariant() $upstream = @{ source = 'ArtCraft-Launcher' path = $src @@ -67,6 +74,7 @@ $upstream = @{ sha256 = $hash repository = $meta.Repo tag = "v$ver" + bundled = $false } | ConvertTo-Json -Compress Write-Text (Join-Path $ext 'upstream.json') ($upstream + "`n") @@ -86,5 +94,4 @@ foreach ($f in @('LICENSE-MIT', 'LICENSE-APACHE', 'NOTICE')) { } } -Write-Host "OK $Name $ver $hash" -Write-Host " $dest" +Write-Host "OK $Name $ver (nicht gebundelt) $src" diff --git a/scripts/fetch-cli.sh b/scripts/fetch-cli.sh index 0d2f2ed..1ab7a4c 100644 --- a/scripts/fetch-cli.sh +++ b/scripts/fetch-cli.sh @@ -1,7 +1,6 @@ #!/usr/bin/env bash -# Copies the ArtCraft-Launcher CLI into skills//extension/server/ -# and writes upstream.json plus LICENSES from the matching upstream tag. -# No GitHub binary download. Requires WordCraft/GridCraft via ArtCraft Launcher. +# Checks that the ArtCraft-Launcher CLI is installed and refreshes upstream.json + LICENSES. +# Does NOT copy or ship the EXE into the extension package. # Usage: scripts/fetch-cli.sh [cli-path] set -euo pipefail source "$(dirname "$0")/lib.sh" @@ -22,15 +21,13 @@ fi case "$name" in wordcraft-mcp) exe_name=wordcraft-cli.exe - default='/mnt/c/Program Files/WordCraft/wordcraft-cli.exe' - [[ -f "$default" ]] || default='C:/Program Files/WordCraft/wordcraft-cli.exe' + default='C:/Program Files/WordCraft/wordcraft-cli.exe' repo='https://github.com/storytold/wordcraft' repo_slug='storytold/wordcraft' ;; gridcraft-mcp) exe_name=gridcraft-cli.exe - default='/mnt/c/Program Files/GridCraft/gridcraft-cli.exe' - [[ -f "$default" ]] || default='C:/Program Files/GridCraft/gridcraft-cli.exe' + default='C:/Program Files/GridCraft/gridcraft-cli.exe' repo='https://github.com/storytold/gridcraft' repo_slug='storytold/gridcraft' ;; @@ -48,13 +45,17 @@ if [[ ! -f "$src" ]]; then fi mkdir -p "$ext/server" -dest="$ext/server/$exe_name" -cp -f "$src" "$dest" -chmod +x "$dest" 2>/dev/null || true +rm -f "$ext/server"/*.exe +if [[ ! -f "$ext/server/README.txt" ]]; then + printf '%s\n' \ + 'Diese Erweiterung enthaelt keine CLI.' \ + 'Installiere die App ueber den ArtCraft-Launcher.' \ + "Erwarteter Pfad: $src" > "$ext/server/README.txt" +fi -ver_out="$("$dest" --version 2>&1 || true)" +ver_out="$("$src" --version 2>&1 || true)" if [[ ! "$ver_out" =~ [0-9]+\.[0-9]+\.[0-9]+ ]] && [[ "$name" == gridcraft-mcp ]]; then - ver_out="$("$dest" version 2>&1 || true)" + ver_out="$("$src" version 2>&1 || true)" fi if [[ ! "$ver_out" =~ ([0-9]+\.[0-9]+\.[0-9]+) ]]; then echo "Version der CLI nicht lesbar: $ver_out" >&2 @@ -63,11 +64,11 @@ fi ver="${BASH_REMATCH[1]}" if command -v sha256sum >/dev/null 2>&1; then - hash="$(sha256sum "$dest" | awk '{print $1}')" + hash="$(sha256sum "$src" | awk '{print $1}')" elif command -v shasum >/dev/null 2>&1; then - hash="$(shasum -a 256 "$dest" | awk '{print $1}')" + hash="$(shasum -a 256 "$src" | awk '{print $1}')" else - hash="$(python3 -c "import hashlib,sys; print(hashlib.sha256(open(sys.argv[1],'rb').read()).hexdigest())" "$dest")" + hash="$(python3 -c "import hashlib,sys; print(hashlib.sha256(open(sys.argv[1],'rb').read()).hexdigest())" "$src")" fi python3 -c " @@ -80,6 +81,7 @@ print(json.dumps({ 'sha256': sys.argv[4], 'repository': sys.argv[5], 'tag': 'v' + sys.argv[3], + 'bundled': False, }, separators=(',', ':'))) " "$src" "$exe_name" "$ver" "$hash" "$repo" > "$ext/upstream.json" printf '\n' >> "$ext/upstream.json" || true @@ -94,5 +96,4 @@ for f in LICENSE-MIT LICENSE-APACHE NOTICE; do fi done -echo "OK $name $ver $hash" -echo " $dest" +echo "OK $name $ver (nicht gebundelt) $src" diff --git a/scripts/release.ps1 b/scripts/release.ps1 index 88f3519..491915a 100644 --- a/scripts/release.ps1 +++ b/scripts/release.ps1 @@ -5,9 +5,25 @@ param([Parameter(Mandatory = $true)][string]$Name) . (Join-Path $PSScriptRoot 'lib.ps1') -$Token = $env:GITEA_TOKEN -if (-not $Token) { - Write-Host 'GITEA_TOKEN fehlt. Persoenliches Zugangs-Token mit Schreibrecht (write:repository), nur in der Umgebung.' +# Prefer GITEA_TOKEN; otherwise reuse git credential helper (same auth as git push). +$AuthHeader = $null +if ($env:GITEA_TOKEN) { + $AuthHeader = "token $($env:GITEA_TOKEN)" +} +else { + $credRaw = "protocol=https`nhost=git.gundel.dev`n`n" | git credential fill 2>$null + $user = $null; $pass = $null + foreach ($line in $credRaw) { + if ($line -match '^username=(.*)$') { $user = $Matches[1] } + if ($line -match '^password=(.*)$') { $pass = $Matches[1] } + } + if ($user -and $pass) { + $pair = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes("${user}:${pass}")) + $AuthHeader = "Basic $pair" + } +} +if (-not $AuthHeader) { + Write-Host 'Keine Auth: GITEA_TOKEN setzen oder git credential fuer git.gundel.dev hinterlegen.' exit 1 } @@ -58,7 +74,7 @@ $api = 'https://git.gundel.dev/api/v1/repos/dg/claude-skills' function Invoke-Gitea([string]$Method, [string]$Url, [byte[]]$Body, [string]$ContentType) { $req = [Net.HttpWebRequest]::Create($Url) $req.Method = $Method - $req.Headers.Add('Authorization', "token $Token") + $req.Headers.Add('Authorization', $AuthHeader) $req.Accept = 'application/json' if ($null -ne $Body) { $req.ContentType = $ContentType diff --git a/skills/gridcraft-mcp/CHANGELOG.md b/skills/gridcraft-mcp/CHANGELOG.md index f0e1bc0..59d10ec 100644 --- a/skills/gridcraft-mcp/CHANGELOG.md +++ b/skills/gridcraft-mcp/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog – gridcraft-mcp +## 0.2.1 (2026-10-19) + +- `.mcpb` enthält keine CLI mehr; setzt GridCraft aus dem ArtCraft-Launcher voraus (`C:\Program Files\GridCraft\gridcraft-cli.exe`). + ## 0.2.0 (2026-10-19) - Auslieferung als Claude-Desktop-Erweiterung (`.mcpb`) zusätzlich zum Skill-ZIP. diff --git a/skills/gridcraft-mcp/README.md b/skills/gridcraft-mcp/README.md index a2febf4..d894980 100644 --- a/skills/gridcraft-mcp/README.md +++ b/skills/gridcraft-mcp/README.md @@ -9,6 +9,7 @@ Erstellt und bearbeitet Excel-Arbeitsmappen (`.xlsx`, `.csv`) über den MCP-Serv ## Voraussetzungen - Claude Desktop (die App) +- **GridCraft** über den ArtCraft-Launcher (`C:\Program Files\GridCraft\gridcraft-cli.exe`) - Die Erweiterung `gridcraft-mcp-….mcpb` und dieses Skill-ZIP (siehe [Installation](#installation)) **Keine Ordnerbeschränkung.** Anders als WordCraft kennt GridCraft keine Lese-/Schreib-Roots. 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. @@ -17,7 +18,7 @@ Erstellt und bearbeitet Excel-Arbeitsmappen (`.xlsx`, `.csv`) über den MCP-Serv Schritt-für-Schritt: [docs/INSTALLATION.md](../../docs/INSTALLATION.md). Kurz: -1. `gridcraft-mcp-v….mcpb` und `gridcraft-mcp-v….zip` aus dem [Release](https://git.gundel.dev/dg/claude-skills/releases/download/gridcraft-mcp%2Fv0.2.0/gridcraft-mcp-v0.2.0.mcpb) laden. +1. `gridcraft-mcp-v….mcpb` und `gridcraft-mcp-v….zip` aus dem [Release](https://git.gundel.dev/dg/claude-skills/releases/download/gridcraft-mcp%2Fv0.2.1/gridcraft-mcp-v0.2.1.mcpb) laden. 2. Die `.mcpb` doppelklicken (oder über Einstellungen → Erweiterungen installieren). 3. Skill-ZIP in Claude hochladen: **„+“ → „Skill erstellen“ → „Skill hochladen“**. 4. Claude komplett beenden (auch Taskleiste) und neu starten. @@ -26,7 +27,7 @@ Schritt-für-Schritt: [docs/INSTALLATION.md](../../docs/INSTALLATION.md). Kurz: ## Enthaltene Software -Die Erweiterung enthält `gridcraft-cli.exe` aus [GridCraft](https://github.com/storytold/gridcraft) 0.8.0 (MIT oder Apache-2.0). Lizenztexte liegen in der `.mcpb` unter `LICENSES/`. +Die Erweiterung steuert [GridCraft](https://github.com/storytold/gridcraft) (MIT oder Apache-2.0) aus dem ArtCraft-Launcher; die CLI wird **nicht** mitgeliefert. Lizenztexte des Upstreams liegen in der `.mcpb` unter `LICENSES/`. ## Im Test geprüft diff --git a/skills/gridcraft-mcp/SKILL.md b/skills/gridcraft-mcp/SKILL.md index 2ef4394..ddabb32 100644 --- a/skills/gridcraft-mcp/SKILL.md +++ b/skills/gridcraft-mcp/SKILL.md @@ -11,7 +11,7 @@ GridCraft ist eine Open-Source-Tabellenkalkulation (Rust), die Excel-Parität an 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, statt auf etwas anderes auszuweichen. -**Standardweg:** die Claude-Desktop-Erweiterung „GridCraft für Claude“ ist installiert und eingeschaltet (siehe `docs/INSTALLATION.md`). Fehlen die Tools: Einstellungen → Erweiterungen prüfen, Claude komplett beenden (auch Taskleiste) und neu starten. +**Standardweg:** GridCraft aus dem ArtCraft-Launcher und die Claude-Desktop-Erweiterung „GridCraft für Claude“ sind installiert und eingeschaltet (siehe `docs/INSTALLATION.md`). Fehlen die Tools: ArtCraft-Installation und Einstellungen → Erweiterungen prüfen, Claude komplett beenden (auch Taskleiste) und neu starten. **Alternative (Entwickler):** Eintrag `gridcraft` in `claude_desktop_config.json`; die App kann ihn beim Speichern eigener Einstellungen überschreiben. diff --git a/skills/gridcraft-mcp/extension/.mcpbignore b/skills/gridcraft-mcp/extension/.mcpbignore new file mode 100644 index 0000000..410d3a4 --- /dev/null +++ b/skills/gridcraft-mcp/extension/.mcpbignore @@ -0,0 +1,2 @@ +server/*.exe +**/*.exe diff --git a/skills/gridcraft-mcp/extension/manifest.json b/skills/gridcraft-mcp/extension/manifest.json index b88eb18..3a883be 100644 --- a/skills/gridcraft-mcp/extension/manifest.json +++ b/skills/gridcraft-mcp/extension/manifest.json @@ -2,8 +2,8 @@ "manifest_version": "0.3", "name": "gridcraft-mcp", "display_name": "GridCraft für Claude", - "version": "0.2.0", - "description": "Excel-Arbeitsmappen (.xlsx, .csv) erstellen und bearbeiten. Getestet mit GridCraft 0.8.0. Ohne Ordnersperre – GridCraft kann alle Dateien lesen und schreiben, auf die der Benutzer Zugriff hat.", + "version": "0.2.1", + "description": "Excel-Arbeitsmappen (.xlsx, .csv) erstellen und bearbeiten. Getestet mit GridCraft 0.8.0. Erfordert GridCraft aus dem ArtCraft-Launcher. Ohne Ordnersperre – GridCraft kann alle Dateien lesen und schreiben, auf die der Benutzer Zugriff hat.", "author": { "name": "Dominic Gundel" }, @@ -21,9 +21,9 @@ }, "server": { "type": "binary", - "entry_point": "server/gridcraft-cli.exe", + "entry_point": "server/README.txt", "mcp_config": { - "command": "${__dirname}/server/gridcraft-cli.exe", + "command": "C:\\Program Files\\GridCraft\\gridcraft-cli.exe", "args": [ "mcp" ] diff --git a/skills/gridcraft-mcp/extension/server/README.txt b/skills/gridcraft-mcp/extension/server/README.txt new file mode 100644 index 0000000..ee84d99 --- /dev/null +++ b/skills/gridcraft-mcp/extension/server/README.txt @@ -0,0 +1,3 @@ +Diese Erweiterung enthaelt keine CLI. +Installiere GridCraft ueber den ArtCraft-Launcher. +Erwarteter Pfad: C:\Program Files\GridCraft\gridcraft-cli.exe diff --git a/skills/gridcraft-mcp/extension/upstream.json b/skills/gridcraft-mcp/extension/upstream.json index 9043280..8a17333 100644 --- a/skills/gridcraft-mcp/extension/upstream.json +++ b/skills/gridcraft-mcp/extension/upstream.json @@ -1,9 +1 @@ -{ - "sha256": "2eafa6b8d08357fb44610e030ebe54491b5abc1329da3d748878228a868d779a", - "version": "0.8.0", - "source": "ArtCraft-Launcher", - "repository": "https://github.com/storytold/gridcraft", - "exe": "gridcraft-cli.exe", - "path": "C:\\Program Files\\GridCraft\\gridcraft-cli.exe", - "tag": "v0.8.0" -} +{"version":"0.8.0","repository":"https://github.com/storytold/gridcraft","bundled":false,"source":"ArtCraft-Launcher","exe":"gridcraft-cli.exe","path":"C:\\Program Files\\GridCraft\\gridcraft-cli.exe","tag":"v0.8.0","sha256":"2eafa6b8d08357fb44610e030ebe54491b5abc1329da3d748878228a868d779a"} diff --git a/skills/wordcraft-mcp/CHANGELOG.md b/skills/wordcraft-mcp/CHANGELOG.md index fab57fd..530a0f7 100644 --- a/skills/wordcraft-mcp/CHANGELOG.md +++ b/skills/wordcraft-mcp/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog – wordcraft-mcp +## 0.2.1 (2026-10-19) + +- `.mcpb` enthält keine CLI mehr; setzt WordCraft aus dem ArtCraft-Launcher voraus (`C:\Program Files\WordCraft\wordcraft-cli.exe`). + ## 0.2.0 (2026-10-19) - Auslieferung als Claude-Desktop-Erweiterung (`.mcpb`) zusätzlich zum Skill-ZIP. diff --git a/skills/wordcraft-mcp/README.md b/skills/wordcraft-mcp/README.md index 37a7add..f59992d 100644 --- a/skills/wordcraft-mcp/README.md +++ b/skills/wordcraft-mcp/README.md @@ -9,6 +9,7 @@ Erstellt, bearbeitet und prüft Word-Dokumente über den MCP-Server von WordCraf ## Voraussetzungen - Claude Desktop (die App) +- **WordCraft** über den ArtCraft-Launcher (`C:\Program Files\WordCraft\wordcraft-cli.exe`) - Die Erweiterung `wordcraft-mcp-….mcpb` und dieses Skill-ZIP (siehe [Installation](#installation)) Falls der Plugin-Skill `wordcraft-dokumente` installiert ist: deaktivieren, damit Claude `wordcraft-mcp` verwendet. @@ -17,7 +18,7 @@ Falls der Plugin-Skill `wordcraft-dokumente` installiert ist: deaktivieren, dami Schritt-für-Schritt: [docs/INSTALLATION.md](../../docs/INSTALLATION.md). Kurz: -1. `wordcraft-mcp-v….mcpb` und `wordcraft-mcp-v….zip` aus dem [Release](https://git.gundel.dev/dg/claude-skills/releases/download/wordcraft-mcp%2Fv0.2.0/wordcraft-mcp-v0.2.0.mcpb) laden. +1. `wordcraft-mcp-v….mcpb` und `wordcraft-mcp-v….zip` aus dem [Release](https://git.gundel.dev/dg/claude-skills/releases/download/wordcraft-mcp%2Fv0.2.1/wordcraft-mcp-v0.2.1.mcpb) laden. 2. Die `.mcpb` doppelklicken (oder über Einstellungen → Erweiterungen installieren). Lese- und Schreib-Ordner setzen; Schreibordner vorher anlegen und nicht gleich dem Leseordner wählen. 3. Skill-ZIP in Claude hochladen: **„+“ → „Skill erstellen“ → „Skill hochladen“**. 4. Claude komplett beenden (auch Taskleiste) und neu starten. @@ -26,7 +27,7 @@ Schritt-für-Schritt: [docs/INSTALLATION.md](../../docs/INSTALLATION.md). Kurz: ## Enthaltene Software -Die Erweiterung enthält `wordcraft-cli.exe` aus [WordCraft](https://github.com/storytold/wordcraft) 0.8.0 (MIT oder Apache-2.0). Lizenztexte liegen in der `.mcpb` unter `LICENSES/`. +Die Erweiterung steuert [WordCraft](https://github.com/storytold/wordcraft) (MIT oder Apache-2.0) aus dem ArtCraft-Launcher; die CLI wird **nicht** mitgeliefert. Lizenztexte des Upstreams liegen in der `.mcpb` unter `LICENSES/`. ## Test diff --git a/skills/wordcraft-mcp/SKILL.md b/skills/wordcraft-mcp/SKILL.md index bcc3a1e..0019162 100644 --- a/skills/wordcraft-mcp/SKILL.md +++ b/skills/wordcraft-mcp/SKILL.md @@ -11,7 +11,7 @@ WordCraft ist ein Open-Source-Textverarbeitungsprogramm (Rust), das Word-Paritä Der MCP-Server muss verbunden sein (Tools wie `execute`, `list_commands`, `render_page`). In claude.ai heißen sie `mcp__claude-device__lcl-wordcraft-*` und sind oft **deferred**: zuerst per ToolSearch laden (`select:mcp__claude-device__lcl-wordcraft-list_commands,...`, alle benötigten in einem Aufruf). Fehlen sie auch dann, dem Nutzer den Grund nennen statt auszuweichen. -**Standardweg:** die Claude-Desktop-Erweiterung „WordCraft für Claude“ ist installiert und eingeschaltet (siehe `docs/INSTALLATION.md`). Fehlen die Tools: Einstellungen → Erweiterungen prüfen, Claude komplett beenden (auch Taskleiste) und neu starten – nicht auf ein anderes Programm ausweichen. +**Standardweg:** WordCraft aus dem ArtCraft-Launcher und die Claude-Desktop-Erweiterung „WordCraft für Claude“ sind installiert und eingeschaltet (siehe `docs/INSTALLATION.md`). Fehlen die Tools: ArtCraft-Installation und Einstellungen → Erweiterungen prüfen, Claude komplett beenden (auch Taskleiste) und neu starten – nicht auf ein anderes Programm ausweichen. **Alternative (Entwickler):** Eintrag `wordcraft` in `claude_desktop_config.json` mit `wordcraft-cli.exe mcp --author Claude --automation-read-root --automation-write-root \claude_out`. Store-Pfad: `%LOCALAPPDATA%\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\`. Die App kann den Eintrag beim Speichern eigener Einstellungen überschreiben – dann neu eintragen und sofort neu starten. diff --git a/skills/wordcraft-mcp/extension/.mcpbignore b/skills/wordcraft-mcp/extension/.mcpbignore new file mode 100644 index 0000000..410d3a4 --- /dev/null +++ b/skills/wordcraft-mcp/extension/.mcpbignore @@ -0,0 +1,2 @@ +server/*.exe +**/*.exe diff --git a/skills/wordcraft-mcp/extension/manifest.json b/skills/wordcraft-mcp/extension/manifest.json index 2cba1c5..b4ee07d 100644 --- a/skills/wordcraft-mcp/extension/manifest.json +++ b/skills/wordcraft-mcp/extension/manifest.json @@ -2,8 +2,8 @@ "manifest_version": "0.3", "name": "wordcraft-mcp", "display_name": "WordCraft für Claude", - "version": "0.2.0", - "description": "Word-Dokumente (.docx, .odt, .md, PDF) erstellen und bearbeiten. Getestet mit WordCraft 0.8.0.", + "version": "0.2.1", + "description": "Word-Dokumente (.docx, .odt, .md, PDF) erstellen und bearbeiten. Getestet mit WordCraft 0.8.0. Erfordert WordCraft aus dem ArtCraft-Launcher.", "author": { "name": "Dominic Gundel" }, @@ -21,9 +21,9 @@ }, "server": { "type": "binary", - "entry_point": "server/wordcraft-cli.exe", + "entry_point": "server/README.txt", "mcp_config": { - "command": "${__dirname}/server/wordcraft-cli.exe", + "command": "C:\\Program Files\\WordCraft\\wordcraft-cli.exe", "args": [ "mcp", "--author", diff --git a/skills/wordcraft-mcp/extension/server/README.txt b/skills/wordcraft-mcp/extension/server/README.txt new file mode 100644 index 0000000..b95d633 --- /dev/null +++ b/skills/wordcraft-mcp/extension/server/README.txt @@ -0,0 +1,3 @@ +Diese Erweiterung enthaelt keine CLI. +Installiere WordCraft ueber den ArtCraft-Launcher. +Erwarteter Pfad: C:\Program Files\WordCraft\wordcraft-cli.exe diff --git a/skills/wordcraft-mcp/extension/upstream.json b/skills/wordcraft-mcp/extension/upstream.json index 444381f..e690201 100644 --- a/skills/wordcraft-mcp/extension/upstream.json +++ b/skills/wordcraft-mcp/extension/upstream.json @@ -1,9 +1 @@ -{ - "sha256": "58716716647575ab68d1638f0b0a5b37b62f05cb4ed896614e7e98da5801221a", - "version": "0.8.0", - "source": "ArtCraft-Launcher", - "repository": "https://github.com/storytold/wordcraft", - "exe": "wordcraft-cli.exe", - "path": "C:\\Program Files\\WordCraft\\wordcraft-cli.exe", - "tag": "v0.8.0" -} +{"version":"0.8.0","repository":"https://github.com/storytold/wordcraft","bundled":false,"source":"ArtCraft-Launcher","exe":"wordcraft-cli.exe","path":"C:\\Program Files\\WordCraft\\wordcraft-cli.exe","tag":"v0.8.0","sha256":"58716716647575ab68d1638f0b0a5b37b62f05cb4ed896614e7e98da5801221a"}