Back

[TIL] Slack CLI + MCP 살펴보기

2026. 03. 06.Yeji Kim
Productivity

슬랙, 브라우저 말고 터미널에서

매일 쓰는 슬랙인데, 앱을 열지 않고도 메시지를 보내고 채널을 뒤지고 워크플로우를 돌릴 수 있다면? Slack CLISlack MCP를 쓰면 그게 된다.

  • Slack CLI - 터미널에서 슬랙 앱을 만들고, 실행하고, 배포하는 공식 CLI
  • Slack MCP - AI가 슬랙 워크스페이스를 읽고 쓸 수 있게 해주는 MCP 서버

Slack CLI - 슬랙 앱을 터미널에서

설치

bash
curl -fsSL https://downloads.slack-edge.com/slack-cli/install.sh | bash
slack version   # 설치 확인
slack auth login  # 워크스페이스 인증

앱 만들기

bash
slack create my-bot

이 한 줄이면 끝이다. 프레임워크를 고르라고 물어보는데,

프레임워크특징
Deno Slack SDKSlack 인프라에서 서버리스로 실행
Bolt for JavaScriptExpress 스타일, 익숙함
Bolt for Python파이썬

선택하면 워크플로우, 트리거, 함수까지 동작하는 스캐폴딩이 뚝딱 나온다.

로컬 개발이 편하다

bash
slack run

이게 진짜 좋은 부분이다. 로컬에서 코드를 수정하면 실시간으로 워크스페이스에 반영된다. 파일 저장하면 자동 리로드되고 슬랙에서 바로 확인할 수 있다. 배포 없이 라이브로 테스트가 가능하다.

주요 명령어

bash
slack deploy                    # 프로덕션 배포
slack trigger create            # 트리거 생성 (링크, 스케줄, 이벤트, 웹훅)
slack datastore query           # 슬랙 호스팅 DB 조회
slack platform activity         # 배포된 앱 실시간 로그
Datastore?

슬랙이 호스팅하는 간단한 key-value 스토어다. 별도 DB 없이 앱 데이터를 저장할 수 있다. 간단한 투표 봇이나 승인 워크플로우 정도는 이것만으로 충분하다.

뭘 만들 수 있을까?

  • PTO 승인 봇 - 휴가 신청하면 매니저한테 승인 요청 보내고 결과 알림
  • 온콜 로테이션 - 스케줄 트리거로 매주 담당자 자동 변경
  • PR 리뷰 알림 - 웹훅 트리거로 GitHub PR이 올라오면 슬랙 채널에 알림
  • 스탠드업 봇 - 매일 아침 팀원에게 폼 보내고 결과 취합

slack-samples에 템플릿이 수십 개 있어서 복붙하고 수정하면 금방 만든다.


Slack MCP - AI한테 슬랙 접근 권한 주기

MCP(Model Context Protocol) 는 AI 에이전트가 외부 서비스의 데이터에 접근하는 표준 프로토콜이다. Slack MCP 서버를 연결하면 Claude가 워크스페이스 메시지를 검색하고, 읽고, 보내는 것까지 가능해진다.

Claude Desktop에서 설정

가장 간단한 방법은 Claude Desktop에서 Customize → Connectors에 들어가서 Slack을 추가하고 OAuth로 인증하는 거다.

수동으로 설정 파일을 직접 편집할 수도 있다.

json
{
  "mcpServers": {
    "slack": {
      "type": "http",
      "url": "https://mcp.slack.com/mcp",
      "oauth": {
        "clientId": "1601185624273.8899143856786",
        "callbackPort": 3118
      }
    }
  }
}

Bot Token 방식

직접 Slack App을 만들어서 봇 토큰으로 연결하는 방법도 있다. 제어할 수 있는 게 더 많다.

json
{
  "mcpServers": {
    "slack": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-slack"],
      "env": {
        "SLACK_BOT_TOKEN": "xoxb-your-bot-token",
        "SLACK_TEAM_ID": "T0123456789"
      }
    }
  }
}
봇 토큰 vs 유저 토큰

봇 토큰(xoxb-)은 봇이 초대된 채널만 접근할 수 있고, search API를 쓸 수 없다. 워크스페이스 전체 검색이 필요하면 유저 토큰을 써야 한다.

AI한테 이런 걸 시킬 수 있다

연결하고 나면 자연어로 부탁하면 된다.

프롬프트 예시하는 일
이번 주 #engineering 채널 요약해줘채널 히스토리 읽고 요약
API 마이그레이션 관련 논의 찾아줘여러 채널에서 메시지 검색
프로젝트 업데이트 작성해서 #general에 올려줘메시지 작성하고 전송
Q1 목표 캔버스 만들어서 프로덕트팀에 공유해캔버스 생성하고 공유
@yeye가 배포 이슈 관련해서 뭐라고 했어?유저+키워드로 필터 검색

채널 히스토리를 쭉 읽어서 핵심만 뽑아주는 게 체감상 가장 유용하다.

MCP가 제공하는 도구들

카테고리기능
검색메시지, 파일, 유저, 채널 검색 (날짜/유저/타입 필터)
메시징채널 히스토리, 스레드 읽기, 메시지 전송
캔버스캔버스 생성, 읽기, 공유
유저프로필, 상태, 커스텀 필드 조회
쓰기 도구는 기본 꺼져있다

메시지 전송(conversations_add_message) 같은 쓰기 도구는 기본적으로 꺼져 있다. AI가 실수로 메시지를 쏘는 걸 막기 위해서다. 환경변수로 명시적으로 켜야 쓸 수 있다.


둘을 같이 쓰면?

Slack CLI와 MCP는 방향이 다르다.

Slack CLISlack MCP
방향개발자가 슬랙에 앱을 만든다AI가 슬랙 데이터에 접근한다
하는 일앱 빌드/배포데이터 읽기/쓰기
인터페이스터미널 명령어자연어 대화

조합하면 재밌는 워크플로우가 나온다.

  1. CLI로 봇 만들고, MCP로 모니터링 - slack run으로 봇을 개발하면서 Claude한테 내 봇이 보낸 메시지 중에 에러 리포트 있는지 물어본다
  2. MCP로 분석하고, CLI로 자동화 - 이번 달 #support 채널에서 가장 많이 나온 이슈가 뭔지 파악하고, CLI로 해당 이슈 자동 분류 봇을 만든다
  3. MCP로 초안 작성, CLI 봇이 정기 발송 - Claude가 주간 리포트를 써주고 스케줄 트리거로 매주 월요일 아침에 자동 발송

주의할 점

  • Rate Limit - Slack Web API 제한이 그대로 적용된다. 너무 많이 때리면 쓰로틀링 걸린다
  • 프라이빗 채널 - 봇이 초대되지 않은 프라이빗 채널이나 DM은 접근 불가
  • 워크스페이스 관리자 승인 - MCP 클라이언트 연결은 워크스페이스 관리자가 승인해야 할 수 있다

레퍼런스