integration · discord

Claude + Discord — manage servers and bots natively.

Expose Discord's full developer API—including messaging, server guild configs, bot commands, and webhooks—directly to Cursor, Claude Desktop, or LangChain agents via the open MCP standard.

Last updated 2026-05-28 · works with Claude, OpenAI, LangChain, and any MCP client

vs. the alternatives

CapabilityDiscord.js / Discord.pyComposio Discordwmcp.sh
Setup timeInstall SDK + token wiringPlatform auth configurationsSign in & provide bot token — done
InteroperabilityLocked into Discord clientCustom wrapperStandard MCP — works with Claude/Cursor
Spec updatesWait for SDK releaseWait for platform updateInstant spec resolution at the edge
Latency80-200ms SDK bootstrapPlatform router delaysSub-50ms Edge proxy resolution
Tool CoverageManual method mappingCurated subsetEvery public endpoint out-of-the-box

Tools your agent calls

All MCP-shaped — consumed directly by Claude tool_use, OpenAI function-calling, or LangChain.

ToolTypeReturns
channels/createMessageLive actionSend a message to a Discord channel
channels/getChannelLive actionRetrieve Discord channel metadata
guilds/getGuildLive actionRetrieve Discord server guild metadata
webhooks/executeLive actionPost to a Discord webhook URL

Python — Claude posting a message to Discord through wmcp.sh

from wmcp import WmcpClient
from wmcp.anthropic import to_anthropic_tools, execute_tool_use
from anthropic import Anthropic

client = WmcpClient(api_key="webmcp_live_…")
spec   = "https://raw.githubusercontent.com/discord/discord-api-spec/main/openapi.json"
tools  = client.tools(spec)

# Filter to messaging tools
msg_tools = [t for t in tools if t.name.startswith("channels/createMessage")]

anthropic = Anthropic()
msg = anthropic.messages.create(
    model="claude-3-5-sonnet-20241022",
    max_tokens=1024,
    tools=to_anthropic_tools(msg_tools),
    messages=[{"role": "user",
               "content": "Send 'Hello from Claude Code' to channel 123456789."}],
)

for block in msg.content:
    if block.type == "tool_use":
        result = execute_tool_use(client, spec, block.model_dump())
        print(result)

Frequently asked

Do I need a Discord Bot Token?
Yes. You provide your own Discord Bot Token or Webhook URL in your secure client header or vault. wmcp.sh routes requests securely.
How does this differ from Discord.js or Discord.py?
These SDKs require running persistent local daemons. wmcp.sh maps the Discord OpenAPI spec to the universal MCP standard, letting Claude Desktop, Claude Code, and other editors run Discord actions natively.
Are my bot tokens secure?
Yes. Bot tokens are static secrets, so wmcp.sh stores them in an encrypted credentials vault and injects them at request time — they're encrypted out-of-band and never exposed in the LLM context. (Where OAuth applies, we use the OAuth 2.1 PKCE flow.)

SaaS agent-readiness

Discord's bot-token + OAuth split is the messaging-SaaS pattern. If you're a SaaS founder thinking about agent traffic, see the founder checklist.

→ /agent-ready/saas  ·  cornerstone  ·  done-for-you ($499+)

Need this done for you?

Skip the wiring — we build, deploy, and monitor.

Custom adapter + hosted MCP at mcp.yourbrand.com + verified badge. From $499 one-time setup.

See /managed → Submit (free)