discord-mcp

discord-mcp

MCP server for interacting with Discord via REST API, enabling guild, channel, and message operations using a bot token.

Category
访问服务器

README

discord-mcp

MCP server that wraps a subset of the Discord REST API v10 using a bot token.

Security

  • Never commit the bot token. Pass DISCORD_BOT_TOKEN only via your MCP client env block (see examples/).
  • If a token was pasted into chat or committed anywhere, reset it in the Discord Developer Portal and use the new token locally.

Tools

Tool Description
verify GET /users/@me
list_guilds GET /users/@me/guilds
get_guild GET /guilds/{id}
list_guild_channels GET /guilds/{id}/channels
get_channel GET /channels/{id}
list_channel_messages GET /channels/{id}/messages
create_channel_message POST /channels/{id}/messages

Gateway intents (Presence, Server Members, Message Content) apply to the Gateway websocket. This MCP uses HTTP only; channel permissions still apply (e.g. Read Message History, Send Messages).

Reply bot (auto-replies on Discord)

The MCP alone cannot listen for messages. For DMs and @mentions (and replies to the bot when Discord fills the reference), run the optional Gateway bot:

  1. In the Developer Portal → your app → Bot, enable Message Content Intent (Privileged Gateway Intents).
  2. Install extras and start the process (keep this terminal open, or run under tmux / a process manager):
cd projects/discord-mcp
source .venv/bin/activate
pip install -e ".[reply-bot]"
export DISCORD_BOT_TOKEN='…'   # same token as MCP
python -m discord_mcp.reply_bot
# or: discord-reply-bot

uvx のデフォルトでは reply-bot 用の discord.py は入りません。リポジトリを clone しない場合は例えば次でも可です。

pip install "discord-mcp[reply-bot] @ git+https://github.com/taka392/discord-mcp.git"
DISCORD_BOT_TOKEN='…' discord-reply-bot

Behavior:

  • CURSOR_AGENT_GATEWAY_URL が未設定: DM → 短文の確認エコー。サーバー → @メンション/ボットへの返信で「返信テスト」エコーのみ。
  • CURSOR_AGENT_GATEWAY_URL を設定cursor-cli-homelabagent-gatewayPOST /v1/prompt と同じ): 上記と同じトリガで、プロンプトをゲートウェイ経由で agent -p に渡し、標準出力を Discord に返信します(長文は自動で分割)。
    • .env: CURSOR_AGENT_GATEWAY_URL, GATEWAY_TOKEN(ゲートウェイでトークン必須のとき)、CURSOR_GATEWAY_TRUST_WORKSPACE, CURSOR_GATEWAY_TIMEOUT_SEC, 任意で CURSOR_GATEWAY_PROMPT_PREFIX
    • ゲートウェイ側に CURSOR_API_KEY が必要です。CLI の MCP を確認なしで通したいときはゲートウェイの環境に AGENT_APPROVE_MCPS=true--approve-mcps)を設定。Agent 既定-p、IDE の Ask モードではない)で動きますが、「Auto」と完全同一ではなくツール許可/サンドボックス次第です。
  • DMサーバー(@またはボットへの返信) の両方でゲートウェイ連携あり。

Docker(Proxmox 上の VM / LXC など)

docker composediscord-reply-botagent-gateway の 2 サービスです(agent_gateway/cursor-cli-homelab のゲートウェイと手動で同期)。

  • CURSOR_AGENT_GATEWAY_URL は既定サンプルのとおり http://agent-gateway:9888。同一 Compose のブリッジ内で名前解決するため、192.168.11.xx別ホストに向ける必要はありません(向けていてそこでゲートウェイが止まっていると「接続できません」になります)。
  • ホストに 9888 を公開するので、Mac の MCP で CURSOR_HOMELAB_URL=http://<この VM の LAN IP>:9888 とすれば、cursor-homelab-mcp もこのゲートウェイを共有可能です。
  • .env は両コンテナに読み込まれるので、DISCORD_BOT_TOKENCURSOR_API_KEYGATEWAY_TOKEN は Git に載せないこと。

ゲスト側の手順例:

git clone https://github.com/taka392/discord-mcp.git
cd discord-mcp
./scripts/homelab_docker_up.sh
# 初回は .env が無いので .env.example がコピーされる → DISCORD_BOT_TOKEN / CURSOR_API_KEY / GATEWAY_TOKEN 等を編集して再度

手動でも同じです。

cp .env.example .env
# edit .env (必須: DISCORD_BOT_TOKEN, CURSOR_API_KEY …)
docker compose up -d --build
docker compose logs -f

停止・更新:

docker compose down
docker compose up -d --build

restart: unless-stopped なのでゲスト再起動後もコンテナが戻る(Docker が起動時に有効な前提)。

Proxmox QEMU VM(ゲストエージェント経由)

Mac などから Proxmox API + QEMU Guest Agent で VM 内に clone・.env 同期・docker compose up -d --build まで一括できます(VM に Docker / git / agent が入っていること)。

  1. Cursor の ~/.cursor/mcp.jsonmcpServers.discord.env.DISCORD_BOT_TOKEN を用意する(または環境変数 DISCORD_BOT_TOKEN)。
  2. proxmox-mcp と同じ PROXMOX_* をシェルにエクスポートする。
  3. リポジトリで実行:
cd projects/discord-mcp
python3 scripts/deploy_guest_exec.py --vmid 100

ゲストが root のみ(ubuntu ユーザーなし)の場合は既定で /root/discord-mcp に置きます。cloud-init で ubuntu がある場合は
--unix-user ubuntu --repo-dir /home/ubuntu/discord-mcp を付けてください。初回 Docker ビルドが長いときは --timeout 900 など。

Mac などから homelab へ SSH でデプロイ

scripts/deploy_remote.sh は次まで一気に実行します: リモートで git pull → ローカルの Cursor mcp.json からトークンを読む → scp でリモートの .env を上書き → homelab_docker_up.sh(Docker)

  • デフォルトで ~/.cursor/mcp.jsonmcpServers.discord.env.DISCORD_BOT_TOKEN を使う。
  • 別ファイルなら export MCP_JSON_PATH='/path/to/mcp.json'
  • mcp.json を使わず一時的に上書きしたいだけなら export DISCORD_BOT_TOKEN='…'(その場合は mcp.json は読まない)。
cd /path/to/discord-mcp   # clone 済みのどこでも可
export HOMELAB_SSH='you@192.168.x.x'          # 必須
# optional: export HOMELAB_REPO_DIR='/srv/discord-mcp'
# optional: export HOMELAB_SSH_OPTS='-i ~/.ssh/id_ed25519'
# optional: export MCP_JSON_PATH="$HOME/.cursor/mcp.json"
./scripts/deploy_remote.sh

注意: デプロイのたびにリモートの .env はローカル設定と同期される(トークンを homelab だけで管理したい場合はサーバー上で homelab_docker_up.sh だけ使う)。

Discord から 「ゲートウェイが利用できません (503)」 と出るときは、コンテナ内で CURSOR_API_KEY が空なことが多いです(Headless CLI の API キーを homelab の .env に入れる)。

Mac から Proxmox で VM100 に流し込む例::

export CURSOR_API_KEY='crsr_...'   # Cursor ダッシュボードで発行
export PROXMOX_BASE_URL=... PROXMOX_TOKEN_ID=... PROXMOX_TOKEN_SECRET=... PROXMOX_VERIFY_TLS=false
python3 scripts/push_gateway_env_guest_exec.py --vmid 100

Local check

cd projects/discord-mcp
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
DISCORD_BOT_TOKEN='your token' python -m discord_mcp.check

Cursor registration

After publishing to GitHub, merge the snippet from examples/cursor_mcp_config.example.json into ~/.cursor/mcp.json and reload Cursor.

License

MIT

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选