Discord集成服务器

MCP服务器用于Discord集成,支持D&D会话监控、消息记录、语音转录等功能。

  • by Zdendys79
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 Zdendys79/mcp-server-discord

使用说明

mcp服务器不一致

用于Discord与D&D会话监控集成的MCP服务器(Draci Hlidka)。

建筑

两个独立的过程:

  1. 机器人守护程序 (bot.ts)-在base7上通过PM2全天候运行

    • 连接到Discord网关(WebSocket)
    • 将所有来自受监控频道的消息记录到MariaDB
    • 首次联系时向新用户发送介绍DM
    • 处理斜线命令(请参见 机器人命令)
    • SIGTERM上的优雅关机
  2. MCP服务器 (mcp-server.ts)-通过SSH从Claude Code按需启动

    • 从MariaDB读取消息(由机器人守护进程填充)
    • 通过Discord REST API发送消息
    • MCP协议的stdio传输

设置

先决条件

  • Node.js 22+
  • MariaDB discord_dh 数据库
  • Discord机器人令牌

安装

npm install
npm run build

数据库

mysql -u claude -p < sql/schema.sql

环境变量

export DISCORD_BOT_TOKEN="your-token"
export DB_HOST="127.0.0.1"
export DB_PORT="3306"
export DB_USER="claude"
export DB_PASS="your-password"
export DB_NAME="discord_dh"

运行机器人守护程序(PM2)

pm2 start dist/bot.js --name mcp-server-discord-bot
pm2 save

MCP客户端配置(基于jz的Claude代码)

{
  "mcpServers": {
    "discord": {
      "command": "ssh",
      "args": ["remotes@base7", "bash", "/home/remotes/mcp-server-discord/run-mcp.sh"]
    }
  }
}

机器人命令

Slash由bot守护进程处理的命令。调度用途 switch(true) 在 bot.ts –添加新命令需要:handler in commands.ts,开关中的情况,进入 isCommand(),并进入 COMMANDS_MESSAGE.

命令 描述
/botka [text] 向Claude发送查询(也可:提及或DM)
/nahravej 加入语音频道并录制音频(无转录)
/prepis 加入语音频道,录制+转录
/prepis stop /prepis konec
/prepis status /prepis stav
/anketa Otázka | A | B 创建带有表情符号反应的民意调查
/botka_status 显示用户的交互统计数据
/botka_disable /zakaz
/botka_intro 发送DM介绍(功能概述)
/botka_prikazy 向DM发送详细的命令列表
/stop 紧急停止(记录+待处理查询)

用户入职培训

在第一次接触(任何DM或斜线命令)时,Botka会自动发送一个介绍DM。 在中跟踪已知用户 knownUsers 设置,启动时从数据库填充。 用户可以随时通过以下方式重新请求介绍 /botka_intro.

MCP工具

工具 说明
discord_read_messages 阅读频道的最新消息
discord_send_message 向频道发送消息
discord_search_messages 跨邮件进行全文搜索
discord_list_channels 列出受监控的频道
discord_get_channel_history 获取某个日期范围内的消息
discord_add_channel 将通道添加到监控中
discord_bot_status Bot和数据库统计