Sign inSign up

chmald/planka-mcp

By chmald

•Updated 7 months ago

MCP server for Planka - Real-Time Collaborative Kanban Board

Image
Developer tools
0

6.4K

chmald/planka-mcp repository overview

⁠Planka MCP Server

npm version Docker Image Version License: MIT

An MCP server that enables AI assistants (Claude, VS Code Copilot, etc.) to interact with Planka⁠ - a real-time Kanban board application.

⁠Quick Start

⁠Prerequisites
  • Node.js 18+ or Docker
  • Planka instance running and accessible
  • Planka user account with appropriate permissions
⁠Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "planka": {
      "command": "npx",
      "args": ["@chmald/planka-mcp"],
      "env": {
        "PLANKA_BASE_URL": "http://localhost:3000",
        "PLANKA_API_KEY": "your-api-key"
      }
    }
  }
}
⁠VS Code

Add to .vscode/mcp.json:

{
  "servers": {
    "planka": {
      "type": "stdio",
      "command": "npx",
      "args": ["@chmald/planka-mcp"],
      "env": {
        "PLANKA_BASE_URL": "http://localhost:3000",
        "PLANKA_API_KEY": "your-api-key"
      }
    }
  }
}
⁠Docker
{
  "mcpServers": {
    "planka": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "PLANKA_BASE_URL=http://host.docker.internal:3000",
        "-e", "PLANKA_API_KEY=your-api-key",
        "chmald/planka-mcp:latest"
      ]
    }
  }
}

Note: Use host.docker.internal instead of localhost when running Docker.


⁠Configuration

⁠Environment Variables
VariableRequiredDefaultDescription
PLANKA_BASE_URLYeshttp://localhost:3000Your Planka instance URL
PLANKA_API_KEYNo*-Planka API key sent as X-Api-Key
PLANKA_USERNAMENo*-Planka username or email
PLANKA_PASSWORDNo*-Planka password
MCP_TRANSPORTNostdioMCP transport mode: stdio or sse
MCP_PORTNo3001HTTP port used when MCP_TRANSPORT=sse
PLANKA_HTTP_MAX_RETRIESNo2Max retry attempts for transient HTTP/network failures per request
PLANKA_HTTP_RETRY_BASE_DELAY_MSNo250Base retry delay in milliseconds (exponential backoff)
ENABLE_ALL_TOOLSNofalseEnable all 27 tools
ENABLE_ADMIN_TOOLSNofalseEnable admin tools
ENABLE_OPTIONAL_TOOLSNofalseEnable optional tools

* Authentication is required. Provide either PLANKA_API_KEY, or both PLANKA_USERNAME and PLANKA_PASSWORD.

⁠Authentication Modes
  • API key (recommended): Set PLANKA_API_KEY.
  • Username/password: Set PLANKA_USERNAME and PLANKA_PASSWORD.
  • If both are set, the server uses PLANKA_API_KEY.
⁠Retry Behavior
  • Retries apply to transient failures (408, 429, 5xx) and network request errors.
  • Delay uses exponential backoff: PLANKA_HTTP_RETRY_BASE_DELAY_MS * 2^attempt.
  • PLANKA_HTTP_MAX_RETRIES controls additional attempts after the initial request.
⁠Tool Categories

By default, 10 core tools are enabled for essential Kanban operations:

CategoryToolsDescription
Core10Auth, projects, boards, lists, cards, tasks, comments, labels (always enabled)
Optional13Attachments, custom fields, notifications, etc.
Admin4User management, webhooks, config

Enable more tools:

"env": {
  "ENABLE_ALL_TOOLS": "true"
}

⁠Available Tools

Each tool uses an action parameter. Example: { "action": "list" } or { "action": "get", "id": "123" }

Core Tools (always enabled)
ToolActions
authlogin, logout, acceptTerms, oidcExchange, revokePending, getTerms
bootstrapget - Get app data, user info, projects
projectslist, get, create, update, delete
boardsget, create, update, delete
listsget, create, update, delete
cardslist, get, create, update, delete
commentslist, create
tasksgetList, createList, create, update
labelscreate, update, delete, addToCard, removeFromCard
cardMembersadd, remove
Admin Tools (ENABLE_ADMIN_TOOLS=true)
ToolActions
configget, update, testSmtp
userslist, create, update, delete, updateEmail, updatePassword, etc.
webhookslist, create, update, delete
projectManagersadd, remove
Optional Tools (ENABLE_OPTIONAL_TOOLS=true)
ToolActions
attachmentscreate, update, delete
boardMembersadd, update, remove
customFieldscreateBaseGroup, createField, setValue, etc.
notificationslist, get, markRead, markAllRead, markCardRead, createUserService, createBoardService, updateService, deleteService, testService
actionsboardActions, cardActions
cardExtrasduplicate
commentExtrasupdate, delete
listExtrasclear, moveCards, sort
taskExtrasupdateList, deleteList, deleteTask
labelExtrasupdate, delete, removeFromCard
cardMemberExtrasremove
backgroundImagesupload, delete
userInfoget

⁠Multi-Client Mode (SSE)

For team deployments where multiple clients share one server:

docker run -d \
  --name planka-mcp \
  -p 3001:3001 \
  -e MCP_TRANSPORT=sse \
  -e PLANKA_BASE_URL=http://your-planka-server:3000 \
  -e PLANKA_API_KEY=your-api-key \
  chmald/planka-mcp:latest

Connect clients to http://localhost:3001/sse.


⁠Troubleshooting

⁠"Authentication failed"
  • Verify your API key (or username/password) is correct
  • Check that PLANKA_BASE_URL is accessible
⁠"Connection refused" with Docker
  • Use host.docker.internal instead of localhost
  • Ensure Planka is running
⁠npx fails
  • Ensure Node.js 18+ is installed: node --version
  • Try: npm cache clean --force
⁠Debug logs
npx @chmald/planka-mcp 2>&1 | tee debug.log

⁠Upgrade Notes

Check CHANGELOG.md⁠ for full version-by-version details.

⁠Upgrading to 2.0.3
  • The auth tool moved from optional tools to core tools and is now always available.
  • API key authentication is now supported with PLANKA_API_KEY (X-Api-Key).
  • If both API key and username/password are configured, PLANKA_API_KEY is used.

⁠License

MIT - see LICENSE⁠

Tag summary

Content type

Image

Digest

sha256:4b9e609f6…

Size

61.2 MB

Last updated

7 months ago

docker pull chmald/planka-mcp