Skip to main content
Glama
xiaoxiao341

Chat2Agent

by xiaoxiao341

🌉 Chat2Agent

Open-Source-Brücken-Suite, die der ChatGPT-Weboberfläche über offizielles MCP lokale Arbeitsbereichsfähigkeiten verleiht

Node.js License: MIT CI Status Account Safety Cost Upstream Based on DevSpace


💡 Kernpositionierung Das Hauptziel dieses Projekts: Der Webversion von ChatGPT (einschließlich kostenloser und kostenpflichtiger Versionen) soll über den offiziellen MCP-Connector (Model Context Protocol) von OpenAI direkt auf den lokalen Arbeitsbereich zugreifen können – mit Code-Recherche, Dateiänderung, Testausführung und Review-Fähigkeiten wie ein Codex Agent.

Die vollständigen Design-Grenzen finden Sie in 📑 ADR 0001: Web Agent Boundary und der 🗺️ Produkt-Roadmap.


🛡️ Nullkosten und absoluter Sicherheitsschutz

1. 💰 100% kostenlos, normales kostenloses Konto startet direkt durch

  • ChatGPT kostenlose Version nutzbar: OpenAI hat im Web Developer Mode / MCP Connector freigeschaltet. Normale kostenlose Konten können ohne Plus/Team/Pro-Abo direkt eigene MCP-Connectors hinzufügen!

  • Kostenloser öffentlicher Tunnel: Ob mit dem integrierten ngrok-Kostenlos-Tarif oder dem Pinggy-Kostenlos-Tunnel – ohne jegliche Kosten wird die Kommunikation zwischen lokal und Web stabil hergestellt.

2. 🔒 Offizielles, reguläres Protokoll – absolut 0 Sperrrisiko

  • Offizieller offener Standard: Vollständig basierend auf dem von OpenAI offiziell eingeführten Model Context Protocol (MCP)-Standard und dem Standard-OAuth-2.0-Ablauf.

  • Keine Reverse-Engineering- oder Black-Hat-Methoden: Niemals Injektion von Web-Cookies, niemals Abgreifen nicht-öffentlicher privater Schnittstellen des Webs, niemals Reverse-Engineering von Tokens, niemals Verwendung irgendwelcher unzulässiger automatisierter Scraper-Skripte. Für OpenAI ist dies ein regulärer Drittanbieter-Standard-Connector, der vollständig den offiziellen Nutzungsbedingungen (TOS) entspricht – technisch von Grund auf 0 Sperrrisiko.


Related MCP server: codex-web-bridge

🚀 Warum Chat2Agent? (Wichtige Upgrades gegenüber der Originalversion)

Dieses Projekt ist eine tiefgreifende Weiterentwicklung auf Basis der hervorragenden Idee von Embracecactus/devspace-mcp-tunnel.

Die Originalversion war hauptsächlich ein einfaches Linux-Bash-Startskript-Demo (insgesamt 11 Dateien). Chat2Agent wurde auf 66 Dateien erweitert, mit 6400+ neuen Codezeilen und 40 integrierten automatisierten Unit-Tests – eine industrielle Transformation:

Dimension

Originalversion (devspace-mcp-tunnel)

Chat2Agent Enhanced Refactor (dieses Projekt)

Plattformübergreifende Architektur

Nur Linux/WSL-Basis-Bash-Ausführung

Natives Windows-Enterprise-verwaltetes Daemon (start.bat/stop.bat), voll kompatibel mit Linux/WSL

Prozesslebenszyklus

pkill -f Fuzzy-Matching, leichtes versehentliches Töten des aktuellen Skripts oder anderer Node-Prozesse

Doppelte Validierung basierend auf PID-Baum und Linux /proc-Startzeitstempel, 100% präzises Starten/Stoppen, kein versehentliches Töten

Asynchrones Polling langer Prozesse

Keine Prozess-Session-Erhaltung, kurze Befehle hängen leicht

Implementierung der Long-Task-Process-Session-Erhaltung, Behebung des ChatGPT-Verlusts des 0-Serialisierungs-Bugs (yieldTimeMs: 1), Unterstützung von write_stdin-Async-Polling und Cross-Session-Wiederherstellung

Start-Health-Gate

Keine Erkennung nach dem Start, unbekannt ob der Dienst wirklich verfügbar ist

Integrierter /healthz-Precheck und Port-Health-Gate, nur nach erfolgreicher Probe wird Startbereitschaft gemeldet

Web-Diff-Rendering

Verwendet DevSpace-natives Output, Web häufig eingefroren, weißer Bildschirm

Selbstentwickelte versionierte Inline-Diff-Karten, umgeht ngrok-Blockierung; UI nur an show_changes gebunden, keine iframe-Seitenverzögerungen mehr

Codex-Ressourcen-Wiederverwendung

Grobes Lesen globaler Konfiguration oder fehlende Isolation

Implementierung des Codex-Ressourcen-Read-only-Sicherheitsspiegels und Isolation (ADR 0001), sorgfältige Auswahl von 3 Skills, niemals Verschmutzung/Änderung des lokalen globalen Codex

Sicherheits-Sandbox-Hook

Keine Tool-Interception-Auditierung und Sicherheitsschutz

Neuer after_tool/tool_failure-Sandbox-Hook-Adapter, automatisches Entfernen sensibler Umgebungsvariablen wie Passwörter/API-Keys

Sicherheit & Whitelist

Grobes Erben der globalen *-Host-Whitelist

Aktives Entfernen globaler Wildcards, dynamische Ableitung der Whitelist basierend auf öffentlichen Domains und Loopback; Anmeldedaten durch .env.local streng geschützt

OAuth-Session-Governance

Keine Verwaltung autorisierter Clients und Tokens

Integriertes OAuth-Datenbank-Verwaltungstool, Unterstützung automatischer Token-Ablauf-Bereinigung, clientweiser Widerruf und One-Click-Global-Revocation

Diagnose-Probe-Toolbox

Keine begleitenden Fehlerbehebungs- und Testskripte

6 neue CLI-Proben (doctor:web-Tiefendiagnose, mcp-probe-Fähigkeitsprobe, Sandbox-Abnahmetests usw.)

Protokoll-Metadaten-Überwachung

Keine Wahrnehmung von Tool-Updates und Cache-Verschmutzung

Selbstentwickelte versionierte URI-Cache-Bypass-Strategie (diff-card-inline-v3.html), Doctor erkennt in Echtzeit die Metadaten-Frische auf ChatGPT-Seite

Datenschutzmechanismus

Keine Ausführungsstatus-Auditierung

Fail-closed Datenschutz-minimierte Ausführungsbeweis-Erfassung, nur Exit-Codes werden protokolliert, niemals Benutzerquellcode und Anweisungsinhalte

Doppelte echte Abnahme

Keine Abnahmekriterien

Etablierung des Doppel-Abnahmesystems aus automatisierten Proben und echtem Web (npm run accept:web:verify), garantierte reale Sichtbarkeit

Engineering & automatisierte Tests

Keine Testfälle

16 integrierte Test-Suites, 40 Unit- und Integrationstests, mit Windows/Ubuntu-Dual-System-GitHub-Actions-CI


✨ Kernfunktionen und Hardcore-Engineering-Implementierung


🏗️ Funktionsweise

 ┌─────────────────┐       HTTPS / OAuth       ┌──────────────┐       loopback        ┌────────────────────────┐
 │  网页版 ChatGPT  │ ───────────────────────▶ │   公网隧道   │ ────────────────────▶ │  DevSpace (127.0.0.1)  │
 └─────────────────┘      (ngrok / Pinggy)     └──────────────┘     (Port: 7676)      └───────────┬────────────┘
                                                                                                  │
                                                                       ┌──────────────────────────┴───────────────┐
                                                                       ▼                                          ▼
                                                          ┌──────────────────────────┐               ┌──────────────────────────┐
                                                          │   允许的本地目录 / Shell   │               │  选定的 AGENTS.md / Skills│
                                                          └──────────────────────────┘               └──────────────────────────┘
  • Isolierte Überwachung: DevSpace überwacht nur die lokale Loopback-Adresse 127.0.0.1:7676 und führt eine strenge Autorisierungsprüfung über OAuth (Owner-Passwort) durch.

  • Reverse-Proxy: Das Tunnel-Tool leitet öffentlichen HTTPS-Verkehr an den lokalen Port 7676 weiter.

  • Endpunkt-Regeln: Die MCP-Client-Verbindungs-URL lautet https://<Tunnel-Domain>/mcp, der OAuth-issuer stammt aus publicBaseUrl (also der reinen Domain-Wurzel, ohne /mcp).

  • Null globale Verschmutzung:

    • Windows-Starter: Aktualisiert nur .mcp.json im Projektverzeichnis, verändert nicht die globale Codex-Konfiguration des lokalen Systems.

    • Linux-Refresh-Skript: Ändert standardmäßig nicht ~/.codex/config.toml, nur bei explizitem Anhängen von --sync-codex als Legacy-Kompatibilitätssynchronisation.


🌐 Kostenloser ngrok-Konfigurationsleitfaden (Schritt für Schritt zum Nulltarif)

Empfohlen wird der kostenlose ngrok für einen stabilen öffentlichen Tunnel (vollständig kostenlos):

  1. Konto registrieren: Besuchen Sie die ngrok-Website (ngrok.com) und registrieren Sie sich kostenlos.

  2. Authtoken abrufen:

  3. (Stark empfohlen) 1 kostenlose statische Domain beanspruchen:

    • Klicken Sie im linken Menü auf Cloud Edge -> Domains.

    • Klicken Sie auf Claim a domain, um eine exklusive statische Domain kostenlos zu beanspruchen (z. B. your-name.ngrok-free.app).

    • Vorteil: Mit fester Domain müssen Sie die URL nach jedem Neustart des Dienstes nicht erneut in der ChatGPT-Weboberfläche aktualisieren!

  4. In die Projektkonfiguration eintragen:

    • Kopieren Sie im Projektstammverzeichnis eine Konfigurationsdatei:

      Copy-Item .env.example .env.local
    • Bearbeiten Sie .env.local und tragen Sie die eben erhaltenen Informationen ein:

      NGROK_AUTHTOKEN=你的ngrok_authtoken
      NGROK_DOMAIN=your-name.ngrok-free.app # 如果没有申请固定域名则留空

🚀 Windows-Schnellstart (empfohlen)

1. Abhängigkeiten installieren und DevSpace initialisieren

Umgebungsanforderung: Node.js >=22.19 <27

# 1. 全局安装 DevSpace CLI 并安装项目依赖
npm install --global @waishnav/devspace
npm ci

# 2. 初始化 DevSpace 配置
devspace init

devspace init führt Sie durch die Eingabe der erlaubten Verzeichnisse, des Ports (geben Sie 7676 ein) und der öffentlichen Base-URL (kann zunächst https://placeholder.invalid sein, der Starter überschreibt sie automatisch).

# 目录授权示例(按需开放):
D:/AI/project-one,D:/AI/project-two

# 明确接受风险后,也可以全盘开放:
C:/,D:/

2. Ein-Klick-Start, Status anzeigen und Stoppen

# 运行启动前预检
npm run preflight

# 启动后台受管服务(通过 /healthz 门控后返回成功)
./start.bat

# 查看运行状态与诊断
npm run status

# 精准停止受管进程树
./stop.bat

🐧 Linux / WSL-Schnellstart

1. Installation und Initialisierung

git clone https://github.com/xiaoxiao341/Chat2Agent.git
cd Chat2Agent
chmod +x setup.sh refresh-devspace-mcp.sh

# 国内网络建议追加 --mirror 加速 npm 安装
./setup.sh --mirror

2. Tunnel starten und automatisch synchronisieren

# 方式 A:使用 Pinggy 隧道(默认无需配置任何账号)
./refresh-devspace-mcp.sh --tunnel-cmd "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p 443 -R0:localhost:7676 a.pinggy.io"

# 方式 B:使用 ngrok
./refresh-devspace-mcp.sh --tunnel-cmd "ngrok http 7676" --url-regex 'https://[a-z0-9-]+\.ngrok-free\.app'

# 方式 C:使用已有的公网隧道地址
./refresh-devspace-mcp.sh --known-url "https://abc-123.ngrok-free.app/mcp"

📱 Client-Konfiguration und Autorisierung

Webversion-ChatGPT-Konfiguration (unterstützt kostenlose Konten)

  1. Öffnen Sie die ChatGPT-Weboberfläche, klicken Sie auf das Avatar-Symbol unten links und gehen Sie zu SettingsApps & ConnectorsAdvancedDeveloper Mode.

  2. Klicken Sie auf Create connector und tragen Sie Ihre öffentliche MCP-Adresse ein: https://<Ihre-Tunnel-Domain>/mcp.

  3. Geben Sie im erscheinenden OAuth-Fenster das Owner-Passwort von DevSpace ein (gespeichert in ~/.devspace/auth.json), um die Autorisierung abzuschließen.

  4. Starten Sie einen neuen Chat und klicken Sie auf das Connector-Symbol in der Symbolleiste – ChatGPT kann jetzt Ihren lokalen Code lesen, schreiben und ausführen!


🛠️ Diagnose-Toolbox und Befehlszeilenbefehle

Dieses Repository enthält eine vollständige Suite von Diagnose- und Betriebsbefehlen:

# 🔍 综合诊断与能力探针
npm run probe                         # 完整 OAuth + tools/list 诊断
node mcp-probe.mjs --workspace D:/AI/x --json  # 输出 Skills、Subagents 与指令清单
node mcp-probe.mjs --test-delete --test-dir D:/AI/tmp # 安全沙箱删除测试
npm run probe:accept                  # 隔离式编辑、测试、长进程与 diff 自动验收
npm run doctor:web                    # ChatGPT 网页 Connector 专用深度排错

# 📦 资源与 Hook 审计
npm run resources                     # 查看已发现/显式选择的 Codex Skills
npm run hooks                         # 检查网页兼容 Hook(明确标注不支持 before_tool)

# 🔐 OAuth 审计与令牌管控
npm run oauth:list                    # 列出所有已注册的客户端
node oauth-admin.mjs prune            # 清理过期的访问令牌
node oauth-admin.mjs revoke-client <client-id> --yes # 撤销指定客户端
node oauth-admin.mjs revoke-all --yes # 全局吊销所有授权令牌

📂 Projektstruktur und Dateibeschreibung

├── 🪟 Windows 受管核心
│   ├── start.bat / stop.bat          # Windows 快捷启停入口
│   ├── start-ngrok.mjs               # ngrok 隧道守护与 DevSpace 进程生命周期管理
│   ├── stop-service.mjs              # 基于 PID 树与进程签名的精准安全停止
│   └── service-status.mjs            # 进程状态诊断与健康探测
├── 🐧 Linux / WSL 工具
│   ├── setup.sh                      # 依赖安装与交互初始化
│   ├── refresh-devspace-mcp.sh       # 隧道刷新与配置原子重载
│   └── linux-process-utils.sh        # Linux /proc 标识安全验证与进程管理
├── 🔍 诊断与验收体系
│   ├── web-doctor.mjs                # 网页 Connector 诊断套件
│   ├── mcp-probe.mjs                 # MCP 协议与能力边界探针
│   ├── execution-evidence.mjs        # 隐私最小化执行证据收录
│   └── web-acceptance.mjs            # 真实 ChatGPT 网页交互验收工具
├── 🔐 权限与资源配置
│   ├── oauth-admin.mjs / oauth-db.mjs # OAuth 数据库管理与 Token 撤销
│   ├── resource-admin.mjs            # Codex Skills 与 AGENTS.md 资源镜像
│   └── hook-admin.mjs                # after_tool / tool_failure Hook 适配器
└── 📄 模板与规范
    ├── .env.example                  # 环境变量模板
    ├── .mcp.json.example             # MCP 客户端配置示例
    ├── review.sh / templates/        # 静态审查脚手架与报告模板
    └── docs/                         # ADR 决策记录、路线图与验收报告

💡 Fehlerbehebungsprotokoll (Troubleshooting)

  • Fehlerbild: Der Client meldet expected .../ , received .../mcp.

  • Ursachenanalyse: publicBaseUrl in config.json wurde mit /mcp-Suffix gefüllt. DevSpace leitet den OAuth-issuer aus publicBaseUrl ab und fügt dann /mcp als MCP-Endpunkt an.

  • Lösung: Stellen Sie sicher, dass publicBaseUrl die reine Domain-Wurzel ist (ohne Suffix), und nur die vom Client ausgefüllte Verbindungs-URL trägt /mcp. Die Skripte dieses Projekts haben eine automatische Korrektur eingebaut.

  • Fehlerbild: Befehl in nicht-interaktiver Umgebung nicht gefunden, oder npm-Symlink ohne Ausführungsberechtigung.

  • Lösung: Das Startskript dieses Projekts ergänzt automatisch die PATH-Umgebungsvariable und enthält eine eingebaute chmod +x-Selbstheilungslogik. Für manuelle Reparatur ausführen:

    chmod +x $(readlink -f $(which devspace))
  • Ursachenanalyse: Das traditionelle pkill -f-Muster kann die eigenen Befehlszeilenargumente des aktuellen Skripts matchen und Schaden verursachen.

  • Lösung: Dieses Projekt protokolliert stattdessen die PID und kombiniert Linux-/proc-Startkennungen/Windows-Prozess-Zugehörigkeitsketten für präzise Beendigung.

  • Ursachenanalyse: setsid kann den Shell-Builtin-Befehl eval nicht direkt aufrufen.

  • Lösung: Einheitlich als setsid bash -c "$CMD"-Aufruf gekapselt.

  • Ursachenanalyse: Das Upstream-DevSpace hängt standardmäßig bei Tool-Aufrufen wie open_workspace die vollständige MCP-App ein, was häufige iframe-Erstellung verursacht; außerdem lädt die Originalkomponente Ressourcen von ngrok, die von der Sicherheitsblockierungsseite des kostenlosen Tunnels blockiert werden.

  • Lösung: Dieses Projekt führt eine Kompatibilitätsanpassung des Moduls im Speicher durch:

    1. UI-Ressourcen werden nur an das finale show_changes gebunden;

    2. Verwendung einer vollständig eigenständigen und versionierten Inline-Diff-Komponente (ui://devspace/diff-card-inline-v3.html);

    3. Nach der Änderung bitte in den ChatGPT-Connector-Einstellungen auf Refresh klicken und einen neuen Chat zum Testen starten.

  • Hinweis: Ohne Konfiguration einer festen Domain kann sich die Domain des kostenlosen Tunnels bei jedem Neustart ändern. Es wird empfohlen, im ngrok-Dashboard kostenlos 1 statische Domain zu beanspruchen – dann müssen Sie den ChatGPT-Endpunkt nie wieder aktualisieren.


🛡️ Sicherheitsrichtlinien und Haftungsausschluss

  1. Anmeldedaten-Isolation: Es ist strengstens untersagt, .env.local, ~/.devspace/auth.json, Laufprotokolle oder echte .mcp.json-Dateien in öffentliche Code-Repositories zu committen.

  2. Risiko kontrollierbar: Der öffentliche Tunnel ist erreichbar – bitte nur bei Bedarf aktivieren; bei Verdacht auf Anmeldedaten-Leck sofort node oauth-admin.mjs revoke-all --yes ausführen und Tokens rotieren.

  3. Kontingent-Hinweis: You've hit your usage limit ist eine Modell-Aufruf-Kontingentbegrenzung auf OpenAI/ChatGPT-Seite und hat nichts mit dem lokalen Tunnel oder diesem Projekt zu tun.

  4. Das ausführliche Bedrohungsmodell und die Sicherheitsreaktionshinweise finden Sie in 🔒 SECURITY.md.


🤝 Danksagung und Open-Source-Lizenz (Credits & License)

Dieses Projekt ist eine Weiterentwicklung auf Basis der hervorragenden Idee von Embracecactus/devspace-mcp-tunnel.

  • Original-Repository: Embracecactus/devspace-mcp-tunnel (Dank an den Originalautor für die Grundlage des Linux-Automatisierungsskript-Prototyps und die praktischen Ansätze)

  • Basis-Unterstützung: DevSpace (@waishnav/devspace)

  • Open-Source-Lizenz: Dieses Projekt ist vollständig unter der MIT-Lizenz Open Source. Gemäß den MIT-Lizenzbestimmungen wurde der Copyright-Hinweis des Originalautors (Copyright (c) 2026 Embracecactus) vollständig beibehalten. Sie können das Projekt unter Einhaltung der gesetzlichen Vorschriften frei lernen, modifizieren und weiterverbreiten.


A
license - permissive license
Not graded
quality - not tested
B
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 Servers

View all related MCP servers

Related MCP Connectors

  • Real-time chat hub for AI agents — Claude Code, Cursor, Cline, Codex over MCP or REST.

  • A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…

  • MCP connector that lets ChatGPT list, search, and run your Apple Shortcuts via a local Mac agent

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/xiaoxiao341/Chat2Agent'

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