# MCP

> Codex, Claude Code 또는 Cursor를 Proxyman MCP에 연결해 AI 어시스턴트로 캡처된 HTTP/HTTPS 트래픽을 분석하고 디버깅 규칙을 만들 수 있습니다.

Proxyman MCP는 AI 어시스턴트를 컴퓨터에서 실행 중인 Proxyman macOS 앱에 연결합니다. 이를 사용해 캡처된 요청과 응답을 확인하고, 실패 원인을 조사하며, 디버깅 규칙을 만들 수 있습니다. AI 어시스턴트에게 분석을 요청하기 전에 Proxyman을 열어 두고 조사하려는 트래픽을 먼저 캡처하세요.

## 1. Proxyman MCP란? {#1-what-is-proxyman-mcp}

**Proxyman MCP**(Model Context Protocol)는 AI 어시스턴트(Codex, Claude Code, Cursor 등 MCP를 지원하는 도구)가 Proxyman macOS 앱과 직접 상호작용할 수 있게 해 주는 기능입니다. AI는 이를 통해 HTTP 트래픽을 확인하고, 디버깅 규칙을 만들고, Proxyman을 제어할 수 있습니다. 모두 자연어 대화로 처리합니다.

구조는 두 가지 구성 요소로 이루어집니다:

* **MCP HTTP Server** - 토큰 기반 인증을 사용해 localhost에서 Proxyman 앱 안에서 실행됩니다
* **MCP CLI Server** - AI 도구가 연결하는 stdio 기반 MCP 서버로, 명령을 Proxyman에 전달합니다

> **노트:** AI 에이전트용 [Proxyman SKILL.md](https://proxyman.com/docs/ko/skill-md)를 확인해 보세요.

### ✅ 예시 프롬프트 {#-example-prompts}

* api.example.com으로 보낸 최근 API 요청 10개를 보여 줘
* /api/users로 보내는 모든 POST 요청에 Breakpoint를 만들어 줘
* 실패한 요청을 cURL 명령으로 내보내 줘
* \*.stripe.com에 SSL Proxying을 활성화해 줘
* 상태 코드, 헤더, 본문을 변경하는 새 Script를 만들어 줘.
* 지정한 URL로 Map Local, Breakpoint 도구를 만들어 줘

![Claude가 Proxyman MCP로 쿼리를 바꾸고 헤더를 추가하며 상태 코드를 301로 설정하는 Scripting 규칙을 만드는 화면](https://proxyman.com/docs/assets/Screenshot%202026-03-16%20at%2011.20.29.jpg)

_Proxyman MCP로 Scripting 규칙 만들기_

## 2. 주요 이점 {#2-benefits}

<table><thead><tr><th width="229.90625">이점</th><th>설명</th></tr></thead><tbody><tr><td><strong>AI 기반 디버깅</strong></td><td>캡처된 트래픽 분석, 특정 요청 찾기, API 응답 설명을 AI에 요청하세요</td></tr><tr><td><strong>대화형 규칙 생성</strong></td><td>대화를 통해 Breakpoint, Map Local, Map Remote 규칙을 만듭니다</td></tr><tr><td><strong>더 빠른 작업 흐름</strong></td><td>컨텍스트를 바꾸지 않고 cURL 명령을 내보내고, 플로우를 필터링하고, 세션을 관리합니다</td></tr><tr><td><strong>보안을 고려한 설계</strong></td><td>localhost 전용 서버이며 세션별 토큰으로 인증합니다</td></tr><tr><td><strong>IDE 통합</strong></td><td>Codex, Claude Code, Cursor 등 MCP를 지원하는 도구와 함께 사용할 수 있습니다</td></tr></tbody></table>

## 3. Proxyman MCP 추가 방법 {#3-how-to-add-proxyman-mcp}

1. **Proxyman에서 MCP 활성화**
   * Proxyman → Settings → MCP 탭을 엽니다
   * **Enable MCP Server**를 켜서 MCP 서버를 시작합니다
2. **MCP 클라이언트를 선택합니다:** Proxyman Settings → MCP에서 **Codex** 또는 **Claude Code**를 선택한 다음 **Copy Command**를 사용합니다. **Cursor**를 사용한다면 **Manual**을 선택하고 표시된 설정을 Cursor의 MCP 설정에 추가합니다.
3. 사용하는 클라이언트와 설치 방식에 맞춰 아래 설정을 따르세요. Proxyman이 생성하는 명령은 설치된 앱의 경로를 사용하므로 이 예시와 다를 수 있습니다. 일반적인 디버깅에서는 **Redact Sensitive Data Before Sending to AI** 옵션을 켜 두세요.

![Enable MCP Server가 켜져 있고 Claude Code, Codex, Manual 탭과 Copy, Redact Sensitive Data가 표시된 Proxyman MCP 설정](https://proxyman.com/docs/assets/proxyman-settings-mcp-tab.jpg)

_설정의 MCP 탭_

### Codex {#codex}

* 정식 버전:

```bash
codex mcp add proxyman -- "/Applications/Proxyman.app/Contents/MacOS/mcp-server"
```

* Setapp 버전:

```bash
codex mcp add proxyman -- "/Applications/Setapp/Proxyman.app/Contents/MacOS/mcp-server"
```

### Claude Code {#claude-code}

* 정식 버전:

```bash
claude mcp add proxyman --transport stdio -- "/Applications/Proxyman.app/Contents/MacOS/mcp-server"
```

* Setapp 버전:

```bash
claude mcp add proxyman --transport stdio -- "/Applications/Setapp/Proxyman.app/Contents/MacOS/mcp-server"
```

### Manual {#manual}

Cursor 및 기타 MCP 클라이언트에서는 Proxyman의 **Manual** 탭에 있는 설정을 클라이언트의 MCP 설정에 추가합니다. 설치된 Proxyman 앱에 맞는 설정을 선택하세요. 아래 예시는 `mcpServers` 항목을 보여 줍니다:

* 정식 버전:

```json
{
  "mcpServers": {
    "proxyman": {
      "command": "/Applications/Proxyman.app/Contents/MacOS/mcp-server"
    }
  }
}
```

* Setapp 버전

```json
{
  "mcpServers": {
    "proxyman": {
      "command": "/Applications/Setapp/Proxyman.app/Contents/MacOS/mcp-server"
    }
  }
}
```

4. **Proxyman MCP 사용 시작하기**

* Proxyman이 실행 중인지 확인합니다
* AI 어시스턴트에게 Proxyman과 상호작용하도록 요청합니다. 예: "api.example.com의 최신 요청을 보여 줘."
* 클라이언트가 Proxyman을 찾지 못하면 MCP가 켜져 있는지, 설정한 앱 경로가 올바른지 확인한 뒤 클라이언트를 다시 연결합니다. 연결은 되었지만 플로우가 보이지 않는다면 새 요청을 보낸 다음 [트래픽이 보이지 않을 때 확인 목록](https://proxyman.com/docs/ko/troubleshooting/i-couldnt-see-any-traffics-on-proxyman)을 참고하세요.

## 4. 사용 가능한 도구 {#4-available-tools}

아래 표에는 자주 쓰는 도구가 나열되어 있습니다. MCP 클라이언트에서는 설치된 Proxyman 버전의 전체 도구 목록을 확인할 수 있습니다. 더 많은 도구는 [변경 기록](#changelogs)을 참고하세요.

### 읽기 전용 도구 {#read-only-tools}

| 도구                     | 설명                                                                                                             |
| ------------------------ | ---------------------------------------------------------------------------------------------------------------- |
| `get_version`            | Proxyman 버전과 빌드 번호를 반환합니다                                                                           |
| `get_proxy_status`       | 녹화 상태, 프록시 포트, SSL proxying 상태를 반환합니다                                                           |
| `get_flows`              | 선택적 필터(`limit`, `host_filter`, `method_filter`, `status_filter`)를 사용해 캡처된 HTTP/HTTPS 플로우 목록을 반환합니다 |
| `get_flow_detail`        | 특정 플로우의 전체 정보를 반환합니다. 헤더, 본문 미리보기, 쿼리 파라미터, 쿠키를 포함합니다                     |
| `list_rules`             | 모든 디버깅 규칙(breakpoints, map local, map remote, blacklist) 목록을 반환합니다                               |
| `get_ssl_proxying_list`  | SSL proxying 포함/제외 도메인 목록을 반환합니다                                                                  |
| `get_certificate_status` | 루트 인증서 설치 상태를 반환합니다                                                                               |

### 쓰기 도구 {#write-tools}

| 도구                    | 설명                                                    | 필수 매개변수        |
| ----------------------- | ------------------------------------------------------- | -------------------- |
| `create_breakpoint`     | 일치하는 요청을 일시 중지하고 검사할 breakpoint를 만듭니다 | `url` (패턴)         |
| `create_map_local`      | 일치하는 URL에 대해 사용자 지정 응답을 반환합니다        | `url` (패턴)         |
| `create_map_remote`     | 한 URL의 요청을 다른 URL로 리디렉션합니다                | `from_url`, `to_url` |
| `create_blacklist`      | URL 패턴과 일치하는 요청을 차단합니다                    | `url` (패턴)         |
| `create_scripting_rule` | 사용자 정의 JavaScript로 Scripting 규칙을 만듭니다       | `url`, `script_content` |
| `enable_ssl_proxying`   | 도메인의 HTTPS 복호화를 활성화합니다                     | `domain`             |

### 세션 제어 {#session-control}

| 도구               | 설명                                         |
| ------------------ | -------------------------------------------- |
| `clear_session`    | 현재 세션의 캡처된 플로우를 모두 지웁니다    |
| `toggle_recording` | 트래픽 녹화를 시작하거나 중지합니다          |

### 플로우 작업 {#flow-operations}

| 도구               | 설명                                                                                                                |
| ------------------ | ------------------------------------------------------------------------------------------------------------------- |
| `export_flow_curl` | 캡처된 요청을 실행 가능한 cURL 명령으로 내보냅니다                                                                  |
| `filter_flows`     | url, host, method, status, headers, body 등 여러 조건으로 고급 필터링을 하며, AND/OR 조합을 지원합니다              |

### 앱 제어 {#app-control}

| 도구            | 설명                             |
| --------------- | -------------------------------- |
| `open_proxyman` | 실행 중이 아니라면 Proxyman을 실행합니다 |
| `quit_proxyman` | Proxyman 앱을 종료합니다         |

***

## 변경 기록 {#changelogs}

### MCP v3 (Proxyman macOS 6.8.0 이상) {#mcp-v3-proxyman-macos--680}

| 이름                           | 설명                                                                                                                                   |
| ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------- |
| get\_version                   | 현재 Proxyman macOS 앱 버전과 빌드 번호를 가져옵니다                                                                                   |
| get\_proxy\_status             | 녹화 상태, 포트 번호, SSL proxying 상태를 포함한 현재 프록시 상태를 가져옵니다                                                         |
| get\_flows                     | Proxyman의 활성 세션 데이터 소스에서 최근 HTTP/HTTPS 플로우를 가져옵니다                                                               |
| get\_flow\_detail              | 특정 플로우의 헤더, 본문, 쿼리 파라미터, 쿠키를 포함한 상세 정보를 가져옵니다                                                          |
| list\_rules                    | 활성 디버깅 규칙(breakpoints, map local, map remote, blacklist, scripting, dns spoofing, network condition, whitelist)을 모두 나열합니다 |
| get\_ssl\_proxying\_list       | 활성화 여부와 도메인 목록을 포함한 현재 SSL Proxying 설정을 가져옵니다                                                                 |
| create\_breakpoint             | URL 패턴과 일치하는 요청이나 응답을 일시 중지하고 검사하거나 수정할 새 breakpoint 규칙을 만듭니다                                     |
| create\_map\_local             | 일치하는 요청에 사용자 지정 응답을 반환하는 Map Local 규칙을 만듭니다                                                                  |
| create\_map\_remote            | 한 URL의 요청을 다른 URL로 리디렉션하는 Map Remote 규칙을 만듭니다                                                                     |
| create\_blacklist              | URL 패턴과 일치하는 요청을 차단하는 Blacklist 규칙을 만듭니다                                                                          |
| create\_scripting\_rule        | 사용자 정의 JavaScript로 요청/응답을 수정하는 Scripting 규칙을 만듭니다                                                                |
| enable\_ssl\_proxying          | HTTPS 트래픽을 복호화하도록 특정 도메인의 SSL Proxying을 활성화합니다                                                                  |
| clear\_session                 | 현재 세션의 캡처된 플로우를 모두 지웁니다                                                                                              |
| toggle\_recording              | HTTP 트래픽 녹화를 시작하거나 중지합니다                                                                                               |
| export\_flow\_curl             | 캡처된 HTTP 요청을 cURL 명령으로 내보냅니다                                                                                            |
| filter\_flows                  | 고급 필터 조건을 사용해 캡처된 HTTP/HTTPS 플로우를 필터링합니다                                                                        |
| get\_certificate\_status       | Proxyman 루트 인증서의 현재 상태를 가져옵니다                                                                                          |
| install\_certificate           | Proxyman 루트 CA 인증서를 설치하고 신뢰합니다                                                                                          |
| uninstall\_certificate         | Keychain에서 Proxyman 루트 CA 인증서를 제거합니다                                                                                      |
| inject\_terminal               | Proxyman 프록시 환경 변수를 주입한 터미널 앱을 실행합니다                                                                             |
| get\_terminal\_manual\_command | 프록시 환경 변수를 수동으로 설정하는 bash source 명령을 가져옵니다                                                                     |
| answer\_setup\_question        | iOS, Android, 브라우저 등에서 HTTPS를 캡처하는 설정에 관한 질문에 답합니다                                                            |
| search\_docs                   | 내장된 Proxyman 설정 및 문제 해결 문서 색인을 검색합니다                                                                               |
| list\_setup\_workflows         | Proxyman MCP가 안내할 수 있는 지원 설정 워크플로 목록을 가져옵니다                                                                     |
| list\_popular\_workflows       | Proxyman의 큐레이션된 대체 순위를 사용해 인기 설정 워크플로 목록을 가져옵니다                                                          |
| open\_proxyman\_screen         | macOS 앱에서 특정 Proxyman 가이드 또는 설정 화면을 엽니다                                                                              |
| run\_guided\_setup             | 브라우저 또는 Android 에뮬레이터를 위해 Proxyman에서 원클릭 자동화를 실행합니다                                                        |
| list\_reverse\_proxies         | 설정된 Reverse Proxy 항목 목록을 가져옵니다                                                                                            |
| create\_reverse\_proxy         | localhost 또는 사용자 지정 로컬 포트 라우팅을 위한 Reverse Proxy 항목을 만듭니다                                                       |
| generate\_code                 | 캡처된 HTTP 플로우에서 18개 이상의 언어/프레임워크용 코드를 생성합니다                                                                 |
| create\_dns\_spoofing          | 호스트 이름을 다른 IP 주소로 리디렉션하는 DNS Spoofing 규칙을 만듭니다                                                                 |
| list\_dns\_spoofing            | 모든 DNS Spoofing 규칙과 활성화 상태 목록을 가져옵니다                                                                                 |
| update\_dns\_spoofing          | 기존 DNS Spoofing 규칙을 업데이트합니다                                                                                                |
| get\_external\_proxy           | 현재 External Proxy(상위 프록시) 설정을 가져옵니다                                                                                     |
| set\_external\_proxy           | 특정 프로토콜 종류에 대한 External Proxy 설정을 구성합니다                                                                             |
| toggle\_no\_caching            | No Caching 기능을 켜거나 끕니다(캐시 관련 헤더를 제거합니다)                                                                           |
| inject\_electron               | Proxyman 프록시 설정을 주입한 Electron 앱을 실행합니다                                                                                 |
| open\_proxyman                 | Proxyman macOS 앱을 실행합니다                                                                                                         |
| quit\_proxyman                 | Proxyman macOS 앱을 종료합니다                                                                                                         |

### MCP v2 (Proxyman v6.7.0 이상) {#mcp-v2-proxyman--v670}

* iOS, Android, 브라우저, 터미널, VPN, localhost, 서드파티 라이브러리를 다루는 내장 지식 베이스
* 새 명령: answer\_setup\_question, search\_docs, list\_setup\_workflows, open\_proxyman\_screen, run\_guided\_setup, create\_reverse\_proxy
* 채팅 클라이언트를 위한 MCP 리소스와 프롬프트 템플릿
* Reverse proxy 생성/목록 조회 지원

## 보안 {#security}

* 서버는 `127.0.0.1`에만 바인딩되며 네트워크에 노출되지 않습니다
* 세션마다 생성되는 암호화 토큰은 `~/Library/Application Support/com.proxyman.NSProxy/mcp-handshake.json`에 저장됩니다
* 핸드셰이크 파일의 권한은 `0600`이며 소유자만 접근할 수 있습니다
* 민감한 데이터(인증 토큰, 비밀번호, API 키)는 응답에서 자동으로 마스킹됩니다

## 더 알아보기 {#learn-more}

* [Codex, Claude Code와 함께 Proxyman MCP를 사용하는 방법](https://proxyman.com/posts/how-to-use-proxyman-mcp-with-codex-and-claude-code)
