Skip to main content
Glama
Maito MCP Server

Maito MCP Server

Official
by maito-app

@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

list_spaces

Returns spaces, boards, columns.

create_card

Creates a card in a column.

update_card

Updates fields on an existing card.

archive_card

Moves card to archive.

search_notes

Full-text search across notes.

get_note

Fetches a note by id.

today_plan

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 backend

tests/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 tools
add_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

    B3.4/5.0

    Scored across 21 tools

    Disambiguation5/5

    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.

    Naming Consistency5/5

    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.

    Tool Count4/5

    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.

    Completeness3/5

    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

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers