Skip to content

solapi/solapi-mcp-server

Repository files navigation

SOLAPI MCP Server

SOLAPI 문서/예제 검색과 실제 메시지 발송·관리를 한 번에 제공하는 MCP(Model Context Protocol) 서버입니다. Claude Desktop, Cursor 등에서 사용할 수 있습니다.

내부적으로 solactl CLI를 호출합니다. solactl 바이너리는 설치 시 자동으로 다운로드됩니다 (실패 시 첫 실행 시 재시도).

빠른 시작

전역 설치 (권장)

Package Manager Command
npm npm install -g @solapi/mcp-server
yarn yarn global add @solapi/mcp-server
pnpm pnpm add -g @solapi/mcp-server
bun bun add -g @solapi/mcp-server

설치 후 자동으로 다음 작업이 수행됩니다.

  • solactl 바이너리 자동 다운로드 (플랫폼별 prebuilt)
  • Claude Desktop / Cursor 설정 파일에 MCP 서버 등록

설치 후 Claude Desktop이나 Cursor를 재시작하면 사용 가능합니다.

수동 설정

~/.cursor/mcp.json 또는 Claude Desktop의 claude_desktop_config.json:

{
  "mcpServers": {
    "solapi": {
      "command": "npx",
      "args": ["--latest", "-y", "@solapi/mcp-server"],
      "env": {}
    }
  }
}

인증 설정

MCP 도구로 직접 SOLAPI 자격 증명을 등록할 수 있습니다.

"내 솔라피 키 등록해줘. apiKey는 NCS..., apiSecret은 ..., 프로필 이름은 prod"

→ MCP가 configure_setup 도구를 호출하여 ~/.solactl/credentials.json에 저장합니다.

여러 프로필을 두고 발송 시마다 profile 인자로 지정할 수 있습니다.

도구 동작
configure_setup 새 프로필 등록 (또는 기존 프로필 덮어쓰기)
configure_list 저장된 프로필 목록
configure_show 프로필 정보 (시크릿은 마스킹)
configure_use 활성 프로필 전환
configure_delete 프로필 삭제

발송 안전 가드

발송 도구는 기본적으로 비활성화되어 있습니다. 실수로 메시지가 나가는 것을 막기 위함입니다.

활성화 방법

일시적 활성화 (세션 한정)

MCP 대화 중에 활성화:

"발송 활성화해줘" → MCP가 update_mcp_policy({sendEnabled: true}) 호출

MCP 서버 재시작 시 다시 비활성화로 돌아갑니다.

부팅 시부터 활성화

mcp.json의 env에 추가:

"env": {
  "SOLAPI_MCP_ENABLE_SEND": "true"
}

환경변수 (Ceiling)

환경변수로 설정한 한계는 MCP 도구로 풀 수 없습니다 (ceiling 역할).

환경변수 효과
SOLAPI_MCP_DISABLE_SEND=true Hard lock. MCP 도구로도 발송 활성화 불가.
SOLAPI_MCP_ENABLE_SEND=true 부팅 시 발송 활성화로 시작.
SOLAPI_MCP_MAX_RECIPIENTS=N 한 번의 발송 호출에서 허용되는 최대 수신자 수. 기본 10. MCP에서 더 낮출 수는 있지만 더 높일 수 없음.
SOLAPI_MCP_ALLOWED_SENDERS=01012345678,01087654321 발신번호 화이트리스트. 비우면 무제한.
SOLAPI_MCP_SOLACTL_BIN=/path/to/solactl 자동 다운로드 대신 시스템에 설치된 solactl 사용.
SOLAPI_MCP_AUTO_UPGRADE=true MCP 서버 부팅 시 GitHub Releases에서 latest로 자동 업그레이드. (기본 off — 패키지가 핀한 버전 사용)

Confirm 플래그 (Two-step send)

모든 발송 도구는 confirmed: boolean 인자를 갖습니다.

  • confirmed=false(기본) → SOLAPI를 호출하지 않고 미리보기만 반환
  • confirmed=true → 정책 검증 후 실제 발송

LLM이 사용자 동의 없이 한 번에 발송하는 사고를 막습니다. 카카오 템플릿 변경, 발신번호 삭제 등 변경 도구도 같은 가드를 사용합니다.

동적 정책 조회/변경

도구 동작
get_mcp_policy 현재 정책 + ceiling 반환
update_mcp_policy sendEnabled / maxRecipients / allowedSenders 변경 (ceiling 위반 거부, 세션 한정)

도구 카탈로그

문서/예제 (read-only, 가드 없음)

  • list_examples — SDK 예제 카탈로그
  • get_example — 예제 풀 소스
  • overview — 개요
  • web_search — 문서 검색

인증

  • configure_setup, configure_list, configure_show, configure_use, configure_delete

조회 (read-only, 가드 없음)

  • get_balance — 잔액·포인트
  • list_messages — 발송 내역
  • list_senderids — 발신번호 목록
  • get_quota, list_quota_requests — 발송 한도
  • list_kakao_channels, get_kakao_channel, list_kakao_channel_categories
  • list_kakao_channel_groups, get_kakao_channel_group
  • list_kakao_templates, get_kakao_template, list_kakao_template_categories, get_kakao_template_sendable
  • list_kakao_brand_templates, get_kakao_brand_template_sendable

발송 (confirmed=true 필수)

  • send_sms, send_lms, send_mms, send_rcs, send_ata, send_bms

변경 (confirmed=true 필수)

  • delete_senderid, update_senderid
  • request_quota
  • create_kakao_template, update_kakao_template, delete_kakao_template
  • inspect_kakao_template, cancel_inspect_kakao_template, release_dormant_kakao_template
  • create_kakao_brand_template, update_kakao_brand_template, delete_kakao_brand_template

정책

  • get_mcp_policy, update_mcp_policy

관리

  • upgrade_solactl — solactl을 latest 또는 지정 버전으로 업그레이드 (SOLAPI_MCP_AUTO_UPGRADE=true로 부팅마다 자동 수행 가능)

solactl 의존성

내장 SDK 예제 외에 발송·조회 기능은 solactl 바이너리에 의존합니다. 본 패키지는 다음 버전을 자동 다운로드합니다:

  • solactl v0.1.6 (Linux/macOS amd64·arm64, Windows amd64·arm64)
  • 다운로드 위치: <package>/bin/solactl (또는 solactl.exe)
  • sha256 검증 후 설치

자동 다운로드가 차단된 환경(CI 등)에서는 SOLAPI_MCP_SOLACTL_BIN=/path/to/solactl로 시스템에 설치된 바이너리를 가리키도록 할 수 있습니다.

업그레이드 정책

기본적으로 패키지가 핀한 버전(v0.1.6)을 사용합니다. 신버전을 사용하려면:

  • 수시로 (대화 중): upgrade_solactl 도구를 호출. "solactl 업그레이드해줘" 한 마디로 가능. 특정 버전을 지정하려면 targetVersion: "0.1.7".
  • 부팅마다 자동: SOLAPI_MCP_AUTO_UPGRADE=true 환경변수.

기본값을 "수동"으로 둔 이유: 매 호출마다 자동 업그레이드는 GitHub API rate limit 소진과 도구 호출 latency 증가 문제를 일으키며, 핀한 버전은 "패키지가 검증한 조합"을 보장합니다.

Internal SDK version

내장 SDK 버전:

Lang Version
Node.js 5.5.2
Kotlin(Java) 1.0.3
Python 5.0.2
PHP 5.0.6
Go 2.0.0
ASP 1.0.0

About

MCP server for SOLAPI document search and integration

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors