halobot
An MCP server that enables AI agents to communicate with humans through Discord. Agents can send messages, create threads, wait for replies, and manage conversations across any MCP client.
README
<div align="center">
halobot
Your AI agent needs a phone number. Discord is it.
An open-source MCP server that gives any AI agent a Discord communication channel. Agents ask questions, wait for your reply, and keep working -- from your phone, desktop, wherever.
Human-Agent Loop Over Bot
Documentation . Quickstart . GitHub
</div>
The problem
Your agent is three hours into a refactoring task. It hits an ambiguous requirement. It guesses. It picks the wrong interpretation. It builds 400 lines on a bad assumption. You come back, see the mess, and start over.
Claude Code has dispatch. Cursor has its own notification system. Every AI tool reinvents "talk to the human."
halobot is the MCP answer: one Discord server, any agent, zero vendor lock-in.
| Without halobot | With halobot |
|---|---|
| Agent guesses at ambiguous requirements | Agent asks, you answer, work continues |
| You discover mistakes hours later | Respond from your phone, desktop, wherever |
| No way to reach you outside the IDE | Works with any MCP client |
| Each tool builds its own notification system | One protocol, every agent |
| 3 AM deploys you didn't approve | Explicit approval gates for critical ops |
Quick start
# Install globally
npm install -g @anthony-maio/halobot
# Interactive setup -- walks you through everything
halobot setup
That's it. The setup wizard links you to the Discord Developer Portal, generates the invite URL, collects your IDs, validates everything, and optionally configures Claude Code automatically.
# Check your setup
halobot doctor
# Check setup and send a test message
halobot doctor --test
How it works
+--------------+ STDIO/MCP +------------------+ Discord API +--------------+
| Any Agent |<------------>| halobot |<------------->| Discord |
| (Claude Code,| | MCP Server | create thread | Server |
| Cursor, | 11 MCP | | post message | |
| Codex, | tools | Discord Bot | wait for reply| You |
| custom) | | | | |
+--------------+ +------------------+ +--------------+
- Agent calls
send_and_wait-- bot creates a Discord thread, pings you - You reply in the thread (phone, desktop, wherever)
- Agent gets your response and keeps working
- Long messages auto-chunk across Discord's 2000-char limit
MCP tools
High-level -- Thread conversations
| Tool | What it does |
|---|---|
send_thread_message |
Send a message via a Discord thread. Creates new or continues existing. |
wait_for_reply |
Poll a thread for the human's reply (configurable timeout). |
send_and_wait |
Send + wait in one call. Best for simple Q&A. |
list_conversations |
List all active thread conversations. |
get_thread_messages |
Fetch full message history from a thread. |
Low-level -- Raw Discord access
| Tool | What it does |
|---|---|
list_guilds |
List all servers the bot is in. |
list_channels |
List text channels in a guild. |
send_message |
Send a message to any channel. |
read_messages |
Read recent messages from the in-memory cache. |
get_channel_history |
Fetch paginated message history via API. |
wait_for_message |
Poll until a matching message arrives (keyword filter). |
Use cases
Decision points -- Agent hits an ambiguous requirement, asks which approach. You reply "option 2" from your phone.
Approval gates -- Agent reaches a deploy step, waits for your explicit "go" before continuing. No more 3 AM deploys.
Progress updates -- Agent posts status to the thread as it works. You check in when convenient.
Multi-agent coordination -- Multiple agents, each with their own thread, all reaching the same human. You're the hub.
Collaborative debugging -- Agent posts what it tried, asks for your intuition, tries again. Async pair programming.
Configuration
Claude Code (CLI)
claude mcp add halobot \
-e DISCORD_BOT_TOKEN=your-token \
-e DISCORD_CHANNEL_ID=your-channel-id \
-e DISCORD_ALLOWED_USERS=your-user-id \
-- halobot
Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"halobot": {
"command": "halobot",
"env": {
"DISCORD_BOT_TOKEN": "your-token",
"DISCORD_CHANNEL_ID": "your-channel-id",
"DISCORD_ALLOWED_USERS": "your-user-id"
}
}
}
}
Any MCP client
halobot speaks standard MCP over STDIO. If your client supports MCP, it supports halobot.
Finding IDs: Enable Developer Mode in Discord settings -> right-click channel/user -> Copy ID.
Security
- Whitelist enforcement. Thread-based tools only respond to users in
DISCORD_ALLOWED_USERS. - Thread isolation. Each agent conversation gets its own thread. No cross-talk.
- No inbound commands. The bot doesn't accept arbitrary commands from Discord.
- Low-level tools are unrestricted -- they access any channel the bot can see. Use thread-based tools for controlled flows.
Development
# Run tests (no live Discord connection required)
npm test
# Dev mode with hot-reload
npm run dev
# TypeScript watch
npx tsc --watch
Roadmap
- [ ] SSE transport for remote/multi-agent access
- [ ] File/image attachment support via threads
- [ ] Reaction-based quick responses
- [ ] Persistent conversation state across server restarts
- [ ] Rate limiting per agent
- [ ] Webhook mode for push-based replies (no polling)
License
ISC
<div align="center">
Built by Anthony Maio
</div>
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.