A Slack integration server that allows natural language interaction with the Slack API within the Cursor IDE.
FastMCPλ₯Ό μ¬μ©ν μμ ν Slack ν΅ν© MCP μλ²μ λλ€. Cursor IDEμμ Slack APIμ λͺ¨λ κΈ°λ₯μ μμ°μ΄λ‘ μ¬μ©ν μ μκ² ν΄μ€λλ€.
Slack μ±μ λ€μ κΆνμ΄ νμν©λλ€:
Bot Token Scopes:
- channels:history # μ±λ λ©μμ§ μ½κΈ°
- channels:read # μ±λ μ 보 μ‘°ν
- chat:write # λ©μμ§ μ μ‘
- groups:history # λΉκ³΅κ° κ·Έλ£Ή λ©μμ§ μ½κΈ°
- groups:read # λΉκ³΅κ° κ·Έλ£Ή μ 보 μ‘°ν
- im:history # DM λ©μμ§ μ½κΈ°
- im:read # DM μ 보 μ‘°ν
- im:write # DM μ μ‘
- mpim:history # λ©ν°νν° DM λ©μμ§ μ½κΈ°
- mpim:read # λ©ν°νν° DM μ 보 μ‘°ν
- mpim:write # λ©ν°νν° DM μ μ‘
- reactions:write # λ°μ μΆκ°
- search:read # λ©μμ§ κ²μ
- users:read # μ¬μ©μ μ 보 μ‘°ν
cd slack-mcp
python install.py
μ€μΉ μ€ν¬λ¦½νΈκ° λ€μμ μλμΌλ‘ μ²λ¦¬ν©λλ€:
μ€μΉ μλ£ ν Cursorλ₯Ό μ¬μμνλ©΄ Slack MCP λꡬλ₯Ό μ¬μ©ν μ μμ΅λλ€.
git clone <repository-url>
cd slack-mcp
pip install -r requirements.txt
.env
νμΌ μμ±:
# Slack Bot Token (xoxb-λ‘ μμνλ ν ν°)
SLACK_BOT_TOKEN=xoxb-your-bot-token-here
# μ νμ : λ‘κ·Έ λ 벨 μ€μ
LOG_LEVEL=INFO
~/.cursor/mcp.json
νμΌμ λ€μ μΆκ°:
{
"mcpServers": {
"slack": {
"command": "python",
"args": ["/path/to/slack-mcp/slack_mcp_server.py"],
"env": {
"SLACK_BOT_TOKEN": "xoxb-your-bot-token-here"
}
}
}
}
python test_slack_mcp.py
Cursorμμ μ μ±ν μ μμνκ³ λ€μκ³Ό κ°μ΄ μμ°μ΄λ‘ Slack κΈ°λ₯μ μ¬μ©ν μ μμ΅λλ€:
#general μ±λμ "μλ
νμΈμ!"λΌλ λ©μμ§λ₯Ό 보λ΄μ£ΌμΈμ
μ¬μ© κ°λ₯ν Slack μ±λ λͺ©λ‘μ 보μ¬μ£ΌμΈμ
#general μ±λμ μ΅κ·Ό λ©μμ§ 10κ°λ₯Ό κ°μ Έμμ£ΌμΈμ
μ¬μ©μ U1234567890μκ² "νμ μ€λΉ μλ£"λΌλ DMμ 보λ΄μ£ΌμΈμ
"νλ‘μ νΈ"λΌλ ν€μλκ° ν¬ν¨λ λ©μμ§λ₯Ό κ²μν΄μ£ΌμΈμ
λꡬ | μ€λͺ | νλΌλ―Έν° |
---|---|---|
send_slack_message | μ±λμ λ©μμ§ μ μ‘ | channel , text |
get_slack_channels | μ±λ λͺ©λ‘ μ‘°ν | μμ |
get_slack_channel_history | μ±λ νμ€ν 리 μ‘°ν | channel_id , limit |
send_slack_direct_message | λ€μ΄λ νΈ λ©μμ§ μ μ‘ | user_id , text |
get_slack_users | μ¬μ©μ λͺ©λ‘ μ‘°ν | μμ |
add_slack_reaction | λ©μμ§μ λ°μ μΆκ° | channel , timestamp , name |
search_slack_messages | λ©μμ§ κ²μ | query , count |
test_slack_connection | μ°κ²° ν μ€νΈ | μμ |
slack-mcp/
βββ π README.md # μ΄ νμΌ
βββ π requirements.txt # Python ν¨ν€μ§ μμ‘΄μ±
βββ π slack_api.py # Slack API ν΄λΌμ΄μΈνΈ
βββ π slack_mcp_server.py # FastMCP μλ² κ΅¬ν
βββ π test_slack_mcp.py # ν
μ€νΈ μ€ν¬λ¦½νΈ
βββ π install.py # μλ μ€μΉ μ€ν¬λ¦½νΈ
βββ π mcp_config.json # MCP μ€μ ν
νλ¦Ώ
βββ π env_example.txt # νκ²½ λ³μ ν
νλ¦Ώ
βββ π .gitignore # Git 무μ νμΌ
# κ°λ° λͺ¨λλ‘ ν¨ν€μ§ μ€μΉ
pip install -r requirements.txt
# νκ²½ λ³μ μ€μ
cp env_example.txt .env
# .env νμΌμ νΈμ§νμ¬ μ€μ ν ν° μ
λ ₯
# ν
μ€νΈ μ€ν
python test_slack_mcp.py
slack_api.py
μ API λ©μλ μΆκ°slack_mcp_server.py
μ MCP λꡬ λ°μ½λ μ΄ν° μΆκ°test_slack_mcp.py
μ ν
μ€νΈ μΌμ΄μ€ μΆκ°μλ²λ λ€μ μμΉμ λ‘κ·Έλ₯Ό κΈ°λ‘ν©λλ€:
slack_mcp.log
# μμΈ λ‘κ·Έμ ν¨κ» ν
μ€νΈ μ€ν
LOG_LEVEL=DEBUG python test_slack_mcp.py
# μλ² μ§μ μ€ν (λλ²κΉ
μ©)
python slack_mcp_server.py
ν΄κ²°μ± :
.env
νμΌμ μ¬λ°λ₯Έ ν ν°μ΄ μλμ§ νμΈxoxb-
λ‘ μμνλμ§ νμΈν΄κ²°μ± :
ν΄κ²°μ± :
ν΄κ²°μ± :
~/.cursor/mcp.json
μ€μ νμΌ νμΈ# μλ² λ‘κ·Έ νμΈ
tail -f slack_mcp.log
# ν
μ€νΈ λ‘κ·Έμ ν¨κ» μ€ν
python test_slack_mcp.py 2>&1 | tee debug.log
# Pythonμμ μ§μ ν
μ€νΈ
python -c "
import asyncio
from slack_api import get_slack_client
import os
from dotenv import load_dotenv
load_dotenv()
token = os.getenv('SLACK_BOT_TOKEN')
client = get_slack_client(token)
async def test():
result = await client.test_connection()
print(result)
asyncio.run(test())
"
μꡬμ¬ν | μν | ꡬν μμΉ |
---|---|---|
νμ κΈ°λ₯ | ||
λ©μμ§ μ μ‘ | β μλ£ | send_slack_message |
μ±λ λͺ©λ‘ μ‘°ν | β μλ£ | get_slack_channels |
μ±λ νμ€ν 리 μ‘°ν | β μλ£ | get_slack_channel_history |
λ€μ΄λ νΈ λ©μμ§ | β μλ£ | send_slack_direct_message |
μ ν κΈ°λ₯ | ||
μ¬μ©μ λͺ©λ‘ μ‘°ν | β μλ£ | get_slack_users |
λ°μ μΆκ° | β μλ£ | add_slack_reaction |
λ©μμ§ κ²μ | β μλ£ | search_slack_messages |
κΈ°μ μꡬμ¬ν | ||
FastMCP μ¬μ© | β μλ£ | slack_mcp_server.py |
μλ¬ μ²λ¦¬ | β μλ£ | λͺ¨λ λꡬμ try-catch |
νμ ννΈ | β μλ£ | λͺ¨λ ν¨μμ νμ ννΈ |
λ‘κΉ | β μλ£ | ꡬ쑰νλ λ‘κΉ μμ€ν |
ν μ€νΈ | β μλ£ | test_slack_mcp.py |
λ¬Έμν | β μλ£ | μ΄ README λ° μ½λ μ£Όμ |
κ³Όμ μꡬμ¬νμ λμ΄μ λ€μ κΈ°λ₯λ€μ μΆκ°λ‘ ꡬννμ΅λλ€:
MIT License - μμΈν λ΄μ©μ LICENSE νμΌμ μ°Έμ‘°νμΈμ.
# 1. νλ‘μ νΈ ν΄λ‘
git clone <repository-url>
cd slack-mcp
# 2. μλ μ€μΉ μ€ν
python install.py
# 3. Cursor μ¬μμ
# μ΄μ Cursorμμ Slack MCP λꡬλ₯Ό μ¬μ©ν μ μμ΅λλ€!
λ¬Έμ κ° μμΌμλ©΄ Issuesμ λ³΄κ³ ν΄μ£ΌμΈμ.
An MCP server for interacting with Slack workspaces using user tokens, without requiring bots or special permissions.
A read-only MCP server by CData that enables LLMs to query live SendGrid data. Requires the external CData JDBC Driver for SendGrid.
Allows AI agents to search Gmail threads, learn your writing style, and draft emails.
Transcribe audio files using OpenAI's Speech-to-Text API.
A Discord relay server to send messages and prompts to a channel and receive responses.
Connects a personal WhatsApp account to an AI agent using the WhatsApp Web multi-device API.
An AI-powered email intelligence platform that integrates with Gmail and OpenAI. It can be run as a CLI tool or deployed on AWS Lambda for enhanced capabilities.
Interact with Slack workspaces to read and send messages directly through your AI assistant.
Sends emails using the Resend API. Requires a Resend API key.
A bridge server connecting Model Context Protocol (MCP) with Agent-to-Agent (A2A) protocol.