{"_id":"@denisixnpm/planka-mcp","_rev":"7-d56c1385ecbaaced4e8926b22a16b456","name":"@denisixnpm/planka-mcp","dist-tags":{"latest":"2.6.0"},"versions":{"2.2.0":{"name":"@denisixnpm/planka-mcp","version":"2.2.0","keywords":["mcp","planka","kanban","model-context-protocol"],"author":{"url":"original author","name":"Christopher Maldonado","email":"chmald@microsoft.com"},"license":"MIT","_id":"@denisixnpm/planka-mcp@2.2.0","maintainers":[{"name":"denisixnpm","email":"denisix@gmail.com"}],"contributors":[{"url":"https://github.com/denisix","name":"denisix"}],"homepage":"https://github.com/denisix/planka-mcp#readme","bugs":{"url":"https://github.com/denisix/planka-mcp/issues"},"bin":{"planka-mcp":"dist/server.js"},"dist":{"shasum":"d6c098476526b7f6cbe46f9cea4f9648719d781f","tarball":"https://registry.npmjs.org/@denisixnpm/planka-mcp/-/planka-mcp-2.2.0.tgz","fileCount":23,"integrity":"sha512-H+TyePYcsPzZl4Ai7IMogQOfbxYkv/H4EO1jYNrQ4lbBitrz9LJZsu4je02EBVccplAMydIcrwLaX/keucX0CQ==","signatures":[{"sig":"MEUCIQC3aG19pDov3dXcGzYw4ysgUOdfA7UoBGngifEg03fefQIgM1VKnsyoePtXTUiuVAwi0FUZ5jOZm3WBo6ch9x8iCqo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":108422},"main":"dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.19.0"},"gitHead":"42c6fa5702b425345e78749b4a49b28323d79d57","scripts":{"dev":"bun src/server.ts","test":"bun run build && bun test","build":"tsc","start":"node dist/server.js","dev:sse":"MCP_TRANSPORT=sse bun src/server.ts","test:ci":"bun run build && bun test","start:sse":"MCP_TRANSPORT=sse node dist/server.js","test:build":"bun run build && bun test test/build.test.ts","test:tools":"bun test test/tools.test.ts","test:server":"bun test test/server.test.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"denisixnpm","email":"denisix@gmail.com"},"repository":{"url":"git+https://github.com/denisix/planka-mcp.git","type":"git"},"_npmVersion":"12.0.2","description":"MCP server for Planka - Real-Time Collaborative Kanban Board","directories":{},"_nodeVersion":"26.6.0","dependencies":{"@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.2.0"},"_npmOperationalInternal":{"tmp":"tmp/planka-mcp_2.2.0_1787399459733_0.9609801179630673","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"@denisixnpm/planka-mcp","version":"2.3.0","keywords":["mcp","planka","kanban","model-context-protocol"],"author":{"url":"original author","name":"Christopher Maldonado","email":"chmald@microsoft.com"},"license":"MIT","_id":"@denisixnpm/planka-mcp@2.3.0","maintainers":[{"name":"denisixnpm","email":"denisix@gmail.com"}],"contributors":[{"url":"https://github.com/denisix","name":"denisix"}],"homepage":"https://github.com/denisix/planka-mcp#readme","bugs":{"url":"https://github.com/denisix/planka-mcp/issues"},"bin":{"planka-mcp":"dist/server.js"},"dist":{"shasum":"073dcb6a78fc03c40135c82ce40fc3dddcb3320e","tarball":"https://registry.npmjs.org/@denisixnpm/planka-mcp/-/planka-mcp-2.3.0.tgz","fileCount":23,"integrity":"sha512-oiI9u56daryZ7D4rBke2k2VCZE+0uL31yeoQfJ9/5oW9pOs/T9W2tBVHrMfFRnlUlAmri0hkR+apDjO1X41gWA==","signatures":[{"sig":"MEYCIQDJOtuycH3/5S0wZP22loRt7EPHj7GiUPhymymvspQZFwIhALznLe/0SUD04xOXPaLzKzUaVV6Ymw2BexJHTMbNuk8O","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCaPJ+nJWPknjf3ZCo2qVmPbs8KVkvbWGogePyA+LPoawIgY0tIT4+5/48V1zGljs4MMw9lWoCssUTSB5DvDUqeAb0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@denisixnpm%2fplanka-mcp@2.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":108643},"main":"dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.19.0"},"gitHead":"0446f4e86069ee0f8687e6cf2d244668d41c2653","scripts":{"dev":"bun src/server.ts","test":"bun run build && bun test","build":"tsc","start":"node dist/server.js","dev:sse":"MCP_TRANSPORT=sse bun src/server.ts","test:ci":"bun run build && bun test","start:sse":"MCP_TRANSPORT=sse node dist/server.js","test:build":"bun run build && bun test test/build.test.ts","test:tools":"bun test test/tools.test.ts","test:server":"bun test test/server.test.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9169232-fd97-4570-b260-0bd89ff3ecb0"}},"repository":{"url":"git+https://github.com/denisix/planka-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"MCP server for Planka - Real-Time Collaborative Kanban Board","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.2.0"},"_npmOperationalInternal":{"tmp":"tmp/planka-mcp_2.3.0_1787400441404_0.8200738864799066","host":"s3://npm-registry-packages-npm-production"}},"2.3.1":{"name":"@denisixnpm/planka-mcp","version":"2.3.1","keywords":["mcp","planka","kanban","model-context-protocol"],"author":{"url":"original author","name":"Christopher Maldonado","email":"chmald@microsoft.com"},"license":"MIT","_id":"@denisixnpm/planka-mcp@2.3.1","maintainers":[{"name":"denisixnpm","email":"denisix@gmail.com"}],"contributors":[{"url":"https://github.com/denisix","name":"denisix"}],"homepage":"https://github.com/denisix/planka-mcp#readme","bugs":{"url":"https://github.com/denisix/planka-mcp/issues"},"bin":{"planka-mcp":"dist/server.js"},"dist":{"shasum":"12b63634f99c09577300e03e77c357b3f2e9b436","tarball":"https://registry.npmjs.org/@denisixnpm/planka-mcp/-/planka-mcp-2.3.1.tgz","fileCount":23,"integrity":"sha512-CVMSmLmrA1v+WpD5mzA9J+fLgp7iRVkXMLWKpw196x+vJdMoCtRn1y+W9Hse9ZLaVSQfx8Ao9XSJKZftRO7h3A==","signatures":[{"sig":"MEUCIQCLNVKee75HETHkockGZj01/xfSmA36Xcb9X8lBYLtYfwIgaysEYSVYyfp9sXx+JM4jp91RPE3q1RzUuzaFs+49cDY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICUKLdoFOtrdsjNH7XFaRP2t9NENqEHbO38fjF0cuWovAiEAkWnGNX29q4oTUjI4BaNS7Lco7wGhEh0BEHJDOFhmFWU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@denisixnpm%2fplanka-mcp@2.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":110097},"main":"dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.19.0"},"gitHead":"e2c79697e840d5c1d85bad9aa6a9a74254973887","scripts":{"dev":"bun src/server.ts","test":"bun run build && bun test","build":"tsc","start":"node dist/server.js","dev:sse":"MCP_TRANSPORT=sse bun src/server.ts","test:ci":"bun run build && bun test","start:sse":"MCP_TRANSPORT=sse node dist/server.js","test:build":"bun run build && bun test test/build.test.ts","test:tools":"bun test test/tools.test.ts","test:server":"bun test test/server.test.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9169232-fd97-4570-b260-0bd89ff3ecb0"}},"repository":{"url":"git+https://github.com/denisix/planka-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"MCP server for Planka - Real-Time Collaborative Kanban Board","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.2.0"},"_npmOperationalInternal":{"tmp":"tmp/planka-mcp_2.3.1_1787400890616_0.01841020326932985","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"name":"@denisixnpm/planka-mcp","version":"2.4.0","keywords":["mcp","planka","kanban","model-context-protocol"],"author":{"url":"original author","name":"Christopher Maldonado","email":"chmald@microsoft.com"},"license":"MIT","_id":"@denisixnpm/planka-mcp@2.4.0","maintainers":[{"name":"denisixnpm","email":"denisix@gmail.com"}],"contributors":[{"url":"https://github.com/denisix","name":"denisix"}],"homepage":"https://github.com/denisix/planka-mcp#readme","bugs":{"url":"https://github.com/denisix/planka-mcp/issues"},"bin":{"planka-mcp":"dist/server.js"},"dist":{"shasum":"c0591351d7076aae40ff9688a18ab98734972488","tarball":"https://registry.npmjs.org/@denisixnpm/planka-mcp/-/planka-mcp-2.4.0.tgz","fileCount":23,"integrity":"sha512-R8jOKtLbjhQvzuLlPeZ0OXk+QpMckDzmAUUmx4lPp8kZQu4uih07ijzChPPZqc6FGT+gC1E2ojO/mxWoarFrag==","signatures":[{"sig":"MEQCIBpon3q6nVMWRsqRmjuHGDuqU+Pa9uQ3tfO36KnvbIq/AiBRz2z+39Lxu3sfBBtS3unaRHlePt/SRuM8nuOZvYuY7A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDC8tr6wyPfYJVw0EgBLhEjZeo3J2gProurN5JvA8U3hwIgNfOQ1eBKO5eog5MQh1qqyis7MNqAfi/yKnDXmbg9lJU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@denisixnpm%2fplanka-mcp@2.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":124056},"main":"dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.19.0"},"gitHead":"7a5309cce5c67bb7c88caf1cf7f09fb674811e51","scripts":{"dev":"bun src/server.ts","test":"bun run build && bun test","build":"tsc","start":"node dist/server.js","dev:sse":"MCP_TRANSPORT=sse bun src/server.ts","test:ci":"bun run build && bun test","start:sse":"MCP_TRANSPORT=sse node dist/server.js","test:build":"bun run build && bun test test/build.test.ts","test:tools":"bun test test/tools.test.ts","test:server":"bun test test/server.test.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9169232-fd97-4570-b260-0bd89ff3ecb0"}},"repository":{"url":"git+https://github.com/denisix/planka-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"MCP server for Planka - Real-Time Collaborative Kanban Board","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.2.0"},"_npmOperationalInternal":{"tmp":"tmp/planka-mcp_2.4.0_1787404340873_0.05883251335348105","host":"s3://npm-registry-packages-npm-production"}},"2.5.0":{"name":"@denisixnpm/planka-mcp","version":"2.5.0","keywords":["mcp","planka","kanban","model-context-protocol"],"author":{"url":"original author","name":"Christopher Maldonado","email":"chmald@microsoft.com"},"license":"MIT","_id":"@denisixnpm/planka-mcp@2.5.0","maintainers":[{"name":"denisixnpm","email":"denisix@gmail.com"}],"contributors":[{"url":"https://github.com/denisix","name":"denisix"}],"homepage":"https://github.com/denisix/planka-mcp#readme","bugs":{"url":"https://github.com/denisix/planka-mcp/issues"},"bin":{"planka-mcp":"dist/server.js"},"dist":{"shasum":"113f34a17b89de1596a1be0db7e8374aa28d9c87","tarball":"https://registry.npmjs.org/@denisixnpm/planka-mcp/-/planka-mcp-2.5.0.tgz","fileCount":23,"integrity":"sha512-RX3+cOOvJKw2vPM7jReJ2K4wGDUAGJPzXLO28q0ybxhTbzuLpMEoAWK+qu8RKFM8arif/n/Q23p77cBMUFiGLg==","signatures":[{"sig":"MEUCIDoylg/IGliVD8HY8w2oZBRP57a9Dqr17pHOLVJT0YJoAiEAnigYfb/8Uide+NyZelYfo5h+B5a6shDXh6EfxN+WO9s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCmyyrSysBpil27XjXU7/pDNf6UMwt55uYoFZKQGrDU4AIgcl/PA1w53SAQbpho0/UAmpdjAFq61ATX/BOL0ex28vc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@denisixnpm%2fplanka-mcp@2.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":130188},"main":"dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.19.0"},"gitHead":"5035136cf07745363ca794f14cab4c45a6a2a8cc","scripts":{"dev":"bun src/server.ts","test":"bun run build && bun test","build":"tsc","start":"node dist/server.js","dev:sse":"MCP_TRANSPORT=sse bun src/server.ts","test:ci":"bun run build && bun test","start:sse":"MCP_TRANSPORT=sse node dist/server.js","test:build":"bun run build && bun test test/build.test.ts","test:tools":"bun test test/tools.test.ts","test:server":"bun test test/server.test.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9169232-fd97-4570-b260-0bd89ff3ecb0"}},"repository":{"url":"git+https://github.com/denisix/planka-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"MCP server for Planka - Real-Time Collaborative Kanban Board","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.2.0"},"_npmOperationalInternal":{"tmp":"tmp/planka-mcp_2.5.0_1787406136721_0.3063791877020774","host":"s3://npm-registry-packages-npm-production"}},"2.5.1":{"name":"@denisixnpm/planka-mcp","version":"2.5.1","keywords":["mcp","planka","kanban","model-context-protocol"],"author":{"url":"original author","name":"Christopher Maldonado","email":"chmald@microsoft.com"},"license":"MIT","_id":"@denisixnpm/planka-mcp@2.5.1","maintainers":[{"name":"denisixnpm","email":"denisix@gmail.com"}],"contributors":[{"url":"https://github.com/denisix","name":"denisix"}],"homepage":"https://github.com/denisix/planka-mcp#readme","bugs":{"url":"https://github.com/denisix/planka-mcp/issues"},"bin":{"planka-mcp":"dist/server.js"},"dist":{"shasum":"ec7881eb7d4589767371b397b8ab1fc9915d674a","tarball":"https://registry.npmjs.org/@denisixnpm/planka-mcp/-/planka-mcp-2.5.1.tgz","fileCount":23,"integrity":"sha512-bvQFWuOnJ/tWSLN0+XrEYLWzGttrz5xtyIJlW3vzmqAHABE4zZYEgO1WcRNA8PAAUz8/GmQs4qFYA8CabxOZtg==","signatures":[{"sig":"MEQCIHZfX2rftOQLj4KMM/TjiKc08dqorM3rWxJeksFeAcQtAiBoktuPF3XFj5WOmuHYEGHDEEh1aBPRkXXmZh7gAm+u7A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDYBtH9wklKzUhHErR0fKfDCZfKIRl8znR9QwsGhT93EAiAUlqEz3VnpIhL2HJugGbaemCUD3iBi1gCfnmJiKe6eiw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@denisixnpm%2fplanka-mcp@2.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":130567},"main":"dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.19.0"},"gitHead":"edc7d80536bce94e732ad6857f027921b30eb0f1","scripts":{"dev":"bun src/server.ts","test":"bun run build && bun test","build":"tsc","start":"node dist/server.js","dev:sse":"MCP_TRANSPORT=sse bun src/server.ts","test:ci":"bun run build && bun test","start:sse":"MCP_TRANSPORT=sse node dist/server.js","test:build":"bun run build && bun test test/build.test.ts","test:tools":"bun test test/tools.test.ts","test:server":"bun test test/server.test.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9169232-fd97-4570-b260-0bd89ff3ecb0"}},"repository":{"url":"git+https://github.com/denisix/planka-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"MCP server for Planka - Real-Time Collaborative Kanban Board","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.2.0"},"_npmOperationalInternal":{"tmp":"tmp/planka-mcp_2.5.1_1787406397033_0.8781321978018306","host":"s3://npm-registry-packages-npm-production"}},"2.6.0":{"_id":"@denisixnpm/planka-mcp@2.6.0","bin":{"planka-mcp":"dist/server.js"},"bugs":{"url":"https://github.com/denisix/planka-mcp/issues"},"dist":{"shasum":"96acd7668053c97294b5476a2c4caf1811d79e08","tarball":"https://registry.npmjs.org/@denisixnpm/planka-mcp/-/planka-mcp-2.6.0.tgz","fileCount":25,"integrity":"sha512-ewc3PLahdt6XYrvc1xq8fbBLP3X0X6SSg4ZTn8/Jsts4HQJn8QdLoFiRBWWYR6JibhFIr5wU4qHklDaPlXMgZw==","signatures":[{"sig":"MEQCIFoi14u/Y/WcLsVkPP0DS90stugMvuF+0/Ws9excGzWLAiBwtOFwlr/LLSR0z1ZO5ZeSqb36LvzZ1Hfcec5EtFHYuA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHskaFGaXkrWNLiYWrxoLct9Lnxh1hodY9kLv4q/zYdwAiEA/gtIv4dlyztu7AYqYR05R9n+qGizWaP/OQBoFpc9SvY="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@denisixnpm%2fplanka-mcp@2.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":157246},"main":"dist/server.js","name":"@denisixnpm/planka-mcp","type":"module","types":"./dist/server.d.ts","author":{"url":"original author","name":"Christopher Maldonado","email":"chmald@microsoft.com"},"engines":{"node":">=22.19.0"},"gitHead":"3ffe7555c6e6ffd0bab404795ca676d7cbced9f9","license":"MIT","scripts":{"dev":"bun src/server.ts","e2e":"node scripts/e2e.mjs","test":"bun run build && bun test","build":"tsc","check":"npm run guard:lockfiles && npm run guard:version && npm test","start":"node dist/server.js","e2e:up":"docker compose --profile e2e up -d","dev:sse":"MCP_TRANSPORT=sse bun src/server.ts","e2e:down":"docker compose --profile e2e down -v","start:sse":"MCP_TRANSPORT=sse node dist/server.js","test:build":"bun run build && bun test test/build.test.ts","test:tools":"bun run build && bun test test/tools.test.ts","test:server":"bun run build && bun test test/server.test.ts","version:set":"node scripts/version-sync.mjs --set","guard:version":"node scripts/version-sync.mjs","prepublishOnly":"npm run build","guard:lockfiles":"node scripts/guard-lockfiles.mjs"},"version":"2.6.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9169232-fd97-4570-b260-0bd89ff3ecb0"}},"homepage":"https://github.com/denisix/planka-mcp#readme","keywords":["mcp","planka","kanban","model-context-protocol"],"repository":{"url":"git+https://github.com/denisix/planka-mcp.git","type":"git"},"_npmVersion":"11.19.0","description":"MCP server for Planka - Real-Time Collaborative Kanban Board","directories":{},"maintainers":[{"name":"denisixnpm","email":"denisix@gmail.com"}],"_nodeVersion":"24.20.0","contributors":[{"url":"https://github.com/denisix","name":"denisix"}],"dependencies":{"@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.2.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/planka-mcp_2.6.0_1788694772836_0.8103315727413432"}}},"time":{"created":"2026-08-22T11:50:59.472Z","modified":"2026-09-06T11:39:33.454Z","2.2.0":"2026-08-22T11:50:59.875Z","2.3.0":"2026-08-22T12:07:21.486Z","2.3.1":"2026-08-22T12:14:50.719Z","2.4.0":"2026-08-22T13:12:20.960Z","2.5.0":"2026-08-22T13:42:16.793Z","2.5.1":"2026-08-22T13:46:37.143Z","2.6.0":"2026-09-06T11:39:32.925Z"},"bugs":{"url":"https://github.com/denisix/planka-mcp/issues"},"author":{"url":"original author","name":"Christopher Maldonado","email":"chmald@microsoft.com"},"license":"MIT","homepage":"https://github.com/denisix/planka-mcp#readme","keywords":["mcp","planka","kanban","model-context-protocol"],"repository":{"url":"git+https://github.com/denisix/planka-mcp.git","type":"git"},"description":"MCP server for Planka - Real-Time Collaborative Kanban Board","contributors":[{"url":"https://github.com/denisix","name":"denisix"}],"maintainers":[{"name":"denisixnpm","email":"denisix@gmail.com"}],"readme":"# Planka MCP Server\n\n[![npm version](https://img.shields.io/npm/v/@denisixnpm/planka-mcp)](https://www.npmjs.com/package/@denisixnpm/planka-mcp)\n[![GitHub release](https://img.shields.io/github/v/release/denisix/planka-mcp)](https://github.com/denisix/planka-mcp/releases)\n[![Docker](https://img.shields.io/docker/v/denisix/planka-mcp?sort=semver&label=Docker)](https://hub.docker.com/r/denisix/planka-mcp)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nMCP server for [Planka](https://planka.app/) (real-time Kanban), tuned for AI coding agents:\n**Claude Code, Codex, opencode** and any MCP client. Works with Planka v2 and v1 (≤ 1.26.x).\nNo build step, no Docker required — `npx` runs the prebuilt package over stdio.\n\n**Auth:** `PLANKA_USERNAME`/`PLANKA_PASSWORD` works on **every** Planka version (login, token\ncache, and silent re-login are automatic). `PLANKA_API_KEY` is **v2 only** — generate one in\nPlanka user settings → *API keys* (v1.26.x has none; `X-Api-Key` returns 401 there, verified).\nAll examples below use username/password; on v2 you may swap the two auth envs for\n`PLANKA_API_KEY=your-api-key`.\n\n## Install\n\n### Claude Code\n\n```bash\nclaude mcp add planka \\\n  --env PLANKA_BASE_URL=http://localhost:3000 \\\n  --env PLANKA_USERNAME=your-email-or-username \\\n  --env PLANKA_PASSWORD=your-password \\\n  -- npx -y @denisixnpm/planka-mcp\n```\n\nOr in `claude_desktop_config.json` / `.mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"planka\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@denisixnpm/planka-mcp\"],\n      \"env\": { \"PLANKA_BASE_URL\": \"http://localhost:3000\", \"PLANKA_USERNAME\": \"your-email-or-username\", \"PLANKA_PASSWORD\": \"your-password\" }\n    }\n  }\n}\n```\n\n### Codex (`~/.codex/config.toml`)\n\n```toml\n[mcp_servers.planka]\ncommand = \"npx\"\nargs = [\"-y\", \"@denisixnpm/planka-mcp\"]\nenv = { PLANKA_BASE_URL = \"http://localhost:3000\", PLANKA_USERNAME = \"your-email-or-username\", PLANKA_PASSWORD = \"your-password\" }\n```\n\n### opencode (`opencode.json`)\n\n```json\n{\n  \"mcp\": {\n    \"planka\": {\n      \"type\": \"local\",\n      \"command\": [\"npx\", \"-y\", \"@denisixnpm/planka-mcp\"],\n      \"environment\": { \"PLANKA_BASE_URL\": \"http://localhost:3000\", \"PLANKA_USERNAME\": \"your-email-or-username\", \"PLANKA_PASSWORD\": \"your-password\" }\n    }\n  }\n}\n```\n\nRequires Node.js ≥ 22.19 (or Bun ≥ 1.3). Debug: `npx -y @denisixnpm/planka-mcp 2>&1 | tee debug.log`.\n\n## Attachments & files\n\n`cards.get` returns the full working context in one call — description, tasks, task lists,\nattachments, and the activity log (`actions`). Attachment records are normalized across versions\n(v2's nested `data.url` flattened to `url`/`size`/`mimeType`).\n\n- **Create with files**: `cards { action: \"create\", data: { name, attachments: [{ name?, filePath | text | contentBase64, mimeType? }] } }` — uploads happen in the same tool call. With `filePath` the server reads the local file itself and auto-detects name + MIME from the extension (.png, .jpg, .webp, .gif, .pdf, .doc(x), .xls(x), .ppt(x), .txt, .md, .csv, .json, and more).\n- **Upload later**: `attachments { action: \"upload\", id: <cardId>, data: { name?, filePath | text | contentBase64 | url, mimeType? } }` — `url` creates a link attachment (v2 only).\n- **Download**: `attachments { action: \"download\", id: <attachmentId>, data: { cardId } }` — images (`image/*`) come back as a rendered MCP image block, text files as decoded `text`, other binary as `contentBase64` (≤ 10 MB inline).\n- **Rename / delete**: `attachments { action: \"rename\" | \"delete\", id, data: { name? } }`.\n\nDownloads need username/password auth: Planka's file route authenticates via cookie only\n(Bearer/API keys get 401 — verified on 1.26.2 and 2.0.3).\n\n## Agent workflow\n\n**Minimal card creation** — `cards { action: \"create\", data: { name: \"Fix login\" } }` is enough:\n`type` and `position` (append at end) are defaulted; add `description`, `dueDate`, `listId`\n(move), and inline `attachments` as needed.\n\n**Find without walking lists** — `cards { action: \"find\", data: { boardId?, name: \"login\" } }`\nsearches every card on the board case-insensitively and returns matches with their list names\n(`boardId` can come from the `context` tool).\n\n**Scoped context** — select a project/board/list/card once, then omit ids:\n\n```json\n{ \"action\": \"set\", \"data\": { \"boardId\": \"...\" } }\n```\n\n`context.set` returns an overview of what you opened; setting a higher level resets deeper ones.\nScope is per SSE session, process-wide for stdio.\n\n**Condensed output** — responses keep only agent-relevant fields (ids, names, positions, states);\ntimestamps, password hashes, and audit metadata are stripped, long text truncated, `included`\nsidecars reduced per entity. Escape hatches: per-call `raw: true` or `PLANKA_CONDENSED_OUTPUT=false`.\n\n## Configuration\n\n| Variable | Default | Description |\n|----------|---------|-------------|\n| `PLANKA_BASE_URL` | `http://localhost:3000` | Planka instance URL |\n| `PLANKA_USERNAME` / `PLANKA_PASSWORD` | — | Login auth — **all Planka versions**; token is fetched, cached, and refreshed automatically |\n| `PLANKA_API_KEY` | — | API key auth — **Planka v2 only** (user settings → API keys); wins if both are set |\n| `PLANKA_HTTP_TIMEOUT_MS` | `30000` | Per-request timeout (aborts, then retries) |\n| `PLANKA_HTTP_MAX_RETRIES` | `2` | Retries for `408`/`429`/`5xx` and network errors |\n| `PLANKA_HTTP_RETRY_BASE_DELAY_MS` | `250` | Exponential backoff base (`base * 2^attempt`) |\n| `PLANKA_CONDENSED_OUTPUT` | `true` | Condensed agent output; `false` = raw payloads |\n| `ENABLE_ALL_TOOLS` | `false` | Enable all 28 tools (otherwise 12 core) |\n| `ENABLE_ADMIN_TOOLS` / `ENABLE_OPTIONAL_TOOLS` | `false` | Enable one extra category |\n| `MCP_TRANSPORT` | `stdio` | `stdio` (single client) or `sse` (multi-client) |\n| `MCP_PORT` / `MCP_HOST` | `3001` / `127.0.0.1` | SSE mode bind; `0.0.0.0` in Docker |\n| `MCP_AUTH_TOKEN` | — | If set, SSE endpoints require `Authorization: Bearer <token>` |\n| `MCP_HEARTBEAT_INTERVAL_MS` | `30000` | SSE keep-alive interval for strict proxies |\n\nBun auto-loads `.env` from the working directory (real env vars win); the Node/npx path does not.\n\n## Tools (28)\n\nEvery tool takes `action`, optional `id`/`data`/`query`, and optional `raw: true`.\n\n| Category | Tools |\n|----------|-------|\n| Core (12, always on) | `auth`, `bootstrap`, `context`, `projects`, `boards`, `lists`, `cards`, `attachments`, `comments`, `tasks`, `labels`, `cardMembers` |\n| Admin (4) | `users`, `projectManagers`, `webhooks`, `notificationServices` |\n| Optional (12) | `actions`, `boardMembers`, `customFields`, `notifications`, `backgroundImages`, `cardExtras`, `commentExtras`, `listExtras`, `taskExtras`, `labelExtras`, `cardMemberExtras`, `userInfo` |\n\nActions per tool are enumerated in the MCP `tools/list` response. Live-verified semantics worth\nknowing: project managers exist only on `shared` projects; notification services are self-only;\nv1.26.2 lacks REST task-lists/custom-fields/webhooks (clean 404s); renamed v1 membership/label/\ncomment routes are retried automatically; `labels.list` and `cards.find` derive from `boards.get`\n(Planka has no labels GET route on either major); link attachments to some URLs (e.g.\n`example.com`) HTTP 500 inside Planka 2.0.3 itself.\n\n### If a tool reports \"returned an HTML page\"\n\nPlanka serves its web UI from the same origin as the API, so a route the server does not have may\nanswer `200 text/html` (the SPA's `index.html`) instead of `404`. The server refuses to pass that\noff as data and tells you which call hit it. Usually it means the route is newer than your Planka:\non 1.26.x the server transparently retries the v1 route, or derives the answer from `boards.get` /\nthe card activity log and marks the result with a `_compat` note. If it names a route with no v1\nequivalent (task lists), the error also names what to use instead. A page returned for *every*\ncall, including login, means `PLANKA_BASE_URL` points at a proxy or portal rather than at Planka.\n\n## Multi-client SSE mode (optional)\n\n```bash\nMCP_TRANSPORT=sse npx -y @denisixnpm/planka-mcp\n```\n\nConnect MCP clients to `http://127.0.0.1:3001/sse`. Set `MCP_AUTH_TOKEN` whenever binding beyond\nloopback — without it, anyone who can reach the port has full tool access. A `--healthcheck`\nmode is built in for orchestrators.\n\nPrefer a container? [`hub.docker.com/r/denisix/planka-mcp`](https://hub.docker.com/r/denisix/planka-mcp):\n\n```bash\ndocker run -d --name planka-mcp -p 3001:3001 \\\n  -e PLANKA_BASE_URL=http://host.docker.internal:3000 \\\n  -e PLANKA_USERNAME -e PLANKA_PASSWORD \\\n  denisix/planka-mcp\n```\n\nCompiled Bun binary on distroless (no shell, no node_modules).\n\n## Development\n\n```bash\nbun install\nnpm test          # build + hermetic suite (222 tests)\nnpm run e2e       # + live Planka 2.0.3 and 1.26.2: up, test, tear down\nnpm run check     # lockfile + version-trio guards, then the suite (run before tagging)\n```\n\nDetails in [CONTRIBUTING.md](CONTRIBUTING.md) and [CLAUDE.md](CLAUDE.md).\n\n## Credits\n\nFork of [planka-mcp](https://github.com/chmald/planka-mcp) by [Christopher Maldonado](https://github.com/chmald) — credit for the original server goes to him. Maintained by [denisix](https://github.com/denisix), published as [`@denisixnpm/planka-mcp`](https://www.npmjs.com/package/@denisixnpm/planka-mcp).\n\n**What this fork improves**: security hardening (0 `npm audit` findings, loopback-only SSE,\ntiming-safe auth, single-flight login, per-request timeouts); Planka v1 compatibility with\nautomatic legacy-route fallbacks; condensed agent output and scoped working context; full\nattachment support (upload/download/create-with-files, both Planka majors); agent-first card\nworkflows (minimal create, board-wide find); npm + Docker Hub release pipelines with provenance\nand SBOM.\n\n## License\n\nMIT — see [LICENSE](LICENSE). Issues: [github.com/denisix/planka-mcp/issues](https://github.com/denisix/planka-mcp/issues).\n","readmeFilename":"README.md"}