索伦之眼-不和谐机器人
一个Discord机器人,具有人工智能聊天、语音TTS、《战舰世界》统计数据和用于人工智能助手的MCP(模型上下文协议)集成。
特性
- AI聊天 -由OpenRouter提供支持,拥有34+免费AI模型(Gemini、Llama、Qwen等)
- 语音TTS -具有20+Microsoft Edge神经语音的自然文本到语音
- WoWS统计数据 -从Wargaming API查找玩家统计数据和部落信息
- 节制 -禁止、踢、超时、批量删除消息
- 服务器管理 -创建渠道、角色、类别
- MCP集成 -93个AI辅助控制工具(Claude等)
- HTTP API -用于web集成的可选REST API模式
- DM支持 -Bot在私人消息中自动响应(不需要前缀)
快速开始
先决条件
- Node.js 18+
- Discord机器人令牌
- (可选)用于AI功能的OpenRouter API密钥
1.克隆和安装
git clone https://github.com/DawnReaverWOWS/TheFinalDiscordMCP.git
cd TheFinalDiscordMCP
npm install2.配置
复制示例环境文件并对其进行编辑:
cp .env.example .env编辑 .env:
# Required
DISCORD_TOKEN=your_bot_token_here
DISCORD_GUILD_ID=your_server_id_here
# AI Features (Optional but recommended)
OPENROUTER_API_KEY=your_openrouter_api_key_here
# Creator Configuration (Optional)
BOT_CREATOR_ID=your_discord_user_id
BOT_CREATOR_NAME=YourName
# Notifications (Optional)
BOT_NOTIFY_CHANNEL_ID=channel_id_for_bot_notifications3.构建和运行
npm run build
npm start对于热重载开发:
npm run dev获取Discord Bot令牌
- 首选 Discord开发者门户
- 点击“新建应用程序”并为其命名
- 转到“Bot”选项卡->“添加Bot”
- 点击“重置令牌”并复制它(这是您的
DISCORD_TOKEN) - 启用这些特权网关意图:
- 出席意向 - 服务器成员意图 - 消息内容意图
- 转到“OAuth2”->“URL生成器”
- 选择范围:
bot,applications.commands - 选择权限:
Administrator(或选择个人权限) - 复制生成的URL并打开它以邀请机器人到您的服务器
人工智能集成
使用OpenRouter访问34+免费AI模型。获取API密钥: openrouter.ai/keys.
支持的免费型号
| 模型 | 上下文 | 最适合 |
|---|---|---|
google/gemini-2.0-flash-exp:free | 1.05M | 快速、多模式(默认) |
meta-llama/llama-3.3-70b-instruct:free | 131K | 多语言聊天 |
qwen/qwen3-235b-a22b:free | 131K | 推理,100多种语言 |
nousresearch/hermes-3-llama-3.1-405b:free | 131K | 405B前沿模型 |
qwen/qwen3-coder:free | 262K | 编码任务 |
看 context/openrouterAiModels.md 查看34款免费型号的完整列表。
使用人工智能
- 提及机器人:
@BotName what's the best ship for ranked? - DM机器人:只需直接发送消息-不需要前缀
- 机器人将以上下文感知的答案进行响应
机器人命令
所有命令都使用 ! 前缀(不含前缀的DM除外)。
人工智能和聊天
| 命令 | 描述 | 示例 |
|---|---|---|
@BotName | 与AI聊天 | @BotName help me with builds |
| DM机器人 | AI自动响应 | 只需发送一条消息 |
语音
| 命令 | 描述 | 示例 |
|---|---|---|
!join | 加入语音频道 | !join War Room |
!leave | 离开语音频道 | !leave |
!say | 通过TTS朗读文本 | !say Hello everyone! |
!voices | 列出可用的TTS语音 | !voices |
!setvoice | 更改TTS语音 | !setvoice guy |
!lockvoice | 仅将语音锁定到创建者 | !lockvoice |
!unlockvoice | 为每个人解锁语音 | !unlockvoice |
!voicestatus | 检查声控锁状态 | !voicestatus |
别名: !vc (加入), !disconnect (离开), !speak/!tts (说)
可用TTS语音
20+自然微软Edge神经声音:
美国女性: 咏叹调(默认)、珍妮、萨拉、安娜、米歇尔 美国男性: 盖伊,戴维斯,托尼,杰森 英国女性: 索尼亚、梅西、利比 英国男: 瑞安、托马斯、阿尔菲 澳大利亚人: 威廉娜塔莎
战舰世界
| 命令 | 描述 | 示例 |
|---|---|---|
!wows | 查看玩家统计数据 | !wows PlayerName |
!ships | 按战斗排名前10的船只 | !ships PlayerName |
!allships | 所有船只按级别分组 | !allships PlayerName |
!clan | 查找部落信息 | !clan DROVA |
别名: !player, !lookup (对于wows), !topships (对于船舶), !claninfo, !clanlookup (氏族)
舰艇指挥选项:
- 按层筛选:
!ships PlayerName tier:10 - 按类型筛选:
!ships PlayerName type:bb(dd、ca、bb、cv、ss) - 排序选项:
!ships PlayerName sort:winrate(战斗、胜率、伤害、最近)
信息
| 命令 | 描述 |
|---|---|
!ping | 检查机器人延迟 |
!serverinfo | 服务器信息 |
!members [limit] | 列出服务器成员 |
!memberinfo @user | 获取用户信息 |
审核(需要权限)
| 命令 | 描述 | 示例 |
|---|---|---|
!ban @user [reason] | 禁止会员 | !ban @user spamming |
!unban | 取消会员资格 | !unban 123456789 |
!kick @user [reason] | 踢会员 | !kick @user warning |
!timeout @user [seconds] [reason] | 成员超时 | !timeout @user 300 cool down |
!bulkdelete | 删除邮件(1-100) | !bulkdelete 10 |
别名: !b (禁令), !k (踢腿), !mute/!to (超时), !clear/!purge (bulkdelete)
消息
| 命令 | 描述 | 示例 |
|---|---|---|
!send #channel | 发送消息 | !send #general Hello! |
!read [limit] | 阅读最近的消息 | !read 20 |
频道(仅限管理员)
| 命令 | 描述 | 示例 |
|---|---|---|
!createchannel | 创建文本频道 | !createchannel announcements |
!createvoice | 创建语音频道 | !createvoice Gaming |
!deletechannel #channel | 删除频道 | !deletechannel #old-channel |
!createcategory | 创建类别 | !createcategory Projects |
角色
| 命令 | 描述 | 示例 |
|---|---|---|
!createrole [color] | 创建角色(管理员) | !createrole VIP #ff0000 |
!addrole @user @role | 向用户添加角色(Mod) | !addrole @user @Member |
!removerole @user @role | 从用户中删除角色(Mod) | !removerole @user @Member |
效用
| 命令 | 描述 | 冷却 |
|---|---|---|
!createinvite | 创建服务器邀请 | 30s |
!exportchat | 导出频道聊天记录 | 60s |
!createthread [#channel] | 创建线程(Mod) | - |
乐趣
| 命令 | 描述 | 示例 |
|---|---|---|
!8ball | 问魔术8球 | !8ball Will I win today? |
!bread | 获取随机面包棒图片 | !bread |
别名: !breadsticks, !breadstick, !carbs
创建者模式
该机器人支持语音命令的“创建者优先级”系统:
- 集
BOT_CREATOR_ID在.env到您的Discord用户ID - 使用
!lockvoice仅将语音命令锁定到创建者 - 锁定时,只有创建者可以控制语音功能
- 使用
!unlockvoice再次允许所有人
当被问及其创建者时,机器人会高度评价他们!
MCP集成(适用于AI助理)
这个机器人还充当MCP服务器,允许像克劳德这样的人工智能助手控制Discord。
Claude桌面配置
添加到您的Claude桌面配置(~/.claude/claude_desktop_config.json):
{
"mcpServers": {
"discord": {
"command": "node",
"args": ["/path/to/FinalDiscordMCP/dist/index.js"],
"env": {
"DISCORD_TOKEN": "your_token_here",
"DISCORD_GUILD_ID": "your_server_id",
"OPENROUTER_API_KEY": "your_openrouter_key"
}
}
}
}HTTP API模式
从启用HTTP API开始:
MCP_HTTP_PORT=3001 npm start或者在HTTP-only模式下运行(没有Discord机器人,只有API):
HTTP_ONLY=true MCP_HTTP_PORT=3001 npm start环境变量
| 变量 | 必填 | 描述 |
|---|---|---|
DISCORD_TOKEN | 是 | 您的Discord机器人令牌 |
DISCORD_GUILD_ID | 否 | 默认服务器ID |
OPENROUTER_API_KEY | 否 | 用于AI功能的OpenRouter API密钥 |
OPENROUTER_MODEL | 否 | 覆盖默认AI模型 |
BOT_CREATOR_ID | 否 | 创建者的Discord用户ID(用于语音锁定) |
BOT_CREATOR_NAME | 否 | 创建者的显示名称 |
BOT_NOTIFY_CHANNEL_ID | 无 | 启动/关闭通知通道 |
BOT_OWNER_ID | 否 | DM通知的用户ID(回退) |
MCP_HTTP_PORT | 否 | 在此端口上启用HTTP API |
HTTP_ONLY | 否 | 在没有Discord机器人程序的情况下运行(仅限API) |
ENABLE_LOGGING | 否 | 启用操作日志记录 |
RATE_LIMIT_PROTECTION | 否 | 启用速率限制(默认值:true) |
项目结构
TheFinalDiscordMCP/
├── src/
│ ├── index.ts # Entry point
│ ├── discord-service.ts # Discord.js wrapper
│ ├── ai-service.ts # OpenRouter AI integration
│ ├── voice-settings.ts # TTS voice configuration
│ ├── voice-priority.ts # Creator voice lock system
│ ├── commands/
│ │ ├── decorated-commands.ts # Bot commands
│ │ └── prefix-handler.ts # Command routing & AI
│ ├── services/
│ │ └── wargaming-api.ts # WoWS API integration
│ ├── decorators/
│ │ └── prefix.ts # Command decorators
│ └── core/
│ ├── DiscordController.ts
│ ├── ConfigManager.ts
│ ├── RateLimiter.ts
│ └── ...
├── context/
│ └── openrouterAiModels.md # Full list of 34 free AI models
├── dist/ # Compiled JS
├── .env # Your config (not committed)
├── .env.example # Example config
└── package.json部署
该机器人包括用于自动部署的GitHub Actions工作流:
- 持续集成 -在所有推送、构建和测试中运行
- 部署 -在推送到主服务器时部署到VM1和VM2
看 .github/workflows/ 用于配置。
发展
# Install dependencies
npm install
# Run in dev mode (hot reload)
npm run dev
# Build for production
npm run build
# Run production build
npm start
# Type check
npx tsc --noEmit许可证
麻省理工学院-参见 许可证
