개발자 가이드
연동 구조 한눈에 보기
크렘포올 연동에는 서로 독립적인 두 가지가 있어요. 이름이 둘 다 “MCP”라 헷갈리기 쉬운데, 하는 일도 인증 방법도 다릅니다. 먼저 이 차이만 잡으면 나머지 문서가 쉽게 읽혀요.
무엇을 하려는가? — 두 갈래
갈래 A
커넥터 (자체 DB 연결)
우리 DB를 붙여 발송 대상을 고객 서버 안에서 계산하고 싶다.
- 어디서 도나: 고객 서버의 로컬 프로그램(
npx @crmforall/connector, stdio) - 인증: 브라우저 디바이스 로그인 (
connect login/ 세션 내setup_login) - 토큰 복붙: 없음 (자동 발급·저장)
갈래 B
플랫폼 MCP (외부 AI 연결)
Claude Desktop·Cursor 같은 외부 AI로 CRM을 조회·초안하고 싶다.
- 어디서 도나: 원격 HTTP 서버(
…/api/mcp) - 인증:
cfmcp_Bearer 토큰 (운영 → AI 연결 (MCP)에서 발급) - 토큰 복붙: 있음 (mcp.json 헤더에 붙여넣음)
흐름도
갈래 A — 커넥터
고객 DB── 읽기전용 ──▶커넥터 (로컬)── connectorId/Secret ──▶크렘포올 플랫폼
인증 = 브라우저 디바이스 로그인(1회). 커넥터는 발급받은 자격증명으로 이후 자동 통신.
갈래 B — 플랫폼 MCP
외부 AI (Claude Desktop·Cursor)── cfmcp_ Bearer 토큰 ──▶크렘포올 플랫폼
/api/mcp인증 = 콘솔에서 발급한 cfmcp_ 토큰을 매 요청 헤더에. (커넥터와 무관한 별도 연결)
차이 표
| 커넥터 (갈래 A) | 플랫폼 MCP (갈래 B) | |
|---|---|---|
| 서버 위치 | 고객 서버의 로컬 프로세스 (stdio) | 원격 HTTP (/api/mcp) |
| 하는 일 | 고객 DB 진단·매핑·대상 집계 | 플랫폼 CRM 조회·초안 |
| 인증 주체 | 사람 → 플랫폼 (커넥터 자격증명 발급) | AI 클라이언트 → 플랫폼 |
| 인증 방식 | 브라우저 디바이스 로그인 (흐름) | cfmcp_ Bearer 토큰 (정적 시크릿) |
| 결과물 | connectorId/connectorSecret 로컬 저장 | 매 요청 헤더의 Bearer |
| 토큰 복붙 | 없음 (자동) | 있음 |
디바이스 로그인이 “자동으로” 하는 일
헷갈리는 핵심: connect login(디바이스 로그인)은 커넥터 연결을 혼자서 끝냅니다. 브라우저 승인 한 번 뒤, 아래를 내부에서 자동으로 처리해요 — 당신은 cfmcp_도cfit_도 만질 일이 없습니다.
브라우저 승인 ▶ 플랫폼 토큰 자동 수령 ▶
issue_install_token(cfit_) ▶ register ▶ connectorId/connectorSecret 저장비유: gh auth login과 같아요 — 브라우저로 승인하면 로컬 도구가 “나로서 일할” 권한을 갖죠.
cfmcp_ 토큰은 언제 쓰나
- 외부 AI로 CRM 운전 — Claude Desktop/Cursor를 플랫폼 MCP에 붙일 때 (갈래 B). 커넥터와 무관.
- 분리 담당자 수동 경로 — 운영자가 손으로 설치 토큰(
cfit_)을 발급해 전산담당자에게 넘길 때, 그 발급을 인증하는 용도.
정리: DB를 붙이려면 → 갈래 A(브라우저 로그인, 토큰 안 보임). 외부 AI로 CRM을 쓰려면 → 갈래 B(
cfmcp_ 토큰). 둘은 순서가 아니라 독립된 두 설정이에요.다음
- 커넥터 설치·운영 — 갈래 A 전체(설치·온보딩·게이트)
- 플랫폼 MCP 서버 — 갈래 B 전체(토큰·도구·연결)
- 데이터 연결 3가지 — 관리형·자체 DB·카페24 비교(사용자용)