{"name":"io.github.omnicoreos/planka-mcp","slug":"omnicoreos-planka-mcp","title":"Planka MCP","description":"Planka 2.x MCP server with verified card, task, comment, label, and list operations.","url":"https://mcp.market/server/omnicoreos-planka-mcp","rating":null,"grade":"B","score":80,"certified":false,"status":"active","category":"productivity","tags":["productivity"],"presence":{"score":30,"stars":2,"forks":0,"downloads_week":32,"last_push_at":"2026-09-03T19:39:10.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/omnicoreos/planka-mcp","website":"https://github.com/omnicoreos/planka-mcp","version":"0.3.0","remotes":[],"packages":[{"registryType":"npm","identifier":"@omnicoreos/planka-mcp","version":"0.3.0","transport":{"type":"stdio"},"environmentVariables":[{"description":"Planka base URL, for example https://planka.example.com","isRequired":true,"format":"string","name":"PLANKA_BASE_URL"},{"description":"Planka API key (X-Api-Key). Recommended: replaces the email/password login","format":"string","isSecret":true,"name":"PLANKA_API_KEY"},{"description":"Email or username of the Planka agent user. Only needed when PLANKA_API_KEY is not set","format":"string","name":"PLANKA_AGENT_EMAIL"},{"description":"Password of the Planka agent user. Only needed when PLANKA_API_KEY is not set","format":"string","isSecret":true,"name":"PLANKA_AGENT_PASSWORD"},{"description":"Board id used when a tool call omits boardId","format":"string","name":"PLANKA_DEFAULT_BOARD_ID"},{"description":"Comma-separated board ids this server may see and touch. Everything else is hidden","format":"string","name":"PLANKA_ALLOWED_BOARD_IDS"},{"description":"Comma-separated project ids this server may see. Everything else is hidden","format":"string","name":"PLANKA_ALLOWED_PROJECT_IDS"},{"description":"Set to true to hide and refuse every write tool","format":"string","name":"PLANKA_READ_ONLY"},{"description":"Comma-separated tool names to switch off, for example planka_get_board","format":"string","name":"PLANKA_DISABLED_TOOLS"},{"description":"Comma-separated list ids that must not receive cards nor be edited or deleted","format":"string","name":"PLANKA_PROTECTED_LIST_IDS"},{"description":"Set to true to drop the deprecated tool aliases from tools/list. They stay callable","format":"string","name":"PLANKA_HIDE_DEPRECATED"},{"description":"Label planka_board_summary flags as unblocked/ready. Unset: no highlighting","format":"string","name":"PLANKA_SUMMARY_HIGHLIGHT_LABEL"},{"description":"Comma-separated columns planka_board_summary returns cards from when the call does not say","format":"string","name":"PLANKA_SUMMARY_DECISION_LISTS"}]}],"tools":[{"name":"planka_add_attachment","description":"Upload a local file (screenshot, log, doc) onto a card.","write_action":true,"price_micros":0,"input_schema":null},{"name":"planka_add_comment","description":"DEPRECATED: use planka_create_comment. Kept so existing callers keep working; it forwards every argument unchanged.","write_action":false,"price_micros":0,"input_schema":null},{"name":"planka_archive_card","description":"Archive a card (Planka's hidden archive column) or bring it back with restoreToListId.","write_action":false,"price_micros":0,"input_schema":null},{"name":"planka_board_activity","description":"What moved on a board, grouped by card — the call to make when resuming a session.","write_action":false,"price_micros":0,"input_schema":null},{"name":"planka_board_summary","description":"The session opener: every column with its card count and every label, in one call.","write_action":false,"price_micros":0,"input_schema":null},{"name":"planka_card_history","description":"One card's activity log as human lines (who, when, what). Planka logs only creation, moves,","write_action":false,"price_micros":0,"input_schema":null},{"name":"planka_create_card","description":"Create a card in a list, optionally with a checklist of tasks.","write_action":true,"price_micros":0,"input_schema":null},{"name":"planka_create_comment","description":"Comment on a card: status updates, notes, agent activity logs. Verified by re-reading the card's comments.","write_action":true,"price_micros":0,"input_schema":null},{"name":"planka_create_label","description":"Create a label on a board. Verified against the board's labels after writing.","write_action":true,"price_micros":0,"input_schema":null},{"name":"planka_create_list","description":"Create a list (column) on a board. Verified against the board after writing.","write_action":true,"price_micros":0,"input_schema":null},{"name":"planka_create_tasks","description":"Add tasks (checklist items) to a card. Reports the tasks that actually landed.","write_action":true,"price_micros":0,"input_schema":null},{"name":"planka_delete_attachment","description":"Delete an attachment. Confirmed by re-reading the card's attachments.","write_action":true,"price_micros":0,"input_schema":null},{"name":"planka_delete_card","description":"Permanently delete a card with its tasks, comments and attachments. Cannot be undone; confirmed by re-reading.","write_action":true,"price_micros":0,"input_schema":null},{"name":"planka_delete_comment","description":"Delete a comment, by ID from planka_get_comments. Only the agent user's own comments. Confirmed by re-reading the card's comments.","write_action":true,"price_micros":0,"input_schema":null},{"name":"planka_delete_label","description":"Delete a label from a board. DESTRUCTIVE: it disappears from every card that carried it. Confirmed by re-reading the board.","write_action":true,"price_micros":0,"input_schema":null},{"name":"planka_delete_list","description":"Delete a list (column). DESTRUCTIVE: it deletes every card in it — move the cards out first with planka_move_list_cards. Confirmed by re-reading the board.","write_action":true,"price_micros":0,"input_schema":null},{"name":"planka_delete_task","description":"Delete a task. Pass cardId to have it verified.","write_action":true,"price_micros":0,"input_schema":null},{"name":"planka_duplicate_card","description":"Copy a card with its tasks, labels and members (attachments are not copied). Lands in the","write_action":false,"price_micros":0,"input_schema":null},{"name":"planka_find_cards","description":"Cards of a board or of ONE column, filtered by column, text, label or member, returned as digests.","write_action":false,"price_micros":0,"input_schema":null},{"name":"planka_get_attachments","description":"Attachments on a card: id, name, mimeType, size, download URL.","write_action":false,"price_micros":0,"input_schema":null},{"name":"planka_get_board","description":"DEPRECATED: use planka_board_summary + planka_find_cards.","write_action":false,"price_micros":0,"input_schema":null},{"name":"planka_get_card","description":"One card as a digest: name, column, labels, members, checklist counts, attachment and comment counts, and the first 200 chars of the description.","write_action":false,"price_micros":0,"input_schema":null},{"name":"planka_get_comments","description":"Read a card's comments, oldest first. Planka serves them 50 at a time: this returns `limit` of them (default 20) plus hasMore and nextBeforeId to continue.","write_action":false,"price_micros":0,"input_schema":null},{"name":"planka_get_structure","description":"Projects, boards and lists with their IDs. The source of the IDs every other tool needs.","write_action":false,"price_micros":0,"input_schema":null},{"name":"planka_list_cards","description":"DEPRECATED: use planka_find_cards with listId. Same arguments, same handler, same response.","write_action":false,"price_micros":0,"input_schema":null},{"name":"planka_list_lists","description":"DEPRECATED: use planka_board_summary with cardsFrom: []. Columns with card counts plus the board's labels, no cards.","write_action":false,"price_micros":0,"input_schema":null},{"name":"planka_list_users","description":"The people who can be assigned, with their IDs. Falls back to the board's members when this","write_action":false,"price_micros":0,"input_schema":null},{"name":"planka_manage_comment","description":"DEPRECATED: use planka_update_comment / planka_delete_comment (and planka_create_comment to write one). Kept so existing callers keep working; it only routes `action` to those tools.","write_action":false,"price_micros":0,"input_schema":null},{"name":"planka_manage_labels","description":"DEPRECATED: use planka_create_label / planka_update_label / planka_delete_label. Kept so existing callers keep working; it only routes `action` to those tools.","write_action":false,"price_micros":0,"input_schema":null},{"name":"planka_manage_lists","description":"DEPRECATED: use planka_create_list / planka_update_list / planka_delete_list. Kept so existing callers keep working; it only routes `action` to those tools. delete still takes the column's cards with it.","write_action":false,"price_micros":0,"input_schema":null},{"name":"planka_move_card","description":"Move a card to another list, board or position — the workflow transition.","write_action":false,"price_micros":0,"input_schema":null},{"name":"planka_move_list_cards","description":"Move EVERY card of one column into another. Counts both columns before and after; verified","write_action":false,"price_micros":0,"input_schema":null},{"name":"planka_set_card_labels","description":"Add or remove labels on a card, by label ID — never by name. IDs come from planka_board_summary.","write_action":false,"price_micros":0,"input_schema":null},{"name":"planka_set_card_members","description":"Assign or unassign people on a card, by user ID (names are accepted and resolved).","write_action":false,"price_micros":0,"input_schema":null},{"name":"planka_update_card","description":"Update a card's name, description, due date or completion. Null clears a field.","write_action":true,"price_micros":0,"input_schema":null},{"name":"planka_update_comment","description":"Rewrite a comment, by ID from planka_get_comments. Only the agent user's own comments. Verified by re-reading the card's comments.","write_action":true,"price_micros":0,"input_schema":null},{"name":"planka_update_label","description":"Rename a label or change its color, by label ID from planka_board_summary. Verified against the board.","write_action":true,"price_micros":0,"input_schema":null},{"name":"planka_update_list","description":"Rename, reposition or reclassify a list (column). Verified against the board.","write_action":true,"price_micros":0,"input_schema":null},{"name":"planka_update_task","description":"Update a task's name or completion. Pass cardId to have it verified.","write_action":true,"price_micros":0,"input_schema":null},{"name":"planka_view_attachment","description":"An attachment's content: images come back viewable, text inline, anything else as metadata only.","write_action":false,"price_micros":0,"input_schema":null},{"name":"planka_whoami","description":"This server's identity and limits: the Planka account, its board role, the Planka version,","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":80,"grade":"B","scanned_at":"2026-09-20T16:17:21.486Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T16:17:21.476Z","components":{"code":{"score":25,"max":25,"notes":["100 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":15,"max":15,"notes":["last push 17 days ago"]},"identity":{"score":6,"max":10,"notes":["registry namespace matches repository owner"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"@omnicoreos/planka-mcp","version":"0.3.0","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":2,"publishedAt":"2026-09-03T21:52:45.122Z","repositoryUrl":"https://github.com/omnicoreos/planka-mcp.git","weeklyDownloads":32}],"repo":{"found":true,"owner":"omnicoreos","repo":"planka-mcp","archived":false,"pushedAt":"2026-09-03T19:39:10Z","stars":2,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/265942793?v=4","ownerCreatedAt":"2026-03-06T00:59:30Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/265942793?v=4","source":"registry","width":460,"height":460},"presence":{"stars":2,"forks":0,"downloadsWeek":32,"license":"MIT","lastPushAt":"2026-09-03T19:39:10.000Z","score":30}}}},"grade_history":[],"reviews":[]}