Implements high-performance asynchronous HTTP requests to the Slack API, enabling efficient handling of API calls.
Used for loading environment variables from .env files, supporting configuration of API tokens and other settings for the Slack integration.
Mentioned for repository cloning during installation process.
Used as the runtime environment for the MCP server implementation.
Provides tools for interacting with Slack's API, enabling message sending to channels, retrieving channel lists, accessing message history, sending direct messages, getting user lists, adding emoji reactions to messages, and searching messages across a Slack workspace.
π 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 νμΌμ μ°Έμ‘°νμΈμ.
π μμνκΈ°
λ¬Έμ κ° μμΌμλ©΄