{"_id":"@adflz/planka-pms-mcp","_rev":"5-c9a78997ab2c04c587c7f17c772c380a","name":"@adflz/planka-pms-mcp","dist-tags":{"latest":"0.1.8"},"versions":{"0.1.0":{"name":"@adflz/planka-pms-mcp","version":"0.1.0","keywords":["mcp","planka","project-management","ai"],"license":"MIT","_id":"@adflz/planka-pms-mcp@0.1.0","maintainers":[{"name":"adflz","email":"adaofeliz@gmail.com"}],"bin":{"planka-pms-mcp":"dist/index.js"},"dist":{"shasum":"5fb02ce74fd86899f0cb557b71f9d67192cdf35b","tarball":"https://registry.npmjs.org/@adflz/planka-pms-mcp/-/planka-pms-mcp-0.1.0.tgz","fileCount":5,"integrity":"sha512-lTUZJC1iDlrP2x9hVaffedeeozZWmUh9j6Fygrc7F/L8Apo7E9TmZzG/vBWrhpEpHCiF1keHXawzmw7XZgZa4A==","signatures":[{"sig":"MEUCIQC3rkSqO2ZoU/douRumt9Arjp1wTsGage4dC8FmV5PvNgIgAgiWd8R3T0G5GZgYN2SN1Ot/IduWvYT8JP0endC6R8A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":327770},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"179b25ac1aac252fbe7072e7a1599479c7266bd6","scripts":{"dev":"tsup --watch --onSuccess \"node dist/index.js --http --port=3000\"","test":"vitest run","build":"tsup","test:live":"PLANKA_LIVE_TESTS=1 vitest run tests/live","test:unit":"vitest run tests/unit","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"adflz","email":"adaofeliz@gmail.com"},"_npmVersion":"10.9.7","description":"GTD-inspired productivity system for AI agents — inbox capture, triage, scheduling, Pomodoro execution, and archival via Planka","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.24.0","yaml":"^2.8.3","dotenv":"^17.4.1","@modelcontextprotocol/sdk":"^1.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^4.1.4","typescript":"^5.8.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/planka-pms-mcp_0.1.0_1775899774733_0.19006519880119344","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@adflz/planka-pms-mcp","version":"0.1.1","keywords":["mcp","planka","project-management","ai"],"license":"MIT","_id":"@adflz/planka-pms-mcp@0.1.1","maintainers":[{"name":"adflz","email":"adaofeliz@gmail.com"}],"bin":{"planka-pms-mcp":"dist/index.js"},"dist":{"shasum":"be0489eb842d7f254e400a0d7a03eaab6f0aa03d","tarball":"https://registry.npmjs.org/@adflz/planka-pms-mcp/-/planka-pms-mcp-0.1.1.tgz","fileCount":6,"integrity":"sha512-fB3M//kJRtkRz5N/YxL9FfufCbZvLcg50LW0kuGK7Pu3enVyNQKRFqv/OEzmp0Nk3UdZ/MONVvoaU/fCY7u2vQ==","signatures":[{"sig":"MEUCIGCcuh/8B2js89b+sy/TNNuvG1urQVLOKqmCX47BQnmRAiEA31KZ59Mxd9jU7pL68d07yYAnrdfYtLkx2ziklLXFqns=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":333869},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"33955f2a56f1220b6189da569e65cfc2156f2ba2","scripts":{"dev":"tsup --watch --onSuccess \"node dist/index.js --http --port=3000\"","test":"vitest run","build":"tsup","test:live":"PLANKA_LIVE_TESTS=1 vitest run tests/live","test:unit":"vitest run tests/unit","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"adflz","email":"adaofeliz@gmail.com"},"_npmVersion":"10.9.7","description":"GTD-inspired productivity system for AI agents — inbox capture, triage, scheduling, Pomodoro execution, and archival via Planka","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.24.0","yaml":"^2.8.3","dotenv":"^17.4.1","@modelcontextprotocol/sdk":"^1.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^4.1.4","typescript":"^5.8.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/planka-pms-mcp_0.1.1_1775900288717_0.36931354512111025","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@adflz/planka-pms-mcp","version":"0.1.6","keywords":["mcp","planka","project-management","ai"],"license":"MIT","_id":"@adflz/planka-pms-mcp@0.1.6","maintainers":[{"name":"adflz","email":"adaofeliz@gmail.com"}],"homepage":"https://github.com/adaofeliz/planka-pms-mcp#readme","bugs":{"url":"https://github.com/adaofeliz/planka-pms-mcp/issues"},"bin":{"planka-pms-mcp":"dist/index.js"},"dist":{"shasum":"f3a59bef49f53b248bb93ca6593b8856f178f1fb","tarball":"https://registry.npmjs.org/@adflz/planka-pms-mcp/-/planka-pms-mcp-0.1.6.tgz","fileCount":6,"integrity":"sha512-UW9u3HNMeLh3soKRmilcTwhxgrnzRp5M+AslhgVQ4Xp2Mp1e/BPFtwt8RN41cboRuqbfqRp6vD9lMdaWGhdNTQ==","signatures":[{"sig":"MEYCIQChcaWE0XbVN0xEWAXvo2UGD8VkZYY2cYJHhXjcfIGsCgIhALD+BbPP1TQd1yRgg+nEHwe0FX84JlrU5gRcuBNnVU1M","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adflz%2fplanka-pms-mcp@0.1.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":333166},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"ec658584ef3451ccf97d5eaebce7d1e8508ba5aa","scripts":{"dev":"tsup --watch --onSuccess \"node dist/index.js --http --port=3000\"","test":"vitest run","build":"tsup","test:live":"PLANKA_LIVE_TESTS=1 vitest run tests/live","test:unit":"vitest run tests/unit","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"adflz","email":"adaofeliz@gmail.com"},"repository":{"url":"git+https://github.com/adaofeliz/planka-pms-mcp.git","type":"git"},"_npmVersion":"10.9.7","description":"GTD-inspired productivity system for AI agents — inbox capture, triage, scheduling, Pomodoro execution, and archival via Planka","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.24.0","yaml":"^2.8.3","dotenv":"^17.4.1","@modelcontextprotocol/sdk":"^1.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^4.1.4","typescript":"^5.8.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/planka-pms-mcp_0.1.6_1775904235830_0.107822538343739","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@adflz/planka-pms-mcp","version":"0.1.7","keywords":["mcp","planka","project-management","ai"],"license":"MIT","_id":"@adflz/planka-pms-mcp@0.1.7","maintainers":[{"name":"adflz","email":"adaofeliz@gmail.com"}],"homepage":"https://github.com/adaofeliz/planka-pms-mcp#readme","bugs":{"url":"https://github.com/adaofeliz/planka-pms-mcp/issues"},"bin":{"planka-pms-mcp":"dist/index.js"},"dist":{"shasum":"09a8900b8ecc19f112b90f8980473ad30bfb0f9c","tarball":"https://registry.npmjs.org/@adflz/planka-pms-mcp/-/planka-pms-mcp-0.1.7.tgz","fileCount":6,"integrity":"sha512-teP5Cigc4ecj8XAwKJWlNX9d9dguoBny0Mbr/vdM3yUXEltQQ9UdrMNYEA1379Rk3VmFIoEuWUe/vJXvYcuVIQ==","signatures":[{"sig":"MEYCIQDT0sQAjwBDoiF8gdb69SU7riXR0ZkpoEDJSyDpXLePygIhAKqUT11Zf/+RJfyv9Zb2ykb+598GTpcodeOggkqtVKtE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adflz%2fplanka-pms-mcp@0.1.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":333884},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"248fb68515b78efc98e43e75399136396f63d3f8","scripts":{"dev":"tsup --watch --onSuccess \"node dist/index.js --http --port=3000\"","test":"vitest run","build":"tsup","test:live":"PLANKA_LIVE_TESTS=1 vitest run tests/live","test:unit":"vitest run tests/unit","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"adflz","email":"adaofeliz@gmail.com"},"repository":{"url":"git+https://github.com/adaofeliz/planka-pms-mcp.git","type":"git"},"_npmVersion":"10.9.7","description":"GTD-inspired productivity system for AI agents — inbox capture, triage, scheduling, Pomodoro execution, and archival via Planka","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.24.0","yaml":"^2.8.3","dotenv":"^17.4.1","@modelcontextprotocol/sdk":"^1.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^4.1.4","typescript":"^5.8.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/planka-pms-mcp_0.1.7_1776055730224_0.04651564346011483","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@adflz/planka-pms-mcp","version":"0.1.8","description":"GTD-inspired productivity system for AI agents — inbox capture, triage, scheduling, Pomodoro execution, and archival via Planka","type":"module","bin":{"planka-pms-mcp":"dist/index.js"},"repository":{"type":"git","url":"git+https://github.com/adaofeliz/planka-pms-mcp.git"},"scripts":{"build":"tsup","dev":"tsup --watch --onSuccess \"node dist/index.js --http --port=3000\"","test":"vitest run","test:live":"PLANKA_LIVE_TESTS=1 vitest run tests/live","test:watch":"vitest","test:unit":"vitest run tests/unit","prepublishOnly":"npm run build"},"publishConfig":{"access":"public"},"keywords":["mcp","planka","project-management","ai"],"license":"MIT","engines":{"node":">=18.0.0"},"dependencies":{"@modelcontextprotocol/sdk":"^1.12.0","dotenv":"^17.4.1","yaml":"^2.8.3","zod":"^3.24.0"},"devDependencies":{"@types/node":"^22.0.0","tsup":"^8.4.0","typescript":"^5.8.0","vitest":"^4.1.4"},"_id":"@adflz/planka-pms-mcp@0.1.8","gitHead":"1e74f3b2d6f7a9d01946a61bf493d4906a264f37","bugs":{"url":"https://github.com/adaofeliz/planka-pms-mcp/issues"},"homepage":"https://github.com/adaofeliz/planka-pms-mcp#readme","_nodeVersion":"22.22.2","_npmVersion":"10.9.7","dist":{"integrity":"sha512-hrIXOysd7LuGO5JgLJxphgw4FCY4M9JexONUsyBc7caN1zTUnhxOZ/gVn0M1gmDXX2v3+2Et4rbiyudijydIoQ==","shasum":"494cb36bec78dedd753fb40de2f98050f3876053","tarball":"https://registry.npmjs.org/@adflz/planka-pms-mcp/-/planka-pms-mcp-0.1.8.tgz","fileCount":6,"unpackedSize":334980,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adflz%2fplanka-pms-mcp@0.1.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDj2ZfPMfAC5vm3Lq4fgWNZucYnV1W9ohe4FWZx6HVQeAiA2Icc1TQdVXvjByDwU4YEWXffRO8l8pP95a/Hzs8SiJQ=="}]},"_npmUser":{"name":"adflz","email":"adaofeliz@gmail.com"},"directories":{},"maintainers":[{"name":"adflz","email":"adaofeliz@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/planka-pms-mcp_0.1.8_1776057344769_0.7946360219147355"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-11T09:29:34.624Z","modified":"2026-04-13T05:15:45.249Z","0.1.0":"2026-04-11T09:29:34.886Z","0.1.1":"2026-04-11T09:38:08.852Z","0.1.6":"2026-04-11T10:43:55.972Z","0.1.7":"2026-04-13T04:48:50.360Z","0.1.8":"2026-04-13T05:15:44.917Z"},"bugs":{"url":"https://github.com/adaofeliz/planka-pms-mcp/issues"},"license":"MIT","homepage":"https://github.com/adaofeliz/planka-pms-mcp#readme","keywords":["mcp","planka","project-management","ai"],"repository":{"type":"git","url":"git+https://github.com/adaofeliz/planka-pms-mcp.git"},"description":"GTD-inspired productivity system for AI agents — inbox capture, triage, scheduling, Pomodoro execution, and archival via Planka","maintainers":[{"name":"adflz","email":"adaofeliz@gmail.com"}],"readme":"# @adaofeliz/planka-pms-mcp\n\nGTD-inspired MCP server for Planka boards. It gives AI agents a workflow-aware productivity layer: inbox capture, triage, scheduling, focused execution, stopwatch/Pomodoro tracking, done/archive handling, and overdue recovery suggestions.\n\nThis is intentionally semantic (workflow tools + board rules), not a raw Planka CRUD wrapper.\n\n## Prerequisites\n\n- Node.js 18+\n- npm\n- A running Planka instance with API key\n- A target board ID\n\n## Setup\n\n```bash\nnpm install\ncp .env.example .env\n```\n\nFill `.env` values:\n\n- `PLANKA_BASE_URL`\n- `PLANKA_API_KEY`\n- `PLANKA_BOARD_ID`\n- optional: `PLANKA_CONFIG_PATH` (defaults to `config/default.yaml`)\n\nBuild once:\n\n```bash\nnpm run build\n```\n\n## Configuration\n\nMain config is `config/default.yaml`.\n\n- `connection`: Planka URL/key/board ID (via `${ENV_VAR}` interpolation)\n- `board`: list names, transitions, WIP limits, sort rules, due-date windows\n- `labels` / `custom_fields`: required triage metadata\n- `tools.generate`: dynamic workflow tools (e.g. `triage_card`, `start_working`)\n- `cache`: board skeleton TTL + optional startup preload\n\n## Running\n\n### MCP client configuration (npx)\n\nAdd to your MCP client config (Claude Desktop, Cursor, MCPHub, etc.):\n\n```json\n{\n  \"mcpServers\": {\n    \"planka-pms-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@adflz/planka-pms-mcp@0.1.8\"],\n      \"env\": {\n        \"PLANKA_BASE_URL\": \"https://your-planka-instance.com\",\n        \"PLANKA_API_KEY\": \"your-api-key\",\n        \"PLANKA_BOARD_ID\": \"your-board-id\"\n      }\n    }\n  }\n}\n```\n\n### stdio mode (default)\n\nUse this for local development:\n\n```bash\nnode dist/index.js\n```\n\nWith MCP Inspector:\n\n```bash\nnpx @modelcontextprotocol/inspector node dist/index.js\n```\n\n### Streamable HTTP mode\n\n```bash\nnode dist/index.js --http\nnode dist/index.js --http --port=8080\n```\n\nEndpoints:\n\n- MCP: `http://localhost:<port>/mcp`\n- Health: `http://localhost:<port>/health`\n\n## Available tools (18+ core)\n\n### Read\n\n- `board_overview`, `list_cards`, `get_card`, `search_cards`, `daily_summary`, `overdue_check`, `search_archive`\n\n### Write\n\n- `create_card`, `update_card`, `move_card`, `complete_card`, `block_card`, `archive_card`, `manage_checklist`, `add_comment`, `sort_list`\n\n### Workflow (generated from config)\n\n- `triage_card`, `schedule_for_today`, `start_working`, `park_as_noise`\n\n### Time tracking\n\n- `stopwatch`, `pomodoro`\n\n## Generated workflow tools\n\n`config/default.yaml` drives generation of higher-level tools that compose core operations and enforce board semantics. Typical flow:\n\n`triage_card` → `schedule_for_today` → `start_working` → `complete_card` → `archive_card`\n\n## Testing\n\n- Mocked/full suite (default):\n\n```bash\nnpm test\n```\n\n- Live smoke tests against a real Planka instance:\n\n```bash\nPLANKA_LIVE_TESTS=1 npm run test:live\n```\n\nLive tests are skipped unless `PLANKA_LIVE_TESTS=1` is set.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}