Skip to content

Feature offer: gateway message watcher that pushes notifications to long-lived agent sessions #30

Description

@jahwag

Hi! We maintain a fork at Bytelope/mcp-discord that adds a feature which might interest others here, so leaving a pointer.

What it does

An optional gateway message watcher: when the MCP server is used by a long-lived agent (rather than a one-shot chat client), it listens for inbound Discord messages on configured channels and pushes a debounced, single-line notification into the agent's terminal session, e.g.

[discord] 3 new: #general(@jahwag) #tasks(@amara)

The notification is deliberately minimal (channel + author only) — the agent decides whether to fetch full content via the existing read_messages tool. This turns the server from purely pull-based into something agents can be woken up by.

Details:

  • Enabled only when DISCORD_WATCH_CHANNELS (comma-separated channel IDs) and a delivery target are both set; default behavior is unchanged.
  • Bursts are debounced into one notification; self-echoes are filtered.
  • Watches forum/thread messages via the parent channel too.
  • Messages that @-mention other users (but not this bot) are skipped, so multi-agent setups don't wake every agent on a directed ping.
  • Covered by unit tests (tests/test_watch.py).

Implementation: src/discord_mcp/watch.py

Caveat

Our delivery mechanism is currently tmux send-keys into a named session, because our agents run in tmux. For upstream it should probably be generalized to a pluggable sink (stdout line, webhook, file, …) — the watcher core is already transport-agnostic and takes a callback.

If there's interest, happy to generalize the delivery side and open a PR. Otherwise the fork is there for anyone who needs it. Thanks for the project!

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions