Salesforce MCP Server
Node.js / Express / TypeScript 기반 Salesforce MCP (Model Context Protocol) 서버
Salesforce CRM 데이터를 자연어로 조회할 수 있습니다.
시작하기
1. 환경변수 설정
cp .env.example .env
.env 파일을 열고 아래 항목을 채워주세요.
| 환경변수 | 설명 |
|---|---|
SF_LOGIN_URL | Salesforce My Domain URL (아래 주의사항 참고) |
SF_CONSUMER_KEY | Connected App 소비자 키 |
SF_CONSUMER_SECRET | Connected App 소비자 시크릿 |
💡 자세한 설명은
.env.example파일의 주석을 참고하세요.
2. Salesforce External Client App 생성
Setup → App Manager → New External Client App
| 항목 | 값 |
|---|---|
| App Name | Salesforce MCP Server (임의 설정) |
| Contact Email | 본인 이메일 |
| Enable OAuth Settings | ✅ 체크 |
| Callback URL | https://localhost |
| OAuth Scopes | Manage user data via APIs (api) 추가 |
| 클라이언트 자격 증명 플로 활성화 | ✅ 체크 |
저장 후 Policies 탭에서:
- Permitted Users →
All users may self-authorize - IP Relaxation →
Relax IP restrictions - Run As → 본인 Salesforce 사용자 이름 선택
저장 후 앱 상세 → Consumer Key / Consumer Secret 복사
⚠️ 주의사항
SF_LOGIN_URL — login.salesforce.com이 아닙니다
Developer Edition과 Trailhead Playground 모두 사용 가능합니다.
단, 반드시 본인의 My Domain URL을 사용해야 합니다.
login.salesforce.com을 그대로 사용하면 인증이 차단됩니다.
# ❌ 잘못된 예 (인증 차단됨)
SF_LOGIN_URL=https://login.salesforce.com
# ✅ 올바른 예
SF_LOGIN_URL=https://yourcompany-dev-ed.develop.my.salesforce.com
💡 My Domain URL 확인 방법: Salesforce 로그인 후 브라우저 주소창에서 확인 Salesforce 무료 계정은 developer.salesforce.com/signup 에서 생성할 수 있습니다
3. 로컬 실행
npm install
npm run build
npm start
4. 샘플 데이터 시딩 (선택)
npm run seed
삼성전자 반도체 영업 시나리오 샘플 데이터 200개를 자동으로 생성합니다.
- Account 20개 (미국, 일본, 대만, 중국, 유럽)
- Contact 30개
- Opportunity 80개 (HBM3E, DDR5, LPDDR5X, NAND, SSD, CIS, eUFS, LPDDR5)
- Lead 40개
- Task 30개
클라우드타입 배포
- Node.js 템플릿 선택 → GitHub 연동 → 이 저장소 선택
- 빌드 명령어 설정
- 빌드 명령어:
npm install && npm run build
- 빌드 명령어:
- 환경변수 위 항목 입력
- 배포 완료 후 MCP 접속 주소
https://<배포된 도메인>/mcp
💡 샘플 데이터(seed)는 배포와 별개로 한 번만 실행하세요. 배포 시 자동 실행하면 재배포할 때마다 데이터가 중복으로 쌓입니다. 클라우드타입 서비스 → 터미널에서
npm run seed실행
지원 Tools
| Tool | 설명 |
|---|---|
get_schema | 사용 가능한 오브젝트/필드/예시 쿼리 조회 |
get_accounts | 거래처 목록 조회 |
search_accounts | 키워드로 거래처 검색 |
get_opportunities | 영업기회 목록 조회 (제품/단계/연도 필터 지원) |
get_opportunities_by_stage | 단계별 영업기회 조회 |
get_opportunities_summary | 제품별/단계별/국가별/연도별 집계 |
get_contacts | 담당자 목록 조회 |
search_contacts | 이름으로 담당자 검색 |
get_leads | 잠재고객 목록 조회 |
get_leads_by_status | 상태별 잠재고객 조회 |
get_recent_activities | 최근 활동(Task) 조회 |
run_soql | 직접 SOQL 쿼리 실행 |
자연어 질문 예시
"HBM3E 관련 Closed Won 딜 목록 보여줘""2026년 미국 고객사 영업기회 현황 정리해줘""Hot 등급 리드 국가별로 정리해줘""제품별 영업기회 건수 비교해줘""현재 Negotiation 단계 딜 금액 합계는?"