planka-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PLANKA_BASE_URL | Yes | The base URL of your Planka instance (e.g. https://planka.example.com) | |
| PLANKA_API_TOKEN | Yes | Your Planka API token (from Account → API Tokens) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_projectsA | List all projects the user has access to. |
| get_projectA | Get a single project by ID. |
| create_projectC | Create a new project. |
| update_projectA | Update a project's name and/or description. |
| delete_projectC | Delete a project. |
| get_boardsA | List all boards in a project. |
| get_boardB | Get a single board by ID. |
| create_boardC | Create a new board in a project. |
| update_boardC | Update a board's name. |
| delete_boardC | Delete a board. |
| get_board_summaryA | Get a board summary with its lists, card counts, and labels. |
| get_project_summaryB | Get a project summary with all boards, their lists, and card counts. |
| get_all_listsC | List all lists (columns) on a board. |
| get_listA | Get a single list by ID. |
| create_listB | Create a new list on a board. Type can be 'active' or 'closed'. |
| update_listA | Update a list's name and/or type ('active' or 'closed'). |
| delete_listC | Delete a list. |
| get_all_cardsA | List all cards in a list. |
| get_cardC | Get a single card by ID. |
| get_card_detailsB | Get a card with all its details: tasks, comments, labels, and attachments. |
| create_cardC | Create a new card in a list. dueDate should be ISO 8601 format. |
| create_card_with_tasksB | Create a card with task checklist items. Provide task names as a list of strings. |
| update_cardB | Update a card's fields. Only specified fields are updated. |
| move_cardB | Move a card to another list at a specific position. Use 65535 for end of list. |
| duplicate_cardC | Duplicate a card into another list (or the same list). |
| delete_cardD | Delete a card. |
| assign_parent_cardA | Set the parent card for a card, creating a parent-child (subtask) relationship. |
| attach_file_to_cardB | Upload a file attachment to a card. Provide the absolute file path. |
| get_all_tasksA | List all tasks (checklist items) on a card. |
| create_taskB | Create a single task on a card. |
| batch_create_tasksA | Create multiple tasks at once. Each item should have 'cardId' and 'name' keys. Example: [{"cardId": "123", "name": "Task 1"}, {"cardId": "123", "name": "Task 2"}] |
| get_taskA | Get a single task by ID. |
| update_taskC | Update a task's name or completion status. |
| delete_taskC | Delete a task. |
| complete_taskA | Toggle a task's completion status. |
| get_all_labelsA | List all labels on a board. |
| create_labelA | Create a new label on a board. Color should be a Planka color name like 'muddy-grey'. |
| update_labelB | Update a label's name and/or color. |
| delete_labelC | Delete a label. |
| add_label_to_cardC | Add a label to a card. |
| remove_label_from_cardC | Remove a label from a card. |
| get_all_commentsB | List all comments on a card. |
| create_commentB | Add a comment to a card. |
| get_commentA | Get a single comment by ID. |
| update_commentC | Update a comment's text. |
| delete_commentB | Delete a comment. |
| start_stopwatchA | Start the stopwatch on a card. |
| stop_stopwatchB | Stop the stopwatch on a card. |
| get_stopwatchA | Get the stopwatch status for a card. |
| reset_stopwatchA | Reset the stopwatch on a card (clears accumulated time). |
| get_all_membershipsA | List all memberships on a board. |
| create_membershipB | Add a member to a board. Role can be 'editor' or 'viewer'. |
| get_membershipA | Get a single membership by ID. |
| update_membershipC | Update a membership's role. |
| delete_membershipC | Remove a member from a board. |
| get_usersA | List all users the current account can see. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 56 tools
Most tools are clearly separated by resource and action, but some overlap exists: update_task can set completion while complete_task toggles it, and get_card_details bundles comments/tasks/labels that also have dedicated getters. Descriptions are clear enough to avoid major misselection.
Tool names are predominantly snake_case verb_noun and easy to predict. Minor inconsistency: list-all operations use get_projects/get_boards but get_all_lists/get_all_cards/get_all_tasks, and there is no get_label single counterpart.
56 tools is well above the 50+ extreme threshold for an MCP tool surface. Although the Planka domain has many entity types and each tool maps to a distinct operation, the sheer count will make agent tool selection unwieldy.
Core lifecycle coverage is strong across projects, boards, lists, cards, tasks, labels, comments, memberships, and stopwatch. Gaps include no attachment removal/update, no unassign parent-card operation, and no single-label getter, but these are minor compared to the covered surface.