MCP 문서 관리

메뉴

문서 정보

최종 수정일:
2025-05-12 20:16

Slack MCP 서버

Slack

Slack MCP 서버는 Slack API를 위한 서버로, Claude가 Slack 워크스페이스와 상호 작용할 수 있게 해줍니다.

특징

  • 채널 관리 및 메시지 전송 기능
  • 메시지 스레드에 답장 및 반응 추가
  • 채널 히스토리 조회 및 스레드 응답 가져오기
  • 워크스페이스 사용자 및 프로필 정보 조회

API

도구

slack_list_channels

워크스페이스의 공개 또는 미리 정의된 채널 목록을 가져옵니다.

  • 선택적 입력:
  • limit (숫자, 기본값: 100, 최대: 200): 반환할 최대 채널 수
  • cursor (문자열): 다음 페이지를 위한 페이지네이션 커서

  • 반환: ID 및 정보가 포함된 채널 목록

slack_post_message

Slack 채널에 새 메시지를 게시합니다.

  • 필수 입력:
  • channel_id (문자열): 게시할 채널의 ID
  • text (문자열): 게시할 메시지 텍스트

  • 반환: 메시지 게시 확인 및 타임스탬프

slack_reply_to_thread

특정 메시지 스레드에 답장합니다.

  • 필수 입력:
  • channel_id (문자열): 스레드가 포함된 채널
  • thread_ts (문자열): 부모 메시지의 타임스탬프
  • text (문자열): 답장 텍스트

  • 반환: 답장 확인 및 타임스탬프

slack_add_reaction

메시지에 이모지 반응을 추가합니다.

  • 필수 입력:
  • channel_id (문자열): 메시지가 포함된 채널
  • timestamp (문자열): 반응할 메시지 타임스탬프
  • reaction (문자열): 콜론 없는 이모지 이름

  • 반환: 반응 확인

slack_get_channel_history

채널에서 최근 메시지를 가져옵니다.

  • 필수 입력:
  • channel_id (문자열): 채널 ID

  • 선택적 입력:

  • limit (숫자, 기본값: 10): 검색할 메시지 수

  • 반환: 내용 및 메타데이터가 포함된 메시지 목록

slack_get_thread_replies

메시지 스레드의 모든 응답을 가져옵니다.

  • 필수 입력:
  • channel_id (문자열): 스레드가 포함된 채널
  • thread_ts (문자열): 부모 메시지의 타임스탬프

  • 반환: 내용 및 메타데이터가 포함된 응답 목록

slack_get_users

기본 프로필 정보가 포함된 워크스페이스 사용자 목록을 가져옵니다.

  • 선택적 입력:
  • cursor (문자열): 다음 페이지를 위한 페이지네이션 커서
  • limit (숫자, 기본값: 100, 최대: 200): 반환할 최대 사용자 수

  • 반환: 기본 프로필이 포함된 사용자 목록

slack_get_user_profile

특정 사용자에 대한 상세 프로필 정보를 가져옵니다.

  • 필수 입력:
  • user_id (문자열): 사용자의 ID

  • 반환: 상세 사용자 프로필 정보

사용 방법

설정

Slack 앱 생성:

  1. Slack Apps 페이지를 방문합니다.
  2. "Create New App"을 클릭합니다.
  3. "From scratch"를 선택합니다.
  4. 앱 이름을 지정하고 워크스페이스를 선택합니다.

봇 토큰 범위 구성:

"OAuth & Permissions"로 이동하여 다음 범위를 추가합니다: - channels:history - 공개 채널의 메시지 및 기타 콘텐츠 보기 - channels:read - 기본 채널 정보 보기 - chat:write - 앱으로 메시지 보내기 - reactions:write - 메시지에 이모지 반응 추가 - users:read - 사용자 및 기본 정보 보기 - users.profile:read - 사용자에 대한 자세한 프로필 보기

워크스페이스에 앱 설치:

  1. "Install to Workspace"를 클릭하고 앱을 승인합니다.
  2. xoxb-로 시작하는 "Bot User OAuth Token"을 저장합니다.
  3. 이 가이드를 따라 T로 시작하는 팀 ID를 가져옵니다.

Claude Desktop에서 사용

claude_desktop_config.json에 다음을 추가하세요:

NPX

{
  "mcpServers": {
    "slack": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-slack"],
      "env": {
        "SLACK_BOT_TOKEN": "xoxb-your-bot-token",
        "SLACK_TEAM_ID": "T01234567",
        "SLACK_CHANNEL_IDS": "C01234567, C76543210"
      }
    }
  }
}

Docker

{
  "mcpServers": {
    "slack": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "-e", "SLACK_BOT_TOKEN", "-e", "SLACK_TEAM_ID", "-e", "SLACK_CHANNEL_IDS", "mcp/slack"],
      "env": {
        "SLACK_BOT_TOKEN": "xoxb-your-bot-token",
        "SLACK_TEAM_ID": "T01234567",
        "SLACK_CHANNEL_IDS": "C01234567, C76543210"
      }
    }
  }
}

VS Code에서 사용

VS Code User Settings(JSON) 파일에 다음 JSON 블록을 추가하세요. Ctrl + Shift + P를 누르고 Preferences: Open Settings (JSON)를 입력하여 이 작업을 수행할 수 있습니다.

선택적으로 작업 공간의 .vscode/mcp.json 파일에 추가할 수 있습니다. 이렇게 하면 다른 사람과 구성을 공유할 수 있습니다.

.vscode/mcp.json 파일에서는 mcp 키가 필요하지 않습니다.

NPX

{
  "mcp": {
    "inputs": [
      {
        "type": "promptString",
        "id": "slack_bot_token",
        "description": "Slack Bot Token (starts with xoxb-)",
        "password": true
      },
      {
        "type": "promptString",
        "id": "slack_team_id",
        "description": "Slack Team ID (starts with T)"
      }
    ],
    "servers": {
      "slack": {
        "command": "npx",
        "args": ["-y", "@modelcontextprotocol/server-slack"],
        "env": {
          "SLACK_BOT_TOKEN": "${input:slack_bot_token}",
          "SLACK_TEAM_ID": "${input:slack_team_id}"
        }
      }
    }
  }
}

Docker

{
  "mcp": {
    "inputs": [
      {
        "type": "promptString",
        "id": "slack_bot_token",
        "description": "Slack Bot Token (starts with xoxb-)",
        "password": true
      },
      {
        "type": "promptString",
        "id": "slack_team_id",
        "description": "Slack Team ID (starts with T)"
      }
    ],
    "servers": {
      "slack": {
        "command": "docker",
        "args": ["run", "-i", "--rm", "mcp/slack"],
        "env": {
          "SLACK_BOT_TOKEN": "${input:slack_bot_token}",
          "SLACK_TEAM_ID": "${input:slack_team_id}"
        }
      }
    }
  }
}

환경 변수

  • SLACK_BOT_TOKEN: 필수. xoxb-로 시작하는 Bot User OAuth Token입니다.
  • SLACK_TEAM_ID: 필수. T로 시작하는 Slack 워크스페이스 ID입니다.
  • SLACK_CHANNEL_IDS: 선택 사항. 채널 액세스를 제한하기 위한 채널 ID의 쉼표로 구분된 목록(예: "C01234567, C76543210")입니다. 설정하지 않으면 모든 공개 채널이 나열됩니다.

문제 해결

권한 오류가 발생하면 다음을 확인하세요: - 필요한 모든 범위가 Slack 앱에 추가되었는지 확인 - 앱이 워크스페이스에 제대로 설치되었는지 확인 - 토큰과 워크스페이스 ID가 구성에 올바르게 복사되었는지 확인 - 앱이 액세스해야 하는 채널에 추가되었는지 확인

빌드

Docker 빌드:

docker build -t mcp/slack -f src/slack/Dockerfile .

라이선스

이 MCP 서버는 MIT 라이선스에 따라 라이선스가 부여됩니다. 이는 MIT 라이선스의 약관 및 조건에 따라 소프트웨어를 자유롭게 사용, 수정 및 배포할 수 있음을 의미합니다. 자세한 내용은 프로젝트 저장소의 LICENSE 파일을 참조하세요.

연결된 구성 요소