limitless-reign-mcp
A Discord MCP server SDK that connects AI assistants like Claude and ChatGPT to Discord, providing over 100 tools for natural language control of Discord servers, including channel, message, member, and role management.
README
Limitless Reign MCP
AI-Powered Discord Bot Control | 100+ Tools | Works with Claude, ChatGPT, Cursor
<p align="center"> <img src="https://img.shields.io/npm/v/limitless-reign-mcp?style=for-the-badge&color=5865F2" alt="npm" /> <img src="https://img.shields.io/npm/dm/limitless-reign-mcp?style=for-the-badge&color=57F287" alt="downloads" /> <img src="https://img.shields.io/github/stars/aayushchouhan24/limitless-reign?style=for-the-badge&color=FEE75C" alt="stars" /> <img src="https://img.shields.io/badge/discord.js-v14-5865F2?style=for-the-badge" alt="discord.js" /> </p>
<p align="center"> <strong>Let AI manage your Discord server with natural language</strong> </p>
<p align="center"> <a href="#-one-command-setup">Quick Start</a> • <a href="#-what-ai-can-do">Features</a> • <a href="#-all-116-tools">All Tools</a> • <a href="#-connect-any-ai">Connect AI</a> • <a href="https://github.com/aayushchouhan24/limitless-reign-mcp/issues">Support</a> </p>
Why Limitless Reign MCP?
Stop writing Discord bot commands. Just tell AI what you want.
You: "Set up my gaming server with channels and automod"
AI: ✓ Created #rules, #announcements, #general
✓ Created Gaming voice channels
✓ Set up automod for spam/slurs
✓ Created Moderator and Member roles
Done! Your server is ready.
The most complete Discord MCP integration:
- 116 Discord tools - Every Discord.js v14 API
- Any AI client - Claude, ChatGPT, Cursor, Windsurf, GPT Actions
- Zero config - One command to start
- Open source - MIT license, free forever
🚀 One Command Setup
npx limitless-reign --token YOUR_BOT_TOKEN
That's it. Server runs at http://localhost:3000. Connect your AI and go.
<details> <summary><strong>Get your bot token</strong></summary>
- Go to discord.com/developers/applications
- Create app or select existing
- Go to Bot → Reset Token → Copy
- Add bot to server with Administrator permission
</details>
🎯 What AI Can Do
Messages & Content
| Ask AI | What Happens |
|---|---|
| "Announce the new update in #general" | Sends formatted message |
| "Create a poll: What game tonight?" | Creates interactive poll |
| "Delete spam from the last hour" | Bulk deletes messages |
| "Pin the rules message" | Pins to channel |
Server Setup
| Ask AI | What Happens |
|---|---|
| "Create a gaming server layout" | Creates categories + channels |
| "Set up roles for staff and members" | Creates role hierarchy |
| "Make #admin visible only to mods" | Sets channel permissions |
| "Add automod to block spam" | Creates automod rules |
Member Management
| Ask AI | What Happens |
|---|---|
| "Timeout toxic_user for 1 day" | Applies timeout |
| "Give VIP role to our supporters" | Adds roles to members |
| "Kick inactive members" | Removes members |
| "Who has the Admin role?" | Lists members |
Advanced
| Ask AI | What Happens |
|---|---|
| "Create a /announce command" | Registers slash command |
| "Set up a webhook for alerts" | Creates webhook |
| "Schedule game night for Friday" | Creates event |
| "Add trending emojis from emoji.gg" | Imports emojis |
📋 All 116 Tools
<details> <summary><strong>Bot & Connection (5)</strong></summary>
| Tool | Description |
|---|---|
discord_get_bot_info |
Bot info, server count, uptime |
discord_get_gateway_info |
Connection status, ping |
discord_set_presence |
Online/idle/dnd/invisible |
discord_set_activity |
Playing/streaming/listening |
discord_disconnect |
Disconnect bot |
</details>
<details> <summary><strong>Servers (16)</strong></summary>
| Tool | Description |
|---|---|
get_allowed_guilds |
List your servers |
discord_list_guilds |
List accessible servers |
discord_get_guild |
Server details |
discord_edit_guild |
Edit server settings |
discord_get_guild_channels |
List channels |
discord_get_guild_roles |
List roles |
discord_get_guild_emojis |
List emojis |
discord_get_guild_stickers |
List stickers |
discord_get_guild_invites |
List invites |
discord_get_guild_webhooks |
List webhooks |
discord_get_guild_bans |
List bans |
discord_get_audit_log |
Audit log |
discord_get_vanity_url |
Vanity URL |
discord_leave_guild |
Leave server |
discord_apply_template |
Apply template |
</details>
<details> <summary><strong>Channels (7)</strong></summary>
| Tool | Description |
|---|---|
discord_create_channel |
Create any channel type |
discord_edit_channel |
Edit settings |
discord_delete_channel |
Delete channel |
discord_clone_channel |
Clone with settings |
discord_set_channel_permissions |
Set permissions |
discord_create_invite |
Create invite |
</details>
<details> <summary><strong>Threads (5)</strong></summary>
| Tool | Description |
|---|---|
discord_create_thread |
Create thread |
discord_create_forum_post |
Create forum post |
discord_edit_thread |
Edit thread |
discord_delete_thread |
Delete thread |
discord_get_active_threads |
List active threads |
</details>
<details> <summary><strong>Messages (14)</strong></summary>
| Tool | Description |
|---|---|
discord_send_message |
Send with embeds/buttons |
discord_send_embed |
Rich embed |
discord_send_components_v2 |
Components V2 |
discord_edit_message |
Edit message |
discord_delete_message |
Delete message |
discord_bulk_delete_messages |
Bulk delete |
discord_get_messages |
Fetch messages |
discord_pin_message |
Pin |
discord_unpin_message |
Unpin |
discord_add_reaction |
Add reaction |
discord_remove_reaction |
Remove reaction |
discord_create_poll |
Create poll |
</details>
<details> <summary><strong>Members (16)</strong></summary>
| Tool | Description |
|---|---|
discord_get_member |
Member info |
discord_search_members |
Search members |
discord_list_members |
List members |
discord_kick_member |
Kick |
discord_ban_member |
Ban |
discord_unban_member |
Unban |
discord_timeout_member |
Timeout |
discord_remove_timeout |
Remove timeout |
discord_add_role |
Add role |
discord_remove_role |
Remove role |
discord_set_nickname |
Set nickname |
discord_move_member_voice |
Move to voice |
discord_disconnect_member |
Disconnect from voice |
discord_server_mute_member |
Server mute |
discord_server_deafen_member |
Server deafen |
</details>
<details> <summary><strong>Roles (4)</strong></summary>
| Tool | Description |
|---|---|
discord_create_role |
Create role |
discord_edit_role |
Edit role |
discord_delete_role |
Delete role |
discord_list_permissions |
List permissions |
</details>
<details> <summary><strong>Emojis & Stickers (6)</strong></summary>
| Tool | Description |
|---|---|
discord_create_emoji |
Create emoji |
discord_delete_emoji |
Delete emoji |
discord_create_sticker |
Create sticker |
discord_delete_sticker |
Delete sticker |
discord_search_emojigg |
Search emoji.gg |
discord_add_emojigg |
Add from emoji.gg |
</details>
<details> <summary><strong>Webhooks (3)</strong></summary>
| Tool | Description |
|---|---|
discord_create_webhook |
Create |
discord_delete_webhook |
Delete |
discord_execute_webhook |
Send via webhook |
</details>
<details> <summary><strong>AutoMod (3)</strong></summary>
| Tool | Description |
|---|---|
discord_get_automod_rules |
List rules |
discord_create_automod_rule |
Create rule |
discord_delete_automod_rule |
Delete rule |
</details>
<details> <summary><strong>Events (3)</strong></summary>
| Tool | Description |
|---|---|
discord_create_scheduled_event |
Create event |
discord_get_scheduled_events |
List events |
discord_delete_scheduled_event |
Delete event |
</details>
<details> <summary><strong>Slash Commands (6)</strong></summary>
| Tool | Description |
|---|---|
discord_create_global_command |
Create global |
discord_create_guild_command |
Create guild |
discord_delete_global_command |
Delete global |
discord_delete_guild_command |
Delete guild |
discord_get_global_commands |
List global |
discord_get_guild_commands |
List guild |
</details>
<details> <summary><strong>Interactions (4)</strong></summary>
| Tool | Description |
|---|---|
discord_register_button_handler |
Button handler |
discord_register_select_handler |
Select handler |
discord_unregister_handler |
Remove handler |
discord_list_handlers |
List handlers |
</details>
<details> <summary><strong>Advanced (8)</strong></summary>
| Tool | Description |
|---|---|
discord_api_call |
Raw Discord API |
discord_get_logs |
Action logs |
discord_get_guild_config |
Get config |
discord_set_guild_config |
Set config |
discord_get_db_stats |
DB stats |
discord_create_scheduled_task |
Create task |
discord_list_scheduled_tasks |
List tasks |
discord_cancel_scheduled_task |
Cancel task |
</details>
🔌 Connect Any AI
Claude Desktop
Edit claude_desktop_config.json:
Windows: %APPDATA%\Claude\claude_desktop_config.json
Mac: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"discord": {
"url": "http://localhost:3000"
}
}
}
Claude Code
Install package and use the skill:
npm install limitless-reign-mcp
Then type /limitless-reign in Claude Code.
ChatGPT
Web Plugin: Settings → Security → Developer Mode → Plugins → Add:
http://localhost:3000/sse
Desktop: Settings → Integrations → Add MCP Server → Streamable HTTP:
http://localhost:3000
Cursor / Windsurf
Settings → Features → MCP → Add Server:
URL: http://localhost:3000
GPT Actions
Get OpenAPI schema:
GET http://localhost:3000?format=openapi
Paste in Custom GPT → Configure → Actions
💻 SDK Usage
Works with any backend framework. Just create the MCP server and mount it.
Core Setup (All Frameworks)
import { Client, GatewayIntentBits } from 'discord.js'
import { createMCPServer } from 'limitless-reign-mcp'
const client = new Client({
intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMembers]
})
const mcp = createMCPServer({
client,
validateAccess: async (apiKey, guildId) => {
// Your auth logic
return { valid: true, userId: 'user-id' }
},
getAllowedGuilds: async (apiKey) => {
return [{ id: '123', name: 'My Server', icon: null }]
}
})
await client.login(process.env.DISCORD_TOKEN)
Express
import express from 'express'
import { expressMiddleware } from 'limitless-reign-mcp'
const app = express()
app.use(express.json())
app.use('/mcp', expressMiddleware(mcp))
app.listen(3000)
Next.js (App Router)
// lib/mcp.ts
import { createMCPServer } from 'limitless-reign-mcp'
let mcp: ReturnType<typeof createMCPServer>
export async function getMCP() {
if (!mcp) {
// ... setup client
mcp = createMCPServer({ client, validateAccess, getAllowedGuilds })
}
return mcp
}
// app/api/mcp/route.ts
import { createNextjsRoute } from 'limitless-reign-mcp'
import { getMCP } from '@/lib/mcp'
export const { GET, POST, OPTIONS } = createNextjsRoute(getMCP)
// app/api/mcp/sse/route.ts
import { createNextjsSSERoute } from 'limitless-reign-mcp'
import { getMCP } from '@/lib/mcp'
export const { GET, POST, OPTIONS } = createNextjsSSERoute(getMCP)
Fastify
import Fastify from 'fastify'
import { handleHTTPRequest } from 'limitless-reign-mcp'
const app = Fastify()
app.all('/mcp', async (req, reply) => {
const result = await handleHTTPRequest(mcp, {
method: req.method,
url: req.url,
headers: req.headers as Record<string, string>,
body: req.body,
basePath: '/mcp'
})
reply.status(result.status).send(result.body)
})
app.listen({ port: 3000 })
Hono
import { Hono } from 'hono'
import { handleHTTPRequest } from 'limitless-reign-mcp'
const app = new Hono()
app.all('/mcp', async (c) => {
const result = await handleHTTPRequest(mcp, {
method: c.req.method,
url: c.req.url,
headers: Object.fromEntries(c.req.raw.headers),
body: await c.req.json().catch(() => null),
basePath: '/mcp'
})
return c.json(result.body, result.status)
})
export default app
Koa
import Koa from 'koa'
import Router from '@koa/router'
import bodyParser from 'koa-bodyparser'
import { handleHTTPRequest } from 'limitless-reign-mcp'
const app = new Koa()
const router = new Router()
router.all('/mcp', async (ctx) => {
const result = await handleHTTPRequest(mcp, {
method: ctx.method,
url: ctx.href,
headers: ctx.headers as Record<string, string>,
body: ctx.request.body,
basePath: '/mcp'
})
ctx.status = result.status
ctx.body = result.body
})
app.use(bodyParser())
app.use(router.routes())
app.listen(3000)
Bun
import { handleHTTPRequest } from 'limitless-reign-mcp'
Bun.serve({
port: 3000,
async fetch(req) {
const url = new URL(req.url)
if (url.pathname.startsWith('/mcp')) {
const result = await handleHTTPRequest(mcp, {
method: req.method,
url: req.url,
headers: Object.fromEntries(req.headers),
body: await req.json().catch(() => null),
basePath: '/mcp'
})
return Response.json(result.body, { status: result.status })
}
return new Response('Not found', { status: 404 })
}
})
Deno
import { handleHTTPRequest } from 'npm:limitless-reign-mcp'
Deno.serve({ port: 3000 }, async (req) => {
const url = new URL(req.url)
if (url.pathname.startsWith('/mcp')) {
const result = await handleHTTPRequest(mcp, {
method: req.method,
url: req.url,
headers: Object.fromEntries(req.headers),
body: await req.json().catch(() => null),
basePath: '/mcp'
})
return Response.json(result.body, { status: result.status })
}
return new Response('Not found', { status: 404 })
})
Node.js HTTP (No Framework)
import http from 'http'
import { handleHTTPRequest } from 'limitless-reign-mcp'
http.createServer(async (req, res) => {
let body = ''
for await (const chunk of req) body += chunk
const result = await handleHTTPRequest(mcp, {
method: req.method!,
url: `http://localhost:3000${req.url}`,
headers: req.headers as Record<string, string>,
body: body ? JSON.parse(body) : null,
basePath: '/mcp'
})
res.writeHead(result.status, { 'Content-Type': 'application/json' })
res.end(JSON.stringify(result.body))
}).listen(3000)
🛡️ Access Control
Built-in permission system:
validateAccess: async (apiKey, guildId) => {
const user = await db.users.findByApiKey(apiKey)
if (!user) {
return { valid: false, error: 'Invalid API key' }
}
if (guildId && !user.hasAccessTo(guildId)) {
return { valid: false, error: 'No access to this server' }
}
return { valid: true, userId: user.id }
}
📦 What's Included
| File | Purpose |
|---|---|
dist/cli.js |
CLI - npx limitless-reign |
dist/index.js |
SDK exports |
.claude/skills/ |
Claude Code skill |
CLAUDE.md |
AI instructions |
AGENTS.md |
Agent documentation |
🔗 Links
- GitHub: github.com/aayushchouhan24/limitless-reign-mcp
- npm: npmjs.com/package/limitless-reign-mcp
- Issues: Report bugs
- Limitless Reign App: github.com/aayushchouhan24/limitless-reign-mcp
⭐ Star This Repo
If this helped you, give it a star! It helps others find it.
🌟 Author
<table> <tr> <td align="center"> <a href="https://github.com/aayushchouhan24"> <img src="https://gravatar.com/userimage/226260988/f5429ad9b09c533449dab984eb05cdbf.jpeg?size=256" width="100px;" alt="Aayush Chouhan" style="border-radius: 50%;" /> <br /> <sub><b>Aayush Chouhan</b></sub> </a> <br /> <a href="https://www.instagram.com/aayushchouhan_24/" title="Instagram"><img src="https://img.shields.io/badge/-Instagram-E4405F?style=flat-square&logo=instagram&logoColor=white" /></a> <a href="https://www.linkedin.com/in/aayushchouhan24/" title="LinkedIn"><img src="https://img.shields.io/badge/-LinkedIn-0077B5?style=flat-square&logo=linkedin&logoColor=white" /></a> <a href="https://github.com/aayushchouhan24" title="GitHub"><img src="https://img.shields.io/badge/-GitHub-181717?style=flat-square&logo=github&logoColor=white" /></a> </td> </tr> </table>
🤝 Contributing
Contributions are welcome! Feel free to:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
📄 License
MIT © Aayush Chouhan
<p align="center"> Built with ❤️ using <a href="https://discord.js.org/">Discord.js</a> • <a href="https://nodejs.org/">Node.js</a> • <a href="https://www.typescriptlang.org/">TypeScript</a> </p>
<!-- SEO: discord mcp, discord ai bot, discord chatgpt, discord claude, ai discord server management, discord bot ai control, model context protocol discord, discord.js mcp server, discord automation ai, chatgpt discord plugin, claude discord integration, discord api ai tools, limitless reign, discord mcp server, ai powered discord bot -->
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。