mcpField
P
Planka V2

Planka V2

Local
github.com/goldpulpyProductivity4Updated 6w ago

About Planka V2

Planka V2 is an MCP server for Planka v2.x, letting AI agents manage projects, boards, cards, and tasks through natural language. It also handles comments, labels, membership, and card time tracking, and supports self-hosted and cloud Planka.

Key features

  1. 01Manage projects, boards, and lists
  2. 02Create, move, and manage cards
  3. 03Manage task lists and tasks
  4. 04Handle comments, labels, and assignments
  5. 05Track card time and generate summaries

Use cases

  1. 01Set up a project and its board workflow
  2. 02Create card checklists and add tasks in batches
  3. 03Find overdue cards and move them to a list
  4. 04Review project or board summaries

MCP support

The MCP server exposes Planka v2 API capabilities for projects, boards, cards, and related entities as tools for MCP clients. It is a standard stdio MCP server and connects to self-hosted or cloud Planka.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"planka-v2": {
"command": "npx",
"args": [
"-y",
"@goldpulpy/planka-v2-mcp"
],
"env": {
"PLANKA_BASE_URL": "<PLANKA_BASE_URL>",
"PLANKA_AGENT_EMAIL": "<PLANKA_AGENT_EMAIL>",
"PLANKA_AGENT_PASSWORD": "<PLANKA_AGENT_PASSWORD>",
"PLANKA_IGNORE_SSL": "<PLANKA_IGNORE_SSL>"
}
}
}
}
Run commandnpx -y @goldpulpy/planka-v2-mcp
Environment variables to set
PLANKA_BASE_URL
PLANKA_AGENT_EMAIL
PLANKA_AGENT_PASSWORDSecret
PLANKA_IGNORE_SSL

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npm@goldpulpy/planka-v2-mcp

Tools

10

Saved tool list · updated 3w ago

ParameterTypeRequiredDescription
actionenumYesThe action to performget_projects | create_project | get_project | update_project | delete_project | get_boards | create_board | get_board | update_board | delete_board | get_board_summary | get_project_summary
idstringNoThe ID of the project or board
projectIdstringNoThe ID of the project
namestringNoThe name of the project or board
descriptionstringNoThe description of the project
positionnumberNoThe position of the board
typestringNoThe type of the project (private/shared) or board
backgroundTypeenumNoBackground type for update_projectgradient | image
backgroundGradientstringNoBackground gradient for update_project
pagenumberNoThe page number for pagination (1-indexed)
perPagenumberNoThe number of items per page
boardIdstringNoThe ID of the board to get a summary for
includeTaskDetailsbooleanNoWhether to include detailed task information for each card
includeCommentsbooleanNoWhether to include comments for each card

Details

From the project README

Planka v2.x MCP

Connect Claude, Cursor, Codex, and other MCP clients directly to your Planka v2.x boards.

Give your AI agents structured, secure access to projects, boards, cards, tasks, comments, labels, and workflows through the Model Context Protocol (MCP).

npm version npm downloads CI Node.js TypeScript License: MIT Planka v2.x MCP compatible

Important

Built specifically for Planka v2.x. This MCP is not compatible with Planka v1.x.

Why Planka MCP?

Planka provides an excellent web interface for human users. AI agents, however, need structured access to projects, boards, cards, tasks, comments, and workflows.

This MCP server exposes the Planka v2 API through the Model Context Protocol (MCP), allowing Claude, Cursor, Codex, and other AI agents to interact with Planka using natural language.

Supported Planka Versions

Planka VersionStatus
2.0.0-rc.2✅ Tested
2.1.1✅ Tested
2.2.1✅ Tested
Newer 2.x⚠️ Expected to work

Features

  • Full project and board management
  • Complete card lifecycle management
  • Task Lists and tasks support
  • Comments, labels, and assignments
  • Card time tracking
  • Project and board summaries
  • MCP-native tool interface
  • Support for major MCP clients
  • Self-hosted and cloud Planka support
Example Conversations
Project Setup

User

Create a project called "Website Redesign" with boards "Backlog", "In Progress", and "Done".

Assistant

✓ Created project "Website Redesign"
✓ Created board "Backlog"
✓ Created board "In Progress"
✓ Created board "Done"

Project setup completed successfully.
Task Creation

User

Create a card "Implement authentication" in the Backlog board with tasks:

  • Design login flow
  • Implement JWT authentication
  • Add password reset
  • Write tests

Assistant

✓ Created card "Implement authentication"
✓ Created task list
✓ Added 4 tasks
Workflow Automation

User

Find all overdue cards assigned to me, move them to "Blocked", add a comment explaining why, and generate a project summary.

Assistant

✓ Found 7 overdue cards
✓ Moved cards to "Blocked"
✓ Added explanatory comments
✓ Generated updated project summary
Available Tools
Tool NameActionsDescription
project_board_managerget_projects · create_project · get_project · update_project · delete_project · get_boards · create_board · get_board · update_board · delete_board · get_board_summary · get_project_summaryProjects and boards, including aggregate summaries
list_managerget_all · create · get_one · update · deleteKanban lists within a board
card_managerget_all · create · get_one · update · move · duplicate · delete · create_with_tasks · get_detailsCards, including one-shot creation with a task checklist
stopwatchstart · stop · get · resetTime tracking on a card
label_managerget_all · create · update · delete · add_to_card · remove_from_cardBoard labels and their assignment to cards
task_list_managerget_all · create · get_one · update · deleteTask Lists inside a card (Planka v2.0 entity)
task_managerget_all · create · batch_create · get_one · update · delete · complete_taskIndividual tasks, including bulk creation
comment_managerget_all · create · get_one · update · deleteComments on a card
membership_managerget_all · create · get_one · update · deleteBoard-level membership and roles (editor / viewer)
card_membership_managerget_all · get_users · create · deleteAssign/remove card members by ID, email, or username

card_manager with action: "get_details" includes an attachments array with read-only metadata: attachment and card IDs, creator user ID, name, type, MIME type, size, download or link URL, and timestamps. It does not download or return attachment contents.

Quick Start

Requirements
  • A running Planka v2.x instance
  • A dedicated Planka user account for your AI agent
  • Node.js 18+ (if running locally)

Important

After creating the MCP account, log in to the Planka web interface with that account and accept the terms of service before configuring or starting the MCP server. This is required for every new account.

Configure Your MCP Client

Every MCP-compatible client uses the same underlying command - only the config file location (and occasionally the JSON wrapper) differs. See Client Configuration Examples below for your specific tool.

The core config block is always:

{
  "command": "npx",
  "args": ["-y", "@goldpulpy/planka-v2-mcp@latest"],
  "env": {
    "PLANKA_BASE_URL": "https://your-planka-instance.com",
    "PLANKA_AGENT_EMAIL": "[email protected]",
    "PLANKA_AGENT_PASSWORD": "your-secure-password",
    "PLANKA_IGNORE_SSL": "true"
  }
}
Alternative: run from a local build
{
  "command": "node",
  "args": ["/absolute/path/to/planka-v2-mcp/dist/index.js"],
  "env": {
    "PLANKA_BASE_URL": "https://your-planka-instance.com",
    "PLANKA_AGENT_EMAIL": "[email protected]",
    "PLANKA_AGENT_PASSWORD": "your-secure-password",
    "PLANKA_IGNORE_SSL": "true"
  }
}

Useful when you're contributing to the server itself or need a pinned, offline build.

Tip

Set PLANKA_IGNORE_SSL to "true" only for self-signed certs in trusted/local environments - leave it unset in production.

Verify the Connection

Ask your agent something read-only first, e.g. "List my Planka projects." If you get a real response back, you're wired up correctly.

Client Configuration Examples

Most MCP clients share the exact same mcpServers JSON shape - only the config file location differs. Clients with a different format (Codex, Continue, Zed) get their own block below.

Standard mcpServers clients - Claude Desktop, Claude Code, Cursor, Windsurf, Cline, Antigravity
{
  "mcpServers": {
    "planka-mcp": {
      "command": "npx",
      "args": ["-y", "@goldpulpy/planka-v2-mcp@latest"],
      "env": {
        "PLANKA_BASE_URL": "https://your-planka-instance.com",
        "PLANKA_AGENT_EMAIL": "[email protected]",
        "PLANKA_AGENT_PASSWORD": "your-secure-password",
        "PLANKA_IGNORE_SSL": "true"
      }
    }
  }
}

Drop this block into the relevant config file:

ClientConfig file
Claude DesktopmacOS: ~/Library/Application Support/Claude/claude_desktop_config.json · Windows: %APPDATA%\Claude\claude_desktop_config.json
Claude Code (CLI).mcp.json in your project root (or claude mcp add, see below)
Cursor~/.cursor/mcp.json (global) or .cursor/mcp.json (project)
Windsurf~/.codeium/windsurf/mcp_config.json
Cline (VS Code)cline_mcp_settings.json, via Cline → MCP Servers → Configure MCP Servers (add "disabled": false, "autoApprove": [] to the server entry)
AntigravityVia Settings → MCP Servers → Add Server, or its config file directly

Note

Claude Code also supports adding the server via a one-liner instead of hand-editing JSON:

claude mcp add planka-mcp \
  --env PLANKA_BASE_URL=https://your-planka-instance.com \
  --env [email protected] \
  --env PLANKA_AGENT_PASSWORD=your-secure-password \
  --env PLANKA_IGNORE_SSL=true \
  -- npx -y @goldpulpy/planka-v2-mcp@latest

Restart the client after saving.

Codex CLI

Edit ~/.codex/config.toml:

[mcp_servers.planka-mcp]
command = "npx"
args = ["-y", "@goldpulpy/planka-v2-mcp@latest"]

[mcp_servers.planka-mcp.env]
PLANKA_BASE_URL = "https://your-planka-instance.com"
PLANKA_AGENT_EMAIL = "[email protected]"
PLANKA_AGENT_PASSWORD = "your-secure-password"
PLANKA_IGNORE_SSL = "true"

Or add it in one line:

codex mcp add planka-mcp -- npx -y @goldpulpy/planka-v2-mcp@latest

then set the PLANKA_* variables in the generated [mcp_servers.planka-mcp.env] block.

Continue (VS Code / JetBrains extension)

Add to ~/.continue/config.yaml:

mcpServers:
  - name: planka-mcp
    command: npx
    args:
      - -y
      - "@goldpulpy/planka-v2-mcp@latest"
    env:
      PLANKA_BASE_URL: https://your-planka-instance.com
      PLANKA_AGENT_EMAIL: [email protected]
      PLANKA_AGENT_PASSWORD: your-secure-password
      PLANKA_IGNORE_SSL: "true"
Zed

Edit ~/.config/zed/settings.json (macOS/Linux) or %APPDATA%\Zed\settings.json (Windows), or open it via Cmd+Shift+P → "zed: open settings":

{
  "context_servers": {
    "planka-mcp": {
      "source": "custom",
      "command": "npx",
      "args": ["-y", "@goldpulpy/planka-v2-mcp@latest"],
      "env": {
        "PLANKA_BASE_URL": "https://your-planka-instance.com",
        "PLANKA_AGENT_EMAIL": "[email protected]",
        "PLANKA_AGENT_PASSWORD": "your-secure-password",
        "PLANKA_IGNORE_SSL": "true"
      }
    }
  }
}

"source": "custom" is required for manually-added servers (as opposed to ones installed via a Zed extension). Zed reloads the server automatically after saving - no editor restart needed.

Any other MCP-compatible client

The server is a standard stdio MCP server - any client that supports the command / args / env shape will work. Point it at:

npx -y @goldpulpy/planka-v2-mcp@latest

with the four PLANKA_* environment variables set as shown above.

Environment Variables

VariableRequiredDefaultDescription
PLANKA_BASE_URL✅-Full URL of your Planka instance
PLANKA_AGENT_EMAIL✅-Login email for the dedicated agent user
PLANKA_AGENT_PASSWORD✅-Password for the agent user
PLANKA_IGNORE_SSL❌falseSkip SSL verification - self-signed/local certs only

Security

  • Authentication is performed using a dedicated Planka user account.
  • Credentials are supplied through environment variables only.
  • The MCP server does not persist board data outside the running process.
  • SSL certificate verification is enabled by default.
  • PLANKA_IGNORE_SSL=true should only be used in trusted local or self-hosted environments.

Troubleshooting

The client can't see any tools / connection fails silently
  • Confirm PLANKA_BASE_URL has no trailing slash and is reachable from the machine running the MCP server (not just your browser).
  • Check that the agent user can log in with those exact credentials through Planka's normal web UI and has accepted the terms of service.
SSL / certificate errors
  • If your instance uses a self-signed certificate, set "PLANKA_IGNORE_SSL": "true". Avoid this in production - prefer a valid certificate instead.
Cards are created but checklists/subtasks aren't showing
  • Make sure the card type is "project" (the default). Cards created as "story" type don't expose Task Lists in the same way.

Development

# Install dependencies
npm install

# Configure environment variables
cp .env.example .env

# Start the bundled Planka development instance
npm run planka:up

# Build the project
npm run build

# Run @modelcontextprotocol/inspector
npm run inspector

The development instance requires Docker Compose and is available at http://localhost:3000 (login: [email protected] / admin). Update .env with that URL and login for local use. As with any newly created MCP account, sign in through the browser and accept the terms of service before using the account with the MCP server. Stop the instance while preserving its data with npm run planka:down, or stop it and delete its volumes with npm run planka:clear.

Seed a Demo Board

The development-only seed command creates a representative board for local testing and demonstrations. Install the project dependencies and configure .env with a reachable Planka v2 instance and valid PLANKA_BASE_URL, PLANKA_AGENT_EMAIL, and PLANKA_AGENT_PASSWORD values before running it.

# Reuse or create the private "Demo Project", then create "Demo Board"
npm run seed

# Seed an existing project
npm run seed -- --project-id <project-id>

# Choose a different board name
npm run seed -- --project-id <project-id> --board-name "My Demo Board"

# Show all options
npm run seed -- --help

The board includes cards across the default workflow lists, descriptions, relative due dates, Planka labels used as tags, task lists, completed and incomplete tasks, and comments. The command prints the project ID, board ID, board name, and resource counts when it succeeds.

The seed command refuses to modify a project that already contains a board with the exact requested name; use --board-name to choose another name. If an error occurs after board creation, the command reports the failed stage and board ID and leaves the partially populated board available for inspection. Delete that board in Planka before retrying with the same name.

The seed source and its separately compiled .seed-dist/ output are development-only and are not included in the MCP server build or published package.

Contributing

Contributions are welcome. See CONTRIBUTING.md for details.

Acknowledgements

This project is forked from Navya-Tecnologia/planka-v2-mcp, which builds on bradrisse/kanban-mcp. Thanks to @virapa and @bradrisse for the foundation behind this codebase.

License

Licensed under the MIT License. See LICENSE for details.

This project focuses exclusively on the MCP interface. For Planka server setup itself, see the official Planka documentation.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.