poke_discord
Enables interaction with Discord through natural language, including reading and sending messages, managing servers, and user actions.
README
Discord Integration for Poke
An MCP (Model Context Protocol) server that connects your Discord account to Poke, allowing you to interact with Discord through natural conversation in Apple Messages, Telegram, WhatsApp, and RCS.
Features
- Read Messages — Ask Poke "What's happening in #general?"
- Send Messages — "Send a message to #announcements that the deploy is done"
- DMs — "DM @alice and ask if she's free at 3pm"
- Server Management — "List my servers" or "Show channels in My Server"
- Message Actions — "Delete that message", "Edit my last message", "Add a 👍 reaction"
- User Lookup — "Who is @bob on Discord?"
Prerequisites
- Node.js 22+ (or Docker)
- A Discord Bot Token
- A publicly accessible URL (use ngrok for local development, or deploy to Railway/Fly.io)
Creating a Discord Bot
- Go to https://discord.com/developers/applications and click New Application
- Go to the Bot tab, click Add Bot, then Reset Token to get your token
- Under Privileged Gateway Intents, enable Message Content Intent
- Go to OAuth2 > URL Generator, select
botscope, add permissions:- Read Messages
- Send Messages
- Read Message History
- Add Reactions
- Manage Messages
- Use the generated URL to invite the bot to your servers
Quick Start
# Copy the env template and fill in your values
cp .env.example .env
# Run with Docker (pulls from GHCR)
docker compose --env-file .env up -d
Your Poke MCP Server URL will be http://localhost:3000/sse (expose with ngrok or deploy to a cloud provider).
Run locally (no Docker)
git clone https://github.com/thesammykins/poke_discord.git discord-poke
cd discord-poke
pnpm install
pnpm build
cp .env.example .env # fill in DISCORD_TOKEN
source .env && node dist/index.js
Connect to Poke
- Go to https://poke.com/integrations/new
- Enter Name: Discord
- Enter MCP Server URL: your server URL with
/sse(e.g.https://abc123.ngrok-free.app/sse) - Enter API Key: Your Discord bot token
- Click Create Integration
- Try "List my Discord servers" in Poke
Development
pnpm install # Install dependencies
pnpm dev # Run with hot reload
pnpm typecheck # TypeScript check
pnpm test # Run tests
pnpm build # Production build
Tools
| Tool | Description |
|---|---|
| discord_list_guilds | List servers the bot is in |
| discord_list_channels | List channels in a server |
| discord_read_messages | Read recent messages with optional keyword filter |
| discord_send_message | Send a message with optional embeds |
| discord_send_dm | Send a direct message to a user |
| discord_get_user | Get user profile info |
| discord_add_reaction | Add an emoji reaction to a message |
| discord_delete_message | Delete a message |
| discord_edit_message | Edit a message |
| discord_search_guild_members | Search server members |
| discord_pin_message | Pin a message to a channel |
| discord_unpin_message | Unpin a message |
Docker Image
Prebuilt images are published to GitHub Container Registry:
ghcr.io/thesammykins/poke_discord:main
Tags available: main, v1.0.0, v1.0, v1, and per-commit SHA.
Deployment
Ready-to-use configs live in deploy/.
ngrok (local dev / free tier)
ngrok http --config=deploy/ngrok.yml 3000
Use your ngrok domain as PUBLIC_URL.
Pangolin (self-hosted)
docker compose -f deploy/docker-compose.pangolin.yml --env-file .env up -d
Adds Traefik labels for automatic routing. Set PANGOLIN_HOST to your domain.
Fly.io (free tier)
fly deploy -c deploy/fly.toml
Free allowance: 3 shared-cpu-1x VMs, 256MB RAM. Set DISCORD_TOKEN via fly secrets set.
Railway (free tier)
One-click from deploy/railway.json. Connect your GitHub repo and Railway auto-deploys on push.
Render (free tier)
Uses deploy/render.yaml as a Blueprint. Connect your repo and Render builds + deploys automatically.
Architecture
User (Messages) ←→ Poke (AI) ←→ MCP Server (SSE) ←→ Discord REST API
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.