Slack Max API MCP
Slack Web API를 Codex/Claude Code에서 바로 사용할 수 있게 만든 stdio MCP 서버입니다.
- 패키지:
slack-max-api-mcp - 실행 방식: MCP 클라이언트(Codex/Claude)에서 도구 호출
- 목적: Slack 조회/검색/전송/캔버스/API 직접 호출 자동화
이 MCP가 무엇을 하는가
- Slack API를 MCP 도구로 감싸서 AI가 호출할 수 있게 합니다.
- 고정 도구 13개 + 카탈로그 기반 동적 메서드 도구(현재 304개)를 제공합니다.
- 토큰/권한 범위 안에서 Slack 작업을 대화로 실행할 수 있습니다.
Slack API로 만들 수 있는 것 vs 이 MCP에서 구현한 것
| 구분 | Slack API로 가능한 범위 | 이 MCP에서 구현한 방식 |
|---|---|---|
| 표준 Web API | 대부분 메서드 호출 가능 | slack_api_call + slack_method_* 자동 도구 |
| 비표준/특수 API (SCIM/Audit/Legal Holds 등) | 엔드포인트별 가능(권한 필요) | slack_http_api_call |
| 메시지/파일 검색 | search.* 계열 | search_messages_files |
| 유저/채널 탐색 | users.*, conversations.* | search_users, search_channels, read_user_profile |
| 메시지 전송/읽기 | chat.postMessage, conversations.* | send_message, read_channel, read_thread |
| 캔버스 | canvases.* | create_canvas, update_canvas, read_canvas |
참고:
- 고정 도구: 13개
- 카탈로그 메서드 수: 304개
- 카탈로그 스코프 수: 121개 (
data/slack-catalog.json기준)
제공 도구 목록
고정 도구 (13)
slack_api_callslack_http_api_callsearch_messages_filessearch_userssearch_channelssend_messageread_channelread_threadcreate_canvasupdate_canvasread_canvasread_user_profileslack_method_tools_info
동적 도구
slack_method_<family_method>형식으로 자동 생성- 예:
slack_method_chat_postMessage - 수량은 카탈로그/설정값에 따라 달라짐 (
SLACK_ENABLE_METHOD_TOOLS,SLACK_MAX_METHOD_TOOLS)
현재 이 MCP가 할 수 있는 일
실시간 점검 결과 문서:
요약:
- 기본(BOT)으로 유저/채널 조회, 프로필 조회, 캔버스 생성, 일반 API 호출 가능
- USER 토큰 사용 시 메시지/파일 검색, 채널 읽기, 메시지 전송 가능
- BOT으로 검색은 토큰 타입 제한(
not_allowed_token_type)이 있어 USER 토큰 사용 권장
설치 및 실행
npm install -g slack-max-api-mcp@latest
slack-max-api-mcp
또는:
npx -y slack-max-api-mcp
Codex / Claude Code 연결
Codex
codex mcp add slack-max -- npx -y slack-max-api-mcp
codex mcp list
Claude Code
claude mcp add slack-max -- npx -y slack-max-api-mcp
claude mcp list
필수 환경 설정 (중요)
이 패키지는 실제 토큰을 포함하지 않습니다. 실행 환경에 토큰을 넣어야 합니다.
예시 (Windows PowerShell)
setx SLACK_BOT_TOKEN "xoxb-..."
setx SLACK_USER_TOKEN "xoxp-..."
새 터미널을 열고 실행하세요.
토큰 선택 우선순위
서버 기본 토큰 우선순위:
SLACK_BOT_TOKENSLACK_USER_TOKENSLACK_TOKEN- (로컬
.env.example값이 있으면 fallback)
실제 요청 예시 (Codex/Claude에 자연어로)
채널 목록 조회해서 이름과 ID를 표로 정리해줘.USER 토큰으로 C0AHJ8GF09H 채널 최근 30개 메시지 읽어 요약해줘.USER 토큰으로 C0AHJ8GF09H 채널에 "테스트 메시지" 전송해줘.회의록 캔버스 하나 만들고 제목을 "MCP 점검"으로 생성해줘.
정확도 팁:
- 검색/읽기/전송은 USER 토큰 사용을 명시
- 실패 시
error/needed/provided를 같이 출력하도록 요청
제약 사항과 운영 주의
- 토큰은 반드시 사용자 환경에 직접 설정해야 함
- 다른 워크스페이스를 쓰려면 해당 워크스페이스 토큰으로 교체해야 함
- scope 변경 후에는 Slack 앱 재설치(재승인)가 필요할 수 있음
- 채널 읽기/전송은 봇/사용자 멤버십이 없으면 실패 가능 (
not_in_channel) - 일부 API는 Enterprise 또는 Admin 권한 전용
- Slack rate limit에 걸릴 수 있음
보안 주의
- 실제 토큰을 README/코드/패키지/커밋에 넣지 마세요.
- 토큰 노출 시 즉시 폐기 후 재발급하세요.
- 필요하면 시크릿 매니저(1Password/Vault/AWS Secrets Manager) 사용을 권장합니다.
트러블슈팅 빠른 체크
- 토큰 유효성:
auth.test - 권한 부족: 응답의
needed/provided확인 - 메시지 전송 실패: 채널 멤버십(
not_in_channel) 여부 확인 - 검색 실패: BOT 토큰 사용 여부 확인 (
not_allowed_token_type)
개발 정보
npm install
npm run check
npm run build:catalog
npm run start
관련 파일:
- 서버:
src/slack-mcp-server.js - 카탈로그:
data/slack-catalog.json - 현재 기능 점검 결과:
MCP_CURRENT_CAPABILITIES_NOW.md