Skip to main content
Glama
minji337

MCP Slack Python

by minji337
README.md
# MCP Slack Python

Slack API를 활용한 MCP(Model Context Protocol) 서버입니다. FastMCP를 사용하여 Slack 워크스페이스와 상호작용할 수 있는 다양한 도구를 제공합니다.

## 기능

- **채널 목록 조회** - 워크스페이스의 모든 채널 목록 가져오기
- **메시지 전송** - 채널에 메시지 보내기 (스레드 답글 지원)
- **메시지 조회** - 채널의 최근 메시지 가져오기
- **리액션 추가** - 메시지에 이모지 리액션 달기
- **스레드 답글 조회** - 특정 메시지의 스레드 답글 가져오기
- **사용자 목록 조회** - 워크스페이스의 모든 사용자 목록 가져오기
- **사용자 프로필 조회** - 특정 사용자의 상세 정보 가져오기

## 설치

### 단독 프로젝트로 사용

```bash
uv sync
```

### 다른 uv 프로젝트에서 사용

```bash
# 로컬 패키지로 추가
uv add ./mcp-slack-python
```

## 환경 설정

환경 변수로 Slack Bot 토큰을 설정합니다:

```bash
export SLACK_BOT_TOKEN=xoxb-your-bot-token
```

### Slack Bot 토큰 발급 방법

1. [Slack API](https://api.slack.com/apps)에서 새 앱 생성
2. OAuth & Permissions에서 Bot Token Scopes 추가:
   - `channels:read` - 채널 목록 조회
   - `channels:history` - 채널 메시지 조회
   - `chat:write` - 메시지 전송
   - `reactions:write` - 리액션 추가
   - `users:read` - 사용자 정보 조회
3. 워크스페이스에 앱 설치
4. Bot User OAuth Token 복사

## 실행

```bash
python main.py
```

## MCP 도구 목록

| 도구 | 설명 |
|------|------|
| `slack_list_channels` | 워크스페이스의 채널 목록 조회 |
| `slack_send_message` | 채널에 메시지 전송 |
| `slack_get_messages` | 채널의 최근 메시지 조회 |
| `slack_add_reaction` | 메시지에 리액션 추가 |
| `slack_get_thread_replies` | 스레드 답글 조회 |
| `slack_get_users` | 사용자 목록 조회 |
| `slack_get_user_profile` | 사용자 프로필 조회 |

## 라이선스

MIT License