Enables comprehensive Slack workspace interaction including sending messages to channels, listing channels, retrieving message history, sending direct messages, managing user information, adding emoji reactions, and searching messages.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Slack MCP Serversend a message to #general saying 'Team meeting at 3 PM today'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
π Slack MCP Server
FastMCPλ₯Ό μ¬μ©ν μμ ν Slack ν΅ν© MCP μλ²μ λλ€. Cursor IDEμμ Slack APIμ λͺ¨λ κΈ°λ₯μ μμ°μ΄λ‘ μ¬μ©ν μ μκ² ν΄μ€λλ€.
π λͺ©μ°¨
Related MCP server: MCP Server Template for Cursor IDE
β¨ νΉμ§
νμ κΈ°λ₯ (κ³Όμ μꡬμ¬ν)
β λ©μμ§ μ μ‘: μ±λμ λ©μμ§ μ μ‘
β μ±λ λͺ©λ‘ μ‘°ν: μ κ·Ό κ°λ₯ν λͺ¨λ μ±λ μ‘°ν
β μ±λ νμ€ν 리 μ‘°ν: μ§μ λ μ±λμ λ©μμ§ νμ€ν 리
β λ€μ΄λ νΈ λ©μμ§: 1:1 λ©μμ§ μ μ‘
μΆκ° κΈ°λ₯
β μ¬μ©μ λͺ©λ‘ μ‘°ν: μν¬μ€νμ΄μ€ μ¬μ©μ μ 보
β λ°μ μΆκ°: λ©μμ§μ μ΄λͺ¨μ§ λ°μ μΆκ°
β λ©μμ§ κ²μ: ν€μλ κΈ°λ° λ©μμ§ κ²μ
β μ°κ²° ν μ€νΈ: API μ°κ²° μν νμΈ
κΈ°μ μ νΉμ§
π FastMCP κΈ°λ°: μ΅μ MCP νλ μμν¬ μ¬μ©
β‘ λΉλκΈ° μ²λ¦¬: aiohttpλ₯Ό μ΄μ©ν κ³ μ±λ₯ API νΈμΆ
π‘οΈ μμ ν μλ¬ μ²λ¦¬: μμΈν μ€λ₯ λ©μμ§μ 볡ꡬ κ°λ₯ν μμΈ μ²λ¦¬
π νμ ννΈ: μμ ν νμ μμ μ±
π§ͺ ν¬κ΄μ ν μ€νΈ: μλνλ ν μ€νΈ μ€μνΈ
π λ‘κΉ : ꡬ쑰νλ λ‘κΉ μμ€ν
π§ μλ μ€μΉ: μν΄λ¦ μ€μΉ μ€ν¬λ¦½νΈ
π μꡬμ¬ν
Python 3.8+
pip (ν¨ν€μ§ κ΄λ¦¬μ)
Cursor IDE (MCP ν΄λΌμ΄μΈνΈ)
Slack Bot Token (xoxb-λ‘ μμ)
Slack Bot κΆν
Slack μ±μ λ€μ κΆνμ΄ νμν©λλ€:
π λΉ λ₯Έ μ€μΉ
1. μλ μ€μΉ (κΆμ₯)
μ€μΉ μ€ν¬λ¦½νΈκ° λ€μμ μλμΌλ‘ μ²λ¦¬ν©λλ€:
ν¨ν€μ§ μ€μΉ
νκ²½ λ³μ μ€μ
Cursor MCP μ€μ μ λ°μ΄νΈ
μ€μΉ ν μ€νΈ μ€ν
2. Cursor μ¬μμ
μ€μΉ μλ£ ν Cursorλ₯Ό μ¬μμνλ©΄ Slack MCP λꡬλ₯Ό μ¬μ©ν μ μμ΅λλ€.
π§ μλ μ€μΉ
1. μ μ₯μ ν΄λ‘
2. ν¨ν€μ§ μ€μΉ
3. νκ²½ λ³μ μ€μ
.env νμΌ μμ±:
4. Cursor MCP μ€μ
~/.cursor/mcp.json νμΌμ λ€μ μΆκ°:
5. ν μ€νΈ μ€ν
π μ¬μ©λ²
Cursorμμ μ μ±ν μ μμνκ³ λ€μκ³Ό κ°μ΄ μμ°μ΄λ‘ Slack κΈ°λ₯μ μ¬μ©ν μ μμ΅λλ€:
λ©μμ§ μ μ‘
μ±λ μ 보 μ‘°ν
λ©μμ§ νμ€ν 리
λ€μ΄λ νΈ λ©μμ§
λ©μμ§ κ²μ
π οΈ μ¬μ© κ°λ₯ν λꡬ
λꡬ | μ€λͺ | νλΌλ―Έν° |
| μ±λμ λ©μμ§ μ μ‘ |
|
| μ±λ λͺ©λ‘ μ‘°ν | μμ |
| μ±λ νμ€ν 리 μ‘°ν |
|
| λ€μ΄λ νΈ λ©μμ§ μ μ‘ |
|
| μ¬μ©μ λͺ©λ‘ μ‘°ν | μμ |
| λ©μμ§μ λ°μ μΆκ° |
|
| λ©μμ§ κ²μ |
|
| μ°κ²° ν μ€νΈ | μμ |
π νλ‘μ νΈ κ΅¬μ‘°
π¨βπ» κ°λ°μ κ°μ΄λ
κ°λ° νκ²½ μ€μ
μλ‘μ΄ λꡬ μΆκ°
slack_api.pyμ API λ©μλ μΆκ°slack_mcp_server.pyμ MCP λꡬ λ°μ½λ μ΄ν° μΆκ°test_slack_mcp.pyμ ν μ€νΈ μΌμ΄μ€ μΆκ°
λ‘κΉ
μλ²λ λ€μ μμΉμ λ‘κ·Έλ₯Ό κΈ°λ‘ν©λλ€:
μ½μ μΆλ ₯: μ€μκ° λ‘κ·Έ νμΈ
νμΌ λ‘κ·Έ:
slack_mcp.log
λλ²κΉ
π λ¬Έμ ν΄κ²°
μμ£Ό λ°μνλ λ¬Έμ
1. "SLACK_BOT_TOKEN νκ²½ λ³μκ° μ€μ λμ§ μμμ΅λλ€"
ν΄κ²°μ± :
.envνμΌμ μ¬λ°λ₯Έ ν ν°μ΄ μλμ§ νμΈν ν°μ΄
xoxb-λ‘ μμνλμ§ νμΈ
2. "invalid_auth" μλ¬
ν΄κ²°μ± :
Slack Bot Tokenμ΄ μ ν¨νμ§ νμΈ
ν ν°μ΄ μ¬λ°λ₯Έ μν¬μ€νμ΄μ€μ©μΈμ§ νμΈ
νμν κΆνμ΄ λͺ¨λ λΆμ¬λμλμ§ νμΈ
3. "channel_not_found" μλ¬
ν΄κ²°μ± :
μ±λ IDκ° μ¬λ°λ₯Έμ§ νμΈ
λ΄μ΄ ν΄λΉ μ±λμ μΆκ°λμλμ§ νμΈ
κ³΅κ° μ±λμΈμ§ λλ λ΄μ΄ μ΄λλμλμ§ νμΈ
4. Cursorμμ MCP λκ΅¬κ° λ³΄μ΄μ§ μμ
ν΄κ²°μ± :
Cursorλ₯Ό μμ ν μ¬μμ
~/.cursor/mcp.jsonμ€μ νμΌ νμΈνμΌ κ²½λ‘κ° μ¬λ°λ₯Έμ§ νμΈ
λ‘κ·Έ νμΈ
μλ μ°κ²° ν μ€νΈ
π κ³Όμ μꡬμ¬ν λλΉ νν©
μꡬμ¬ν | μν | ꡬν μμΉ |
νμ κΈ°λ₯ | ||
λ©μμ§ μ μ‘ | β μλ£ |
|
μ±λ λͺ©λ‘ μ‘°ν | β μλ£ |
|
μ±λ νμ€ν 리 μ‘°ν | β μλ£ |
|
λ€μ΄λ νΈ λ©μμ§ | β μλ£ |
|
μ ν κΈ°λ₯ | ||
μ¬μ©μ λͺ©λ‘ μ‘°ν | β μλ£ |
|
λ°μ μΆκ° | β μλ£ |
|
λ©μμ§ κ²μ | β μλ£ |
|
κΈ°μ μꡬμ¬ν | ||
FastMCP μ¬μ© | β μλ£ |
|
μλ¬ μ²λ¦¬ | β μλ£ | λͺ¨λ λꡬμ try-catch |
νμ ννΈ | β μλ£ | λͺ¨λ ν¨μμ νμ ννΈ |
λ‘κΉ | β μλ£ | ꡬ쑰νλ λ‘κΉ μμ€ν |
ν μ€νΈ | β μλ£ |
|
λ¬Έμν | β μλ£ | μ΄ README λ° μ½λ μ£Όμ |
π μΆκ° ꡬν μ¬ν
κ³Όμ μꡬμ¬νμ λμ΄μ λ€μ κΈ°λ₯λ€μ μΆκ°λ‘ ꡬννμ΅λλ€:
π μλ μ€μΉ μμ€ν : μν΄λ¦ μ€μΉ μ€ν¬λ¦½νΈ
π§ͺ ν¬κ΄μ ν μ€νΈ: λͺ¨λ κΈ°λ₯μ λν μλνλ ν μ€νΈ
π μμΈν μλ΅ ν¬λ§·ν : ꡬ쑰νλ μ±κ³΅/μ€ν¨ μλ΅
β‘ λΉλκΈ° HTTP ν΄λΌμ΄μΈνΈ: κ³ μ±λ₯ aiohttp μ¬μ©
π‘οΈ μΈμ κ΄λ¦¬: HTTP μΈμ μ¬μ¬μ©μΌλ‘ μ±λ₯ μ΅μ ν
π§ κ°λ°μ λꡬ: λλ²κΉ λ° λ¬Έμ ν΄κ²° λꡬ
π μμ ν νλ‘μ νΈ κ΅¬μ‘°: μμ° μ€λΉ μλ£λ μ½λ ꡬ쑰
π λΌμ΄μ μ€
MIT License - μμΈν λ΄μ©μ LICENSE νμΌμ μ°Έμ‘°νμΈμ.
π μμνκΈ°
λ¬Έμ κ° μμΌμλ©΄