Provides 93 tools for comprehensive Discord server management, including AI-powered chat responses, voice TTS with 20+ neural voices, moderation capabilities (ban, kick, timeout, bulk delete), channel and role management, message operations, and server information retrieval.
Eye of Sauron - Discord Bot
A Discord bot with AI-powered chat, voice TTS, World of Warships stats, and MCP (Model Context Protocol) integration for AI assistants.
Features
AI Chat - Powered by OpenRouter with 34+ free AI models (Gemini, Llama, Qwen, etc.)
Voice TTS - Natural text-to-speech with 20+ Microsoft Edge neural voices
WoWS Stats - Look up player stats and clan info from Wargaming API
Moderation - Ban, kick, timeout, bulk delete messages
Server Management - Create channels, roles, categories
MCP Integration - 93 tools for AI assistant control (Claude, etc.)
HTTP API - Optional REST API mode for web integrations
DM Support - Bot responds automatically in private messages (no prefix needed)
Quick Start
Prerequisites
Node.js 18+
A Discord bot token
(Optional) OpenRouter API key for AI features
1. Clone & Install
2. Configure
Copy the example environment file and edit it:
Edit .env:
3. Build & Run
For development with hot reload:
Getting a Discord Bot Token
Go to Discord Developer Portal
Click "New Application" and give it a name
Go to "Bot" tab -> "Add Bot"
Click "Reset Token" and copy it (this is your
DISCORD_TOKEN)Enable these Privileged Gateway Intents:
Presence Intent
Server Members Intent
Message Content Intent
Go to "OAuth2" -> "URL Generator"
Select scopes:
bot,applications.commandsSelect permissions:
Administrator(or select individual permissions)Copy the generated URL and open it to invite the bot to your server
AI Integration
Uses OpenRouter to access 34+ free AI models. Get your API key at openrouter.ai/keys.
Supported Free Models
Model | Context | Best For |
| 1.05M | Fast, multimodal (default) |
| 131K | Multilingual chat |
| 131K | Reasoning, 100+ languages |
| 131K | 405B frontier model |
| 262K | Coding tasks |
See context/openrouterAiModels.md for the full list of 34 free models.
Using AI
Mention the bot:
@BotName what's the best ship for ranked?DM the bot: Just send a message directly - no prefix needed
The bot will respond with context-aware answers
Bot Commands
All commands use the ! prefix (except DMs which work without prefix).
AI & Chat
Command | Description | Example |
| Chat with AI |
|
DM the bot | AI responds automatically | Just send a message |
Voice
Command | Description | Example |
| Join a voice channel |
|
| Leave voice channel |
|
| Speak text via TTS |
|
| List available TTS voices |
|
| Change TTS voice |
|
| Lock voice to creator only |
|
| Unlock voice for everyone |
|
| Check voice lock status |
|
Aliases: !vc (join), !disconnect (leave), !speak/!tts (say)
Available TTS Voices
20+ natural Microsoft Edge neural voices:
US Female: aria (default), jenny, sara, ana, michelle US Male: guy, davis, tony, jason UK Female: sonia, maisie, libby UK Male: ryan, thomas, alfie Australian: natasha, william
World of Warships
Command | Description | Example |
| Look up player stats |
|
| Top 10 ships by battles |
|
| ALL ships grouped by tier |
|
| Look up clan info |
|
Aliases: !player, !lookup (for wows), !topships (for ships), !claninfo, !clanlookup (for clan)
Ships Command Options:
Filter by tier:
!ships PlayerName tier:10Filter by type:
!ships PlayerName type:bb(dd, ca, bb, cv, ss)Sort options:
!ships PlayerName sort:winrate(battles, winrate, damage, recent)
Info
Command | Description |
| Check bot latency |
| Server information |
| List server members |
| Get user information |
Moderation (Requires Permissions)
Command | Description | Example |
| Ban a member |
|
| Unban a member |
|
| Kick a member |
|
| Timeout a member |
|
| Delete messages (1-100) |
|
Aliases: !b (ban), !k (kick), !mute/!to (timeout), !clear/!purge (bulkdelete)
Messages
Command | Description | Example |
| Send a message |
|
| Read recent messages |
|
Channels (Admin Only)
Command | Description | Example |
| Create text channel |
|
| Create voice channel |
|
| Delete a channel |
|
| Create a category |
|
Roles
Command | Description | Example |
| Create a role (Admin) |
|
| Add role to user (Mod) |
|
| Remove role from user (Mod) |
|
Utility
Command | Description | Cooldown |
| Create server invite | 30s |
| Export channel chat log | 60s |
| Create a thread (Mod) | - |
Fun
Command | Description | Example |
| Ask the magic 8-ball |
|
| Get a random breadstick picture |
|
Aliases: !breadsticks, !breadstick, !carbs
Creator Mode
The bot supports a "creator priority" system for voice commands:
Set
BOT_CREATOR_IDin.envto your Discord user IDUse
!lockvoiceto lock voice commands to creator onlyWhile locked, only the creator can control voice features
Use
!unlockvoiceto allow everyone again
When asked about its creator, the bot will speak highly of them!
MCP Integration (For AI Assistants)
This bot also functions as an MCP server, allowing AI assistants like Claude to control Discord.
Claude Desktop Configuration
Add to your Claude Desktop config (~/.claude/claude_desktop_config.json):
HTTP API Mode
Start with HTTP API enabled:
Or run in HTTP-only mode (no Discord bot, just API):
Environment Variables
Variable | Required | Description |
| Yes | Your Discord bot token |
| No | Default server ID |
| No | OpenRouter API key for AI features |
| No | Override default AI model |
| No | Creator's Discord user ID (for voice lock) |
| No | Creator's display name |
| No | Channel for startup/shutdown notifications |
| No | User ID for DM notifications (fallback) |
| No | Enable HTTP API on this port |
| No | Run without Discord bot (API only) |
| No | Enable operation logging |
| No | Enable rate limiting (default: true) |
Project Structure
Deployment
The bot includes GitHub Actions workflows for automated deployment:
CI - Runs on all pushes, builds and tests
Deploy - Deploys to VM1 and VM2 on push to main
See .github/workflows/ for configuration.
Development
License
MIT - See LICENSE