@denisixnpm/planka-mcp 2.2.0 → 2.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  [![npm version](https://img.shields.io/npm/v/@denisixnpm/planka-mcp)](https://www.npmjs.com/package/@denisixnpm/planka-mcp)
4
4
  [![GitHub release](https://img.shields.io/github/v/release/denisix/planka-mcp)](https://github.com/denisix/planka-mcp/releases)
5
+ [![Docker](https://img.shields.io/docker/v/denisix/planka-mcp?sort=semver&label=Docker)](https://hub.docker.com/r/denisix/planka-mcp)
5
6
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
6
7
 
7
8
  MCP server for [Planka](https://planka.app/) (real-time Kanban), tuned for AI coding agents:
@@ -10,8 +11,25 @@ No build step, no Docker required — `npx` runs the prebuilt package over stdio
10
11
 
11
12
  ## Install
12
13
 
14
+ Two auth modes: **username/password** works on every Planka version (the server logs in
15
+ automatically, caches the token, and silently re-logins on expiry); **API key** is Planka **v2
16
+ only** — generate one in your Planka user settings → *API keys* (v1.26.x has no API keys; verified:
17
+ `X-Api-Key` returns 401 there).
18
+
13
19
  ### Claude Code
14
20
 
21
+ **Planka v1 (≤ 1.26.x) — username/password:**
22
+
23
+ ```bash
24
+ claude mcp add planka \
25
+ --env PLANKA_BASE_URL=http://localhost:3000 \
26
+ --env PLANKA_USERNAME=your-email-or-username \
27
+ --env PLANKA_PASSWORD=your-password \
28
+ -- npx -y @denisixnpm/planka-mcp
29
+ ```
30
+
31
+ **Planka v2 — API key (username/password above works too):**
32
+
15
33
  ```bash
16
34
  claude mcp add planka \
17
35
  --env PLANKA_BASE_URL=http://localhost:3000 \
@@ -19,7 +37,7 @@ claude mcp add planka \
19
37
  -- npx -y @denisixnpm/planka-mcp
20
38
  ```
21
39
 
22
- Or in `claude_desktop_config.json` / `.mcp.json`:
40
+ Or in `claude_desktop_config.json` / `.mcp.json` (username/password form — works on both versions):
23
41
 
24
42
  ```json
25
43
  {
@@ -27,7 +45,7 @@ Or in `claude_desktop_config.json` / `.mcp.json`:
27
45
  "planka": {
28
46
  "command": "npx",
29
47
  "args": ["-y", "@denisixnpm/planka-mcp"],
30
- "env": { "PLANKA_BASE_URL": "http://localhost:3000", "PLANKA_API_KEY": "your-api-key" }
48
+ "env": { "PLANKA_BASE_URL": "http://localhost:3000", "PLANKA_USERNAME": "your-email-or-username", "PLANKA_PASSWORD": "your-password" }
31
49
  }
32
50
  }
33
51
  }
@@ -35,6 +53,17 @@ Or in `claude_desktop_config.json` / `.mcp.json`:
35
53
 
36
54
  ### Codex (`~/.codex/config.toml`)
37
55
 
56
+ **Planka v1 (≤ 1.26.x):**
57
+
58
+ ```toml
59
+ [mcp_servers.planka]
60
+ command = "npx"
61
+ args = ["-y", "@denisixnpm/planka-mcp"]
62
+ env = { PLANKA_BASE_URL = "http://localhost:3000", PLANKA_USERNAME = "your-email-or-username", PLANKA_PASSWORD = "your-password" }
63
+ ```
64
+
65
+ **Planka v2 (API key):**
66
+
38
67
  ```toml
39
68
  [mcp_servers.planka]
40
69
  command = "npx"
@@ -44,6 +73,22 @@ env = { PLANKA_BASE_URL = "http://localhost:3000", PLANKA_API_KEY = "your-api-ke
44
73
 
45
74
  ### opencode (`opencode.json`)
46
75
 
76
+ **Planka v1 (≤ 1.26.x):**
77
+
78
+ ```json
79
+ {
80
+ "mcp": {
81
+ "planka": {
82
+ "type": "local",
83
+ "command": ["npx", "-y", "@denisixnpm/planka-mcp"],
84
+ "environment": { "PLANKA_BASE_URL": "http://localhost:3000", "PLANKA_USERNAME": "your-email-or-username", "PLANKA_PASSWORD": "your-password" }
85
+ }
86
+ }
87
+ }
88
+ ```
89
+
90
+ **Planka v2 (API key):**
91
+
47
92
  ```json
48
93
  {
49
94
  "mcp": {
@@ -63,8 +108,8 @@ Requires Node.js ≥ 22.19 (or run the same command with Bun ≥ 1.3). Debug: `n
63
108
  | Variable | Default | Description |
64
109
  |----------|---------|-------------|
65
110
  | `PLANKA_BASE_URL` | `http://localhost:3000` | Planka instance URL |
66
- | `PLANKA_API_KEY` | — | API key auth (recommended; wins if both are set) |
67
- | `PLANKA_USERNAME` / `PLANKA_PASSWORD` | — | Login auth (alternative to API key) |
111
+ | `PLANKA_USERNAME` / `PLANKA_PASSWORD` | — | Login auth **all Planka versions**; token is fetched, cached, and refreshed automatically |
112
+ | `PLANKA_API_KEY` | — | API key auth — **Planka v2 only** (user settings API keys); wins if both are set |
68
113
  | `PLANKA_HTTP_TIMEOUT_MS` | `30000` | Per-request timeout (aborts, then retries) |
69
114
  | `PLANKA_HTTP_MAX_RETRIES` | `2` | Retries for `408`/`429`/`5xx` and network errors |
70
115
  | `PLANKA_HTTP_RETRY_BASE_DELAY_MS` | `250` | Exponential backoff base (`base * 2^attempt`) |
@@ -119,6 +164,7 @@ loopback (`MCP_HOST=0.0.0.0`) — without it, anyone who can reach the port has
119
164
  A `--healthcheck` mode is built in for orchestrators.
120
165
 
121
166
  Prefer a container? The image is published on Docker Hub:
167
+ [`hub.docker.com/r/denisix/planka-mcp`](https://hub.docker.com/r/denisix/planka-mcp)
122
168
 
123
169
 
124
170
  ```bash
package/dist/server.js CHANGED
@@ -342,7 +342,7 @@ if (!process.argv.includes("--healthcheck")) {
342
342
  function createMcpServer() {
343
343
  const server = new McpServer({
344
344
  name: "planka-mcp",
345
- version: "2.2.0",
345
+ version: "2.3.1",
346
346
  }, {
347
347
  capabilities: {
348
348
  tools: {},
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@denisixnpm/planka-mcp",
3
- "version": "2.2.0",
3
+ "version": "2.3.1",
4
4
  "description": "MCP server for Planka - Real-Time Collaborative Kanban Board",
5
5
  "main": "dist/server.js",
6
6
  "type": "module",
7
7
  "bin": {
8
- "planka-mcp": "./dist/server.js"
8
+ "planka-mcp": "dist/server.js"
9
9
  },
10
10
  "files": [
11
11
  "dist"
@@ -36,7 +36,7 @@
36
36
  "license": "MIT",
37
37
  "repository": {
38
38
  "type": "git",
39
- "url": "https://github.com/denisix/planka-mcp.git"
39
+ "url": "git+https://github.com/denisix/planka-mcp.git"
40
40
  },
41
41
  "homepage": "https://github.com/denisix/planka-mcp#readme",
42
42
  "bugs": {