본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 06. 25. 08:25

MCP를 사용하여 Claude Desktop을 실시간 Salesforce CRM 데이터에 연결한 방법

요약

Anthropic의 Model Context Protocol(MCP)을 활용하여 Claude Desktop을 Salesforce CRM 데이터와 실시간으로 연결하는 방법을 설명합니다. 보안을 위해 OAuth 2.0 및 PKCE를 적용한 아키텍처와 데이터 흐름을 상세히 다룹니다.

핵심 포인트

  • MCP를 통한 Claude와 외부 데이터 소스의 표준화된 연결 방식 소개
  • Salesforce Hosted MCP Server를 활용한 실시간 데이터 통합 구현
  • OAuth 2.0 및 PKCE를 적용한 기업용 보안 아키텍처 구축 가이드
  • 자연어 질문을 통한 실시간 CRM 데이터 쿼리 및 답변 생성 프로세스

최근 저는 Model Context Protocol (MCP)를 사용하여 Claude Desktop과 Salesforce CRM 간의 실시간 통합을 구현했습니다. 그리고 이는 기업 운영에서 AI를 바라보는 저의 관점을 바꾸어 놓았습니다.

제가 구축한 내용과 그 뒤에 숨겨진 보안 아키텍처, 그리고 그 과정에서 배운 점들에 대한 실질적인 가이드를 소개합니다.

제가 해결하려 했던 문제

업무의 일환으로, 저는 질문에 답하기 위해 Salesforce를 수동으로 탐색하는 데 너무 많은 시간을 소비하고 있었습니다.

모든 답변을 얻으려면 Salesforce에 로그인하고, 보고서를 실행하고, 기회(Opportunities) 데이터를 교차 참조하며, 데이터에 대한 정신적 모델을 구축해야 했습니다. 저는 그저 일상적인 영어로 질문을 던지면, 오래된 내보내기 파일이 아닌 실시간 CRM 데이터를 바탕으로 답변을 얻고 싶었습니다.

이때 Model Context Protocol (MCP)가 등장했습니다.

MCP란 무엇인가?

MCP (Model Context Protocol)는 Anthropic에서 제공하는 개방형 표준으로, Claude와 같은 AI 모델이 표준화된 인터페이스를 통해 외부 데이터 소스 및 도구에 연결할 수 있도록 해줍니다.

모든 데이터 소스마다 맞춤형 API를 구축하는 대신, MCP는 다음을 정의합니다:

  • 서버 (데이터 소스, 이 경우 Salesforce)
  • 클라이언트 (Claude Desktop)
  • 도구 발견(discovery), 호출(invocation) 및 응답을 위한 프로토콜

Salesforce는 이제 Hosted MCP Server를 제공하므로, 연결 계층이 자동으로 관리됩니다. 사용자는 인증을 구성하고 연결된 앱(connected app)을 정의하기만 하면 됩니다.

아키텍처 개요

이 통합은 세 가지 계층으로 구성됩니다:
┌─────────────────────────────────────────────┐
│ AI 계층 │
│ Claude Desktop → MCP 클라이언트 → SFDX CLI │
└──────────────────┬──────────────────────────┘
│ 도구 호출 (tool calls)
┌──────────────────▼──────────────────────────┐
│ 인증 계층 (Auth Layer) — OAuth 2.0 / PKCE │
│ 인증 서버 → Salesforce Hosted MCP Server │
│ → 연결된 앱 (scopes) │
└──────────────────┬──────────────────────────┘
│ REST API
┌──────────────────▼──────────────────────────┐
│ 데이터 계층 (Data Layer) — Salesforce CRM │
│ Opportunities · Accounts · Reports · SOQL │
└─────────────────────────────────────────────┘

요청 흐름 (Request flow)

  1. Claude Desktop에 자연어 질문을 입력합니다.
  2. Claude가 호출할 적절한 MCP 도구(예: query_opportunities)를 식별합니다.
  3. MCP 클라이언트가 요청을 Salesforce API 호출로 변환합니다.
  4. Salesforce 호스팅 MCP 서버가 SOQL을 통해 쿼리를 실행합니다.
  5. 결과가 Claude로 반환되며, Claude는 이를 자연어 답변으로 합성합니다.

보안 아키텍처 — OAuth 2.0 + PKCE

이 지점이 대부분의 가이드가 어려운 부분을 대충 넘기는 구간입니다. 기업용 AI-to-CRM 보안을 제대로 구축하려면 토큰 흐름(token flows), 범위(scopes), 그리고 최소 권한 원칙(least-privilege access)에 세심한 주의를 기울여야 합니다. 특히 AI 모델이 고객 데이터에 대한 실시간 읽기 권한을 가질 때는 더욱 그렇습니다.

PKCE가 중요한 이유

PKCE (Proof Key for Code Exchange)는 클라이언트 비밀(client secret)을 안전하게 저장할 수 없는 퍼블릭 클라이언트(public client) 통합에 필수적입니다. 로컬에서 실행되는 Claude Desktop은 퍼블릭 클라이언트이며, 서버 측 비밀 저장소가 없습니다. PKCE는 다음과 같은 방식으로 이 문제를 해결합니다:

  • 각 인증 흐름(auth flow) 시작 시 클라이언트에서 무작위 code_verifier 생성
  • 이를 해싱하여 권한 부여 요청(authorization request)과 함께 전송될 code_challenge 생성
  • 권한 부여 코드(authorization code)를 토큰으로 교환할 때 원래의 code_verifier를 전송
  • 인증 서버가 해시 일치 여부를 확인하여, 토큰 요청이 흐름을 시작한 동일한 클라이언트로부터 왔음을 증명

PKCE가 없다면, 가로채진 권한 부여 코드가 다른 클라이언트에 의해 토큰으로 교환될 수 있습니다. PKCE를 사용하면, 요청을 시작한 클라이언트만이 보유한 verifier 없이는 코드가 무용지물이 됩니다.

Salesforce 연결 앱(Connected App) 설정

`bash# Salesforce 설정에서 다음 항목을 포함하여 연결 앱(Connected App) 생성:

- OAuth 2.0 활성화

- PKCE 필수

- 콜백 URL: http://localhost:{PORT}/callback

- 범위(Scopes): api, refresh_token (최소 권한 원칙)

- 클라이언트 비밀 없음 (퍼블릭 클라이언트 흐름)`

MCP 서버 설정 (claude_desktop_config.json)

{
  "mcpServers": {
    "salesforce": {
...

인증 흐름

Claude Desktop Auth Server Salesforce
│ │ │
│── code_verifier 생성 ──▶│ │
│── code_challenge (S256) ───▶│ │
│ │── 검증 (validate) ───────────▶│
│◀─── 권한 부여 코드 (authorization code) ─────│ │
│── code_verifier + code ─────▶│ │
│◀─── 액세스 토큰 (access token) ───────────│ │
│ │
│── Bearer 토큰을 사용한 REST API 호출 ──────────────────▶│
│◀── SOQL 쿼리 결과 ────────────────────────────────│

이를 통해 가능한 것

Claude가 실시간 데이터를 쿼리하고, 이를 바탕으로 추론하여 종합적인 답변을 제공합니다. 즉, 수동으로 보고서를 작성할 필요가 없습니다.

주요 학습 내용

  1. MCP는 엔터프라이즈 AI 통합의 표준이 되고 있습니다

MCP가 구축하는 패턴 — 표준화된 도구 정의 (tool definitions), 구조화된 요청/응답 (request/response), 발견 가능한 기능 (discoverable capabilities) — 은 엔터프라이즈 AI에 정확히 필요한 요소입니다. 이는 2000년대에 REST API가 웹 서비스 통합을 표준화했던 방식과 유사합니다.

  1. 최소 권한 원칙 (Least-privilege access)은 타협할 수 없는 사항입니다

사용 사례에 필요한 스코프 (scopes)만 부여하십시오. 읽기 전용 파이프라인 검토의 경우, 읽기 전용 프로필이 포함된 api 스코프만으로 충분합니다. 특별히 필요한 경우가 아니라면 쓰기 권한을 부여하지 마십시오. CRM에 대한 쓰기 권한을 가진 AI는 리스크 프로필 (risk profile) 자체가 매우 다릅니다.

  1. 토큰 생명주기 관리 (Token lifecycle management)가 중요합니다

리프레시 토큰 로테이션 (Refresh token rotation), 만료 처리, 그리고 재인증 흐름 (re-authentication flows)이 구현 계획에 포함되어야 합니다. Salesforce의 기본 리프레시 토큰 만료 기간은 조직(org)에서 설정 가능하므로, 운영 워크플로와 일치하는지 확인하십시오.

  1. SFDX CLI 세션 관리가 운영을 단순화합니다

sf org login web을 사용하여 인증된 세션을 설정하고 MCP 서버가 해당 세션을 상속받도록 하면, 토큰을 직접 관리하는 것에 비해 인증 복잡성을 크게 줄일 수 있습니다.

엔터프라이즈 AI 통합, MCP, 그리고 운영 AI 툴링에 관한 더 많은 게시물을 위해 팔로우해 주세요.

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0