Skip to main content
Glama
xiaoxiao341

Chat2Agent

by xiaoxiao341

🌉 Chat2Agent

ChatGPT 웹 인터페이스가 공식 MCP를 통해 로컬 워크스페이스 기능을 갖추게 하는 오픈소스 브리지 스위트

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


💡 핵심 포지셔닝 이 프로젝트의 주요 목표는 웹 버전 ChatGPT(무료 버전 및 유료 버전 포함) 가 OpenAI 공식 MCP(Model Context Protocol) 개발자 커넥터를 통해 로컬 워크스페이스에 직접 연결되어 Codex Agent와 같은 코드 검색, 파일 수정, 테스트 실행 및 리뷰 기능을 얻을 수 있게 하는 것입니다.

전체 설계 경계는 📑 ADR 0001: Web Agent Boundary 및 🗺️ 제품 로드맵을 참조하세요.


🛡️ 제로 비용과 절대적 안전 보장

1. 💰 100% 무료, 일반 무료 계정으로 바로 사용 가능

  • ChatGPT 무료 버전 사용 가능: OpenAI는 공식적으로 웹 인터페이스에 Developer Mode / MCP Connector를 공개했으며, 일반 무료 계정도 Plus/Team/Pro 구독 없이 바로 커스텀 MCP 커넥터를 추가할 수 있습니다!

  • 무료 공용 터널: 기본 제공되는 ngrok 무료 요금제Pinggy 무료 터널이든, 전 과정에서 비용 없이 로컬과 웹 간 통신을 안정적으로 연결할 수 있습니다.

2. 🔒 공식 표준 프로토콜, 절대 0 계정 정지 위험

  • 공식 개방형 표준: OpenAI가 공식적으로 도입한 Model Context Protocol(MCP) 규격과 표준 OAuth 2.0 프로세스에 완전히 기반합니다.

  • 리버스 엔지니어링 및 불법 수단 배제: 웹 Cookie 주입 절대 없음, 웹 비공개 인터페이스 크롤링 절대 없음, Token 리버스 절대 없음, 위반 자동화 크롤러 스크립트 절대 사용하지 않음. OpenAI 입장에서 이는 정식 타사 표준 커넥터일 뿐이며, 공식 이용약관(TOS)을 완전히 준수하므로 기술적 기반에서 0 계정 정지 위험을 보장합니다.


Related MCP server: codex-web-bridge

🚀 왜 Chat2Agent인가? (원작자 버전 대비 주요 업그레이드)

이 프로젝트는 Embracecactus/devspace-mcp-tunnel의 훌륭한 아이디어를 기반으로 심층 리팩토링하여 진화한 것입니다.

원작자 버전은 주로 Linux용 간단한 Bash 시작 스크립트 데모(총 11개 파일)였습니다. Chat2Agent는 66개 파일, 6400+줄의 신규 코드, 40개의 자동화 단위 테스트로 확장되어 산업급 변신을 이루었습니다:

차원

원작자 버전 (devspace-mcp-tunnel)

Chat2Agent 강화 리팩토링 버전 (본 프로젝트)

크로스 플랫폼 아키텍처

Linux/WSL 기본 Bash 실행만 지원

Windows 엔터프라이즈급 관리형 데몬 프로세스 네이티브 지원(start.bat/stop.bat), Linux/WSL 완벽 호환

프로세스 수명주기

pkill -f 퍼지 매칭, 현재 스크립트나 다른 Node 프로세스 오살 위험

PID 트리와 Linux /proc 시작 타임스탬프 이중 검증 기반, 100% 정밀 시작/중지, 오살 방지

장기 프로세스 비동기 폴링

프로세스 세션 유지 없음, 짧은 명령도 쉽게 멈춤

장기 작업 Process Session 유지 구현, ChatGPT의 0 직렬화 손실 Bug 해결(yieldTimeMs: 1), write_stdin 비동기 폴링 및 크로스 Session 복구 지원

시작 헬스 게이트

시작 후 탐지 없음, 서비스가 실제로 사용 가능한지 모름

내장 /healthz 사전 검사 및 포트 헬스 게이트, 프로브 검증 성공 시에만 시작 준비 완료 보고

웹 Diff 렌더링

DevSpace 네이티브 출력 사용, 웹에서 빈번한 멈춤, 화이트 스크린

자체 개발 버전 관리 인라인 Diff 카드, ngrok 차단 해결; show_changes에만 UI 바인딩, iframe 페이지 끊김 제거

Codex 리소스 재사용

전역 설정 무분별한 읽기 또는 격리 부족

Codex 리소스 읽기 전용 안전 미러 및 격리(ADR 0001) 구현, 엄선된 3대 Skills, 로컬 전역 Codex 오염·수정 절대 없음

보안 샌드박스 Hook

도구 차단 감사 및 보안 보호 없음

after_tool/tool_failure 샌드박스 Hook 어댑터 신규 추가, 비밀번호/API Key 등 민감 환경변수 자동 제거

보안 및 화이트리스트

전역 * 호스트 화이트리스트 무분별 상속

전역 와일드카드 적극 제거, 공용 도메인 및 루프백 기반 동적 화이트리스트 파생; 자격 증명은 .env.local로 엄격 보호

OAuth 세션 관리

승인된 클라이언트 및 토큰 관리 불가

내장 OAuth 데이터베이스 관리 도구, Token 만료 자동 정리, 클라이언트별 취소 및 원클릭 전역 폐기 지원

진단 프로브 툴박스

문제 해결 및 테스트 스크립트 없음

6대 CLI 프로브 신규 추가(doctor:web 심층 진단, mcp-probe 기능 프로브, 샌드박스 자동 수락 테스트 등)

프로토콜 메타데이터 모니터링

도구 업데이트 및 캐시 오염 인지 불가

자체 개발 버전 관리 URI 캐시 관통 전략(diff-card-inline-v3.html), Doctor가 ChatGPT 측 메타데이터 신선도 실시간 감지

프라이버시 보호 메커니즘

실행 상태 감사 없음

Fail-closed 프라이버시 최소화 실행 증거 수집, 종료 코드만 기록, 사용자 소스코드 및 명령 내용 절대 수집 안 함

이중 실제 수락

수락 기준 없음

자동화 프로브와 실제 웹 이중 수락 체계 확립(npm run accept:web:verify), 실측 가시성 보장

엔지니어링 및 자동화 테스트

테스트 케이스 없음

16개 테스트 스위트, 40개 단위 및 통합 테스트 내장, Windows / Ubuntu 이중 시스템 GitHub Actions CI 탑재


✨ 핵심 기능 및 하드코어 엔지니어링 구현


🏗️ 작동 원리

 ┌─────────────────┐       HTTPS / OAuth       ┌──────────────┐       loopback        ┌────────────────────────┐
 │  网页版 ChatGPT  │ ───────────────────────▶ │   公网隧道   │ ────────────────────▶ │  DevSpace (127.0.0.1)  │
 └─────────────────┘      (ngrok / Pinggy)     └──────────────┘     (Port: 7676)      └───────────┬────────────┘
                                                                                                  │
                                                                       ┌──────────────────────────┴───────────────┐
                                                                       ▼                                          ▼
                                                          ┌──────────────────────────┐               ┌──────────────────────────┐
                                                          │   允许的本地目录 / Shell   │               │  选定的 AGENTS.md / Skills│
                                                          └──────────────────────────┘               └──────────────────────────┘
  • 격리 리슨: DevSpace는 로컬 루프백 주소 127.0.0.1:7676만 리슨하며, OAuth(Owner 비밀번호)를 통한 엄격한 승인 절차를 거칩니다.

  • 리버스 프록시: 터널 도구가 공용 HTTPS 트래픽을 로컬 7676 포트로 프록시합니다.

  • 엔드포인트 규칙: MCP 클라이언트 연결 URL은 https://<터널 도메인>/mcp이며, OAuth issuerpublicBaseUrl(즉, 순수 도메인 루트, /mcp 제외)에서 파생됩니다.

  • 전역 오염 제로:

    • Windows 런처: 프로젝트 디렉토리의 .mcp.json만 업데이트, 본机 전역 Codex 설정을 변경하지 않습니다.

    • Linux 새로고침 스크립트: 기본적으로 ~/.codex/config.toml을 수정하지 않으며, 명시적으로 --sync-codex를 추가한 경우에만 레거시 호환 동기화로 수행합니다.


🌐 무료 ngrok 설정 가이드 (단계별 무료 사용)

무료 ngrok을 사용하여 안정적인 공용 터널 지원을 권장합니다(완전 무료):

  1. 계정 등록: ngrok 공식 사이트 (ngrok.com)에서 무료 계정을 등록하세요.

  2. Authtoken 획득:

  3. (강력 추천) 무료 정적 도메인 1개 받기:

    • 왼쪽 메뉴에서 Cloud Edge -> Domains를 클릭하세요.

    • Claim a domain을 클릭하여 전용 정적 도메인(예: your-name.ngrok-free.app)을 무료로 받으세요.

    • 장점: 도메인이 고정되면 서비스를 재시작할 때마다 ChatGPT 웹에서 URL을 다시 업데이트할 필요가 없습니다!

  4. 프로젝트 설정 입력:

    • 프로젝트 루트 디렉토리에 설정 파일을 복사하세요:

      Copy-Item .env.example .env.local
    • .env.local을 편집하여 방금 얻은 정보를 입력하세요:

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

🚀 Windows 빠른 시작 (권장)

1. 의존성 설치 및 DevSpace 초기화

요구 환경: Node.js >=22.19 <27

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

# 2. 初始化 DevSpace 配置
devspace init

devspace init은 허용 디렉토리, 포트(7676 입력) 및 공용 base URL(임시로 https://placeholder.invalid 입력 가능, 런처가 자동으로 재작성)을 안내합니다.

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

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

2. 원클릭 시작, 상태 확인 및 중지

# 运行启动前预检
npm run preflight

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

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

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

🐧 Linux / WSL 빠른 시작

1. 설치 및 초기화

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

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

2. 터널 시작 및 자동 동기화

# 方式 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"

📱 클라이언트 설정 및 인증

웹 버전 ChatGPT 설정 (무료 계정 지원)

  1. ChatGPT 웹을 열고 왼쪽 하단 아바타를 클릭하여 SettingsApps & ConnectorsAdvancedDeveloper Mode로 이동합니다.

  2. Create connector를 클릭하고 공용 MCP 주소를 입력하세요: https://<터널 도메인>/mcp.

  3. 페이지에 표시되는 OAuth 창에서 DevSpace의 Owner 비밀번호(~/.devspace/auth.json에 저장)를 입력하여 인증을 완료하세요.

  4. 새 대화를 시작하고 도구 모음의 커넥터 아이콘을 클릭하면 ChatGPT가 로컬 코드를 읽고, 작성하고, 실행할 수 있습니다!


🛠️ 진단 툴박스 및 CLI 명령어

본 저장소에는 완벽한 진단 및 운영 명령어 세트가 내장되어 있습니다:

# 🔍 综合诊断与能力探针
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 # 全局吊销所有授权令牌

📂 프로젝트 구조 및 파일 설명

├── 🪟 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 决策记录、路线图与验收报告

💡 문제 해결 기록 (Troubleshooting)

  • 오류 증상: 클라이언트가 expected .../ , received .../mcp를 표시합니다.

  • 원인 분석: config.jsonpublicBaseUrl/mcp가 포함된 주소가 입력되었습니다. DevSpace는 publicBaseUrl로 OAuth issuer를 파생한 후 /mcp를 연결하여 MCP 엔드포인트로 사용합니다.

  • 해결 방법: publicBaseUrl이 순수 도메인 루트(접미사 없음)인지 확인하고, 클라이언트에 입력하는 연결 URL에만 /mcp를 포함하세요. 본 프로젝트 스크립트는 자동 수정을 수행합니다.

  • 오류 증상: 비대화형 환경에서 명령어를 찾을 수 없거나, npm 심볼릭 링크에 실행 권한이 없습니다.

  • 해결 방법: 본 프로젝트 시작 스크립트는 PATH 환경변수를 자동으로 보완하고 chmod +x 자가 치유 로직을 내장합니다. 수동 수정이 필요하면 다음을 실행하세요:

    chmod +x $(readlink -f $(which devspace))
  • 원인 분석: 기존 pkill -f 방식은 현재 스크립트 자체의 명령줄 인자와 매칭되어 오살이 발생합니다.

  • 해결 방법: 본 프로젝트는 PID 기록과 Linux /proc 시작 식별자/Windows 프로세스 소유 체인을 결합하여 정밀 종료를 수행합니다.

  • 원인 분석: setsid는 Shell 내장 명령어 eval을 직접 호출할 수 없습니다.

  • 해결 방법: setsid bash -c "$CMD" 호출로 통일하여 래핑합니다.

  • 원인 분석: 상위 DevSpace는 기본적으로 open_workspace 등 도구 호출 시 전체 MCP App을 마운트하여 iframe이 빈번하게 생성됩니다. 또한 원래 컴포넌트는 ngrok에서 리소스를 로드하므로 무료 터널의 보안 차단 페이지에 의해 차단됩니다.

  • 해결 방법: 본 프로젝트는 메모리에서 모듈 호환성 어댑테이션을 수행합니다:

    1. 최종 show_changes에만 UI 리소스를 마운트합니다;

    2. 완전히 자체 포함된 버전 관리 인라인 Diff 컴포넌트(ui://devspace/diff-card-inline-v3.html)를 사용합니다;

    3. 수정 후 ChatGPT Connector 설정에서 Refresh를 클릭하고 새 대화를 열어 테스트하세요.

  • 설명: 고정 도메인을 설정하지 않으면 무료 터널은 재시작할 때마다 도메인이 변경될 수 있습니다. ngrok Dashboard에서 무료 정적 도메인 1개를 받으면 ChatGPT 엔드포인트를 반복적으로 업데이트할 필요 없이 한 번에 해결됩니다.


🛡️ 보안 규정 및 면책 조항

  1. 자격 증명 격리: .env.local, ~/.devspace/auth.json, 실행 로그 또는 실제 .mcp.json을 공개 코드 저장소에 커밋하는 것을 엄격히 금지합니다.

  2. 위험 통제 가능: 공용 터널은 접근 가능성을 가지므로 필요할 때만 활성화하세요. 자격 증명 유출이 의심되면 즉시 node oauth-admin.mjs revoke-all --yes를 실행하고 Token을 교체하세요.

  3. 할당량 안내: You've hit your usage limit는 OpenAI / ChatGPT 측의 모델 호출 할당량 제한이며, 로컬 터널 및 본 프로젝트와 무관합니다.

  4. 상세한 위협 모델 및 보안 대응 지침은 🔒 SECURITY.md를 참조하세요.


🤝 감사 및 오픈소스 라이선스 (Credits & License)

본 프로젝트는 Embracecactus/devspace-mcp-tunnel의 훌륭한 아이디어를 기반으로 지속적인 리팩토링과 진화를 통해 개발되었습니다.

  • 원작자 저장소: Embracecactus/devspace-mcp-tunnel (원작자가 마련한 Linux 자동화 스크립트 초기 형태와 실천 아이디어에 감사드립니다)

  • 기반 인프라 지원: DevSpace (@waishnav/devspace)

  • 오픈소스 라이선스: 본 프로젝트는 MIT License 라이선스로 완전히 오픈소스입니다. MIT 라이선스 규정에 따라 원작자의 저작권 표시(Copyright (c) 2026 Embracecactus)를 완전히 보존하며, 법적 범위 내에서 자유롭게 학습, 수정 및 2차 배포할 수 있습니다.


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