Skip to main content
Glama
huaqing0
by huaqing0

Claude Tools Native Gateway

Auf einen Satz: Die Webversion von ChatGPT wird zur einzigen Zentrale, die echte native Claude-Code-Sessions auf diesem Rechner steuert – für kontrolliertes Lesen, Ändern, Verifizieren und Wiederherstellen.

Das öffentliche Repository enthält nur Quellcode und Tests, keine lokalen Schlüssel, Tunnel-Konfigurationen oder den state/-Sitzungszustand.

Architektur

Das Gateway besitzt jetzt nur noch eine einzige Ausführungs-Engine: Native V2.

当前 ChatGPT Chat(唯一主脑)
  ↔ Claude Tools Native MCP(六个 Session 控制工具)
      ↔ 本地模型回合桥(127.0.0.1)
          ↔ 隔离的 Claude Code 原生 Session
              → 原生 Agent loop
              → 网关自有的受控工具 Executor

Das Gateway übernimmt selbst die MCP-Initialisierung, die Werkzeugliste und die Aufrufverteilung; es startet und proxyt keinen V1-claude mcp serve-Werkzeugserver mehr. Erst nach dem Erstellen einer nativen Session wird der für diese Session exklusive Claude-Code-Prozess gestartet.

Die ursprüngliche V1-Agent-Session, die Top-Level-Werkzeuge Read/Edit/Write/Bash, die lokalen Aufgabenwerkzeuge, die alte DeepSeek-Delegierung und die ChatGPT-Bridge wurden aus den Einstiegspunkten und dem Codebaum entfernt. Erhalten geblieben sind die gemeinsamen Basis-Infrastrukturen, die V2 weiterhin benötigt: atomares Status-Schreiben, Schutz der Anmeldedatenpfade, Prozessidentitätsprüfung und macOS-Sandbox-Regeln. Alte V1-Statusdateien werden nicht automatisch gelöscht, aber das Native Gateway liest und führt sie nicht aus.

MCP-Steuerungsebene

Die Webversion sieht nur sechs Werkzeuge:

  • native_session_start

  • native_session_continue

  • native_session_recover

  • native_session_reply_and_wait

  • native_session_status

  • native_session_stop

Jegliche V1-Werkzeugnamen, Top-Level-Dateiwerkzeuge, Bash, alte DeepSeek-Werkzeuge oder andere MCP-Methoden werden serverseitig abgelehnt, nicht nur aus der Werkzeugliste ausgeblendet.

Claude-Code-Session-Fähigkeiten

Eine Session hat drei klar definierte Stufen, die nach der Erstellung weder hoch- noch herabgestuft noch auf ein anderes Wurzelverzeichnis umgestellt werden können:

  • read_only: Read, FindFiles, SearchText und schreibgeschütztes RunCommand; der Lesebereich umfasst den gesamten Computer, mit Ausnahme geschützter Status-/Anmeldedatenpfade und macOS-Berechtigungen.

  • direct_write: Erweitert die computerweite Lesefähigkeit um Edit, Write, NotebookEdit und ändert nur echte Verzeichnisse, die der Benutzer ausdrücklich ausgewählt hat. Diese Stufe sollte nur gewählt werden, wenn der Benutzer ausdrücklich verlangt, echte Dateien zu ändern.

  • worktree_write: Werkzeugsatz identisch mit direct_write, aber die Änderungen erfolgen in einem separaten Git-Worktree, den das Gateway erstellt und verwaltet; der Quell-Checkout bleibt unverändert.

Dies sind logische Werkzeuge, die das Modell in der nativen Claude-Code-Agent-Schleife aufrufen kann, aber die Ausführung gehört dem Gateway. Die unbeaufsichtigten eingebauten Claude-Code-Dateiwerkzeuge und Bash bleiben deaktiviert, um eine Umgehung von Aktionsautorisierung, Hashing, Wiederherstellung und Audit-Ledger zu vermeiden.

Lesen und Suchen

  • Read kann jede ungeschützte normale UTF-8-Datei auf dem Computer lesen und ist nicht mehr auf das Schreibverzeichnis beschränkt.

  • FindFiles kann begrenzte Dateiaufzählungen von beliebigen absoluten Verzeichnissen aus durchführen.

  • SearchText führt nur UTF-8-Literalabgleiche durch, keine regulären Ausdrücke oder Globs.

  • Die Suche folgt keinen symbolischen Links und überspringt .git, geschützte Pfade und externe Hardlinks.

  • Einzelne Suchergebnisse und vollständige Aktionsbelege sind auf 64 KiB begrenzt.

  • Alle Stufen können verschiedene Laufwerke und Verzeichnisse prüfen; working_directory ist nur der Standardsuchort, das Befehls-CWD und die Schreibgrenze für Schreibstufen. macOS-TCC/Dateiberechtigungen können Desktop, Dokumente oder andere systemgeschützte Orte weiterhin verweigern.

Datei- und Notebook-Änderungen

  • Unter direct_write ändern Edit, Write und NotebookEdit das an die Session gebundene echte Verzeichnis; unter worktree_write nur den verwalteten Worktree.

  • Write kann fehlende übergeordnete Verzeichnisse im autorisierten Wurzelverzeichnis nach Bedarf erstellen und die Zieldatei dann atomar anlegen; es kann dadurch nicht über das Wurzelverzeichnis, symbolische Links, .git oder geschützte Pfade hinausgehen.

  • NotebookEdit unterstützt das Ersetzen, Einfügen und Löschen von Zellen nach Cell-ID, führt das Notebook jedoch nicht aus.

  • Jede Schreibaktion speichert SHA-256 vor und nach dem Schreiben und verwendet Prepare, CAS, atomares Ablegen und dauerhafte Belege.

  • Nach einem Prozessabsturz wird der reale Dateizustand geprüft; wenn er nicht sicher bestimmt werden kann, wird die Wiederherstellung gestoppt, ohne blind zu wiederholen.

  • direct_write hat kein Dateilöschwerkzeug und schreibt keine Dateien wegen schreibgeschützter Prüfbefehle; es kann Zieldateien dennoch auf ausdrückliche Benutzeranweisung überschreiben oder ändern.

  • In worktree_write bleiben Dateien, HEAD, Tree, Index und Arbeitsbereichsstatus des Quell-Checkouts unverändert; das Git-Common-Verzeichnis registriert den erhaltenden Worktree.

Verifikationsbefehle

RunCommand akzeptiert installierte Systembefehle und ausführbare Dateien im Session-Verzeichnis und pflegt keine statische Befehlsliste mehr, die normale Entwicklungswerkzeuge leicht fälschlich blockiert. Argumente werden weiterhin als exaktes argv übergeben, nicht automatisch vom Gateway zu einer Shell-Zeichenkette zusammengesetzt:

  • Das Session-Wurzeldateisystem ist aus Sicht des Befehls schreibgeschützt;

  • Netzwerk, Prozesssignale, Keychain/XPC und Modell-CLIs werden durch macOS Seatbelt blockiert;

  • Einstiegspunkte wie sudo, direktes Löschen/Verschieben, Systemsteuerung, find -delete/-exec, rg --pre, Modell-CLIs usw. werden weiterhin ausdrücklich abgelehnt;

  • Symbolische Links, Hardlinks oder Dateianzahlen in normalen Projekten führen nicht mehr dazu, dass der Befehl vor dem Start als ganzes Repository abgelehnt wird; beim tatsächlichen Zugriff greifen Seatbelt, geschützte Pfade und macOS-Berechtigungen;

  • Ausgabe, Laufzeit und Reklamation der Prozessgruppe sind begrenzt;

  • Ergebnisse gehen zuerst in dasselbe Aktions-Ledger und werden dann an die nächste GPT-Runde übergeben.

Es dient der Verifikation vertrauenswürdiger Repositories, nicht als Container gegen bösartige Prozesse desselben macOS-Kontos. Während der Session-Laufzeit sollten verwaltete Worktrees nicht gleichzeitig mit anderen Editoren oder Prozessen geändert werden.

Hauptmodell, Websuche und DeepSeek

Die Hauptroute ist fest auf chatgpt-main eingestellt und akzeptiert keine Parameter für model, provider, endpoint, API-Key oder Fallback. Wenn die aktuelle ChatGPT-Runde stoppt, bleibt Claude Code bei waiting_for_gpt stehen; es wechselt nicht heimlich zu Claude, DeepSeek oder Codex, um weiterzudenken.

Die Websuche übernimmt weiterhin die Webversion von ChatGPT. WebSearch/WebFetch von Claude Code sind nicht geöffnet, sodass es keinen Konflikt zwischen GPT-Suche und Clauses eigener Suche oder einen Kontrollverlust über die Quellen gibt.

Standardmäßig gilt subagent_policy: "none", es wird kein DeepSeek erstellt. Nur wenn worktree_write ausdrücklich deepseek_explicit wählt, kann GPT es in der Hauptschleife verwenden:

  • deepseek_subagent_start

  • deepseek_subagent_get

  • deepseek_subagent_stop

Die Delegierung muss zuerst in das dauerhafte Aktions-Ledger der Hauptsession eingehen, bevor die isolierte Untersession freigegeben wird. Während der Unteraufgabe kann die Hauptsession nicht gleichzeitig Edit, Write, NotebookEdit, RunCommand ausführen oder eine zweite Unteraufgabe starten. Die Route ist fest auf Sonnet/Opus → Flash, Fable → Pro eingestellt; bei Fehlern gibt es kein Fallback auf Claude, Codex, OpenAI oder eine andere DeepSeek-Stufe.

Skill-Kontext

native_session_start kann bis zu acht skill_contexts empfangen, die ChatGPT ausdrücklich auswählt. Es handelt sich nicht um die native Claude-Code-Skill-Laufzeit:

  • Es werden nur validierte Anweisungstexte extrahiert und eingefroren;

  • Es werden keine Skripte, Ressourcen, Plugins, Hooks, Slash-Commands oder zusätzlichen Werkzeuge geladen;

  • Jeder erlaubte Eintrag fixiert gleichzeitig die Skill-ID und den SHA-256 des normalisierten vollständigen SKILL.md;

  • Erster Start und spätere resume verwenden denselben dauerhaften Snapshot;

  • Der vollständige Text erscheint nur im privaten 0600-Status und im für die aktuelle GPT-Runde erforderlichen Modellkontext.

Beispiel für die erlaubte Liste:

CLAUDE_TOOLS_NATIVE_SKILL_ALLOWLIST_JSON='[{"skill_id":"personal:review","content_sha256":"<64位小写SHA-256>"}]' \
npm start

Der Hash wird über den vollständigen Text nach Entfernen des UTF-8-BOM und Normalisierung von CRLF/CR auf LF berechnet.

Isolation und Wiederherstellung

  • Jede Session verwendet ein eigenes HOME, Claude-Konfigurationsverzeichnis, Laufzeitverzeichnis und eine eigene Prozessgruppe.

  • Claude Code verwendet --bare, leere Setting-Quellen, strikte MCP-Konfiguration und einen präzisen Werkzeugsatz.

  • Der Haupt-Claude-Prozess kann nur auf den präzisen lokalen Broker/Executor-Loopback-Port zugreifen.

  • Anmeldedatenverzeichnisse, Gateway-Status, .git, symbolische Links und externe Hardlinks sind fail closed; der Zugriff auf normale System-/Benutzerpfade wird durch Session-Wurzel, macOS-TCC und Dateiberechtigungen gemeinsam bestimmt.

  • ChatGPT-Antworten und jede genehmigte Aktion werden zuerst atomar abgelegt, bevor sie an den laufenden Prozess freigegeben werden.

  • Ablauf des Leases stoppt den Runner und hinterlässt einen prüfbaren Zustand.

  • Ein Gateway-Neustart tötet keine Runner, die noch zu einer Session gehören; native_session_recover verifiziert das Eigentum, rotiert das Lease und setzt dieselbe Claude-Code-Session fort.

  • Wenn der Runner nicht mehr existiert, wird keine vorgetäuschte Wiederherstellung durchgeführt und keine bereits abgeschlossene Aktion wiederholt.

Claude Code 2.1.247 hat keinen verifizierten unabhängigen Schalter für „nur Hooks aktivieren, während Keychain, Plugins und automatisches Gedächtnis weiterhin deaktiviert bleiben", daher bleiben native Hooks, native Skills/Slash, Agent, Workflow, Web und nicht durch das Aktions-Ledger überwachte Drittanbieter-MCP deaktiviert.

Ausführung

npm start

Das Native Gateway benötigt keine Schalter CLAUDE_TOOLS_NATIVE_V2 oder CLAUDE_TOOLS_NATIVE_V2_ONLY mehr; Native-only ist der einzige Betriebsmodus.

Der Status wird standardmäßig in state/ gespeichert und kann über die absolute Pfad-Umgebungsvariable CLAUDE_TOOLS_STATE_DIR geändert werden. Der Standardpfad für Claude Code ist $HOME/.npm-global/bin/claude und kann mit CLAUDE_BIN überschrieben werden.

Langlaufende Tunnel/Connector müssen nach Quellcode-Updates neu gestartet werden. ChatGPT kann das Schema verbundener Werkzeuge zwischenspeichern; wenn eine neue Session die sechs native_session_*-Werkzeuge nicht sieht, aktualisieren Sie die Seite oder verbinden Sie den Claude Tools Connector neu.

Verifikation

npm test
npm run test:native:installed
npm run test:native:installed:write
npm run test:native:installed:direct-write
npm run test:native:installed:deepseek
npm run test:native:installed:skills

Automatisierte Tests decken ab:

  • Native-only-MCP-Direktinitialisierung, exakt sechs Werkzeuge, Ablehnung von V1-Werkzeugen und unbekannten Methoden;

  • Runden- und Aktions-Ledger, Antwort-Idempotenz, Leases, Prozesseigentum, Stopp und Wiederherstellung;

  • Computerweites Lesen von Read/FindFiles/SearchText, geschützte Pfade, Größen, Sortierung, Literalabgleich und Wettlaufgrenzen;

  • Edit/Write/NotebookEdit mit direktem Real-Verzeichnis-Schreiben, Worktree-Isolation, CAS, Hashing und Absturzwiederherstellung;

  • RunCommand mit lockerem Entwicklungsbefehlseinstieg, Session-lokalen ausführbaren Dateien, schreibgeschütztem Dateisystem, null Netzwerk, Blockierung sensibler Dienste und Timeout-Reklamation;

  • Skill-ID-/Text-Hash-Fixierung, start/resume-Konsistenz und private Statusgrenzen;

  • Explizite DeepSeek-Delegierung mit Startbarriere, Einzelaufgaben-Schreibsperre, Routenverifikation, Gateway-Neustartwiederherstellung und Stopp;

  • Öffentliche MCP/Session/history geben keine Autorisierungs-IDs, Runner-Tokens, PIDs, internen Pfade oder Modell-Anmeldedaten preis.

Installierte Tests verwenden lokales Claude Code 2.1.247 und ein lokales Skript-GPT, ohne Verbindung zu echten Modellen:

  • test:native:installed: führt FindFiles → Literal-SearchText → Read → final mit / als schreibgeschütztem Stamm aus, sowie Wiederherstellung desselben Runners/Claude-Session nach Gateway-Trennung.

  • test:native:installed:write: Read → Edit → Write → NotebookEdit → RunCommand → resume → Read.

  • test:native:installed:direct-write: dieselbe Reihe echter Claude-Code-Runden ändert direkt echte Verzeichnisse in der Test-Fixture, dann resume und Verifikation dauerhafter Ergebnisse.

  • test:native:installed:deepseek: verwendet ein lokales Fake-DeepSeek-CLI zur Verifikation von expliziter Delegierung, Ergebnisverifikation, aktiver Schreibsperre, Neustartwiederherstellung und Stopp.

  • test:native:installed:skills: verifiziert, dass zwei hash-fixierte reine Anweisungs-Skills bei start/resume denselben Snapshot verwenden.

Diese lokalen Skripttests verbrauchen keine echten ChatGPT-, Claude- oder DeepSeek-Modellkontingente. Ein echter DeepSeek-Minimal-Smoke-Test erfordert weiterhin eine separate Benutzerfreigabe.

-
license - not tested
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • Let ChatGPT, Claude & Cursor use your Mac: email, calendar, iMessage, Teams, files. Local, free.

  • Cross-agent artifact workspace with provenance across Claude Code, Codex, Cursor, LangGraph.

  • Search, read, and write your Apple Notes from ChatGPT/Claude via a local Mac agent + MCP relay.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/huaqing0/claude-tools-gateway'

If you have feedback or need assistance with the MCP directory API, please join our Discord server