Add pdfcraft-mcp, figcraft-mcp and vectorcraft-mcp 0.1.0.

This commit is contained in:
Dominic Gundel committed 2026-10-19 23:56:50 +02:00
1 parent 694de7d1d7
commit ad0ea86adc
43 files changed
+1962 -31

No files matched your search

+5 -2
View File
@@ -6,8 +6,11 @@ param([string]$Name)
$CursorDist = Join-Path $DistDir 'cursor'
$ServerKeys = @{
'wordcraft-mcp' = 'wordcraft'
'gridcraft-mcp' = 'gridcraft'
'wordcraft-mcp' = 'wordcraft'
'gridcraft-mcp' = 'gridcraft'
'pdfcraft-mcp' = 'pdfcraft'
'figcraft-mcp' = 'figcraft'
'vectorcraft-mcp' = 'vectorcraft'
}
function Get-McpServerKey([string]$SkillName) {
+7 -1
View File
@@ -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
View File
@@ -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
View File
@@ -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
+5 -2
View File
@@ -17,8 +17,11 @@ if ($start -lt 0 -or $end -lt $start) {
}
$ServerKeys = @{
'wordcraft-mcp' = 'wordcraft'
'gridcraft-mcp' = 'gridcraft'
'wordcraft-mcp' = 'wordcraft'
'gridcraft-mcp' = 'gridcraft'
'pdfcraft-mcp' = 'pdfcraft'
'figcraft-mcp' = 'figcraft'
'vectorcraft-mcp' = 'vectorcraft'
}
function Get-McpServerKey([string]$SkillName) {
+1 -1
View File
@@ -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