discord-mcp
Discord MCP 서버
90개 이상의 도구를 갖춘 경량 멀티 길드 Discord MCP 서버
Claude Desktop, Claude Code, Cursor, VS Code Copilot 또는 모든 MCP 호환 클라이언트에서 Discord 서버 전체를 관리하세요. 자연어를 통해 메시지, 채널, 역할, 권한, 관리, 포럼, 웹훅 등을 제어할 수 있습니다.
왜 이 서버인가요?
90개 이상의 도구 — 메시지, 채널, 역할, 권한, 관리, 포럼, 웹훅, 예약된 이벤트, 초대, DM, 임베드 등
멀티 길드 — 여러 서버에서 작동하며
GUILD_ID에 종속되지 않음경량 — TypeScript + Node.js, 약 25kB 패키지, 약 73MB Docker 이미지 (Java 대안의 400MB+ 대비)
모듈형 — 깔끔한 아키텍처, 새로운 도구로 쉽게 확장 가능
두 가지 설치 방법 — npm 또는 Docker 중 선택 가능
빠른 시작
MCP 클라이언트 설정에 다음을 추가하고 YOUR_TOKEN_HERE를 봇 토큰으로 바꾸세요:
{
"mcpServers": {
"discord": {
"command": "npx",
"args": ["-y", "@pasympa/discord-mcp"],
"env": {
"DISCORD_TOKEN": "YOUR_TOKEN_HERE"
}
}
}
}설치가 필요 없습니다 — npx가 모든 것을 처리합니다.
아직 봇이 없나요? Discord 봇 만들기를 참조하세요.
설정
위 설정을 claude_desktop_config.json에 추가하세요:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
저장 후 Claude Desktop을 다시 시작하세요.
claude mcp add discord -e DISCORD_TOKEN=YOUR_TOKEN_HERE -- npx -y @pasympa/discord-mcp위 설정을 ~/.cursor/mcp.json에 추가하세요. 자세한 내용은 Cursor MCP 문서를 참조하세요.
.vscode/mcp.json에 추가하세요:
{
"inputs": [
{
"type": "promptString",
"id": "discord-token",
"description": "Discord Bot Token",
"password": true
}
],
"servers": {
"discord": {
"command": "npx",
"args": ["-y", "@pasympa/discord-mcp"],
"env": {
"DISCORD_TOKEN": "${input:discord-token}"
}
}
}
}자세한 내용은 VS Code MCP 문서를 참조하세요.
{
"mcpServers": {
"discord": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"-e", "DISCORD_TOKEN=YOUR_TOKEN_HERE",
"pasympa/discord-mcp:latest"
]
}
}
}git clone https://github.com/PaSympa/discord-mcp
cd discord-mcp
npm install && npm run build{
"mcpServers": {
"discord": {
"command": "node",
"args": ["/absolute/path/to/discord-mcp/dist/index.js"],
"env": {
"DISCORD_TOKEN": "YOUR_TOKEN_HERE"
}
}
}
}MCP 설정에 토큰을 전달하는 대신 프로젝트 루트에 .env 파일을 만드세요:
DISCORD_TOKEN=YOUR_TOKEN_HERE서버는 dotenv를 통해 .env를 자동으로 로드합니다.
Discord 봇 만들기
New Application > 이름을 지정합니다.
Bot 탭 > Reset Token > 토큰을 복사합니다.
Privileged Gateway Intents를 활성화합니다:
Server Members Intent
Message Content Intent
OAuth2 > URL Generator:
Scopes:
botPermissions:
Send Messages,Read Message History,Manage Channels,Manage Roles,Kick Members,Ban Members,Moderate Members,View Audit Log,Manage Messages,Manage Threads,Add Reactions,Manage Guild,Manage Webhooks,Manage Events,Create Instant Invite
생성된 URL을 복사하여 봇을 서버에 초대합니다.
사용 가능한 도구 (91)
탐색 및 이동
도구 | 설명 |
| 봇이 연결된 모든 서버 나열 |
| 상세 길드 정보 가져오기 (이름, 멤버, 채널, 역할, 부스트) |
| 카테고리별로 그룹화된 길드의 모든 채널 나열 |
| 이름으로 채널 찾기 (부분 일치) |
메시지 (18개 도구)
도구 | 설명 |
| 텍스트 채널에서 최근 N개의 메시지 읽기 |
| 일반 텍스트 메시지 보내기 |
| 특정 메시지에 답장하기 |
| 봇이 보낸 메시지 수정하기 |
| 특정 메시지 삭제하기 |
| 메시지에 반응 이모지 추가하기 |
| 반응 제거 (전체, 이모지별 또는 사용자별) |
| 특정 이모지로 반응한 사용자 나열 |
| 메시지에서 또는 독립적으로 스레드 생성 |
| 여러 메시지를 한 번에 삭제 (2-100개) |
| 모든 옵션을 포함한 리치 임베드 보내기 |
| 봇이 이전에 보낸 임베드 수정하기 |
| 한 메시지에 최대 10개의 임베드 보내기 |
| 메시지 고정 또는 고정 해제 |
| 채널의 모든 고정된 메시지 나열 |
| 키워드로 메시지 검색 (최근 100개) |
| 공지 채널 팔로워에게 메시지 게시 |
| 다른 채널로 메시지 전달 |
채널 (8개 도구)
도구 | 설명 |
| 텍스트, 음성 채널 또는 카테고리 생성 |
| 채널 삭제 |
| 이름, 주제, 슬로우모드, NSFW 플래그 수정 |
| 채널을 카테고리로 이동/제거 |
| 권한을 포함하여 채널 복제 |
| 카테고리 내 표시 위치 설정 |
| 공지 채널 팔로우 |
| 상위 카테고리와 권한 동기화 |
채널 권한 (6개 도구)
도구 | 설명 |
| 채널의 모든 권한 덮어쓰기 나열 |
| 채널에서 역할에 대한 권한 허용/거부 |
| 채널에서 멤버에 대한 권한 허용/거부 |
| 모든 덮어쓰기 제거 (상속으로 재설정) |
| 한 채널에서 다른 채널로 덮어쓰기 복사 |
| 모든 채널에 대한 전체 권한 감사 |
멤버 (11개 도구)
도구 | 설명 |
| 역할과 함께 길드 멤버 나열 |
| 상세 멤버 정보 (역할, 권한, 가입일) |
| 사용자 이름 또는 별명으로 멤버 검색 |
| 멤버의 별명 설정 또는 삭제 |
| 멤버 추방 |
| 멤버 차단 (선택적으로 최근 메시지 삭제) |
| 사용자 차단 해제 |
| 여러 사용자를 한 번에 차단 (레이드 방지) |
| 차단된 모든 사용자 나열 |
| 멤버 타임아웃 (0은 제거) |
| 비활성 멤버 제거 (드라이 런 포함) |
역할 (9개 도구)
도구 | 설명 |
| 권한 및 멤버 수를 포함한 모든 역할 나열 |
| 새 역할 생성 |
| 역할 수정 (이름, 색상, 권한, 호이스트, 언급 가능 여부) |
| 역할 삭제 |
| 멤버에게 역할 할당 |
| 멤버에게서 역할 제거 |
| 특정 역할을 가진 모든 멤버 나열 |
| 계층 구조에서 역할 위치 변경 |
| 역할에 사용자 지정 아이콘 또는 유니코드 이모지 설정 |
포럼 (10개 도구)
도구 | 설명 |
| 길드의 모든 포럼 채널 나열 |
| 새 포럼 채널 생성 |
| 포럼에 게시물/스레드 생성 |
| 게시물 세부 정보 및 메시지 가져오기 |
| 스레드 나열 (활성 + 보관됨) |
| 포럼 게시물에 답장 |
| 포럼 스레드 삭제 |
| 사용 가능한 태그 가져오기 |
| 포럼 태그 설정/업데이트 |
| 제목, 보관, 잠금, 태그 업데이트 |
웹훅 (8개 도구)
도구 | 설명 |
| 채널에 웹훅 생성 |
| 웹훅을 통해 보내기 (사용자 지정 이름/아바타, 임베드) |
| 웹훅의 이름, 아바타 또는 채널 수정 |
| 웹훅 삭제 |
| 채널 또는 길드의 웹훅 나열 |
| 웹훅이 보낸 메시지 수정 |
| 웹훅이 보낸 메시지 삭제 |
| 특정 웹훅 메시지 가져오기 |
예약된 이벤트 (7개 도구)
도구 | 설명 |
| 길드의 모든 예약된 이벤트 나열 |
| 예약된 이벤트에 대한 상세 정보 가져오기 |
| 음성, 스테이지 또는 외부 이벤트 생성 |
| 기존 예약된 이벤트 수정 |
| 예약된 이벤트 삭제 |
| "관심 있음"으로 표시한 사용자 가져오기 |
| 이벤트에 연결된 초대 생성 |
다이렉트 메시지
도구 | 설명 |
| 사용자 ID로 사용자에게 다이렉트 메시지 보내기 |
초대 (5개 도구)
도구 | 설명 |
| 길드의 모든 활성 초대 나열 |
| 특정 채널에 대한 초대 나열 |
| 코드로 초대 세부 정보 가져오기 |
| 채널에 대한 초대 링크 생성 |
| 초대 취소 |
관리 및 심사
도구 | 설명 |
| 길드 감사 로그 가져오기 |
| 멤버십 심사 양식 가져오기 |
| 새 멤버에 대한 심사 규칙 업데이트 |
통계
도구 | 설명 |
| 서버 통계: 멤버, 채널, 역할, 부스트 레벨 |
사용 예시
"List all servers the bot is in"
"Read the last 10 messages in #general"
"Send 'Hello everyone!' to the announcements channel"
"Create a forum channel called 'feedback' with tags Bug, Feature, Question"
"Show the full permission audit for the server"
"Create a webhook on #notifications and send a test message"
"Ban user 112233445566 and delete their messages from the last 3 days"
"Create an event called 'Game Night' for next Friday at 8pm"
"List all upcoming events in the server"
"Create a permanent invite for #general"
"List all active invites and delete expired ones"
"Send a DM to user 112233445566 saying 'Your build passed!'"
"Search for members named 'john'"
"List all banned users in the server"
"Show all pinned messages in #general"
"Forward that message to #announcements"Discord ID 찾기
Discord에서 개발자 모드를 활성화하세요:
설정 > 고급 > 개발자 모드
그런 다음 서버, 채널 또는 사용자를 마우스 오른쪽 버튼으로 클릭 > ID 복사를 선택하세요.
프로젝트 구조
discord-mcp/
├── src/
│ ├── index.ts ← Entry point (MCP server + transport)
│ ├── client.ts ← Discord client + shared helpers
│ ├── constants.ts ← Shared constants (limits, defaults)
│ └── tools/
│ ├── index.ts ← Tool registry
│ ├── types.ts ← Shared TypeScript interfaces
│ ├── discovery.ts ← Guild/channel discovery
│ ├── messages.ts ← Message CRUD, reactions, threads, embeds
│ ├── channels.ts ← Channel management
│ ├── permissions.ts ← Permission overwrites
│ ├── members.ts ← Member management
│ ├── roles.ts ← Role CRUD and assignment
│ ├── moderation.ts ← Audit log
│ ├── screening.ts ← Membership screening
│ ├── stats.ts ← Server statistics
│ ├── forums.ts ← Forum channels, posts, tags
│ ├── webhooks.ts ← Webhook management
│ ├── scheduledEvents.ts ← Scheduled events
│ ├── invites.ts ← Invite management
│ └── dm.ts ← Direct messages
├── .github/workflows/ ← CI/CD (build check + auto release)
├── Dockerfile
├── .dockerignore
├── .env.example
├── package.json
├── tsconfig.json
├── CHANGELOG.md
├── CONTRIBUTING.md
├── SECURITY.md
└── README.md새로운 도구 추가하기
src/tools/에 새 파일 생성 (예:events.ts)definitions(도구 스키마) 및handle()(도구 로직) 내보내기src/tools/index.ts의modules배열에 가져와서 추가하기
보안
Discord 토큰을 Git에 커밋하지 마세요
환경 변수나
.env파일(버전 관리 제외)을 사용하세요봇에게 필요한 권한만 부여하세요
기여하기
기여를 환영합니다!
저장소를 포크하세요
기능 브랜치 생성 (
git checkout -b feature/my-feature)모듈형 구조를 따르세요 — 새로운 도구 추가하기 참조
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/PaSympa/discord-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server