Skip to main content
Glama
aayushchouhan24

limitless-reign-mcp

Limitless Reign MCP

AI-Powered Discord Bot Control | 280+ Tools | Works with Claude, ChatGPT, Cursor


Related MCP server: Discord Bridge MCP Server

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.

  1. Go to discord.com/developers/applications

  2. Create app or select existing

  3. Go to BotReset Token → Copy

  4. Add bot to server with Administrator permission


🎯 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 283 Tools

Tool

Description

discord_get_bot_info

Bot user details, guild count, uptime, and ready status

discord_get_gateway_info

Gateway ping, connection status, shard count

discord_set_presence

Online/idle/dnd/invisible status

discord_set_activity

Playing/streaming/listening/watching/custom activity

discord_disconnect

Gracefully disconnect bot from gateway

Tool

Description

discord_send_dm

Send a private DM to a user

discord_edit_dm

Edit a private DM

discord_delete_dm

Delete a private DM

discord_get_dms

Read DM message history with user

Tool

Description

get_allowed_guilds

List your authorized servers

discord_list_guilds

List accessible servers

discord_get_guild

Server details & features

discord_edit_guild

Edit server settings & icons

discord_get_server_stats

Comprehensive stats (humans, bots, voice active, channels, boost tier)

discord_get_guild_preview

Get public preview of discoverable server

discord_get_guild_regions

List voice RTC regions

discord_get_guild_active_threads

List all active threads across server

discord_edit_vanity_url

Modify vanity invite code

discord_get_guild_incidents

Get raid alerts & incident state

discord_edit_guild_incidents

Configure raid alerts & disable invites/DMs

discord_get_member_safety_settings

Get verification & safety requirements

discord_get_mfa_level

Get server 2FA/MFA moderation level

discord_get_guild_nsfw_level

Get server NSFW classification

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 predefined template

discord_get_guild_prune_count

Preview inactive member prune count

discord_begin_guild_prune

Prune inactive members

discord_get_guild_widget

Get server widget embed & settings

discord_edit_guild_widget

Enable/disable widget & channel

discord_get_guild_welcome_screen

Community welcome screen info

discord_edit_guild_welcome_screen

Edit welcome screen & channels

discord_get_guild_onboarding

Get community onboarding flow

discord_edit_guild_onboarding

Edit onboarding questions & default channels

discord_get_guild_integrations

List Twitch/YouTube/bot integrations

discord_delete_guild_integration

Delete server integration

Tool

Description

discord_get_template

Get native template by code

discord_list_guild_templates

List server's native templates

discord_create_guild_template

Create template from server

discord_sync_guild_template

Sync template with server layout

discord_edit_guild_template

Edit template name & description

discord_delete_guild_template

Delete server template

discord_create_guild_from_template

Create new guild from template

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_find_channel

Find channel by name & type

discord_get_channel_info

Get channel details

discord_move_channel

Move channel to category/position

discord_lock_channel

Lock channel to prevent member messages

discord_unlock_channel

Unlock a locked channel

discord_set_slowmode

Set or remove channel slowmode delay

discord_set_channel_topic

Update channel topic

discord_modify_channel_positions

Reorder multiple channels

discord_sync_channel_permissions

Sync permissions with parent category

discord_create_voice_channel

Create voice channel

discord_create_stage_channel

Create stage channel

discord_edit_voice_channel

Edit voice/stage settings

discord_get_voice_channel_members

List connected members in voice channel with audio/video status

discord_get_guild_voice_states

Snapshot of all active voice channels & users in server

discord_set_channel_permissions

Set permissions overwrite

discord_list_channel_permissions

List channel overwrites

discord_delete_channel_permissions

Delete channel overwrite

discord_create_invite

Create invite link

discord_delete_invite

Revoke invite link

discord_get_invite_details

Get invite details & stats

Tool

Description

discord_create_category

Create new category

discord_edit_category

Edit category name/position

discord_delete_category

Delete category

discord_find_category

Find category by name

discord_list_channels_in_category

List category's channels

Tool

Description

discord_create_forum_channel

Create forum channel

discord_edit_forum_channel

Edit forum settings/tags

discord_list_forum_channels

List forum channels

discord_get_forum_channel_info

Forum settings & tags

discord_list_forum_tags

List available tags

discord_list_forum_posts

List active posts

discord_create_forum_post

Create forum post

discord_modify_forum_post

Edit tags, pin/unpin, lock, archive forum post

discord_create_thread

Create thread

discord_get_thread

Get full thread metadata & counts

discord_edit_thread

Edit thread

discord_delete_thread

Delete thread

discord_lock_thread

Lock thread to prevent new replies

discord_unlock_thread

Unlock thread

discord_archive_thread

Archive thread

discord_unarchive_thread

Unarchive thread

discord_get_active_threads

List active threads

discord_list_archived_public_threads

List public archived threads

discord_list_archived_private_threads

List private archived threads

discord_list_joined_private_threads

List joined private archived threads

discord_join_thread

Bot joins thread

discord_leave_thread

Bot leaves thread

discord_add_thread_member

Add user to thread

discord_remove_thread_member

Remove user from thread

discord_get_thread_member

Get user thread membership

discord_list_thread_members

List all thread members

Tool

Description

discord_send_message

Send with embeds/buttons

discord_send_embed

Rich embed

discord_send_components_v2

Components V2

discord_get_message

Fetch single message

discord_reply_to_message

Referenced inline reply

discord_send_typing

Trigger typing indicator

discord_send_attachment

Upload files with message

discord_download_attachment

Retrieve file attachment metadata & URL

discord_forward_message

Forward message using snapshots

discord_edit_message

Edit message

discord_delete_message

Delete message

discord_bulk_delete_messages

Bulk delete

discord_get_messages

Fetch messages

discord_search_messages

Search messages across channel or server with keyword & author filters

discord_get_user_messages

Fetch last 100-500 messages sent by a specific user across channels

discord_export_channel_transcript

Export full message transcript from channel

discord_crosspost_message

Publish announcement message to follower channels

discord_create_announcement_follower

Follow announcement channel to auto-receive posts

discord_get_pinned_messages

Get all pinned messages in channel

discord_pin_message

Pin message

discord_unpin_message

Unpin message

discord_get_reactions

Get users who reacted with emoji

discord_add_reaction

Add reaction

discord_remove_reaction

Remove reaction

discord_clear_reaction_emoji

Clear all reactions for emoji

discord_clear_all_reactions

Remove every reaction from message

discord_create_poll

Create poll

discord_end_poll

Immediately expire active poll

discord_get_poll_voters

List voters for poll answer

Tool

Description

discord_get_user

Fetch global Discord user profile, avatar, banner

discord_get_user_profile

Full profile: bio, custom status, rich presence games/Spotify, desktop/mobile status

discord_edit_bot_profile

Edit bot username or avatar globally

discord_get_current_member

Get bot's server member & permissions

discord_edit_current_member

Change bot server nickname

discord_get_member

Member info

discord_search_members

Search members

discord_list_members

List members

discord_get_user_id_by_name

Get user ID for <@id> ping

discord_get_member_roles

Get expanded role list for member

discord_list_role_members

Find all members holding a role

discord_get_member_avatar

Resolve server-specific avatar/banner

discord_get_member_permissions_in_channel

Calculate channel effective permissions

discord_kick_member

Kick

discord_ban_member

Ban

discord_bulk_ban_members

Native bulk ban multiple users

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

discord_modify_voice_state

Mute/deafen/suppress in voice

Tool

Description

discord_create_role

Create role

discord_get_role

Get detailed role settings, permissions, icon

discord_edit_role

Edit role

discord_delete_role

Delete role

discord_modify_single_role_position

Set single role position

discord_modify_role_positions

Reorder role hierarchy

discord_get_role_members

List members holding role

discord_get_default_everyone_role

Get @everyone role & permissions

discord_set_role_icon

Set role icon image

discord_set_role_unicode_emoji

Set role emoji

discord_get_member_permissions

Compute effective member permissions

discord_list_permissions

List permissions

Tool

Description

discord_create_emoji

Create emoji

discord_get_emoji_details

Emoji details & author

discord_edit_emoji

Rename or role-restrict emoji

discord_delete_emoji

Delete emoji

discord_create_sticker

Create sticker

discord_get_sticker

Get sticker details

discord_edit_sticker

Edit sticker name/description/tags

discord_delete_sticker

Delete sticker

discord_search_emojigg

Search emoji.gg

discord_add_emojigg

Add from emoji.gg

Tool

Description

discord_create_webhook

Create webhook

discord_get_webhook

Get webhook details by ID

discord_get_channel_webhooks

List all webhooks in channel

discord_edit_webhook

Edit webhook name, avatar, or channel

discord_delete_webhook

Delete webhook

discord_execute_webhook

Send via webhook

discord_execute_webhook_wait

Send webhook message & return created object

discord_execute_webhook_in_thread

Send into thread or create forum post

discord_execute_webhook_slack

Send Slack-compatible webhook payload

discord_execute_webhook_github

Send GitHub-compatible webhook payload

discord_get_webhook_message

Fetch webhook message

discord_edit_webhook_message

Edit webhook message

discord_delete_webhook_message

Delete webhook message

Tool

Description

discord_get_automod_rules

List rules

discord_get_automod_rule

Get single rule details

discord_create_automod_rule

Create rule

discord_edit_automod_rule

Edit rule & filters

discord_delete_automod_rule

Delete rule

Tool

Description

discord_get_stage_instance

Get active stage instance details

discord_create_stage_instance

Start/open a stage instance with topic

discord_edit_stage_instance

Edit active stage topic/privacy

discord_delete_stage_instance

Close/end a stage instance

Tool

Description

discord_list_soundboard_sounds

List custom soundboard sounds

discord_get_soundboard_sound

Get soundboard sound details

discord_create_soundboard_sound

Upload custom soundboard audio

discord_edit_soundboard_sound

Edit sound name/volume/emoji

discord_delete_soundboard_sound

Delete soundboard sound

discord_send_soundboard_sound

Play soundboard audio in voice channel

discord_list_default_soundboard_sounds

List Discord default soundboard sounds

Tool

Description

discord_create_scheduled_event

Create event

discord_get_scheduled_event

Fetch event details & interested user count

discord_edit_scheduled_event

Edit event & status

discord_get_scheduled_events

List events

discord_get_scheduled_event_users

List interested users

discord_delete_scheduled_event

Delete event

Tool

Description

discord_create_global_command

Create global command

discord_get_global_command

Fetch single global command

discord_get_global_commands

List global commands

discord_edit_global_command

Edit global command

discord_delete_global_command

Delete global command

discord_bulk_overwrite_global_commands

Bulk overwrite all global commands

discord_create_guild_command

Create guild command

discord_get_guild_command

Fetch single guild command

discord_get_guild_commands

List guild commands

discord_edit_guild_command

Edit guild command

discord_delete_guild_command

Delete guild command

discord_bulk_overwrite_guild_commands

Bulk overwrite all guild commands

discord_get_command_permissions

Get command permissions

discord_edit_command_permissions

Set command permissions

discord_batch_edit_command_permissions

Batch edit permissions for commands

Tool

Description

discord_reply_interaction

Reply to interaction

discord_defer_interaction

Defer interaction ("thinking...")

discord_edit_interaction_reply

Edit initial interaction reply

discord_delete_interaction_reply

Delete initial interaction reply

discord_send_interaction_followup

Send interaction follow-up

discord_get_interaction_followup

Fetch interaction follow-up

discord_edit_interaction_followup

Edit interaction follow-up

discord_delete_interaction_followup

Delete interaction follow-up

discord_reply_autocomplete

Respond to autocomplete suggestions

discord_show_modal

Open modal popup

discord_launch_activity

Create activity link in voice channel

Tool

Description

discord_subscribe_events

Subscribe to gateway events

discord_unsubscribe_events

Unsubscribe from gateway events

discord_list_event_subscriptions

List active event subscriptions

discord_wait_for_event

Wait/poll until specific event occurs

discord_get_recent_events

Query recent events buffer with filters

discord_register_message_handler

Automated message handler

discord_register_reaction_handler

Automated reaction handler

discord_register_member_handler

Automated member join/leave handler

discord_register_voice_handler

Automated voice state handler

discord_register_thread_handler

Automated thread handler

discord_register_interaction_handler

Automated interaction handler

discord_unregister_handler

Remove automated handler

Tool

Description

discord_join_voice_channel

Connect bot to voice or stage channel (Opcode 4 Gateway WebRTC)

discord_leave_voice_channel

Disconnect bot from active voice channel

discord_get_bot_voice_state

Get bot voice state, active playback track, and volume

discord_play_audio

Stream audio from YouTube, Spotify, SoundCloud, or direct URLs

discord_play_audio_url

Stream direct audio URL (.mp3, .wav, .ogg, .aac, .mp4 stream)

discord_play_local_audio

Play local sound file from disk into voice channel

discord_speak_tts

Synthesize text to speech and speak in voice channel

discord_pause_audio

Pause active audio playback

discord_resume_audio

Resume paused audio playback

discord_stop_audio

Stop audio playback and clear track

discord_set_audio_volume

Adjust playback volume (0–200%)

discord_start_voice_recording

Multi-track voice recording (all speakers + separate per-user tracks + user filters)

discord_stop_voice_recording

Stop recording, finalize .opus files, and get duration & file size

discord_list_voice_recordings

List saved voice channel audio recordings on disk

Tool

Description

db_query

SQL query on local SQLite

db_execute

Execute SQL statement

db_list_tables

List tables in DB

db_get_schema

Get table schema

discord_get_logs

Query action logs

discord_get_guild_config

Get guild config

discord_set_guild_config

Update guild config

discord_get_db_stats

Database stats

schedule_task

Schedule cron task

list_scheduled_tasks

List scheduled tasks

cancel_scheduled_task

Cancel scheduled task

Tool

Description

discord_resolve

Universal parser for URLs, mentions (<#id>, <@id>, <@&id>), IDs, and names into Discord entities

discord_permission_check

Preflight check for bot permissions & role hierarchy before executing destructive actions

discord_batch

Execute multiple independent MCP tool calls concurrently with per-operation results

discord_get_api_capabilities

Inspect active Gateway intents, privileged flags, voice readiness, and REST API version

discord_asset_to_data_uri

Convert web URLs or local images into Discord base64 Data URIs for emojis/stickers/icons

discord_add_guild_member

Add OAuth2-authorized user to a server using their OAuth access token

discord_api_call

Raw Discord REST API call (GET, POST, PATCH, PUT, DELETE) with query params & audit log reason


🎙️ Live Voice Streaming & Multi-Track Audio Recording

Limitless Reign includes a full WebRTC Audio Pipeline (@discordjs/voice) allowing AI models to stream music, speak TTS, and record multi-user voice conversations with individual per-speaker tracks.

1. Connect & Stream Music / Audio

// 1. Join Voice Channel
{
  "tool": "discord_join_voice_channel",
  "arguments": {
    "guildId": "1532381127564857484",
    "channelId": "1537206459102666803"
  }
}

// 2. Stream YouTube, Spotify, or Direct MP3
{
  "tool": "discord_play_audio",
  "arguments": {
    "guildId": "1532381127564857484",
    "source": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "title": "Never Gonna Give You Up"
  }
}

// 3. Adjust Volume
{
  "tool": "discord_set_audio_volume",
  "arguments": {
    "guildId": "1532381127564857484",
    "volume": 75
  }
}

2. Pure In-Memory Multi-Track Recording (Zero Disk Required)

// Start Recording (buffered purely in memory with optional exclusion filters)
{
  "tool": "discord_start_voice_recording",
  "arguments": {
    "guildId": "1532381127564857484",
    "multiTrack": true,
    "excludedUserIds": ["123456789012345678"] // Ignore bots or noisy users
  }
}

// Stop Recording & optionally upload directly to a Discord text channel
{
  "tool": "discord_stop_voice_recording",
  "arguments": {
    "guildId": "1532381127564857484",
    "sendToChannelId": "1532381127564857486" // Optional: uploads in-memory buffer as Discord attachment message
  }
}

Response Output (In-Memory Base64 Data URIs & CDN Attachment):

{
  "success": true,
  "data": {
    "recording": {
      "id": "rec_1788029582",
      "durationSeconds": 45,
      "sizeBytes": 542100,
      "status": "completed",
      "attachmentUrl": "https://cdn.discordapp.com/attachments/.../rec_1788029582_recording.opus",
      "dataUri": "data:audio/ogg;codecs=opus;base64,T3B1c0hlYWQ...",
      "tracks": [
        {
          "name": "Master Combined Track (All Speakers)",
          "sizeBytes": 542100,
          "dataUri": "data:audio/ogg;codecs=opus;base64,..."
        },
        {
          "userId": "1136967689517142087",
          "name": "Speaker Track (User 1136967689517142087)",
          "sizeBytes": 271000,
          "dataUri": "data:audio/ogg;codecs=opus;base64,..."
        }
      ]
    }
  }
}

🔌 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)

🧩 Adding Custom & External Tools

Limitless Reign MCP is fully extensible. You can add custom tools, external HTTP REST APIs, bridge remote MCP servers, and write modular plugins using 6 different methods:

1. Server Configuration (customTools option)

Pass custom tools directly when creating your server:

import { createMCPServer } from 'limitless-reign-mcp'

const mcp = createMCPServer({
  client,
  validateAccess: async (key) => ({ valid: true }),
  customTools: [
    {
      name: 'calculate_stats',
      description: 'Compute server analytics score',
      inputSchema: {
        type: 'object',
        properties: {
          multiplier: { type: 'number', description: 'Score multiplier' }
        },
        required: ['multiplier']
      },
      handler: async (args, { client, database }) => {
        const memberCount = client.guilds.cache.reduce((acc, g) => acc + g.memberCount, 0)
        return { totalMembers: memberCount, score: memberCount * args.multiplier }
      }
    }
  ]
})

2. Runtime Registration (mcp.registerTool & mcp.registerTools)

Register or unregister custom tools dynamically at any point:

import { defineTool } from 'limitless-reign-mcp'

// Register a single custom tool
mcp.registerTool(
  defineTool({
    name: 'custom_send_alert',
    description: 'Send high priority alert to moderator channel',
    inputSchema: {
      type: 'object',
      properties: {
        channelId: { type: 'string' },
        alertMessage: { type: 'string' }
      },
      required: ['channelId', 'alertMessage']
    },
    handler: async (args, { client }) => {
      const channel = await client.channels.fetch(args.channelId)
      if (channel?.isTextBased()) {
        await channel.send(`🚨 **ALERT:** ${args.alertMessage}`)
        return { success: true, delivered: true }
      }
      return { success: false, error: 'Channel is not text-based' }
    }
  })
)

// Check or unregister tools
mcp.hasTool('custom_send_alert') // true
mcp.unregisterTool('custom_send_alert')

3. External HTTP / REST API Tools (createHttpTool)

Turn any REST API endpoint or Webhook into an MCP tool with schema validation and authentication:

import { createHttpTool } from 'limitless-reign-mcp'

const weatherTool = createHttpTool({
  name: 'get_weather_report',
  description: 'Fetch current weather for a city',
  url: (args) => `https://api.weatherapi.com/v1/current.json?q=${encodeURIComponent(args.city)}&key=YOUR_API_KEY`,
  method: 'GET',
  inputSchema: {
    type: 'object',
    properties: {
      city: { type: 'string', description: 'City name' }
    },
    required: ['city']
  },
  transformResponse: (data) => ({
    city: data.location?.name,
    temp_c: data.current?.temp_c,
    condition: data.current?.condition?.text
  })
})

mcp.registerTool(weatherTool)

4. Bridge & Proxy External MCP Servers (registerExternalMCP)

Seamlessly connect remote MCP servers (such as GitHub MCP, Database MCP, or Web Search MCP) and merge their tools into your Discord MCP catalog:

// Proxy an external MCP server over HTTP/SSE
await mcp.registerExternalMCP({
  url: 'http://localhost:8080/mcp',
  prefix: 'ext_', // Optional prefix to avoid tool name clashes
  headers: {
    'Authorization': 'Bearer YOUR_REMOTE_TOKEN'
  },
  filterTools: (toolName) => !toolName.startsWith('dangerous_')
})

5. Modular Plugins (mcp.use)

Package and organize custom tools into reusable plugins:

import type { DiscordMCPServer } from 'limitless-reign-mcp'

function moderationPlugin(server: DiscordMCPServer) {
  server.registerTool({
    name: 'auto_quarantine_user',
    description: 'Move user to isolated quarantine role',
    inputSchema: {
      type: 'object',
      properties: {
        guildId: { type: 'string' },
        userId: { type: 'string' }
      },
      required: ['guildId', 'userId']
    },
    handler: async (args, { client }) => {
      // Your custom quarantine logic
      return { quarantined: true, userId: args.userId }
    }
  })
}

mcp.use(moderationPlugin)

6. CLI Dynamic Loading (--tools, --plugin, --external-mcp)

When using the standalone CLI, pass custom tools, plugins, or external MCP servers via command line flags or environment variables:

# Load custom tools file
npx limitless-reign --token YOUR_BOT_TOKEN --tools ./my-tools.js

# Load a plugin
npx limitless-reign --token YOUR_BOT_TOKEN --plugin ./my-plugin.js

# Proxy a remote MCP server
npx limitless-reign --token YOUR_BOT_TOKEN --external-mcp http://localhost:8000/mcp

🛡️ 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



⭐ Star This Repo

If this helped you, give it a star! It helps others find it.

Star


🌟 Author


🤝 Contributing

Contributions are welcome! Feel free to:

  1. Fork the repository

  2. Create a feature branch (git checkout -b feature/amazing-feature)

  3. Commit your changes (git commit -m 'Add amazing feature')

  4. Push to the branch (git push origin feature/amazing-feature)

  5. Open a Pull Request


📄 License

MIT © Aayush Chouhan


Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    A Discord MCP server that enables AI assistants to interact with Discord platforms, providing functionalities like sending messages, managing channels, creating forum posts, and handling webhooks.
    21
    400
    1
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    An MCP server that provides native Discord tools for Claude Code, enabling bidirectional communication with remote agents or humans via the Discord REST API. It allows users to send messages, read channel history, and manage reactions directly from their local environment.
    6
    12
    3
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    A Discord MCP server that enables AI assistants to interact with the Discord platform, providing features like message sending, channel management, forum operations, reactions, and webhook management.
    22
    400
    MIT