Crow

Crow

MCP server that gives AI agents first-class access to Discord, enabling discovery, messaging, channel management, moderation, and arbitrary REST calls through typed, consent-aware tools.

Category
Visit Server

README

<p align="center"> <img src="assets/crow-logo.png" alt="Crow logo" width="180" /> </p>

<h1 align="center">Crow</h1>

<p align="center"><em>A Discord toolkit for AI agents.</em></p>

Crow is an MCP (Model Context Protocol) server built on the @modelcontextprotocol/sdk. It gives AI agents first-class access to Discord: discovery, messaging, channels, invites, emojis, stickers, moderation, and arbitrary REST calls, through a small set of typed, consent-aware tools.

Links

What is Crow?

Crow is a single-purpose MCP server that bridges an AI agent and a Discord bot account. Configure it once with a bot userId and token, connect it to any MCP client, and the agent can discover the guilds, members, and channels it has access to, then read and send messages, manage channels, apply consent-gated moderation, and fall back to raw Discord REST calls for edge cases.

Crow is deliberately small and convention-driven. Each capability is a self-contained tool module registered through a single registry, so adding a Discord feature is a matter of writing one file and registering it.

Capabilities

  • Discovery: list guilds, members, channels, and bans so the agent can select its target.
  • Overview: get_guild_overview gives a one-call orientation of a guild (basics + boost info, channels grouped by category, and roles).
  • Notes: attach local, informational notes to users, roles, channels, messages, guilds, webhooks, and more, so context survives across agent sessions.
  • Messaging: read (with embeds, components, and attachments), send, edit, delete, pin, and bulk-delete messages.
  • Direct messages: list DM channels, send DMs, and read DM history with content, embeds, components, and attachments.
  • Embeds: build rich embeds with Discord's limits enforced.
  • Components: send messages with buttons, select menus, and Components V2 layout (containers, sections, text, media galleries, thumbnails, separators, files).
  • Channels: full control: text/voice/forum settings, threads, forum posts, and permission overwrites.
  • Guild config: set the guild name, description, and rules channel.
  • Roles: create, modify, and delete roles; assign and remove them from members.
  • Members: edit nicknames, voice state, and timeouts.
  • Self: read and modify the bot's own profile (username, avatar, banner, bio) and its per-guild member profile (nickname, guild avatar/banner/bio).
  • Voice: read and modify stage-channel voice states (suppress, request-to-speak, and move between stage channels).
  • Reactions: add, remove, and list message reactions.
  • Audit: read the guild audit log.
  • Community: manage the welcome screen, onboarding, and membership screening.
  • Boost: read a guild's Server Boost level, boost count, and progress bar state.
  • Webhooks: create, manage, and execute webhooks.
  • Attachments: send files, images, and GIFs alongside messages.
  • Invites: list, create, inspect, and delete guild and channel invites.
  • Emojis: create, list, modify, and delete custom emojis.
  • Stickers: create, list, modify, and delete guild stickers, plus sticker packs.
  • Actions: register replies and modals for component interactions, and inspect the values users submit.
  • Gateway: crow gateway daemon receives interactions live and dispatches registered actions.
  • Moderation: kick and ban behind an explicit consent gate; list and unban.
  • Raw REST: a generic Discord REST escape hatch for any endpoint the typed tools do not cover.

Destructive actions (kick_member, ban_member, delete_channel, delete_message, delete_webhook, delete_invite, delete_emoji, delete_sticker, delete_role, bulk_delete_messages) require an explicit "confirm": true consent flag.

Every tool also declares MCP annotations (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) plus human-readable titles and per-field descriptions, so clients can present and permission the tools safely.

Tools

Module Tools
Health ping
Discovery list_guilds, get_guild, list_members, get_member, list_channels, get_channel
Overview get_guild_overview
Messaging read_messages, send_message, edit_message, delete_message, pin_message, unpin_message, bulk_delete_messages
Direct messages list_dm_channels, get_dm_channel, send_dm, read_dm_messages
Embeds create_embed
Channels & threads modify_channel, create_channel, delete_channel, list_active_threads, list_archived_threads, create_thread, modify_thread, edit_channel_permissions, delete_channel_permissions
Guild config modify_guild
Roles list_roles, create_role, modify_role, delete_role
Members modify_member, add_role_to_member, remove_role_from_member
Self get_current_user, modify_current_user, modify_current_member
Voice get_voice_state, modify_voice_state
Reactions add_reaction, remove_own_reaction, remove_user_reaction, list_reactions
Audit list_audit_log_entries
Community get_welcome_screen, modify_welcome_screen, get_onboarding, modify_onboarding, get_member_verification, modify_member_verification
Boost get_boost_info
Webhooks list_webhooks, get_webhook, create_webhook, modify_webhook, delete_webhook, execute_webhook
Invites list_guild_invites, list_channel_invites, get_invite, get_vanity_url, create_invite, delete_invite
Emojis list_emojis, get_emoji, create_emoji, modify_emoji, delete_emoji
Stickers list_stickers, get_sticker, list_sticker_packs, get_sticker_pack, create_sticker, modify_sticker, delete_sticker
Actions register_action, list_actions, remove_action, list_recent_interactions
Notes add_note, list_notes, remove_note, clear_notes
Moderation list_bans, get_ban, kick_member, ban_member, unban_member
Raw discord_request

See docs/tools.md for the full reference, the selection pipeline, and the consent model.

Quick Start

Install with one command, which clones the repo, builds it, links the crow command onto your PATH, and drops you into the setup wizard:

curl -fsSL https://raw.githubusercontent.com/Hydr46605/Crow/main/install.sh | sh

Windows (PowerShell):

irm https://raw.githubusercontent.com/Hydr46605/Crow/main/install.ps1 | iex

Windows (cmd.exe):

curl -o install.bat https://raw.githubusercontent.com/Hydr46605/Crow/main/install.bat && install.bat

The wizard asks for your bot token, detects the bot user ID, verifies the token against Discord, and checks that the privileged intents Crow needs (GUILD_MEMBERS, MESSAGE_CONTENT) are enabled, prompting you to fix and re-check them if they are not.

Command line

Crow ships a single crow command:

Command What it does
crow / crow serve Run the MCP server over stdio.
crow setup Interactive setup wizard (token → user ID → intent check → save).
crow doctor Check the bot token and privileged intents.
crow gateway Run the always-on interaction gateway daemon.
crow --version Print the version.
crow --help Show help.

Credentials live in ~/.crow/.env (owner-readable) and are loaded automatically, so an MCP client config is just:

{
  "mcpServers": {
    "crow": {
      "command": "crow"
    }
  }
}

Prefer inline credentials? You can still set CROW_BOT_TOKEN and CROW_BOT_USER_ID in the client's env block instead.

Build from source

git clone https://github.com/Hydr46605/Crow.git
cd Crow
npm install
npm run build
npm start

Compatibility

  • Node.js >= 22 (CI runs against 22 and 24).
  • ESM-only.
  • Discord API v10 via discord.js.
  • Distributed via GitHub (not npm); install with the scripts above.

License

MIT

Recommended Servers

playwright-mcp

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured