slack-mcp-server

kjyy08/slack-mcp-server

3.4

If you are the rightful owner of slack-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

The Slack MCP Server project leverages Spring AI to facilitate Slack message transmission, channel history retrieval, and file uploads.

Slack MCP μ„œλ²„

ν”„λ‘œμ νŠΈ κ°œμš”

Spring AIλ₯Ό ν™œμš©ν•˜μ—¬ μŠ¬λž™ λ©”μ‹œμ§€ 전솑, 채널 λ‚΄μ—­ 쑰회 λ“±μ˜ 도ꡬλ₯Ό μ§€μ›ν•©λ‹ˆλ‹€.


μ£Όμš” 도ꡬ

κ΅¬ν˜„λœ 도ꡬ

1. λ©”μ‹œμ§€ 전솑 (postSlackMessage)
  • Slack 채널에 λ©”μ‹œμ§€λ₯Ό μ „μ†‘ν•©λ‹ˆλ‹€. λ§ˆν¬λ‹€μš΄ ν˜•μ‹μ„ 일뢀 μ§€μ›ν•©λ‹ˆλ‹€.
2. 채널 νžˆμŠ€ν† λ¦¬ 쑰회 (slackChannelHistory)
  • Slack μ±„λ„μ˜ λ©”μ‹œμ§€ 내역을 μ‘°νšŒν•©λ‹ˆλ‹€. νŽ˜μ΄μ§• 처리λ₯Ό μœ„ν•œ μ»€μ„œμ™€ μ‘°νšŒν•  λ©”μ‹œμ§€ 수λ₯Ό μ§€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
3. 파일 μ—…λ‘œλ“œ (uploadFileToSlack)
  • μ ˆλŒ€ 경둜둜 μ§€μ •λœ νŒŒμΌμ„ Slack 채널에 μ—…λ‘œλ“œν•©λ‹ˆλ‹€.
4. Base64 파일 μ—…λ‘œλ“œ (uploadFileToSlackByBase64)
  • Base64둜 μΈμ½”λ”©λœ 파일 데이터λ₯Ό Slack 채널에 μ—…λ‘œλ“œν•©λ‹ˆλ‹€.
    • 단, 파일 크기가 큰 경우 토큰 μ‚¬μš©λŸ‰μ΄ 증가할 수 μžˆμ–΄ μ£Όμ˜κ°€ ν•„μš”ν•©λ‹ˆλ‹€.

      μ ˆλŒ€ 경둜 μ§€μ • 방식을 ꢌμž₯ν•©λ‹ˆλ‹€.

5. μ˜ˆμ•½ λ©”μ‹œμ§€ (slackScheduleMessage)
  • νŠΉμ • μ‹œκ°„μ— λ©”μ‹œμ§€λ₯Ό μ „μ†‘ν•˜λ„λ‘ μ˜ˆμ•½ν•˜λŠ” κΈ°λŠ₯μž…λ‹ˆλ‹€.

μ„€μ • 방법

λΉŒλ“œ 및 μ‹€ν–‰

  1. ν”„λ‘œμ νŠΈ λΉŒλ“œ

    # ν”„λ‘œμ νŠΈ λΉŒλ“œ
    ./gradlew build
    
  2. Claude Desktop으둜 μ‹€ν–‰
    claude_desktop_config.json을 λ‹€μŒκ³Ό 같이 μž‘μ„±ν•©λ‹ˆλ‹€.

    {
      "mcpServers": {
        "slack-mcp": {
          "command": "java",
          "args": [
            "-Dfile.encoding\u003dUTF-8",
            "-jar",
            "JAR_PATH"
          ],
          "env": {
            "SLACK_BOT_TOKEN": "xoxb-your-bot-token",
            "SLACK_CHANNEL_ID": "your-channel-id"
          }
        }
      }
    }
    
    • JAR_PATH: λΉŒλ“œν•œ jar 파일의 경둜
    • SLACK_BOT_TOKEN: Slack Bot 토큰
    • SLACK_CHANNEL_ID: λ©”μ‹œμ§€λ₯Ό 보낼 Slack 채널 ID

ν”„λ‘œμ νŠΈ ꡬ쑰

src/main/java/dev/luigi/slack/mcp/server/
β”œβ”€β”€ SlackMcpServerApplication.java  # 메인 μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 클래슀
β”œβ”€β”€ dto/                           # 데이터 전솑 객체
β”‚   β”œβ”€β”€ common/                    # 곡톡 DTO
β”‚   β”œβ”€β”€ request/                   # μš”μ²­ DTO
β”‚   └── response/                  # 응닡 DTO
└── service/                       # μ„œλΉ„μŠ€ 클래슀
    β”œβ”€β”€ SlackService.java          # Slack μ„œλΉ„μŠ€ μΈν„°νŽ˜μ΄μŠ€
    β”œβ”€β”€ SlackServiceImpl.java      # Slack μ„œλΉ„μŠ€ κ΅¬ν˜„μ²΄
    β”œβ”€β”€ file/                      # 파일 κ΄€λ ¨ μ„œλΉ„μŠ€
    β”œβ”€β”€ history/                   # 채널 νžˆμŠ€ν† λ¦¬ κ΄€λ ¨ μ„œλΉ„μŠ€
    β”œβ”€β”€ message/                   # λ©”μ‹œμ§€ κ΄€λ ¨ μ„œλΉ„μŠ€
    └── schedule/                  # μ˜ˆμ•½ λ©”μ‹œμ§€ κ΄€λ ¨ μ„œλΉ„μŠ€