So humanisieren Sie ein Word-Dokument in Claude Code
Die meisten Humanizer-Anbindungen übergeben einen String. Diese hier übergibt einen Dateipfad. Damit ist das Kontextproblem gelöst – und ein anderes geschaffen: Das Modell bekommt nie zu sehen, was zurückkommt.
HumanPen-Team
· 6 Min. Lesezeit
Die kurze Antwort
HumanPen liefert einen lokalen Stdio-MCP-Server aus. Jeder Client startet denselben Befehl, `npx -y humanpen-mcp`, mit einer Umgebungsvariablen, die den API-Schlüssel enthält. Der Agent übergibt einen absoluten Pfad zu einer `.docx`-Datei statt ihres Textes, damit das Dokument gar nicht erst im Kontextfenster landet; das umgeschriebene Dokument wird zurück auf die Festplatte geschrieben.
Es gibt keinen Remote-Endpunkt und keinen davor geschalteten Gateway-Wrapper. Wenn Sie für andere Server `mcp-remote` oder `supergateway` verwendet haben: Beides brauchen Sie hier nicht.
Warum ein Pfad und nicht der Text
Der naheliegende Entwurf nimmt einen String entgegen und gibt einen String zurück. Es ist zugleich der Entwurf, der genau bei den Dokumenten zusammenbricht, die Leserinnen und Leser wirklich umschreiben lassen wollen.
Eine `.docx`-Datei ist ein ZIP aus XML-Teilen. Liest man die Bytes in eine Unterhaltung ein, hat man nichts Brauchbares; entpackt man sie in den Kontext, wirft man genau die Struktur weg, deretwegen es sich lohnt, sie als Datei zu behalten: Formatvorlagen für Überschriften, Tabellenobjekte, Fußnotenteile, die Felder hinter einem Inhaltsverzeichnis. Eine Abschlussarbeit zu einem String einzuplanieren, den String umzuschreiben – dann haben Sie das falsche Problem gelöst. Was dieser Hin- und Rückweg kostet, steht in Word-Felder, Inhaltsverzeichnisse und Querverweise.
Also trägt der Tool-Aufruf einen Pfad hinein und einen Pfad hinaus. Die Datei wird über HTTPS hochgeladen, verarbeitet, und das Ergebnis wird auf Ihre Festplatte zurückgeschrieben. Nichts Umfangreiches berührt Ihr Kontextfenster.
Einrichtung
Am schnellsten geht es, wenn Sie den Agenten machen lassen. Die Seite für Entwickler gibt Ihnen eine fertige Zeile, die Ihren Client auf die MCP-Installationsanleitung verweist; einfügen, und der Agent lädt die Anleitung, findet heraus, welche Konfigurationsdatei Ihr Client liest, und fragt Sie nach einem Schlüssel.
Von Hand ist es in Claude Code eine Zeile:
claude mcp add humanpen -s user -e HUMANPEN_API_KEY=hp_your_key -- npx -y humanpen-mcp
Das `-s user` wiegt schwerer, als es aussieht. Der Standardbereich ist `local`, und der registriert den Server nur für das Verzeichnis, in dem Sie den Befehl ausgeführt haben. Am nächsten Tag öffnen Sie Claude Code an einem anderen Ort, finden keine HumanPen-Tools und schließen völlig vernünftigerweise, die Installation sei fehlgeschlagen.
Codex liest `~/.codex/config.toml`; dort ist derselbe Server eine Tabelle `[mcp_servers.humanpen]` mit `command = "npx"`, `args = ["-y", "humanpen-mcp"]` und `env = { HUMANPEN_API_KEY = "hp_your_key" }`. Den Block zum Kopieren finden Sie in der Installationsanleitung.
Cursor, Windsurf, Cline und Claude Desktop nehmen dieselbe Form in ihren eigenen Konfigurationsdateien an. Eine Falle gibt es bei den Desktop-Apps: Tragen Sie den absoluten Pfad zu `npx` in `command` ein. Führen Sie `which npx` aus und verwenden Sie das Ergebnis. Diese Apps werden vom Betriebssystem mit minimalem `PATH` gestartet, der bloße Name wird häufig nicht gefunden, und das einzige Symptom ist, dass die Tools überhaupt nie auftauchen.
Nach einem Neustart erscheinen acht Tools. Um das hier geht es in diesem Beitrag: `humanize_document`; `read_detection_report` und `check_job` sind die beiden, die es unterstützen.
Den Durchlauf im Agenten eingrenzen
Der Grund, das über einen Agenten zu erledigen statt über ein Webformular: Der Agent hat Ihre Dateien bereits – auch den Erkennungsbericht, der im selben Ordner liegt.
Übergeben Sie dem Job beides. Wenn ein Bericht angehängt ist und keine ausdrückliche Liste von Passagen, dann werden die in diesem Bericht markierten Passagen zum Bearbeitungsumfang, und alles andere im Dokument bleibt unangetastet. Geben Sie stattdessen eine ausdrückliche Liste, ist diese Liste endgültig, und der Bericht bleibt nur als Anhang am Job. Über die REST-API sieht dieselbe Sache so aus, gegen den API-Root, den Ihnen die Seite für Entwickler nennt:
curl -X POST "$HP_API_ROOT/jobs/humanize" -H "Authorization: Bearer $HP_API_KEY" -F "file=@paper.docx" -F "turnitin_file=@turnitin-report.pdf" -F "strategy=balanced" -F "additional_instructions=Keep terminology and citations unchanged."
Credits werden über die tatsächlich umgeschriebenen Wörter gezählt; ein Job im Umfang eines Berichts mit vier markierten Absätzen kostet also vier Absätze. Skill, MCP und API greifen auf dasselbe Guthaben zu, und ein Job, der nicht abschließt, wird nicht berechnet.
Was ich vor dem Einbinden gewusst hätte
Das Modell sieht das Ergebnis nie.
Was ein abgeschlossener Aufruf zurückgibt, ist eine Quittung für den Job: wo die Datei geschrieben wurde, was es gekostet hat, wie sich die Wortzahl verschoben hat. Kein Inhalt, kein Diff. Alles, was Sie steuern wollten, muss vor dem Start des Jobs blind in den Anweisungs-String geschrieben werden.
Die übliche Antwort lautet: Der Client hat doch ein Datei-Lese-Tool, der Agent kann das Ergebnis einfach lesen. Die Wörter kann er lesen: Fünf Zeilen `python-docx` holen den Text der Absätze heraus und vergleichen ihn mit dem Original. Was er nicht lesen kann, ist, ob die Formatierung überlebt hat – und die Formatierung ist der Grund, warum Sie eine Datei geschickt haben und keinen String. Der Agent kann Ihnen also sagen, dass ein Job erfolgreich war, was er gekostet hat und was der Text jetzt sagt. Ob die Tabelle auf Seite 7 durchgekommen ist, kann er Ihnen nicht sagen.
Diese Prüfung bleibt Ihre, in Word, und es ist dieselbe Prüfung wie nach jedem Umschreiben: Felder aktualisieren, Literaturangaben zählen, die Zellen mit Zahlen darin lesen. Die ausführliche Version steht in Wie Sie ein humanisiertes Word-Dokument vor dem Einreichen prüfen.
Warten – und was ein Timeout bedeutet
Ein reales Dokument umzuschreiben dauert Minuten, was in einem Protokoll, das auf schnelle Tool-Aufrufe ausgelegt ist, ungünstig ist. Ein Aufruf wartet etwa 55 Sekunden und gibt dann eine Job-ID zurück statt einer Datei. Die Arbeit läuft auf dem Server weiter, und `check_job` nimmt sie wieder auf.
Zweierlei folgt daraus, und beides sollten Sie wissen, bevor Sie eine Schleife darum herum bauen. Wenn das Timeout Ihres eigenen Clients kürzer ist als die Wartezeit, stirbt die Anforderung auf Ihrer Seite, während der Job bei uns weiterläuft – und der Ausweg ist `check_job` mit der ID, die Sie nie bekommen haben.
Und: Ein Aufruf, der eine Datei zurückgibt, und ein Aufruf, der eine ID zurückgibt, sind derselbe Aufruf. Was auch immer Sie darum herum automatisieren, muss beide Ausgänge behandeln, statt anzunehmen, es komme ein Dokument zurück.
Wann dieser Weg der falsche ist
Für zwei Absätze, die Sie aufgeräumt haben wollten, ist das die falsche Form. Sie zahlen einen Datei-Upload, einen Job, eine Wartezeit und einen Download für etwas, das Sie mit eigenen Augen hätten lesen können.
Bei einem ganzen Kapitel kippt die Rechnung: Die Datei gelangt nie in den Kontext, sie wird auf dem Weg nie zu einem String plattgedrückt, und der Umfang lässt sich von einem Erkennungsbericht festlegen statt von Hand. Irgendwo zwischen diesen beiden Fällen liegt eine Grenze, und der Server hat keine Möglichkeit zu erkennen, auf welcher Seite Sie sich befinden. Sie schon.
Häufige Fragen
Mit welchen Clients funktioniert das? Mit jedem MCP-Client, der einen lokalen Befehl starten kann. Die dokumentierten Konfigurationen decken Claude Code, Codex, Cursor, Windsurf, Cline, Claude Desktop, VS Code, OpenCode und einige weitere ab; und für alles andere lautet die Abmachung: `npx -y humanpen-mcp` ausführen, mit `HUMANPEN_API_KEY` in seiner Umgebung.
Brauche ich für den MCP-Server ein eigenes Abonnement? Nein. Skill, MCP und REST greifen auf dasselbe Guthaben zu, und die Credits werden über die tatsächlich umgeschriebenen Wörter gezählt.
Kann der Agent das Ergebnis verifizieren? Die Formatierung nicht. Der Aufruf kommt mit einer Quittung für den Job zurück statt mit dem Dokument, und ein Datei-Lese-Tool kann den Text wiederherstellen, aber nicht, ob Felder, Tabellen und Formatvorlagen überlebt haben. Diese Prüfung ist ein Schritt, den Sie selbst in Word machen.
Warum hat mein Tool-Aufruf eine Job-ID zurückgegeben statt einer Datei? Weil der Job aus dem Wartefenster gelaufen ist – und das sind etwa 55 Sekunden. Der Job läuft auf dem Server weiter; `check_job` mit dieser ID liefert das Ergebnis, sobald es bereit ist.
WEITERLESEN