Summary
The MCP server exposed at localhost:23373 (via @beeper/desktop-mcp) currently only supports sending plain text messages through the send_message tool. There is no way to send images or file attachments, which severely limits what AI assistants (e.g. Claude via Cowork/Claude Desktop) can do on behalf of users.
Current behaviour
The send_message tool signature only accepts a chatID and text parameter. Attempting to send an image requires falling back to UI automation workarounds, which are fragile and not a proper solution.
Requested feature
Add an optional attachment parameter (file path or URL) to the send_message MCP tool. The implementation could:
- Accept a local file path or a remote URL as the attachment value
- Upload the file to the Matrix media repository using the Matrix media upload API (
/_matrix/media/v3/upload)
- Construct and send an appropriate Matrix event -
m.image for images, m.file for generic files - with the resulting mxc:// URI
Example proposed tool signature
{
"name": "send_message",
"parameters": {
"chatID": "string",
"text": "string (optional if attachment provided)",
"attachment": "string (optional) - local file path or URL"
}
}
Why this matters
AI assistants integrated via MCP are increasingly being used to help users manage their messages. The ability to send images and files is a fundamental part of modern messaging - without it, the MCP integration is limited to read and text-reply workflows only. This would unlock use cases like sharing screenshots, documents, and generated images directly through Beeper via AI.
Context
- Package:
@beeper/desktop-mcp (this repo, packages/mcp-server)
- MCP server runs locally at
localhost:23373
- Beeper is built on Matrix, so the media upload path is well-defined
- Raised by a user integrating Beeper MCP with Claude (Cowork mode)
Summary
The MCP server exposed at
localhost:23373(via@beeper/desktop-mcp) currently only supports sending plain text messages through thesend_messagetool. There is no way to send images or file attachments, which severely limits what AI assistants (e.g. Claude via Cowork/Claude Desktop) can do on behalf of users.Current behaviour
The
send_messagetool signature only accepts achatIDandtextparameter. Attempting to send an image requires falling back to UI automation workarounds, which are fragile and not a proper solution.Requested feature
Add an optional
attachmentparameter (file path or URL) to thesend_messageMCP tool. The implementation could:/_matrix/media/v3/upload)m.imagefor images,m.filefor generic files - with the resultingmxc://URIExample proposed tool signature
{ "name": "send_message", "parameters": { "chatID": "string", "text": "string (optional if attachment provided)", "attachment": "string (optional) - local file path or URL" } }Why this matters
AI assistants integrated via MCP are increasingly being used to help users manage their messages. The ability to send images and files is a fundamental part of modern messaging - without it, the MCP integration is limited to read and text-reply workflows only. This would unlock use cases like sharing screenshots, documents, and generated images directly through Beeper via AI.
Context
@beeper/desktop-mcp(this repo,packages/mcp-server)localhost:23373