使用说明
mcp服务器不一致
用于Discord与D&D会话监控集成的MCP服务器(Draci Hlidka)。
建筑
两个独立的过程:
-
机器人守护程序 (
bot.ts)-在base7上通过PM2全天候运行- 连接到Discord网关(WebSocket)
- 将所有来自受监控频道的消息记录到MariaDB
- 首次联系时向新用户发送介绍DM
- 处理斜线命令(请参见 机器人命令)
- SIGTERM上的优雅关机
-
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和数据库统计 |