Maito MCP Server
OfficialClick on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Maito MCP Server What's my plan for today?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@maito-app/mcp-server
MCP server for Maito — connect Claude Desktop, Cursor, Zed, or any MCP client to your Maito workspace (boards, cards, notes, journal).
npx -y @maito-app/mcp-server --url https://maito.romankov.dev --token <your-token>Get a token from the Maito web app (Sidebar → Connect AI) or from the mobile MoreView → Подключить AI sheet.
Tools
Tool | What it does |
| Returns spaces, boards, columns. |
| Creates a card in a column. |
| Updates fields on an existing card. |
| Moves card to archive. |
| Full-text search across notes. |
| Fetches a note by id. |
| Returns today's overdue + due-today + week-ahead snapshot. |
Related MCP server: Todoist MCP Server
Claude Desktop config
Merge into ~/Library/Application Support/Claude/claude_desktop_config.json
(macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"maito": {
"command": "npx",
"args": ["-y", "@maito-app/mcp-server", "--url", "https://maito.romankov.dev", "--token", "<your-token>"]
}
}
}Restart Claude Desktop.
Cursor
Settings → MCP → Add Server, paste the same JSON.
Self-hosted Maito
Replace https://maito.romankov.dev with your URL. The MCP server only needs
--url + --token; nothing else.
Develop
npm install
npm run build
npm test # spawns server via stdio against a live backendtests/integration.test.ts requires MAITO_URL env var.
Security
MCP tokens are JWTs scoped mcp with a 10-year TTL. They grant the same
access as your normal login. Don't commit them, don't share them.
License
AGPL-3.0-only — see LICENSE.
Available Tools
21 toolsadd_journal_entryC
Add a comment / journal entry to a card. Use for status updates, notes, decisions.
Inputs: body (required), cardId (required).
archive_cardA
Archive a card (soft-delete — recoverable from Archive view).
Inputs: id (required).
create_boardA
Create a new board inside a space. Spawns 3 default columns: Todo / In Progress / Done.
Inputs: name (required), spaceId (required), layout, displayMode.
create_cardA
Create a task card. Either columnId (precise) or boardId (uses first column). Workspace inherited from column/board.
Inputs: title (required), isEpic, tagIds, boardId, +6 more.
create_columnC
Create a new column (status) in a board.
Inputs: name (required), boardId (required).
create_noteC
Create a new note. workspaceId required when multiple workspaces exist.
Inputs: title (required), body, workspaceId.
create_spaceC
Create a new space (top-level container) within a workspace.
Inputs: name (required), icon, color, workspaceId.
get_cardA
Return a single card with full details: description, resolved tag names, journal entries, subtasks, plus board/column/workspace context.
Inputs: id (required).
get_noteB
Get full body of a note by id.
Inputs: id (required).
list_boardsA
List boards. Filter by workspaceId and/or spaceId. Each board includes workspaceId + spaceId.
Inputs: spaceId, workspaceId.
list_cardsB
List cards (summaries). Filter by workspaceId, boardId, done, archived, priorityOnly. Each card includes workspaceId + boardId + columnId.
Inputs: done, limit, boardId, archived, +2 more.
list_columnsA
List columns (statuses) of a board, ordered left-to-right. Use before create_card / update_card to pick the right column by name.
Inputs: boardId (required).
list_spacesA
List spaces. If workspaceId is omitted and there is exactly one workspace, uses it; otherwise returns spaces from all workspaces labelled with workspaceId.
Inputs: workspaceId.
list_tagsA
List tags. Tags are scoped to a space. Filter by spaceId or workspaceId. Use to resolve tagIds to human-readable names.
Inputs: spaceId, workspaceId.
list_workspacesA
List all workspaces. Each workspace is an isolated container — spaces/boards/cards/notes do not cross workspace boundaries. Call this first to orient yourself.
Inputs: no named parameters.
recent_activityB
Activity feed: card_created, card_done, card_moved, board_created, space_created, note_created, etc. Answers "what did I do recently".
Inputs: limit, since, workspaceId.
search_cardsB
Full-text search across card titles and descriptions. Optionally scope to workspaceId / boardId.
Inputs: query (required), limit, boardId, workspaceId, +1 more.
search_notesC
Search notes by title and body. Optionally scope to workspace.
Inputs: query (required), limit, workspaceId.
today_planB
Return cards scheduled for today in the local timezone of this MCP process. Pass dayOffset=1 for tomorrow, -1 for yesterday. Filter by workspaceId.
Inputs: dayOffset, workspaceId.
update_cardA
Update card fields. patch.columnId MOVES the card to another column (mark Done by moving, or pass done:true). Omit fields you do not want to change.
Inputs: id (required), patch (required).
whoamiA
Identify the user and their environment. Returns email, local timezone of this MCP process, the Maito instance URL, and number of workspaces. Call first when you need user context.
Inputs: no named parameters.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 21 tools
Each tool targets a distinct action and resource, with clear descriptions that prevent confusion. For example, add_journal_entry is specifically for journal entries on cards, while create_note is for standalone notes.
All tool names follow a consistent verb_noun pattern using lowercase with underscores, such as list_boards, create_card, and archive_card. This makes the API predictable and easy to navigate.
With 21 tools, the server covers the core operations for a project management system but is slightly above the typical 3-15 range. However, each tool serves a clear purpose and the count is not excessive.
The tool set covers create, read, list, search, and some update/archive operations, but notable gaps include missing update and delete tools for boards, columns, spaces, and notes. This leaves some lifecycle management incomplete.
Maintenance
Related MCP Connectors
Create and manage MeisterTask projects, tasks, and notes from your AI assistant.
Governed memory and workspace for any AI: tasks, calendar, mail and pages, with per-action consent.
Manage tasks, Focus Zone, notes, projects, and task history from compatible AI assistants.
Lets Claude, ChatGPT, and Muse read and update your beckett tasks, notes, calendar, and lists.
Related MCP Servers
- AlicenseAqualityFmaintenanceEnables AI assistants to manage tasks in Sunsama, including creating tasks, reading daily and backlog tasks, marking tasks complete, and organizing projects through streams.16158 npm52MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage Todoist tasks, projects, sections, and labels through natural language, supporting task creation, updates, completion, and intelligent organization of your workflow.17 npmMIT
- AlicenseNot gradedqualityFmaintenanceEnables AI assistants to manage Todoist tasks, projects, sections, labels, and comments through natural language conversations, providing complete control over your productivity workflow via the Todoist API.94 npm7MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage Todoist tasks and projects with CRUD operations, hierarchical navigation, and completed task retrieval.11 npmMIT