Everything in the dashboard, available programmatically.
Mesita is a Trello-style Kanban app. Everything you can do in the dashboard is also available through the REST API and the MCP server — they call the same endpoints, so they never drift.
https://dash.mesita.io/api/v1https://dash.mesita.io/mcpAll API and MCP requests use a bearer key. Create one in the dashboard under API & MCP.
Authorization: Bearer <key>.X-Mesita-Workspace: <slug-or-id> header (REST) or a workspace argument (MCP). If you only have one workspace it is selected automatically.The dashboard UI itself uses the same API with a session cookie + X-CSRF-Token.
Add Mesita as a custom MCP connector:
https://dash.mesita.io/mcpThe MCP protocol is JSON-RPC 2.0 over HTTP POST (initialize, tools/list, tools/call).
GET /boards — list boardsPOST /boards — create {name, description?, visibility?, background?, with_default_lists?}GET /boards/{id} — full board (lists + cards + labels + members + fields)PATCH /boards/{id} — {name?, description?, background?, bg_type?, visibility?}DELETE /boards/{id}POST /boards/{id}/star · POST /boards/{id}/archive ({reopen:true} to reopen)POST /boards/{id}/copy · GET /boards/{id}/exportPOST /boards/{id}/members {user, role} · DELETE /boards/{id}/members/{uid}GET /boards/{id}/lists · POST /boards/{id}/lists {name, position?}PATCH /lists/{id} {name?, wip_limit?, collapsed?, position?}DELETE /lists/{id} · POST /lists/{id}/archive · POST /lists/{id}/move {board_id?, position?}POST /lists/{id}/sort {by: due|created|votes|alpha}GET /lists/{id}/cards · POST /lists/{id}/cards {title, description?}GET /cards/{id} — full card · PATCH /cards/{id} {title?, description?, cover_type?, cover_value?, start_at?, due_at?, due_reminder?}DELETE /cards/{id} · POST /cards/{id}/move {list_id, position?} · POST /cards/{id}/copy {list_id, linked?}POST /cards/{id}/archive · POST /cards/{id}/vote · POST /cards/{id}/watch / DELETE …/watchPOST /cards/{id}/complete ({undo:1} to undo)POST /cards/{id}/labels {label_id} · DELETE /cards/{id}/labels/{label_id}POST /cards/{id}/members {user_id} · DELETE /cards/{id}/members/{user_id}GET /cards/{id}/comments · POST /cards/{id}/comments {body} (Markdown, @email mentions)GET/POST /cards/{id}/attachments {kind, url, name}POST /cards/{id}/checklists {name} · Field value: POST /cards/{id}/fields {field_id, value}GET/POST /boards/{id}/labels {name, color} · PATCH/DELETE /labels/{id}GET/POST /boards/{id}/fields {name, type, options?} · PATCH/DELETE /fields/{id}POST /checklists/{id}/items {text} · PATCH/DELETE /checklist-items/{id} · POST /checklist-items/{id}/convertPATCH/DELETE /comments/{id} · POST /comments/{id}/reactions {emoji} · DELETE /attachments/{id}GET /search?q= · POST /filter {q?, board_id?, list_id?, label_id?, member_id?, overdue?, due_before?}GET/POST /filters (saved filters)GET/POST /boards/{id}/rules · PATCH/DELETE /rules/{id} · POST /rules/{id}/run {card_id}GET/POST /webhooks {url, board_id?, events?} · PATCH/DELETE /webhooks/{id} (deliveries are HMAC-signed with X-Mesita-Signature)POST /import {json, name?} — import a Trello board exportGET /notifications · POST /notifications/{id}/readPOST /bulk/move · POST /bulk/archive · POST /bulk/labelCreate a board with lists and a card:
curl -X POST https://dash.mesita.io/api/v1/boards \
-H 'Authorization: Bearer YOUR_KEY' -H 'Content-Type: application/json' \
-d '{"name":"Roadmap","with_default_lists":true}'
curl -X POST https://dash.mesita.io/api/v1/lists/123/cards \
-H 'Authorization: Bearer YOUR_KEY' -H 'Content-Type: application/json' \
-d '{"title":"Ship v1","description":"**Markdown** supported"}'