-
Notifications
You must be signed in to change notification settings - Fork 6
Description
Problem
When slack_read_channel returns messages that contain file attachments (e.g. uploaded images), it only returns the filename — not a download URL, not the file content, and not enough metadata to construct a usable URL.
Current response for a message with an image upload:
Files: 1000009870.jpg
This makes it impossible for an AI agent to actually access the file, even though the user is authenticated and has access to the workspace.
Use Case
We are building an agentic quiz night application where:
- Teams photograph their handwritten answer sheets and post them to a Slack channel
- An AI agent (Claude) reads the channel to collect the answer sheets
- The agent uses vision to grade the handwritten answers
Step 2 is completely blocked — the agent can see that a file was uploaded, but cannot retrieve it.
Proposed Solution
For messages with file attachments, slack_read_channel (and slack_read_thread) should return at least one of:
url_private_download— the authenticated download URL from the Slack Files API, which the agent can then fetch using its OAuth tokenpermalink— the public permalink to the file- Inline image content — for image files, return the image as a base64-encoded MCP image content block (similar to how vision-capable tools return images)
Option 3 would be the most powerful for AI agents that need to visually process uploaded images.
Slack API Reference
The files.info and conversations.history endpoints already return url_private, url_private_download, permalink, thumb_* fields on file objects. The MCP server just needs to surface these.
Workaround
Currently none — without access to the file URL or content, AI agents cannot process Slack file uploads at all.