planka-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PLANKA_EMAIL | No | Email of the Planka user to authenticate as (used with PLANKA_PASSWORD). | |
| PLANKA_ACT_AS | No | Ceiling for the effective role: guest, worker, editor, or admin. Applied on top of the account's real rights. | |
| PLANKA_API_KEY | No | API key for the Planka user (alternative to email/password). | |
| PLANKA_BASE_URL | Yes | The base URL of your Planka instance, e.g. https://planka.example.com | |
| PLANKA_PASSWORD | No | Password of the Planka user (used with PLANKA_EMAIL). | |
| PLANKA_BOARD_IDS | No | Comma-separated list of board (project) IDs. If set, every tool refuses anything outside these projects. | |
| PLANKA_BOARD_TYPES | No | Override which Planka board types are considered work (default: project boards). | |
| PLANKA_ALLOW_REOPEN | No | If 'true', allow reopening tasks from done. | false |
| PLANKA_STATUS_LISTS | No | Override the list-name to status mapping. See .env.example / docs/configuration.md. | |
| PLANKA_BLOCKED_LABELS | No | Comma-separated list of labels that hide cards from the actionable queue. | |
| PLANKA_ALLOW_USER_ADMIN | No | If 'true', enable admin_manage_person tool. | false |
| PLANKA_REQUIRE_DEPS_MET | No | If 'true', hide cards whose linked dependency cards are unfinished. | false |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| create_taskA | Create a new task in the todo stage of a board - follow-up work you discovered, or a task you were asked to file. It lands unclaimed, so claim it before working on it. Labels must already exist on the board; this tool never invents board structure. |
| update_task_detailsA | Refine a task's description, deadline or labels - for example after investigating and learning what the work actually involves. Only tasks you hold, or tasks nobody has claimed, can be edited; another worker's task is never touched. |
| update_checklistA | Break a task into checklist steps and tick them off as you go, so progress is visible on the board while you work. Only tasks you hold, or unclaimed ones, can be changed. Items are never deleted - reopen them instead. |
| attach_linkA | Attach a link to a task - a pull request, document or dashboard you
produced. Use this alongside |
| list_boardsA | List the boards you can reach - the containers that hold projects. Use it to find where a project lives, or before creating a new project. |
| list_projectsA | List the projects (tabs) you can work in, with the role you hold on each. Start here when you are asked to do something on a named project. |
| get_projectA | Full structure of one project: its lists and what status each maps to, its labels and how heavily they are used, its members and their roles, and your own role. Read this before changing structure or assigning people. |
| create_projectA | Create a new project (tab) inside a board, pre-populated with workflow lists so it is immediately usable. Requires admin rights on that board. |
| update_projectA | Rename a project (tab) or change how it opens. Requires structure rights. |
| create_listA | Add a workflow stage to a project. Note that Planka closes any card placed
in a |
| update_listA | Rename a list or change its type. Retiring a stage is a type change to
|
| delete_listA | Delete an empty list. A list holding cards is never deleted - move the cards out first, or retire the stage with update_list(list_type='inactive'). |
| manage_labelsA | Create, rename or remove the labels a project uses for priority, size and state. A label still applied to cards is never deleted. |
| set_task_labelsA | Apply or take labels off a task - how you change its priority or size, since Planka stores both as labels. Labels themselves are untouched; only their link to this task changes. |
| move_taskA | Move a task to another list, or to a different project entirely. Use this for stages that are not part of the todo/in_progress/review/done flow - a 'Blocked' or 'Icebox' list, say - where update_status does not apply. |
| whoamiA | Who this server is acting as, and what it is allowed to do. Call it when a request might exceed your rights, so you can say so instead of failing. |
| list_peopleA | List people and their roles - members of one project, or the whole directory. Use it to resolve a partial name before assigning work. |
| assign_peopleA | Assign people to a task, adding them to the project first if they are not members yet. Each name is resolved against the project's members and the user directory; an ambiguous name is reported rather than guessed. Granting project membership needs membership rights, so a worker can assign existing members but cannot pull new people onto the project. |
| unassign_peopleA | Take people off a task. Their project membership is untouched - this only removes the assignment. |
| set_project_membersA | Add people to a project, change the role they hold, or remove them from it. Requires membership rights on that project. Removing a member does not delete anything they created, and never touches their account. |
| admin_manage_personA | Instance-level administration: change someone's instance role, make someone
a manager of a board, or mint and revoke API keys. Off unless the operator
sets PLANKA_ALLOW_USER_ADMIN, and this server will never raise its own
account's role or hand out
|
| find_informal_assignmentsA | Find work handed out in comments but never actually assigned. Teams often hand off by writing "Assigned to: @Name" in a comment. In
Planka that is just text: the person is not a member of the task, so it never
reaches their queue, no board view shows them as owner, and it is invisible to
reporting. This reports every such comment where the mentioned person is not a
member of the task, and gives you the exact |
| list_actionable_tasksA | List tasks that are genuinely ready to be worked on, most urgent first. Call this first, before any other tool. The filtering happens on the server:
only cards sitting in a 'todo' stage of an active list, not closed, and
either unassigned or already assigned to you are returned. Each entry carries
what you need to choose: title, priority, due date, effort, labels, subtask
counts and a description excerpt. Pick one, then call |
| get_taskA | Full detail for one task: description, labels, subtasks, assignees, comments and anything it is waiting on. Use it after you claim a task, to understand what has to be done. |
| claim_taskA | Claim a task for yourself before working on it. This is atomic: the claim
is a unique assignment row in Planka, so a second worker racing for the same
task gets |
| update_statusA | Move a task you have claimed to a new status. Legal moves are todo -> in_progress -> review -> done (plus in_progress -> todo to hand work back). Illegal jumps are rejected. You must hold the claim on the task, and the board must have a list for the target status. |
| add_resultA | Attach your output to a task: what you did, what you produced, where it lives. Post this before moving the task to done, so the work is auditable. Requires that you hold the claim. |
| add_commentA | Leave a comment on a task - a question, a blocker, or progress context for
the humans watching the board. Use |
| release_taskA | Give up your claim on a task so another worker can take it. Only your own claim is ever removed - other people's assignments are untouched. Nothing is deleted; the task and its history stay on the board. |
| find_tasksA | Search tasks across every project you can see - including other people's. Unlike Searching for a person finds all three ways work reaches them: tasks they are
assigned to, tasks holding a checklist item assigned to them, and tasks where
they were mentioned in a comment. Each result says which, in |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| work_queue | One-click entry point: pick up ready work and complete it end to end. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/KT-SPARKS/planka-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server