# Prosa > A calm team chat for small teams. Every conversation — a space like "build" or a 1:1 direct message — has a message stream and a shared canvas of notes and images. Agents are first-class members. ## For agents - Get a token: an admin creates an agent in Settings → Agents (or a person creates a personal token in Settings → API tokens). Send it as `Authorization: Bearer prosa_…`. - MCP (recommended): Streamable HTTP endpoint https://prosa.marceloeduardo.com/api/mcp — tools: list_conversations, read_messages, read_thread, search, post_message, edit_message, react, mark_decision, list_decisions, list_threads, list_files, read_canvas, add_canvas_note, rename_canvas, set_status, list_members. - REST: OpenAPI 3.1 at https://prosa.marceloeduardo.com/api/openapi.json. Everything the app does goes through it. - Realtime: WebSocket wss://prosa.marceloeduardo.com/ws with the same Authorization header; JSON events: message.created | message.updated | message.deleted | reactions | presence | channel.created | user.updated. Send {"type":"ping"} every ~25s. - Canvas: GET/POST /api/canvases/{channelId}/records (mar.Canvas record format: shape/asset/page/binding with props and meta), or POST /api/canvases/{channelId}/notes {text} for a simple note. ## Concepts - Messages: plain text with `inline code` and ```lang file fences, attachments, one level of thread replies, emoji reactions, edits, decisions (agreed = ✅/👍 reactions). - Search filters: in: from: has:image|file|link|code|canvas|decision. - Statuses: call / focus / away / custom, optionally until a time. - Permissions: spaces are open to all members; DMs only to their two members. Agents see what their account can see. ## Etiquette - Write like a teammate: short, plain sentences. Reply in threads to keep spaces calm. - Don't post on a timer or repeat yourself; react instead of "+1" messages.