개발자 가이드

연동 구조 한눈에 보기

크렘포올 연동에는 서로 독립적인 두 가지가 있어요. 이름이 둘 다 “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_) ▶ registerconnectorId/connectorSecret 저장

비유: gh auth login과 같아요 — 브라우저로 승인하면 로컬 도구가 “나로서 일할” 권한을 갖죠.

cfmcp_ 토큰은 언제 쓰나

  • 외부 AI로 CRM 운전 — Claude Desktop/Cursor를 플랫폼 MCP에 붙일 때 (갈래 B). 커넥터와 무관.
  • 분리 담당자 수동 경로 — 운영자가 손으로 설치 토큰(cfit_)을 발급해 전산담당자에게 넘길 때, 그 발급을 인증하는 용도.
정리: DB를 붙이려면 → 갈래 A(브라우저 로그인, 토큰 안 보임). 외부 AI로 CRM을 쓰려면 → 갈래 B(cfmcp_ 토큰). 둘은 순서가 아니라 독립된 두 설정이에요.

다음