---
slug: chatgpt
title: "ChatGPT와 ChatGPT classic 에 연결하기"
description: "두 앱이 함께 깔리는데 붙는 설정이 반대다. classic은 OAuth 커넥터, ChatGPT는 프로젝트 고정 API 키."
lang: ko
---


# 22. ChatGPT와 ChatGPT classic 에 연결하기

## ⚠ 먼저: 앱이 둘이다

OpenAI 앱은 **ChatGPT** 와 **ChatGPT classic** 두 개가 **함께 깔린다.** 이름은
비슷하지만 **AiAkiv에 붙는 설정이 서로 다르다.** 한쪽에서 되는 방법이 다른 쪽에서는
안 된다.

> 예전 자료에서 **Codex** 라고 부르던 것이 지금의 **ChatGPT** 다. 설정 파일이
> `.codex/config.toml` 인 것도 그래서다.

## 한눈에

| | OAuth (계정 커넥터) | API 키 (`.codex/config.toml`) |
|---|---|---|
| **ChatGPT classic** · 웹 | ✅ 웹에서 한 번 등록한다 | - |
| **ChatGPT** | ❌ **쓸 수 없다** | ✅ 작업 폴더에 키를 둔다 |

- 계정 커넥터는 한 번 등록하면 **웹과 두 앱 모두**에서 보인다.
- 두 설정은 **함께 두어도 된다.** 단 **이름을 다르게** 등록해야 한다 → §4
- 그래도 **한 쪽만 쓰는 것을 권한다** → §5

저장이 어디로 가는지도 다르다. 계정 커넥터는 콘솔의 **Main을 따라가고**, 폴더의
키는 **그 프로젝트에 고정**된다([팀과 프로젝트](teams-and-projects)).

## 1. ChatGPT classic: OAuth 커넥터로 붙는다

**등록은 웹에서 한 번** 한다. 앱에서는 커넥터를 만들 수 없다.

1. **앱이 아니라 브라우저**로 `chatgpt.com` 에 접속한다.
2. 좌하단 사용자 → **설정 → 보안 및 로그인(Security and login) → 개발자 모드**를 켠다.
3. **설정 → 앱(커넥터) → 앱 만들기**에서 아래 주소를 넣는다. (Plus 이상)

   ```
   https://mcp.aiakiv.com/mcp
   ```

4. **대화마다 켠다.** 커넥터는 대화 단위로 켜진다. 새 대화 입력창의 **+** 에서
   AiAkiv를 고른다. 이 단계를 빼먹으면 새 대화에서 도구가 아예 안 보인다.

> **개발자 모드는 OpenAI 쪽 설정이다.** 커스텀 커넥터를 직접 추가하려면 켜야 한다.
> AiAkiv를 OpenAI 플러그인 디렉터리에서 바로 설치할 수 있게 되면 커넥터를 손으로
> 추가할 일이 없어지므로 이 단계도 없어진다. 이 절차가 부담이라면 **§2의 키 방식**
> 으로 가도 된다. 다만 그쪽은 **ChatGPT** 앱을 쓰고 있어야 의미가 있다.

> **저장은 Main으로 간다.** 계정 커넥터에는 프로젝트를 못 박는 장치가 없어서,
> 콘솔에서 정한 **Main** 프로젝트로 들어간다. 저장 대상 확인에서 `binding` 이
> **`"main"`** 으로 뜬다. 폴더마다 프로젝트를 다르게 쓰고 싶다면 §2로 간다.

## 2. ChatGPT: OAuth는 안 된다, API 키로 붙는다

**여기서는 OAuth를 쓸 수 없다.** 커스텀 커넥터로도, `X-K2G-Project` 헤더를 넣은
설정으로도 붙지 않는다. 붙이는 설정은 **프로젝트 고정 API 키** 하나다.

키를 쓰면 **인증 단계 자체가 사라진다.** 인증이 이미 키 안에 들어 있어서 로그인 창도,
브라우저도 필요 없다([연결 인증](auth)).

1. 콘솔에서 그 **프로젝트의 API 키를 발급**한다(발급 직후 **한 번만** 보인다).
   **여기서는 프로젝트 키를 쓴다.** 동적 키도 붙기는 하지만 **저장 위치가 Main을
   따라 움직여서**, 폴더에 못 박으려는 목적과 어긋나고 §4처럼 두 설정을 함께 둘 때
   어디에 저장됐는지가 더 헷갈린다. 동적 키 자체는 다른 데서 쓰면 된다
   ([연결 인증](auth)).
2. 작업 폴더의 **`.codex/config.toml`** 에 아래를 넣는다. 파일 위치는 **앱·CLI·
   IDE 확장이 모두 같다.**

   ```toml
   [mcp_servers.AiAkiv-proj]
   url = "https://mcp.aiakiv.com/mcp"
   http_headers = { "Authorization" = "Bearer <발급받은 키>" }
   ```

3. **앱을 재시작**한다.

> **이름을 `AiAkiv` 로 두지 않는다.** 위 예시가 `AiAkiv-proj` 인 데에는 이유가
> 있다. §1의 계정 커넥터와 이름이 겹치면 둘을 구분할 수 없게 된다. 자세한 것은
> §4. 전역 쪽과 다르기만 하면 이름은 무엇이든 된다.

**프로젝트가 키에 고정된다.** 좌표가 키 안에 동결돼 있어서 콘솔에서 Main을 바꿔도
이 폴더는 안 움직인다. 저장 대상 확인에서 `binding` 이 **`"api-key"`** 로 뜬다.

> **⚠ 키가 곧 신분증이다.** 유출은 **내 기억에 대한 접근이 통째로 넘어가는 것**을
> 뜻한다. `config.toml` 을 저장소에 올리지 않는다. 지켜야 할 최소선 전체는
> [연결 인증의 *키 보안*](auth#키-보안).

## 3. 한 앱 안에서 두 설정이 만난다

**ChatGPT** 앱에서는 **두 설정이 동시에 보일 수 있다.**

- **계정 커넥터**(§1)는 계정에 붙는 것이라, 웹에서 등록해 두면 이 앱에서도 보인다.
- **폴더의 키**(§2)는 그 폴더에서 일을 시작할 때 읽힌다.

그래서 같은 앱에서 **대화는 커넥터로, 폴더 작업은 폴더의 키로** 붙는 상황이 나온다.
문제가 되는 상황은 아니다. 다만 어느 쪽으로 저장됐는지가 헷갈리기 시작한다.

## 4. 둘을 함께 쓰기: 이름을 다르게 등록한다

**§1과 §2는 동시에 사용할 수 있다.** 다만 전제가 하나 있다.

> **전역과 폴더의 MCP 서버 이름이 달라야 한다.**
>
> | | 이름 |
> |---|---|
> | 전역: 계정 커넥터 | `AiAkiv` |
> | 폴더: `.codex/config.toml` | **`AiAkiv-proj`** |

이름이 둘 다 `AiAkiv` 면 **어느 쪽을 쓰라고 지목할 방법이 없다.** 도구 이름까지 같아
지므로 AI가 그때그때 아무 쪽이나 고르고, 저장이 어디로 갔는지는 나중에야 알게 된다.
이름을 갈라 두면 그때부터 **"`AiAkiv-proj` 로 저장해줘"** 처럼 말할 수 있다.

이름은 `AiAkiv-proj` 가 아니어도 된다. **전역 쪽과 다르기만 하면 된다**: 폴더가
여러 개라면 `AiAkiv-<프로젝트이름>` 처럼 프로젝트를 알아볼 수 있게 붙이면 더 낫다.

## 5. 권장: 하나만 쓰되, 함께 쓸 거면 확인을 붙인다

**§1 또는 §2 중 하나만 쓰는 것을 권한다.** 설정이 하나면 저장이 어디로 가는지 헷갈릴
일이 없다.

함께 써야 한다면 두 가지를 지킨다.

1. **쓸 쪽을 명시한다.** §4대로 이름을 갈라 두고, 일을 시킬 때 어느 쪽인지 말한다.
2. **저장 대상을 자주 확인한다.** 아래 §확인하기. ChatGPT는 대체로 스스로
   `get_save_target` 을 자주 부르는 편이라, 확인을 요청하면 잘 따른다.

## 확인하기

일을 시작하기 전에 AI에게 물어본다.

```
지금 어디에 저장돼?
```

AI가 `get_save_target` 을 부르고 결과를 알려준다. `binding` 값이 지금 어느 설정으로
붙어 있는지를 그대로 말해 준다.

| `binding` | 뜻 |
|---|---|
| `"main"` | **§1 계정 커넥터**: 콘솔의 Main을 따라간다 |
| `"api-key"` | **§2 폴더의 키**: 그 프로젝트에 고정돼 있다 |

프로젝트 이름에 **`(Main)` 접미사**가 붙어 있으면 전역 Main을 따라가는 중이다.

> 이 둘 말고 `binding` 이 가질 수 있는 나머지 값은
> [폴더 바인딩](folder-binding)의 *제대로 붙었는지 확인하기* 에 있다.

## 자주 겪는 문제

- **어느 앱을 열었는지 모르겠다.** 아이콘 이름이 **ChatGPT** 면 §2,
  **ChatGPT classic** 이면 §1이다.
- **폴더 설정을 넣었는데 안 붙는다.** OAuth 방식으로 넣지 않았는지 본다.
  **ChatGPT** 는 OAuth를 못 쓴다. §2의 **키 방식**이어야 한다.
- **저장이 엉뚱한 프로젝트로 간다.** 두 설정이 함께 켜져 있고 이름이 같을 때 생긴다.
  §4대로 폴더 쪽 이름을 바꾼다.
- **새 대화에서 도구가 아예 안 보인다.** 커넥터는 **대화마다** 켠다. §1의 4단계.
- **커넥터를 지웠다 다시 넣었더니 안 붙는다.** 예전 상태가 캐시로 남은 것이다 →
  [자주 겪는 문제](faq).

## 관련 문서

- 폴더 바인딩 전반과 다른 클라이언트 → [폴더 바인딩](folder-binding)
- Claude Desktop에서 폴더 바인딩 → [Claude Desktop](desktop-binding)
- 인증(OAuth·API 키)과 키 보안 → [연결 인증](auth)
- Main·프로젝트·저장 대상의 개념 → [팀과 프로젝트](teams-and-projects)
- 콘솔에서 MCP 설정 복사하기 → [콘솔 안내](console)
