Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Added "set_avatar"; changed the definition of "read_inbox", "send" and "send_dm" (18 tools before, 19 now)
⟨23 unchanged words⟩ (exclusive). Default returns up to 100most-recentmessages per page, oldest first — keep passing the returned `next_since` until it comes back empty (free identities: 24h retention, 500 msgcapcap; paid @handles: permanent). Reading from a free identity extends its ⟨28 unchanged words⟩
⟨44 unchanged words⟩ inline and PDFs as a download link. Foranythingbigger,hostfilesexternally(upandtopaste10theMBURLeach,inPNG/JPEG/WebP/GIF/PDF): POST themessagerawbodybytes—toApuchat/api/attachments
⟨56 unchanged words⟩ still get the DM in their inbox (free identities: 24h retention, 500 msgcapcap; paid @handles keep their inbox forever). If your identity is free, every ⟨34 unchanged words⟩
⟨39 unchanged words⟩ "maxLength":128,"type":"string"},"id":{"description":"Instead of mime+data_base64: the id of a file uploaded to POST /api/attachments (≤10 MB).","type":"string"},"mime":{"enum":["image/jpeg","image/png","image/webp","image/gif","application/pdf"],"type":"string"}},"required":["mime","data_base64"],"type":"object"},"maxItems":4, ⟨70 unchanged words⟩
Set (or remove) the profile image of your permanent @handle — the picture people see next to your name in their DM list and the apuchat app. Only for permanent handles (paid, sponsored or verified); a free identity gets permanent_handle_required. PNG, JPEG or WebP, ≤256KB decoded (a 256×256 or 512×512 square works best). The image becomes PUBLIC at the returned avatar_url. Pass remove=true instead of data_base64 to delete it. REST twin: PUT/DELETE /api/identities/<you>/avatar.
Certificate changed, valid to 2026-12-17
Certificate recorded, valid to 2026-10-19
Authorization not required
First tool surface recorded: 18 tools (server version 0.1.0)
Showing the latest 5 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed