---
title: "ChatGPT Remote MCP: 내 PC와 서버를 안전하게 제어하는 셀프호스팅 개발 환경"
slug: "chatgpt-remote-mcp-guide"
canonicalUrl: "https://moonshotnotes.com/posts/chatgpt-remote-mcp-guide/"
sourceUrl: "https://moonshotnotes.com/posts/chatgpt-remote-mcp-guide/"
markdownUrl: "https://moonshotnotes.com/agent/posts/chatgpt-remote-mcp-guide.md"
language: "ko"
category: "AI Development"
updatedAt: "2026-09-16"
agentTokenEstimate: 2405
---

# ChatGPT Remote MCP: 내 PC와 서버를 안전하게 제어하는 셀프호스팅 개발 환경

ChatGPT에서 원격 PC와 서버의 파일, 쉘, 백그라운드 프로세스를 안전하게 제어할 수 있는 셀프호스팅 MCP 서버를 구축하고 활용하는 방법을 정리합니다.

## Agent metadata

- Source: https://moonshotnotes.com/posts/chatgpt-remote-mcp-guide/
- Markdown: https://moonshotnotes.com/agent/posts/chatgpt-remote-mcp-guide.md
- Language: ko
- Category: AI Development
- Tags: MCP, ChatGPT, Docker, Cloudflare Tunnel, Remote Development
- Updated: 2026-09-16
- Estimated tokens: 2405

대화형 AI를 코딩 보조로 활용할 때 가장 아쉬운 순간 중 하나는 모델이 내 실제 작업 환경의 맥락을 모른다는 점입니다. 브라우저 창에서 코드를 복사해 붙여넣고, 수정된 결과를 다시 로컬 편집기에 옮겨 적은 뒤 터미널에서 빌드 에러를 확인하고 다시 프롬프트로 전송하는 흐름은 생산성을 떨어뜨립니다.

이 문제를 풀기 위해 등장한 표준 규격이 Model Context Protocol(MCP)입니다. 하지만 기존의 수많은 MCP 서버는 로컬 데스크톱 애플리케이션 안에서 stdio 기반 프로세스로만 실행되는 경우가 많습니다. 만약 외부에서 노트북으로 작업하거나, 웹 브라우저의 ChatGPT를 사용하거나, 별도의 고성능 데스크톱 워크스테이션을 원격 개발 머신으로 두고 싶다면 어떻게 해야 할까요?

오픈소스 프로젝트 [chatgpt-remote-mcp](https://github.com/munlucky/chatgpt-remote-mcp)는 바로 이 지점을 해결하기 위해 설계된 셀프호스팅 개발 서버입니다. Windows PC나 Linux 서버에서 Docker Compose로 구동되며, Cloudflare Tunnel과 완전한 OAuth 2.0 인증 체계, 21종의 풍부한 개발 도구, 프로세스 관리 기능을 결합해 원격에서도 안전하게 내 머신을 조작할 수 있도록 돕습니다.

> **프로젝트 요약 (info)**
>
> chatgpt-remote-mcp는 공유기 포트포워딩이나 복잡한 방화벽 설정 없이 Cloudflare Tunnel을 통해 ChatGPT와 내 PC를 암호화 터널로 연결하고, 엄격한 OAuth 2.0 인증과 샌드박스 볼륨 격리를 통해 안전한 원격 파일 탐색과 명령 실행을 제공하는 오픈소스입니다.

| 접근 방식 | 접속 가능 위치 | 공유기 포트 개방 | 인증 및 권한 체계 | 백그라운드 프로세스 |
| :--- | :--- | :--- | :--- | :--- |
| **기존 stdio MCP** | 로컬 데스크톱 앱 내부 한정 | 불필요 | 로컬 프로세스 신뢰 | 단발성 명령 실행 위주 |
| **포트포워딩 HTTP MCP** | 어디서나 접속 가능 | **필수 (공인 IP 및 포트 노출)** | Basic Auth / 단순 키 | 타임아웃 발생 시 단절 |
| **chatgpt-remote-mcp** | **웹, 모바일, 어디서나 가능** | **불필요 (아웃바운드 터널)** | **정식 OAuth 2.0 + 승인 키** | **링 버퍼 기반 스트리밍 모니터링** |

## 원격 MCP 서버 구축 시 마주치는 세 가지 난제

단순한 HTTP 기반 MCP 서버를 만들어서 로컬 포트로 띄우는 것은 어렵지 않습니다. 하지만 이를 실제 ChatGPT에 연결해 외부에서 쓰려고 하면 곧바로 현실적인 장벽에 부딪힙니다.

첫째는 공인 IP와 포트 개방의 위험입니다. 가정용 인터넷이나 사내망에 있는 PC에 접속하기 위해 공유기 포트를 열거나 DDNS를 설정하는 것은 보안상 큰 위협이 됩니다. 인증되지 않은 스캐너와 악성 봇의 타깃이 되기 쉽습니다.

둘째는 ChatGPT의 엄격한 연결 규격입니다. OpenAI의 커스텀 MCP 연결 인터페이스는 일반 API 키 방식 외에도 안전한 권한 위임을 위한 OAuth 2.0 플로우를 강력하게 요구합니다. 표준적인 토큰 엔드포인트와 인가 엔드포인트를 제대로 갖추지 못하면 ChatGPT 클라이언트 등록 단계에서 거부됩니다.

셋째는 장기 실행 프로세스와 세션 관리입니다. 코딩 작업은 단순한 파일 읽기에서 끝나지 않습니다. 의존성 패키지를 설치하거나, 빌드를 실행하거나, 테스트 러너를 백그라운드에 띄워두고 실시간 출력 로그를 확인해야 합니다. 단순 단발성 명령 실행기(exec)로는 이러한 상호작용을 처리할 수 없습니다.

```mermaid
flowchart TD
    subgraph InsecurePath ["기존 포트포워딩 방식 (보안 취약)"]
        direction TB
        A1["외부 ChatGPT 요청"] --> A2["공유기 인바운드 포트 개방"]
        A2 --> A3["공인 IP 직접 노출"]
        A3 --> A4["외부 봇넷 & 무차별 대입 위험"]
    end

    subgraph SecurePath ["chatgpt-remote-mcp (Zero Trust 터널)"]
        direction TB
        B1["외부 ChatGPT 요청"] --> B2["Cloudflare Edge (DDoS 방어 & WAF)"]
        B2 --> B3["암호화 아웃바운드 터널"]
        B3 --> B4["Docker Nginx 및 OAuth 승인 키 검증"]
    end
```

## 핵심 아키텍처와 주요 기능

chatgpt-remote-mcp의 구성 요소는 크게 터널 레이어, 역방향 프록시 레이어, 인증 및 MCP 애플리케이션 레이어로 나뉩니다.

```mermaid
flowchart LR
    subgraph Client [외부 환경]
        CG[ChatGPT Web / Desktop]
    end

    subgraph Cloudflare [Cloudflare Zero Trust]
        CFT[Cloudflare Edge Tunnel]
    end

    subgraph Host [내 PC / 개발 서버]
        subgraph Docker [Docker Compose 네트워크]
            CFD[cloudflared 데몬]
            NG[Nginx 프록시]
            APP[Express MCP Server]
        end
        FS[(마운트된 소스 디렉토리)]
        PM[프로세스 버퍼 & 러너]
    end

    CG -->|HTTPS /mcp| CFT
    CFT -->|아웃바운드 터널| CFD
    CFD -->|로컬 트래픽| NG
    NG -->|X-Forwarded-For 정규화| APP
    APP --> FS
    APP --> PM
```

| 핵심 구성 요소 | 기술 스택 | 주요 역할 및 보호 수준 |
| :--- | :--- | :--- |
| **엣지 터널** | Cloudflare Tunnel (`cloudflared`) | 포트 개방 없는 양방향 암호화 터널, DDoS 차단 |
| **경계 프록시** | Nginx Reverse Proxy | 클라이언트 원본 IP 정규화, 헤더 위변조 차단, Rate Limit 집계 |
| **인가 프레임워크** | Express OAuth 2.0 Server | ChatGPT 커스텀 MCP 규격 준수, 마스터 승인 키 기반 토큰 발급 |
| **도구 실행기** | 21종 MCP Tool Handlers | 파일 I/O 조작, 배치 읽기, 샌드박스 명령 실행, 링 버퍼 수명주기 |

### 1. 포트 개방 없는 Cloudflare Tunnel 연동

서버가 실행되면 내부의 `cloudflared` 컨테이너가 Cloudflare 엣지 네트워크로 직접 아웃바운드 연결을 맺습니다. 외부에서 들어오는 인바운드 포트를 열 필요가 전혀 없으며, Cloudflare의 고품질 SSL 인증서와 DDoS 방어망을 그대로 누릴 수 있습니다. 사용자는 Zero Trust 대시보드에서 발급받은 터널 토큰만 `.env` 파일에 기재하면 됩니다.

### 2. 승인 키 기반의 안전한 OAuth 2.0 서버

chatgpt-remote-mcp는 Express 기반으로 완전한 OAuth 2.0 인가 프레임워크를 내장하고 있습니다.
ChatGPT가 `/oauth/authorize`로 클라이언트 등록 및 승인을 요청하면, 사전에 생성된 마스터 승인 키(Approval Key)가 있어야만 최종 인가 토큰이 발급됩니다.

- 승인 키 기반 승인: 관리자가 발급한 보안 키를 입력해야 토큰이 발급되므로 임의의 제3자가 내 터널 주소를 알아내도 접속할 수 없습니다.
- 클라이언트 용량 제한: `MCP_OAUTH_MAX_REGISTERED_CLIENTS` 기본값(256개)을 두어 메모리 고갈 공격을 방지하고 오래된 미사용 클라이언트를 안전하게 정리합니다.
- 토큰 라이프사이클: Access Token(1시간)과 Refresh Token(30일) 구조를 채택하여 세션 보안과 편의성을 균형 있게 유지합니다.

### 3. Nginx 경계와 IP 정규화

컨테이너 내부 전면에는 경량화된 Nginx가 배치되어 있습니다. Cloudflare 엣지에서 전달되는 실제 클라이언트 IP를 신뢰 경계에서 단일 정규화 주소로 캡슐화합니다. 이를 통해 Express 앱 계층에서는 정확한 원본 IP를 기반으로 외부 클라이언트별 Rate Limit을 독립적으로 집계합니다.

### 4. 21종의 풍부한 도구 세트

chatgpt-remote-mcp는 파일 입출력부터 고급 프로세스 모니터링까지 21종의 세분화된 도구를 제공합니다.

| 도구 분류 | 제공 도구 이름 | 주요 역할 및 특징 |
| :--- | :--- | :--- |
| **파일 탐색 및 검사** | `list_directory`, `stat_path`, `hash_file` | 재귀 디렉토리 탐색, 파일 상세 메타데이터 및 해시 계산 |
| **파일 읽기 및 배치** | `read_file`, `read_files` | 단일 파일 읽기 및 여러 파일을 단일 턴에 묶어 읽는 배치 기능 |
| **파일 조작 및 편집** | `write_file`, `replace_in_file`, `apply_patch` | 파일 생성, 특정 문자열 치환, 통일 diff 패치 적용 |
| **디렉토리 및 관리** | `make_directory`, `copy_path`, `move_path`, `remove_path`, `chmod_path` | 파일/폴더 이동, 복사, 삭제, 권한 설정 |
| **전송 도구** | `upload_file`, `download_file` | base64 인코딩 기반의 안전한 원격 파일 업로드 및 다운로드 |
| **명령 실행** | `exec_command`, `run_script` | 단기 쉘 명령 및 스크립트 파일 실행 |
| **프로세스 수명주기** | `write_stdin`, `read_process`, `terminate_process`, `list_processes` | 백그라운드 프로세스 생성, 표준입력 전달, 출력 버퍼 읽기, 강제 종료 |

특히 `read_files`는 한 번의 도구 호출로 연관된 여러 소스 파일을 일괄 수집할 수 있어, 모델과 도구 간의 왕복 지연 시간과 토큰 낭비를 획기적으로 줄여줍니다.

### 5. 장기 실행 프로세스 버퍼 관리

테스트 실행이나 빌드처럼 시간이 오래 걸리는 작업은 단일 타임아웃으로 끊어지면 안 됩니다. chatgpt-remote-mcp의 프로세스 관리자는 프로세스를 비동기로 분리하고 내부 링 버퍼에 표준 출력(stdout)과 표준 에러(stderr)를 차곡차곡 누적합니다. ChatGPT는 `read_process` 도구로 누적된 로그를 단계별로 읽고, 필요한 경우 `write_stdin`으로 추가 입력을 보낼 수 있습니다.

```mermaid
flowchart TD
    subgraph ToolCategories ["21종 도구 생태계"]
        direction LR
        T_FILE["파일 탐색 & 배치 읽기<br/>list_directory, read_files"]
        T_EDIT["정밀 코드 수정<br/>write_file, replace_in_file, apply_patch"]
        T_PROC["터미널 명령 & 스크립트<br/>exec_command, run_script"]
    end

    subgraph ProcessManagement ["장기 실행 프로세스 링 버퍼 (Ring Buffer)"]
        T_PROC --> PROC_START["비동기 프로세스 백그라운드 기동"]
        PROC_START --> PROC_BUFF["stdout / stderr 링 버퍼에 실시간 적재"]
        PROC_BUFF --> PROC_READ["ChatGPT가 read_process로 출력 스트림 점진적 회수"]
        PROC_READ --> PROC_IN["필요 시 write_stdin으로 추가 입력 주입"]
    end
```

> **실제 개발 시나리오 (tip)**
>
> 카페에서 노트북이나 모바일 기기로 웹 브라우저의 ChatGPT를 열고 프로젝트 빌드 테스트를 요청하면, ChatGPT가 원격으로 `exec_command`를 호출해 백그라운드 프로세스를 띄우고 `read_process`로 실시간 빌드 에러 로그를 수집한 뒤, `replace_in_file`로 문제 코드를 즉시 고치는 흐름이 가능해집니다.

## 5분 만에 끝내는 설치 및 설정 가이드

chatgpt-remote-mcp는 Windows 환경과 PowerShell 7 이상을 기본 타깃으로 최적화된 스크립트를 제공하지만, Docker Compose가 구동되는 리눅스 환경에서도 동일하게 작동합니다.

### 1단계: 저장소 클론 및 기본 설정

먼저 터미널에서 저장소를 복제합니다.

```powershell
git clone https://github.com/munlucky/chatgpt-remote-mcp.git
cd chatgpt-remote-mcp
```

보안 키를 자동으로 생성해 주는 셋업 스크립트를 실행합니다.

```powershell
.\scripts\setup-keys.ps1
```

이 스크립트는 `.env.example`을 기반으로 새 `.env` 파일을 구성하며, 독립적인 OAuth 승인 키와 내부 헬스 프로브용 비밀 키를 안전한 난수로 생성하여 채워 넣습니다.

### 2단계: 환경 변수 편집

생성된 `.env` 파일을 텍스트 편집기로 열어 내 환경에 맞게 값을 수정합니다.

```ini
# 공개 도메인 설정 (Cloudflare에 연결된 도메인)
PUBLIC_DOMAIN=mcp.yourdomain.com

# Cloudflare Zero Trust 대시보드에서 생성한 터널 토큰
CLOUDFLARE_TUNNEL_TOKEN=eyJhIjoi...

# ChatGPT와 공유할 내 PC의 작업 디렉토리 경로 (Windows 경로 예시)
HOST_WORKSPACE_PATH=C:\dev\my-project

# 컨테이너 내부 마운트 이름 (기본값 권장)
CONTAINER_WORKSPACE_PATH=/workspace
```

> **보안 주의사항 (danger)**
>
> 컨테이너에 루트 드라이브 전체(예: `C:\`)를 마운트하지 마세요. 작업이 필요한 특정 프로젝트 폴더만 지정하는 것이 안전합니다.

### 3단계: 사전 검증 및 컨테이너 구동

도커 환경과 파일 경로 설정이 올바른지 진단 스크립트로 확인합니다.

```powershell
.\scripts\verify-env.ps1
```

모든 항목이 정상(OK)으로 확인되면 서버를 시작합니다.

```powershell
.\scripts\start.ps1
```

PowerShell 스크립트가 Docker Compose 빌드와 실행을 자동으로 수행하며, 컨테이너 헬스체크가 통과할 때까지 상태를 모니터링합니다.

### 4단계: OAuth 승인 키 확인

ChatGPT와 연동할 때 입력해야 하는 승인 키를 확인합니다.

```powershell
.\scripts\get-approval-key.ps1
```

화면에 출력된 키 문자열을 안전한 곳에 복사해 둡니다.

### 5단계: ChatGPT에서 MCP 연결 등록

이제 ChatGPT에서 내 서버를 등록할 차례입니다.

1. ChatGPT 웹 또는 데스크톱 앱에서 설정(Settings) 메뉴로 이동합니다.
2. Developer 또는 Model Context Protocol 설정에서 **Add MCP Server**를 선택합니다.
3. 서버 URL에 Cloudflare 터널로 연결된 주소를 입력합니다: `https://mcp.yourdomain.com/mcp`
4. 인증 방식에서 OAuth 2.0을 선택하고 안내되는 승인 창에서 앞서 복사한 **Approval Key**를 입력합니다.
5. 연결이 완료되면 21개의 도구 목록이 활성화됩니다.

## 실무 활용 시나리오

실제로 ChatGPT와 대화하면서 어떻게 활용할 수 있는지 몇 가지 구체적인 프롬프트 예를 살펴봅니다.

### 1. 코드베이스 파악 및 빠른 패치

```text
프롬프트:
"현재 작업 디렉토리의 package.json과 src/index.ts 파일을 읽고,
Express 라우터에 새로 추가해야 할 /health 엔드포인트를 제안한 뒤 직접 파일에 패치해줘."
```

ChatGPT는 먼저 `read_files` 도구를 호출해 두 파일의 내용을 한 번에 읽어옵니다. 그 후 `apply_patch`나 `replace_in_file` 도구를 사용해 정확한 변경 사항을 로컬 파일에 즉시 반영합니다.

### 2. 백그라운드 테스트 실행 및 에러 디버깅

```text
프롬프트:
"npm test 명령을 백그라운드로 실행하고, 실행된 프로세스의 로그를 확인해서
실패한 테스트 케이스가 있는지 분석해줘."
```

ChatGPT는 `exec_command` 또는 백그라운드 프로세스 등록을 통해 테스트 러너를 실행하고, 반환된 출력 내용을 토대로 깨진 테스트의 원인을 진단해 줍니다.

### 3. 일일 사용량 및 감사 로그 확인

관리자는 호스트 터미널에서 간편하게 지난 24시간 동안 실행된 도구 통계를 확인할 수 있습니다.

```powershell
.\scripts\usage-report.ps1 -Hours 24
```

이 스크립트는 단순 헬스 프로브 호출을 제외하고, 실제로 모델이 호출한 유의미한 파일 수정, 프로세스 실행 기록만을 깔끔하게 요약해 보여줍니다.

## 운영 및 보안 체크리스트

원격 환경에 머신을 노출할 때는 항상 최소 권한 원칙을 지켜야 합니다.

- 마운트 범위 제한: 반드시 해당 작업에 필요한 프로젝트 경로만 바인드 마운트합니다.
- 토큰 및 환경변수 보호: `.env` 파일은 절대로 깃 저장소에 커밋되지 않도록 `.gitignore`에 유지합니다.
- 승인 키 정기 교체: 필요 시 `scripts/setup-keys.ps1`을 다시 실행해 승인 키를 갱신할 수 있습니다. 기존 연결된 세션은 즉시 무효화됩니다.
- 모니터링: 장시간 미사용 시 `docker compose down` 명령으로 컨테이너를 안전하게 종료합니다.

## 마치며

chatgpt-remote-mcp는 데스크톱 로컬 프로세스에 갇혀 있던 MCP 도구들을 안전한 웹 및 원격 클라우드 환경으로 확장해 주는 훌륭한 다리입니다. Cloudflare Tunnel의 무포트 터널링과 내장 OAuth 2.0 승인 체계 덕분에, 보안을 해치지 않으면서도 내 PC의 풍부한 개발 도구를 ChatGPT의 두뇌와 결합할 수 있습니다.

원격 개발 환경이나 집 안의 데스크톱을 나만의 프라이빗 AI 코딩 에이전트 인프라로 바꾸고 싶다면, [chatgpt-remote-mcp 저장소](https://github.com/munlucky/chatgpt-remote-mcp)를 클론해 직접 구동해 보시길 권합니다.
