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

+8
View File
@@ -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.
+89
View File
@@ -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)
+93
View File
@@ -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

+123
View File
@@ -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"}