Skip to main content
Glama

Discord MCP

FastMCP Version Ruff Linted with Biome Built with Just

Repositorio: github.com/sandraschi/discord-mcp

Servidor Discord MCP FastMCP 3.1 con muestreo (Ollama del lado del servidor / compatible con OpenAI o LLM del cliente), flujo de trabajo agente (discord_agentic_workflow), habilidades (SkillsDirectoryProvider + skill:///SKILL.md), prompts y un panel de control estilo flota 2026 (React + Vite + Tailwind, interfaz de cristal oscuro).

Puertos

  • Backend: 10756 REST (/api/v1/) + MCP HTTP transmitible en /mcp

  • Frontend: 10757

Related MCP server: Discord Notifications MCP Server

Configuración

  1. Crea un bot en el Portal de Desarrolladores de Discord. Copia el token del bot.

  2. Invita al bot a tu servidor (Generador de URL OAuth2, alcance: bot).

  3. Copia .env.example a .env en la raíz del repositorio (discord-mcp/.env) y establece DISCORD_TOKEN=... (sin comillas). El backend carga este archivo al iniciar (python-dotenv). Reinicia el servidor después de cambiar .env. Si el token ya está configurado en el entorno del sistema o en el env de Cursor MCP, ese valor prevalecerá (.env no sobrescribe las variables existentes).

  4. Para muestreo agente local (cuando el host MCP no proporciona muestreo): ejecuta Ollama y, opcionalmente, establece DISCORD_SAMPLING_BASE_URL / DISCORD_SAMPLING_MODEL. Establece DISCORD_SAMPLING_USE_CLIENT_LLM=1 si deseas que el LLM host realice el muestreo y el manejador del servidor solo actúe como respaldo.

Ejecución

  • Webapp (backend + panel de control): desde la raíz del repositorio ejecuta .\start.ps1 o start.bat, o desde webapp/: .\start.ps1.

  • Solo backend: uv run python -m discord_mcp.server --mode dual --port 10756

  • Stdio (solo MCP): uv run python -m discord_mcp.server --mode stdio

Cursor MCP

  • Este repositorio como raíz del espacio de trabajo: .cursor/mcp.json registra discord-mcp (stdio). Establece DISCORD_TOKEN en el env de ese archivo o confía en el entorno de tu shell. Recarga MCP / reinicia Cursor después de realizar ediciones.

  • Fusión global / multi-raíz: copia el bloque discord-mcp de cursor-config-template.json en tu JSON de MCP de usuario (Windows: %USERPROFILE%\.cursor\mcp.json). Ajusta cwd a tu ruta de clonación si no estás usando la predeterminada D:/Dev/repos/discord-mcp.

MCP HTTP (remoto / Inspector)

  • Endpoint: http://localhost:10756/mcp (HTTP transmitible, FastMCP 3.1.0)

  • Descubrimiento / manifiesto: GET /api/v1/meta

  • Salud: GET /api/v1/health (incluye estado de muestreo)

Herramientas

  • discord(operation=) Portmanteau: list_guilds, list_channels, send_message, get_messages, get_guild_stats, create_channel, create_guild, create_invite, list_invites, revoke_invite, list_members, get_member, list_active_threads, rag_ingest, rag_query. create_guild requiere OAuth2 de usuario (bot 403). list_members / get_member requieren el intento GUILD_MEMBERS.

  • discord_help(category=, topic=) Ayuda multinivel.

  • discord_agentic_workflow(goal, ctx) Objetivo de alto nivel a través de ctx.sample + herramientas (SEP-1577). Devuelve un dict estructurado (success, message, recommendations o campos de error).

Prompts (registrados)

discord_quick_start, discord_diagnostics, discord_moderation_playbook, discord_rag_workflow, discord_invite_operations

Habilidades

Incluidas en src/discord_mcp/skills/<name>/SKILL.md, expuestas como recursos MCP (skill://). Listadas en el panel de control bajo Habilidades y a través de GET /api/v1/skills.

Recursos

  • resource://discord-mcp/capabilities Resumen breve de capacidades para clientes.

API (REST)

  • GET /api/v1/health Salud, token_set, límites de tasa, muestreo, mcp_http_path

  • GET /api/v1/meta Herramientas, prompts, recursos, raíz de habilidades, muestreo

  • GET /api/v1/skills Vistas previas de habilidades incluidas (panel de control)

  • GET /api/v1/guilds Listar gremios (proxy a herramienta)

  • GET /api/v1/guilds/{guild_id}/channels Listar canales

  • (Consulta OpenAPI en /docs para la lista completa.)

Discord HTTP 429 (límites de tasa de API)

Discord impone límites por ruta en la API REST. En HTTP 429, el servidor ahora espera por retry_after (del cuerpo de la respuesta o del encabezado Retry-After) y reintenta la misma solicitud hasta 5 veces antes de devolver un error. Si sigues viendo 429 después de eso, reduce la velocidad (por ejemplo, menos recuperaciones de mensajes en paralelo, lotes de ingesta RAG más pequeños) o espera un minuto, especialmente si aparece "global": true en la respuesta de Discord (raro; indica un límite más amplio).

Seguridad y límites de tasa (anti-spam)

Las operaciones de escritura tienen límites de tasa para que el bot no sea utilizable como spambot:

  • Mensajes: máx 10/min global, máx 3/min por canal, mín 5s entre envíos (configurable).

  • Canales: máx 5 creados por minuto.

  • Invitaciones: máx 5 creadas por minuto (DISCORD_RATE_LIMIT_INVITES_PER_MINUTE).

  • Longitud del mensaje: limitada a 2000 (máximo de Discord); sobrescribir con DISCORD_MAX_MESSAGE_LENGTH.

Env: DISCORD_RATE_LIMIT_MESSAGES_PER_MINUTE, DISCORD_RATE_LIMIT_MESSAGES_PER_CHANNEL_PER_MINUTE, DISCORD_RATE_LIMIT_CHANNELS_PER_MINUTE, DISCORD_MAX_MESSAGE_LENGTH, DISCORD_MIN_MESSAGE_INTERVAL_SECONDS. Cuando se alcanza un límite, la herramienta devuelve success: false, rate_limited: true y un error explicativo. La configuración actual está en GET /api/v1/health bajo rate_limit.

Documentación

Estándares

  • FastMCP 3.1.0: instrucciones, manejador de muestreo, proveedor de habilidades, validación estricta, montaje HTTP transmitible.

  • Webapp: start.ps1, puertos 10756/10757, diseño de cristal oscuro, estado de la barra superior, registro de actividad, páginas de Herramientas / Habilidades / Aplicaciones.

🛡️ Stack de Calidad Industrial

Este proyecto se adhiere a los estándares industriales SOTA 14.1 para la orquestación agente de alta fidelidad:

  • Python (Núcleo): Ruff para linting y formateo. Tolerancia cero para declaraciones print en manejadores principales (T201).

  • Webapp (UI): Biome para linting de sub-milisegundos. Aplicación estricta de noConsoleLog.

  • Cumplimiento del protocolo: Aislamiento endurecido de stdout/stderr para garantizar una comunicación JSON-RPC resistente a fallos.

  • Automatización: Recetas de Justfile para todas las operaciones de flota (just lint, just fix, just dev).

  • Seguridad: Auditorías automatizadas mediante bandit y safety.

Maintenance

ActivityActive
ResponsivenessUnresponsive

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

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to interact with Discord by sending notifications, creating channels, and managing interactive questions with support for two-way responses. It allows for streamlined communication through channel keys and supports various question types like multiple-choice and extended-answer modals.
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI clients to manage Discord servers through natural language, offering tools for guilds, channels, messages, roles, members, webhooks, invites, and automations. Includes a conversational agent that responds to @mentions in Discord.
    8
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to interact with Discord through the REST API and real-time events, supporting message management, user info, channel operations, and more with security controls.
    6
    1
    MIT