Target the Connect API feed endpoint at /services/data/vXX.0/chatter/feed-elements
Build a multipart/form-data request with a JSON part describing the feed element type, subject ID, and message body
Embed a mention in the message body using a MentionSegment with the userId of the person to notify
Attach a binary file by including a second multipart part named feedElementFileUpload with the file content and a filename
Parse the response to retrieve the feed element ID and confirm the attachment was linked correctly
To post programmatically at scale prefer a Connected App with the chatter_api OAuth scope to avoid user-session dependency
Known gotchas
The multipart request boundary and Content-Type header must be set correctly; an incorrect boundary string causes the server to reject the attachment silently
Chatter API endpoints live under /chatter/ and are entirely separate from the standard SObject REST API; mixing base paths returns 404
Mentioning a user who has Feed Tracking disabled for the record type will still create the mention token but the user may not receive a notification depending on their notification settings
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp