본문으로 건너뛰기

© 2026 Molayo

Zenn헤드라인2026. 06. 01. 10:56

Claude Code에서 MCP를 사용하여 Slack을 조작해 보았다

요약

Claude Code에서 MCP(Model Context Protocol)를 활용하여 Slack과 연동하는 방법을 설명합니다. MCP의 개념부터 서버 종류, 설정 방법, 그리고 실제 Slack 앱 생성 및 토큰 발급 과정을 통한 연동 실습을 다룹니다.

핵심 포인트

  • MCP는 AI와 외부 서비스를 연결하는 오픈 통신 규격입니다.
  • Claude Code에서 JSON 설정을 통해 MCP 서버를 쉽게 추가할 수 있습니다.
  • Slack 연동을 위해 필요한 API 스코프와 Bot Token 설정 방법을 안내합니다.
  • stdio, http, ws 등 다양한 MCP 서버 통신 방식을 지원합니다.

서론

Claude Code(Anthropic이 제공하는 AI 코딩 툴)에는 MCP(Model Context Protocol)라는 메커니즘을 사용하여 외부 서비스와 연동할 수 있는 기능이 있습니다.

이번에는 MCP의 메커니즘을 이해하면서, 실제로 Slack과 연동하여 Claude Code로부터 메시지를 전송하는 것까지 검증했습니다.

MCP란 무엇인가

MCP(Model Context Protocol)는 AI 어시스턴트와 외부 툴·서비스를 연결하기 위한 오픈 통신 규격입니다. Anthropic이 작성하여 오픈 소스로 공개되었기 때문에, 현재 전 세계의 기업·개인이 대응 서버를 개발·공개하고 있습니다.

USB에 비유하자면?

USB가 어떤 디바이스든 동일한 접속 단자로 연결되는 것처럼, MCP는 어떤 서비스든 동일한 방법으로 AI에 접속할 수 있습니다.

Claude Code (AI)
↓ MCP 프로토콜로 통신
MCP 서버 (Slack · GitHub · DB 등)
...

MCP 서버의 종류

종류설명용도 예시
stdio (로컬)로컬에서 프로세스로 기동Slack, DB 접속
http (리모트)클라우드 상의 서버에 접속Sentry, Notion
ws (WebSocket)양방향 실시간 통신이벤트 수신

기존 MCP 서버를 찾는 방법

Anthropic이 공식적으로 관리하는 리포지토리에 주요 서비스용 서버가 공개되어 있습니다.

각 서버의 폴더에 README.md가 있으며, 필요한 환경 변수나 설정 방법이 기재되어 있습니다.

또한, 서드파티(Third-party) 제작 서버를 포함한 목록은 아래에서 확인할 수 있습니다:

Claude Code에 MCP를 설정하는 방법

Claude Code의 공식 문서는 여기에 기재되어 있습니다:

JSON 설정으로 추가하는 방법

GitHub의 README에 기재된 JSON 설정을 claude mcp add-json 명령어로 전달함으로써 등록할 수 있습니다.

claude mcp add-json <서버명> '<JSON>'

JSON의 구조:

{
"type": "stdio",
"command": "npx",
...

변경되는 것은 이 3가지뿐입니다:

항목확인 방법
args의 패키지명GitHub의 README
env의 환경 변수명GitHub의 README
환경 변수의 값 (토큰 등)각 서비스 사이트에서 발행

Slack MCP 설정 절차

1. Slack 앱을 생성하기

api.slack.com/apps에서 앱을 생성합니다.

Create New App을 클릭

사이드 메뉴의 OAuth & Permissions를 클릭

필요한 스코프 (Bot Token Scopes):

스코프용도
chat:write메시지 전송
channels:read채널 목록 취득
channels:history메시지 이력 취득
app_mentions:read멘션 감지

스코프 추가 후, "Install to Workspace"를 통해 워크스페이스에 설치하고, Bot Token(xoxb-...)을 취득합니다.

2. 워크스페이스 ID를 확인하기

Slack을 브라우저로 열었을 때의 URL에 포함되어 있습니다:


↑ 이것이 Team ID

3. 채널 ID를 확인하기

채널 ID는 C로 시작하는 문자열입니다. 다음 두 가지 방법으로 확인할 수 있습니다.

방법 ① Slack의 채널 정보에서 확인하기

  • Slack에서 채널명을 클릭
  • 상단의 채널명 (헤더) 클릭
  • "About" 탭을 열기 - 가장 아래에 C0XXXXXXX 형식의 ID가 표시됨

방법 ② URL에서 확인하기

채널을 열었을 때의 브라우저 URL에 포함되어 있습니다:

↑ 이것이 채널 ID

3. Claude Code에 등록하기

claude mcp add-json slack '{
"type": "stdio",
"command": "npx",
...

SLACK_CHANNEL_IDS는 선택 사항입니다. 지정하면 해당 채널에 대해서만 액세스 권한이 허용됩니다.

4. 연결 확인하기

claude mcp list
# → slack: npx -y @modelcontextprotocol/server-slack - ✓ Connected

실제로 작동시켜 보았다

메시지 전송

Claude Code의 채팅에서 다음과 같이 말하기만 하면 됩니다:

test_server_channel에 claude code로부터의 알림을 전송해 달라고 게시해 줘.

다음과 같은 답장이 Slack 상에서 돌아왔습니다.

채널 목록 가져오기

채널 목록을 보여줘.

이 문장만으로는 Slack에 결과가 게시되지 않고 커맨드 상에서만 결과가 표시되었습니다.

이어서 다음과 같이 입력하면:

slack 상에서 보여줘.

slack_list_channels가 자동으로 호출되어, 채널 이름과 ID 목록이 반환됩니다.

MCP의 동작 흐름 이해하기

실제로 작동시켜 보며 깨달은 점을 정리합니다.

① 사용자가 자연어로 지시
"채널 목록을 보여줘"
↓
...

포인트: AI가 도구(Tool)를 자동 선택한다

사용자는 도구 이름을 모르더라도, 일본어(또는 한국어 등 자연어)로 말하는 것만으로 AI가 적절한 도구를 선택하여 실행해 줍니다. 이는 각 도구에 description (설명문)이 붙어 있으며, AI가 그 설명과 지시 사항을 대조하여 판단하기 때문입니다.

stdio 서버의 구조

Slack MCP는 stdio 타입이므로, 포트(Port)를 사용하지 않고 통신합니다.

Claude Code (부모 프로세스)
↓ child_process.spawn()으로 기동
MCP 서버 (자식 프로세스)
...

Claude Code가 실행되는 동안에만 자식 프로세스로 동작하며, 종료 시 자동으로 사라집니다.

Codex에도 동일한 설정하기

Codex CLI에도 동일하게 설정할 수 있습니다:

codex mcp add \
--env SLACK_BOT_TOKEN=xoxb-... \
--env SLACK_TEAM_ID=T... \
...

동일한 MCP 서버 패키지를 서로 다른 클라이언트에서 재사용할 수 있는 것이 MCP의 강점입니다.

막혔던 부분 (Troubleshooting)

Failed to connect

SLACK_TEAM_ID가 설정되지 않아 연결에 실패했습니다. Slack MCP 서버는 SLACK_BOT_TOKENSLACK_TEAM_ID가 모두 필수입니다.

# 에러 확인 방법
SLACK_BOT_TOKEN=xoxb-... npx -y @modelcontextprotocol/server-slack
# → Please set SLACK_BOT_TOKEN and SLACK_TEAM_ID environment variables

missing_scope

Slack 앱에 필요한 스코프(Scope)가 부여되지 않았습니다. channels:read 등을 추가하여 재설치해야 합니다.

needed: channels:read, groups:read, mpim:read, im:read
provided: app_mentions:read, chat:write

channel_not_found

채널 이름(#general)으로는 인식되지 않았고, 채널 ID(C0B0Z1CE8JD)를 지정해야 했습니다.

설정 파일 저장 위치

도구파일형식
Claude Code~/.claude.jsonJSON
Codex~/.codex/config.tomlTOML

둘 다 평문(Plain Text)으로 저장되므로, 토큰(Token) 취급에 주의가 필요합니다.

요약

  • MCP는 AI와 외부 서비스를 연결하는 오픈 표준(Open Standard)
  • GitHub의 README를 보고 JSON 설정을 확인한 뒤, claude mcp add-json 명령어로 등록하기만 하면 됨
  • 사용자는 자연어(Natural Language)로 지시하는 것만으로 외부 서비스를 조작할 수 있음
  • stdio 타입은 포트(Port) 없이 로컬 프로세스(Local Process)로 동작함 - 동일한 MCP 서버를 Claude Code, Codex 등 여러 클라이언트에서 재사용할 수 있음

MCP를 지원하는 서버는 Slack 외에도 GitHub, PostgreSQL, Notion 등 다수가 공개되어 있습니다. 자사 시스템의 API를 MCP 서버로 구현하면, Claude Code에서 자연어로 조작할 수 있게 됩니다.

참고 링크

Discussion

AI 자동 생성 콘텐츠

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

원문 바로가기
0

댓글

0