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
verifiedversion not recorded8 tools
verifiedversion not recorded8 tools
verifiedversion not recorded8 tools