KanbanThing

Create and drive KanbanThing kanban boards. No account, no API key, board link required.

Should I use this

Quality & Safety

A
Description quality
90%
Schema completeness
98%
Naming quality
100%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,853Tokens (tool definitions)
~1.8 KBTypical response size
Moderate attention impact (1.45% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "kanban": {
      "url": "https://www.kanbanthing.com/mcp"
    }
  }
}

Remote endpoints

https://www.kanbanthing.com/mcpstreamable-http

What it can do

Tool inventory

Tools (8)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟡create_board(name, password, columns, lifespan_days)

Create a new KanbanThing board and return its id, shareable URL and password. No sign-up. Every board is password protected: pass `password` to choose one, otherwise a random password is generated and returned. Give both the URL and the password to whoever should use the board. Boards are deleted when they expire.

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Board name shown to everyone."
    },
    "password": {
      "description": "Board password. A random one is generated and returned if omitted.",
      "type": "string",
      "maxLength": 100
    },
    "columns": {
      "description": "Columns left to right after Backlog. Defaults to To Do, In Progress, Done.",
      "maxItems": 10,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 100
      }
    },
    "lifespan_days": {
      "description": "Days until the board is deleted. Defaults to 60.",
      "type": "integer",
      "minimum": 1,
      "maximum": 60
    }
  },
  "required": [
    "name"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_board(board_id, password)

Read a board by id: its name, expiry, columns and how many cards each column holds.

Input Schema

{
  "type": "object",
  "properties": {
    "board_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 300,
      "description": "The board UUID, or the board URL the user shared. Never invent one."
    },
    "password": {
      "type": "string",
      "maxLength": 100,
      "description": "The board password, if the board is protected."
    }
  },
  "required": [
    "board_id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_columns(board_id, password)

List the columns on a board, left to right, with their ids.

Input Schema

{
  "type": "object",
  "properties": {
    "board_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 300,
      "description": "The board UUID, or the board URL the user shared. Never invent one."
    },
    "password": {
      "type": "string",
      "maxLength": 100,
      "description": "The board password, if the board is protected."
    }
  },
  "required": [
    "board_id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_cards(board_id, password, column, limit)

List the cards on a board, optionally only those in one column.

Input Schema

{
  "type": "object",
  "properties": {
    "board_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 300,
      "description": "The board UUID, or the board URL the user shared. Never invent one."
    },
    "password": {
      "type": "string",
      "maxLength": 100,
      "description": "The board password, if the board is protected."
    },
    "column": {
      "description": "Column name or id. Omit for every column.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "limit": {
      "description": "Maximum cards to return. Defaults to 100.",
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    }
  },
  "required": [
    "board_id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡create_card(board_id, password, title, column, description, ...)

Add a card to a column on a board. Lands in Backlog when no column is given.

Input Schema

{
  "type": "object",
  "properties": {
    "board_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 300,
      "description": "The board UUID, or the board URL the user shared. Never invent one."
    },
    "password": {
      "type": "string",
      "maxLength": 100,
      "description": "The board password, if the board is protected."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Card title."
    },
    "column": {
      "description": "Column name or id. Defaults to Backlog.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "description": {
      "type": "string",
      "maxLength": 4000
    },
    "due_date": {
      "description": "Due day as YYYY-MM-DD.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "color": {
      "description": "Card colour as #rrggbb.",
      "type": "string",
      "pattern": "^#[0-9a-f]{6}$"
    }
  },
  "required": [
    "board_id",
    "title"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪move_card(board_id, password, card_id, column)

Move a card to another column on the same board, at the end of that column.

Input Schema

{
  "type": "object",
  "properties": {
    "board_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 300,
      "description": "The board UUID, or the board URL the user shared. Never invent one."
    },
    "password": {
      "type": "string",
      "maxLength": 100,
      "description": "The board password, if the board is protected."
    },
    "card_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
      "description": "Card id from list_cards."
    },
    "column": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Destination column name or id."
    }
  },
  "required": [
    "board_id",
    "card_id",
    "column"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴update_card(board_id, password, card_id, title, description, ...)

Change a card title, description, due date or colour. Pass null to clear a field. Use move_card to change column.

Input Schema

{
  "type": "object",
  "properties": {
    "board_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 300,
      "description": "The board UUID, or the board URL the user shared. Never invent one."
    },
    "password": {
      "type": "string",
      "maxLength": 100,
      "description": "The board password, if the board is protected."
    },
    "card_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
      "description": "Card id from list_cards."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "description": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 4000
        },
        {
          "type": "null"
        }
      ]
    },
    "due_date": {
      "description": "Due day as YYYY-MM-DD, or null.",
      "anyOf": [
        {
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
        },
        {
          "type": "null"
        }
      ]
    },
    "color": {
      "description": "Card colour as #rrggbb, or null.",
      "anyOf": [
        {
          "type": "string",
          "pattern": "^#[0-9a-f]{6}$"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "board_id",
    "card_id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴delete_card(board_id, password, card_id)

Permanently delete a card from a board. This cannot be undone.

Input Schema

{
  "type": "object",
  "properties": {
    "board_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 300,
      "description": "The board UUID, or the board URL the user shared. Never invent one."
    },
    "password": {
      "type": "string",
      "maxLength": 100,
      "description": "The board password, if the board is protected."
    },
    "card_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
      "description": "Card id from list_cards."
    }
  },
  "required": [
    "board_id",
    "card_id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded8 tools
verifiedversion not recorded8 tools
verifiedversion not recorded8 tools