loading…
Search for a command to run...
loading…
Enables AI agents to request user decisions and send notifications via Discord when human intervention is required during autonomous tasks. It supports blocking
Enables AI agents to request user decisions and send notifications via Discord when human intervention is required during autonomous tasks. It supports blocking questions with custom options, progress reporting, and persistent state for seamless remote task management.
Claude Code가 tmux Teammate 모드로 자율 작업 중, 사용자 결정이 필요한 시점에 Discord를 통해 질문하고 응답을 받아 작업을 재개하는 MCP 서버입니다.
uv가 설치되어 있으면 별도 설치 없이 바로 실행할 수 있습니다.
# GitHub에서 직접 실행
uvx --from git+https://github.com/yarang/discord-decision-mcp discord-mcp
# 또는 PyPI 설치 후
uvx discord-decision-mcp
# 저장소 클론
git clone https://github.com/yarang/discord-decision-mcp
cd discord-decision-mcp
# 의존성 설치 및 가상환경 생성
uv sync
# 실행
uv run discord-mcp
uv가 없다면:
# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# 또는 Homebrew
brew install uv
botSend Messages, Create Public Threads, Send Messages in Threads, Read Message Historycp .env.example .env
.env 파일 수정:
DISCORD_BOT_TOKEN=Bot YOUR_BOT_TOKEN
DISCORD_CHANNEL_ID=123456789012345678
PROJECT_NAME=my-project
프로젝트 루트에 .mcp.json 생성:
{
"$schema": "https://github.com/anthropics/claude-code/raw/main/schema/mcp.json",
"mcpServers": {
"discord-decision": {
"command": "uvx",
"args": ["discord-decision-mcp"],
"env": {
"DISCORD_BOT_TOKEN": "Bot YOUR_BOT_TOKEN",
"DISCORD_CHANNEL_ID": "123456789012345678",
"PROJECT_NAME": "my-project"
}
}
}
}
{
"$schema": "https://github.com/anthropics/claude-code/raw/main/schema/mcp.json",
"mcpServers": {
"discord-decision": {
"command": "uvx",
"args": ["--from", "git+https://github.com/yarang/discord-decision-mcp", "discord-mcp"],
"env": {
"DISCORD_BOT_TOKEN": "Bot YOUR_BOT_TOKEN",
"DISCORD_CHANNEL_ID": "123456789012345678",
"PROJECT_NAME": "my-project"
}
}
}
}
{
"$schema": "https://github.com/anthropics/claude-code/raw/main/schema/mcp.json",
"mcpServers": {
"discord-decision": {
"command": "uv",
"args": ["run", "--directory", "/path/to/discord-decision-mcp", "discord-mcp"],
"env": {
"DISCORD_BOT_TOKEN": "Bot YOUR_BOT_TOKEN",
"DISCORD_CHANNEL_ID": "123456789012345678",
"PROJECT_NAME": "my-project"
}
}
}
}
참고: enableAllProjectMcpServers: true 설정이 ~/.claude/settings.json에 있으면 .mcp.json의 서버들이 자동으로 로드됩니다.
사용자 결정이 필요할 때 Discord Thread에 질문 전송 후 응답 대기.
result = discord_ask_decision(
question="DB 마이그레이션을 실행할까요?",
context="v1→v2 스키마 변경. ⚠️ 되돌리기 어려움",
options=["A) 지금 실행", "B) 스테이징 먼저", "C) 보류"]
)
# result.answer → "A) 지금 실행"
진행 상황 알림.
discord_notify(
message="테스트 실행 중...",
level="info" # info/warning/success/error
)
작업 완료 리포트.
discord_report_progress(
title="배포 완료",
summary="v2.0.0 배포 성공",
details=["✅ 테스트 통과", "✅ DB 마이그레이션 완료"]
)
세션 시작 시 미해결 질문 확인.
result = discord_check_pending()
# result.has_pending → True/False
# result.pending_questions → [...]
Discord 감시 데몬이 수집한 메시지 확인 및 삭제.
result = discord_read_inbox(unread_only=True, mark_read=False)
discord_clear_inbox(read_only=True)
Claude Code 세션과 무관하게 Discord 채널을 감시하는 별도 프로세스입니다.
# tmux 세션에서 시작
./scripts/start-discord-watch.sh
# 또는 직접 실행
uv run discord-watch --interval 10
# 상태 확인
tmux attach -t discord-watch
# 중지
tmux kill-session -t discord-watch
# 테스트 실행
uv run pytest tests/ -v
# 타입 체크
uv run pyright discord_mcp/
# 포맷팅
uv run ruff format discord_mcp/
# 린트
uv run ruff check discord_mcp/
# 빌드
uv build
# TestPyPI 업로드 (테스트)
uv publish --index testpypi
# PyPI 업로드
uv publish
git tag v1.0.0
git push origin v1.0.0
MIT
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"discord-decision-mcp": {
"command": "npx",
"args": []
}
}
}Read, send and search emails from Claude
Send, search and summarize Slack messages
No-code MCP client for team chat platforms, such as Slack, Microsoft Teams, and Discord.
A community discord server dedicated to MCP by [Frank Fiegel](https://github.com/punkpeye)