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 saveMCP客户端配置(基于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 | 撤销记录同意(GDPR) | |
/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和数据库统计 |
