Skip to content

From PaSympa

PaSympa is a TypeScript Discord MCP server using the discord_* tool prefix. The pasympa adapter walks a local clone, extracts every discord_<verb>_<noun> literal, and reports the discord-mcp equivalents with confidence levels and per-entry notes.

  • Production hardening - first-class OpenTelemetry traces and Cockatiel resilience policies (retry / circuit breaker / bulkhead) on the central Discord REST path. See Operations: telemetry and Architecture: rate limits.
  • Broad Discord surface - 198 Discord tools cover stickers, automod, polls, application commands, onboarding, voice state, stage instances, scheduled events (subscribers + invites), and the Components V2 layout primitives.
  • Components V2 first-class - dedicated components_v2_send and components_v2_edit tools validate flags = 32768 layouts. See the Components V2 announcement recipe.
  • Gateway event notifications - resources/subscribe can signal that Discord state changed; fetch current state with the corresponding REST tool. It complements polling but does not replace the read step. See Architecture: gateway and the gateway-subscribe recipe.
  1. Clone PaSympa locally.

    Terminal window
    git clone https://github.com/PaSympa/discord-mcp.git ~/pasympa-clone

    The adapter does not fetch over the network - it requires a real filesystem path so it can walk src/tools/*.ts.

  2. Run the migration report.

    Terminal window
    discord-mcp migrate --from pasympa --source ~/pasympa-clone

    For machine-readable output, add --json:

    Terminal window
    discord-mcp migrate --from pasympa --source ~/pasympa-clone --json > migrate-report.json
  3. Review the report.

    The output groups tools into three buckets:

    • mapped - the adapter found a discord-mcp equivalent. Check the confidence field on each entry and read the notes for every medium or low mapping.
    • unmapped - PaSympa tools with no discord-mcp equivalent (typically scheduled events, audit_permissions, copy_permissions, server_stats, clone_channel, forum getters).
    • manual review - empty for PaSympa as of cutoff; the adapter never defers to a human.
  4. Update agent prompts.

    For every mapped entry, swap the old tool name for the new one in your agent prompt templates. For medium / low confidence entries, also adjust the argument shape per the per-entry notes (e.g. discord_send_embed becomes messages_send with the embed hoisted into the embeds[] array).

    For every unmapped entry, decide whether to drop the capability, replace it with a discord-mcp composition (e.g. audit_permissions becomes a sequence of channels_get + client-side overlay), or keep PaSympa running side-by-side until the gap is closed.

  5. Generate your new client config.

    Terminal window
    discord-mcp init --client claude-desktop

    Merge the printed snippet, set DISCORD_TOKEN, then restart your MCP client. The 198 Discord-operation tools replace PaSympa’s 91; the separate inspiration category remains optional.

The table below shows common PaSympa operations and their discord-mcp equivalents. See the adapter source for the complete list.

PaSympa tool discord-mcp tool Confidence Notes
discord_list_guilds users_list_current_user_guilds high -
discord_get_guild_info guild_get high -
discord_list_channels channels_list high -
discord_send_message messages_send high -
discord_read_messages messages_read high -
discord_edit_message messages_edit high -
discord_delete_message messages_delete high -
discord_pin_message messages_pin high -
discord_search_messages messages_search_recent high -
discord_add_reaction reactions_create high -
discord_get_reactions reactions_list high -
discord_create_channel channels_create_guild_channel high -
discord_edit_channel channels_modify high -
discord_list_members members_list high -
discord_kick_member members_kick high -
discord_ban_member members_ban high -
discord_search_members members_search high -
discord_list_roles roles_list high -
discord_create_role roles_create high -
discord_get_audit_log audit_log_get high -

A handful of PaSympa wrappers fold onto a single discord-mcp tool - these are the medium-confidence collapses you should re-read before swapping:

PaSympa tool discord-mcp tool Confidence Notes
discord_send_embed messages_send medium Embed becomes embeds[] in the messages_send payload.
discord_send_multiple_embeds messages_send medium Pass the full embeds[] array directly.
discord_reply_message messages_send medium Set message_reference.message_id in the send payload.
discord_timeout_member members_modify medium Pass communication_disabled_until (ISO-8601 timestamp).
discord_lock_channel_permissions channels_modify_permissions medium Lock = explicit deny SEND_MESSAGES on @everyone.

About 13 PaSympa tools have no discord-mcp equivalent and surface in the report’s unmapped list:

  • Scheduled events (7 tools) - discord_list_scheduled_events, discord_get_scheduled_event, discord_create_scheduled_event, discord_edit_scheduled_event, discord_delete_scheduled_event, discord_get_event_subscribers, discord_create_event_invite. discord-mcp exposes the events via events_* tools (different verb prefix); the adapter treats these as unmapped because the verb prefixes don’t match the string-extraction step. Manual swap: events_list, events_get, events_create, etc.
  • Permissions helpers (2) - discord_audit_permissions, discord_copy_permissions. These are higher-level compositions on top of the channel-permissions REST endpoint; rebuild client-side from channels_get + channels_modify_permissions.
  • Server stats (1) - discord_get_server_stats is a client-side computation in PaSympa (counts derived from members_list + channels_list). discord-mcp expects the agent to compute this itself.
  • Channel clone (1) - discord_clone_channel. Compose from channels_get (read source overwrites + topic + slowmode) + channels_create_guild_channel (apply to new channel).
  • Forum getters (2) - discord_get_forum_channels, discord_get_forum_post. Use channels_list filtered by type === 15 and channels_get respectively.