Slack MCP plugin: Add conversations.mark (mark channel as read) support
Feature Request: Slack MCP Plugin — slack_mark_read
Summary
Add a slack_mark_read tool to the Slack MCP plugin that calls the Slack API's conversations.mark endpoint, allowing users to mark channels/DMs as read up to a specific timestamp.
Use Case
I have a Slack digest/triage workflow that:
- Reads channels and summarizes activity
- Tracks per-channel checkpoints (latest message timestamp seen)
- Delivers a formatted digest DM
After processing messages, I want to mark those channels as read so my Slack app reflects the actual state — channels I've already triaged shouldn't show unread badges.
Proposed Tool
slack_mark_read
channel_id: string (required) — channel, DM, or group DM to mark as read
ts: string (required) — message timestamp to mark as read up to
Slack API Reference
- Endpoint:
conversations.mark - Required scopes:
channels:write,groups:write,im:write,mpim:write - Request:
POST conversations.mark { channel, ts } - Response:
{ "ok": true }
Why This Matters
Without this, there's a disconnect between "I've processed this channel in my digest" and "Slack still shows 47 unread messages." The whole point of a digest workflow is to reduce context-switching — but if channels still appear unread, users still feel compelled to open them manually.
Current Workaround
None available through the plugin. The only alternative is a separate script using a Slack user token directly, which defeats the purpose of having an integrated MCP plugin.