{"_id":"@disrex/plane-mcp-server","_rev":"7-86b5f3101b5c89c7a4536d92938e9633","name":"@disrex/plane-mcp-server","dist-tags":{"latest":"0.4.5"},"versions":{"0.3.0":{"name":"@disrex/plane-mcp-server","version":"0.3.0","keywords":["mcp","model-context-protocol","plane","project-management","api","claude","llm","ai","sprint","cycle","labels","states","comments","attachments","time-tracking","worklogs","issue-types","intake","links"],"author":{"name":"Disrex Group"},"license":"MIT","_id":"@disrex/plane-mcp-server@0.3.0","maintainers":[{"name":"rbouma","email":"r.bouma@disrex.nl"}],"homepage":"https://github.com/disrex-group/plane-mcp-server","bugs":{"url":"https://github.com/disrex-group/plane-mcp-server/issues"},"bin":{"plane-mcp-server":"dist/index.js"},"dist":{"shasum":"cea30af5283c246bbbf66240b05a9dd4ff086574","tarball":"https://registry.npmjs.org/@disrex/plane-mcp-server/-/plane-mcp-server-0.3.0.tgz","fileCount":6,"integrity":"sha512-63kgpCZVG/iaXr7gKtt/le86DTbNguCYm7OZQnnACAGl2pIpQZKj6mk21KhoqHvE5N2nkVHp2+KqKaOiBa5VvQ==","signatures":[{"sig":"MEUCIQCa+McFzQ9mo1rsDmtixWBiEAdjW5GAOBAwnHytlwUXPgIgIVaZWRwX4INIM26Xaumk+/jLJQ53YwmyhqL/RJvGFnA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":194703},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"44bfa0c078db128d6be5eec0f3ffe04a45ea82b4","scripts":{"test":"echo \"No tests specified\" && exit 0","build":"tsc && shx chmod +x dist/*.js","watch":"tsc --watch","prepare":"npm run build"},"_npmUser":{"name":"rbouma","email":"r.bouma@disrex.nl"},"repository":{"url":"git+https://github.com/disrex-group/plane-mcp-server.git","type":"git"},"_npmVersion":"10.8.2","description":"Enhanced MCP Server for Plane with 63 comprehensive project management tools including comments, links, attachments, time tracking, and issue types","directories":{},"_nodeVersion":"20.19.4","dependencies":{"dotenv":"^16.3.1","@modelcontextprotocol/sdk":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","typescript":"^5.8.2","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/plane-mcp-server_0.3.0_1755344965587_0.49657719099576414","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@disrex/plane-mcp-server","version":"0.4.0","keywords":["mcp","model-context-protocol","plane","project-management","api","claude","llm","ai","sprint","cycle","labels","states","comments","attachments","time-tracking","worklogs","issue-types","intake","links","custom-properties","sub-issues","relations","transfer"],"author":{"name":"Disrex Group"},"license":"MIT","_id":"@disrex/plane-mcp-server@0.4.0","maintainers":[{"name":"rbouma","email":"r.bouma@disrex.nl"}],"homepage":"https://github.com/disrex-group/plane-mcp-server","bugs":{"url":"https://github.com/disrex-group/plane-mcp-server/issues"},"bin":{"plane-mcp-server":"dist/index.js"},"dist":{"shasum":"0ba1b452f51a1dc00a9de1d1407c9ab9dcc99065","tarball":"https://registry.npmjs.org/@disrex/plane-mcp-server/-/plane-mcp-server-0.4.0.tgz","fileCount":6,"integrity":"sha512-H5xHQc2b/fexRXR4P8q+qPrOnRoT30lO8s6obJNz0w0f3sgfOHaZEV52ZurBDypLPOQjCo99doJgph8N4auZoQ==","signatures":[{"sig":"MEYCIQDFZlIJ6yWdAyiocyE+fSPjm4YfuESMCQ6ULSUiIm1EgQIhALJurwqgw+FThuBImBvA9Kl/ejjA9z61MgG97o+Qv5HK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":236614},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"492bc629bd9bd896d74e231ed5429a9a72e847d3","scripts":{"test":"echo \"No tests specified\" && exit 0","build":"tsc && shx chmod +x dist/*.js","watch":"tsc --watch","prepare":"npm run build"},"_npmUser":{"name":"rbouma","email":"r.bouma@disrex.nl"},"repository":{"url":"git+https://github.com/disrex-group/plane-mcp-server.git","type":"git"},"_npmVersion":"10.8.2","description":"Comprehensive MCP Server for Plane with 76 project management tools including custom properties, sub-issues, relations, and transfer operations","directories":{},"_nodeVersion":"20.19.4","dependencies":{"dotenv":"^16.3.1","@modelcontextprotocol/sdk":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","typescript":"^5.8.2","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/plane-mcp-server_0.4.0_1755345814720_0.8020550157436512","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@disrex/plane-mcp-server","version":"0.4.1","keywords":["mcp","model-context-protocol","plane","project-management","api","claude","llm","ai","sprint","cycle","labels","states","comments","attachments","time-tracking","worklogs","issue-types","intake","links","custom-properties","sub-issues","relations","transfer"],"author":{"name":"Disrex Group"},"license":"MIT","_id":"@disrex/plane-mcp-server@0.4.1","maintainers":[{"name":"rbouma","email":"r.bouma@disrex.nl"}],"homepage":"https://github.com/disrex-group/plane-mcp-server","bugs":{"url":"https://github.com/disrex-group/plane-mcp-server/issues"},"bin":{"plane-mcp-server":"dist/index.js"},"dist":{"shasum":"e0b62371bda0625dde5b4164d41cce02b9179f6e","tarball":"https://registry.npmjs.org/@disrex/plane-mcp-server/-/plane-mcp-server-0.4.1.tgz","fileCount":6,"integrity":"sha512-FlflHzd+o1b8YqNX77TBt6EQiBPBWNvnYDqJCw3W3G5C9s9ICKlmiw2MtnrJDrRGsaNwU1wwmczsY1bBCmvErQ==","signatures":[{"sig":"MEQCIBfuzuuvZICJEf8P5Tzj2hel3HwUyChkvOkZRz2JfUu7AiAE2EQuw+n63J2GHWMX1kK5sJ+52f+gTpgEQyrnKxmO5w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":236950},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"a7214636470c36e12f5fd76c838c9d977e9cb3fd","scripts":{"test":"echo \"No tests specified\" && exit 0","build":"tsc && shx chmod +x dist/*.js","watch":"tsc --watch","prepare":"npm run build"},"_npmUser":{"name":"rbouma","email":"r.bouma@disrex.nl"},"repository":{"url":"git+https://github.com/disrex-group/plane-mcp-server.git","type":"git"},"_npmVersion":"10.8.2","description":"Comprehensive MCP Server for Plane with 76 project management tools including custom properties, sub-issues, relations, and transfer operations","directories":{},"_nodeVersion":"20.19.4","dependencies":{"dotenv":"^16.3.1","@modelcontextprotocol/sdk":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","typescript":"^5.8.2","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/plane-mcp-server_0.4.1_1755346627488_0.6999022700810946","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@disrex/plane-mcp-server","version":"0.4.2","keywords":["mcp","model-context-protocol","plane","project-management","api","claude","llm","ai","sprint","cycle","labels","states","comments","attachments","time-tracking","worklogs","issue-types","intake","links","custom-properties","sub-issues","relations","transfer"],"author":{"name":"Disrex Group"},"license":"MIT","_id":"@disrex/plane-mcp-server@0.4.2","maintainers":[{"name":"rbouma","email":"r.bouma@disrex.nl"}],"homepage":"https://github.com/disrex-group/plane-mcp-server","bugs":{"url":"https://github.com/disrex-group/plane-mcp-server/issues"},"bin":{"plane-mcp-server":"dist/index.js"},"dist":{"shasum":"fa5da24e4fb840bdf21b5bb8580575c87265b96f","tarball":"https://registry.npmjs.org/@disrex/plane-mcp-server/-/plane-mcp-server-0.4.2.tgz","fileCount":6,"integrity":"sha512-5U9nbv9iYbyKvnNMHvbAM+b4YrYesFRjc65gmyCftfdLpuf3c/y2fvHVOGXDHwqLKqchmyCz3etqJgUaK/QGSQ==","signatures":[{"sig":"MEUCIQCgvb20/XItu5frJ+zKG7Fq7akinLAMJ7/pydlB4XHNRAIgDpQnjkJbmlg2HHb+Ha/0GOrBNRoKcWizSoyUUQ8Qdmw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238270},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"2e9b14a0f56cf710f1b4a793f61f87db60d43330","scripts":{"test":"echo \"No tests specified\" && exit 0","build":"tsc && shx chmod +x dist/*.js","watch":"tsc --watch","prepare":"npm run build"},"_npmUser":{"name":"rbouma","email":"r.bouma@disrex.nl"},"repository":{"url":"git+https://github.com/disrex-group/plane-mcp-server.git","type":"git"},"_npmVersion":"10.8.2","description":"Comprehensive MCP Server for Plane with 76 project management tools including custom properties, sub-issues, relations, and transfer operations","directories":{},"_nodeVersion":"20.19.4","dependencies":{"dotenv":"^16.3.1","@modelcontextprotocol/sdk":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","typescript":"^5.8.2","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/plane-mcp-server_0.4.2_1755348572838_0.3215784462917579","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"@disrex/plane-mcp-server","version":"0.4.3","keywords":["mcp","model-context-protocol","plane","project-management","api","claude","llm","ai","sprint","cycle","labels","states","comments","attachments","time-tracking","worklogs","issue-types","intake","links","custom-properties","sub-issues","relations","transfer"],"author":{"name":"Disrex Group"},"license":"MIT","_id":"@disrex/plane-mcp-server@0.4.3","maintainers":[{"name":"rbouma","email":"r.bouma@disrex.nl"}],"homepage":"https://github.com/disrex-group/plane-mcp-server","bugs":{"url":"https://github.com/disrex-group/plane-mcp-server/issues"},"bin":{"plane-mcp-server":"dist/index.js"},"dist":{"shasum":"a3f567d460e42fbd3865474c8804b326021c1d2d","tarball":"https://registry.npmjs.org/@disrex/plane-mcp-server/-/plane-mcp-server-0.4.3.tgz","fileCount":6,"integrity":"sha512-H1eBpscsvwComFFZHR4KbJ9xRs8WunAIbCB5V5N1FxhZJ9w7YH9KGmbkaRVYovlt4CX1fDHQeX4oaHStj5c1bA==","signatures":[{"sig":"MEUCIEO1YcNyU7MeWlSMR6nc8V6Ci+OE6+2Nd7A3eLp7f/4rAiEAhV/fH9FCLDk94RUPxuxqhg8MbhQLzW6jlC8bFOefkGw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":242559},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"6c48d64e4512a7c349e04234ae3fd7a4ad3225ca","scripts":{"test":"echo \"No tests specified\" && exit 0","build":"tsc && shx chmod +x dist/*.js","watch":"tsc --watch","prepare":"npm run build"},"_npmUser":{"name":"rbouma","email":"r.bouma@disrex.nl"},"repository":{"url":"git+https://github.com/disrex-group/plane-mcp-server.git","type":"git"},"_npmVersion":"10.8.2","description":"Comprehensive MCP Server for Plane with 76 project management tools including custom properties, sub-issues, relations, and transfer operations","directories":{},"_nodeVersion":"20.19.4","dependencies":{"dotenv":"^16.3.1","@modelcontextprotocol/sdk":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","typescript":"^5.8.2","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/plane-mcp-server_0.4.3_1755355537955_0.613729949599638","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"@disrex/plane-mcp-server","version":"0.4.4","keywords":["mcp","model-context-protocol","plane","project-management","api","claude","llm","ai","sprint","cycle","labels","states","comments","attachments","time-tracking","worklogs","issue-types","intake","links","custom-properties","sub-issues","relations","transfer"],"author":{"name":"Disrex Group"},"license":"MIT","_id":"@disrex/plane-mcp-server@0.4.4","maintainers":[{"name":"rbouma","email":"r.bouma@disrex.nl"}],"homepage":"https://github.com/disrex-group/plane-mcp-server","bugs":{"url":"https://github.com/disrex-group/plane-mcp-server/issues"},"bin":{"plane-mcp-server":"dist/index.js"},"dist":{"shasum":"c1402958000f849fb3d98e378359e98da5813583","tarball":"https://registry.npmjs.org/@disrex/plane-mcp-server/-/plane-mcp-server-0.4.4.tgz","fileCount":6,"integrity":"sha512-lwJGhvN15XsMg9CTaKtGUa3JETQNd1UA/3BD4C+d/JJpnZzt1dHyuPw/qnJYiDUVpXDFtFOmzHILfyQNz91QYg==","signatures":[{"sig":"MEYCIQCzCHPvzvnXI6gtLR76ST2WsDE5janmtehW/szt7gkzWgIhAPCoQI0iILG4s7qJmD1N00z+yOPMyLLDjY5U1LjUCE7u","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":248081},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"35ec51e8ac59b1d4d48f78d747dd9a0203a1117f","scripts":{"test":"echo \"No tests specified\" && exit 0","build":"tsc && shx chmod +x dist/*.js","watch":"tsc --watch","prepare":"npm run build"},"_npmUser":{"name":"rbouma","email":"r.bouma@disrex.nl"},"repository":{"url":"git+https://github.com/disrex-group/plane-mcp-server.git","type":"git"},"_npmVersion":"10.8.2","description":"Comprehensive MCP Server for Plane with 76 project management tools including custom properties, sub-issues, relations, and transfer operations","directories":{},"_nodeVersion":"20.19.4","dependencies":{"dotenv":"^16.3.1","@modelcontextprotocol/sdk":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","typescript":"^5.8.2","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/plane-mcp-server_0.4.4_1755360513049_0.3642563983760183","host":"s3://npm-registry-packages-npm-production"}},"0.4.5":{"name":"@disrex/plane-mcp-server","version":"0.4.5","description":"Comprehensive MCP Server for Plane with 76 project management tools including custom properties, sub-issues, relations, and transfer operations","license":"MIT","author":{"name":"Disrex Group"},"homepage":"https://github.com/disrex-group/plane-mcp-server","bugs":{"url":"https://github.com/disrex-group/plane-mcp-server/issues"},"repository":{"type":"git","url":"git+https://github.com/disrex-group/plane-mcp-server.git"},"keywords":["mcp","model-context-protocol","plane","project-management","api","claude","llm","ai","sprint","cycle","labels","states","comments","attachments","time-tracking","worklogs","issue-types","intake","links","custom-properties","sub-issues","relations","transfer"],"type":"module","scripts":{"build":"tsc && shx chmod +x dist/*.js","prepare":"npm run build","watch":"tsc --watch","test":"echo \"No tests specified\" && exit 0"},"dependencies":{"@modelcontextprotocol/sdk":"^1.7.0","dotenv":"^16.3.1"},"devDependencies":{"typescript":"^5.8.2","shx":"^0.3.4","@types/node":"^20.11.0"},"bin":{"plane-mcp-server":"dist/index.js"},"main":"dist/index.js","engines":{"node":">=18.0.0"},"_id":"@disrex/plane-mcp-server@0.4.5","gitHead":"8540b8e78f1f5e03f42b3ff6dc879fabf2d6d4f8","types":"./dist/index.d.ts","_nodeVersion":"20.19.4","_npmVersion":"10.8.2","dist":{"integrity":"sha512-Yss6xe3COkxZbWPquBarUmfwEE6wI34U6gEG08kGQKssm/GFYCXTkTYHp67ihQVKI5aP9qzl3MkWbb/6CzgX7g==","shasum":"97cc7df43d48eec53ea0ee7f0416d83c01997f20","tarball":"https://registry.npmjs.org/@disrex/plane-mcp-server/-/plane-mcp-server-0.4.5.tgz","fileCount":6,"unpackedSize":249537,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEMCHzIYAQoEoBsFAolPK8xOVLqm2K2DxJjqltHwVseFk6UCIFMYJmkR4hrWfrWhOVBhkmdm/T+Cz28P2+FCcgPJPJ7C"}]},"_npmUser":{"name":"rbouma","email":"r.bouma@disrex.nl"},"directories":{},"maintainers":[{"name":"rbouma","email":"r.bouma@disrex.nl"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/plane-mcp-server_0.4.5_1756296846083_0.7417195329832269"},"_hasShrinkwrap":false}},"time":{"created":"2025-08-16T11:49:25.478Z","modified":"2025-08-27T12:14:06.470Z","0.3.0":"2025-08-16T11:49:25.763Z","0.4.0":"2025-08-16T12:03:34.927Z","0.4.1":"2025-08-16T12:17:07.699Z","0.4.2":"2025-08-16T12:49:33.031Z","0.4.3":"2025-08-16T14:45:38.196Z","0.4.4":"2025-08-16T16:08:33.247Z","0.4.5":"2025-08-27T12:14:06.278Z"},"bugs":{"url":"https://github.com/disrex-group/plane-mcp-server/issues"},"author":{"name":"Disrex Group"},"license":"MIT","homepage":"https://github.com/disrex-group/plane-mcp-server","keywords":["mcp","model-context-protocol","plane","project-management","api","claude","llm","ai","sprint","cycle","labels","states","comments","attachments","time-tracking","worklogs","issue-types","intake","links","custom-properties","sub-issues","relations","transfer"],"repository":{"type":"git","url":"git+https://github.com/disrex-group/plane-mcp-server.git"},"description":"Comprehensive MCP Server for Plane with 76 project management tools including custom properties, sub-issues, relations, and transfer operations","maintainers":[{"name":"rbouma","email":"r.bouma@disrex.nl"}],"readme":"# Plane MCP Server\n\n[![npm version](https://badge.fury.io/js/@disrex%2Fplane-mcp-server.svg)](https://badge.fury.io/js/@disrex%2Fplane-mcp-server)\n[![Quality](https://www.archestra.ai/mcp-catalog/api/badge/quality/disrex-group/plane-mcp-server)](https://www.archestra.ai/mcp-catalog/server/plane-mcp-server)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Node.js CI](https://github.com/disrex-group/plane-mcp-server/actions/workflows/nodejs-ci.yml/badge.svg)](https://github.com/disrex-group/plane-mcp-server/actions/workflows/nodejs-ci.yml)\n[![TypeScript](https://img.shields.io/badge/%3C%2F%3E-TypeScript-%230074c1.svg)](https://www.typescriptlang.org/)\n[![Plane.so](https://img.shields.io/badge/Plane.so-Compatible-blue)](https://plane.so)\n[![MCP](https://img.shields.io/badge/MCP-Model%20Context%20Protocol-green)](https://modelcontextprotocol.io)\n\nA Model Context Protocol (MCP) server that enables LLMs to interact with [Plane.so](https://plane.so), allowing them to manage projects and issues through Plane's API. Using this server, LLMs like Claude can directly interact with your project management workflows while maintaining user control and security.\n\n> **⚠️ Important:** This MCP server is designed specifically for **Plane Cloud** instances. It only works with workspaces hosted on `https://app.plane.so/workspace-slug`. If you're using a self-hosted Plane installation, this server will not be compatible.\n\n> **Note:** This is an enhanced fork of the original [kelvin6365/plane-mcp-server](https://github.com/kelvin6365/plane-mcp-server), extended with comprehensive Plane API functionality including states, modules (sprints), cycles, labels, team management, comments, links, attachments, time tracking, and issue types.\n\n## Features\n\n### Pagination Support\n- **Cursor-based pagination** for all list operations (projects, issues, modules, cycles, labels)\n- Configurable page sizes up to 100 items per page\n- Navigation through large datasets with next/previous cursors\n- Consistent pagination across all list tools\n\n### Project Management\n- List all projects in your Plane workspace with pagination\n- Get detailed information about specific projects\n\n### Issue Management\n- Create new issues with customizable properties\n- List and filter issues from projects\n- Get detailed information about specific issues\n- Update existing issues with new information\n\n### State Management\n- List all states in a project\n- Get detailed information about specific states\n- Create new states with customizable properties\n- Update existing states\n- Delete states from projects\n\n### Module (Sprint) Management\n- List all modules (sprints) in a project\n- Get detailed information about specific modules\n- Create new modules with customizable properties\n- Update existing modules\n- Delete modules from projects\n- List issues assigned to specific modules\n- Add/remove issues to/from modules\n\n### Cycle Management\n- List all cycles in a project\n- Get detailed information about specific cycles\n- Create new cycles with customizable properties\n- Update existing cycles\n- Delete cycles from projects\n- List issues assigned to specific cycles\n- Add/remove issues to/from cycles\n\n### Label Management\n- List all labels in a project\n- Get detailed information about specific labels\n- Create new labels with customizable properties\n- Update existing labels\n- Delete labels from projects\n\n### Team & Workspace Management\n- List all members in the workspace\n- List members assigned to specific projects\n\n### Issue Comments & Communication\n- List, create, update, and delete comments on issues\n- Track discussion history and collaboration\n\n### Issue Links & External References\n- Attach external links to issues (documentation, PRs, etc.)\n- Manage and update issue-related URLs\n\n### File Attachments\n- List file attachments for issues\n- Generate upload URLs for new attachments\n\n### Issue Activity & History\n- View complete activity history for issues\n- Track all changes and updates\n\n### Time Tracking (Worklogs)\n- Log time spent on specific issues\n- View project-wide time tracking summaries\n- Update and manage worklog entries\n\n### Custom Issue Types\n- Create and manage custom issue types\n- Define project-specific issue categories\n\n### Intake Issues (Triage)\n- Handle intake/inbox issues for triage\n- Manage issue submissions before project assignment\n\n### Custom Issue Properties\n- Create and manage custom properties for issue types\n- Support for various property types (text, number, date, options, boolean)\n- Configure dropdown options for select properties\n- Set required fields and validation rules\n\n### Sub-issues & Relations\n- Create hierarchical issue structures with parent-child relationships\n- Convert existing issues to sub-issues\n- List and manage sub-issue trees\n- Convert sub-issues back to regular issues\n\n### Issue Transfer Operations\n- Transfer issues between cycles for better sprint management\n- Bulk move issues to different project phases\n\n## Prerequisites\n\n- Node.js 22.x or higher\n- A Plane.so API key\n- A Plane.so workspace\n\n## Installation\n\n### Option 1: Using NPM (Recommended)\n\nThe quickest way to get started is to use the published npm package:\n\n```json\n{\n  \"mcpServers\": {\n    \"plane\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"@disrex/plane-mcp-server\"\n      ],\n      \"env\": {\n        \"PLANE_API_KEY\": \"your_plane_api_key_here\",\n        \"PLANE_WORKSPACE_SLUG\": \"your_workspace_slug_here\"\n      }\n    }\n  }\n}\n```\n\nAdd this configuration to your Claude for Desktop config file:\n- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`\n- **Windows**: `%APPDATA%\\Claude\\claude_desktop_config.json`\n\n### Option 2: Manual Setup\n\nIf you prefer to set up the server manually, follow these steps:\n\n1. Clone this repository:\n\n```bash\ngit clone https://github.com/disrex-group/plane-mcp-server.git\ncd plane-mcp-server\n```\n\n2. Install dependencies:\n\n```bash\nnpm install\n```\n\n3. Build the server:\n\n```bash\nnpm run build\n```\n\n## Getting Your Plane API Credentials\n\nTo use this MCP server, you'll need:\n\n1. **Plane API Key**: Generate one from your **personal settings** (not workspace settings) in Plane\n2. **Workspace Slug**: Found in your Plane workspace URL (e.g., `https://app.plane.so/workspace-slug/`)\n\nAfter obtaining these credentials, use them in your Claude configuration as shown in the installation options above.\n\n## Available Tools\n\n> **Note:** Tool names use hyphens (e.g., `list-projects`), not underscores. The server will automatically convert underscores to hyphens for compatibility.\n\n### list-projects\n\nLists all projects in your Plane workspace with pagination support.\n\nParameters:\n- `per_page` (optional): Number of items per page (default: 100, max: 100)\n- `cursor` (optional): Pagination cursor in format 'value:offset:is_prev'\n\nExample:\n\n```json\n{\n  \"per_page\": 50\n}\n```\n\nExample with pagination:\n```json\n{\n  \"per_page\": 25,\n  \"cursor\": \"project_name:25:false\"\n}\n```\n\n### get-project\n\nGets detailed information about a specific project.\n\nParameters:\n\n- `project_id`: ID of the project to retrieve\n\nExample:\n\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\"\n}\n```\n\n### create-issue\n\nCreates a new issue in a specified project.\n\nParameters:\n\n- `project_id`: ID of the project where the issue should be created\n- `name`: Title of the issue\n- `description_html`: HTML description of the issue (required by Plane API)\n- `priority` (optional): Priority of the issue (\"urgent\", \"high\", \"medium\", \"low\", \"none\")\n- `state_id` (optional): ID of the state for this issue\n- `assignees` (optional): Array of user IDs to assign to this issue\n- `labels` (optional): Array of label IDs to assign to this issue\n\n> **Note:** The `assignees` and `labels` parameters must be arrays of ID strings. Common errors include providing a dictionary/object instead of an array, or accidentally nesting the entire issue data inside these fields. The server will attempt to handle these cases, but it's best to use the correct format.\n\nExample:\n\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"name\": \"Implement new feature\",\n  \"description_html\": \"<p>We need to implement the new reporting feature</p>\",\n  \"priority\": \"high\",\n  \"assignees\": [\"user-id-1\", \"user-id-2\"],\n  \"labels\": [\"446cf3ad-446e-4b7a-8706-14121a0338d7\", \"ab0c39d4-dcae-4ccd-971a-f4c66d1e7db7\"]\n}\n```\n\n### list-issues\n\nLists issues from a specified project with optional filtering and pagination.\n\nParameters:\n\n- `project_id`: ID of the project to get issues from\n- `state_id` (optional): Filter by state ID\n- `priority` (optional): Filter by priority\n- `assignee_id` (optional): Filter by assignee ID\n- `per_page` (optional): Number of items per page (default: 100, max: 100)\n- `cursor` (optional): Pagination cursor in format 'value:offset:is_prev'\n\nExamples:\n\nBasic filtering:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"priority\": \"high\",\n  \"per_page\": 20\n}\n```\n\nWith pagination (first page):\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"per_page\": 20\n}\n```\n\nWith pagination (next page using cursor from previous response):\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"per_page\": 20,\n  \"cursor\": \"20:1:0\"\n}\n```\n\n### get-issue\n\nGets detailed information about a specific issue.\n\nParameters:\n\n- `project_id`: ID of the project containing the issue\n- `issue_id`: ID of the issue to retrieve\n\nExample:\n\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"issue_id\": \"01def456-7890-12gh-3456-789ijklmnopq\"\n}\n```\n\n### update-issue\n\nUpdates an existing issue in a project.\n\nParameters:\n\n- `project_id`: ID of the project containing the issue\n- `issue_id`: ID of the issue to update\n- `name` (optional): Updated title of the issue\n- `description_html` (optional): HTML description of the issue (required by Plane API)\n- `priority` (optional): Updated priority of the issue\n- `state_id` (optional): Updated state ID of the issue\n- `assignees` (optional): Updated array of user IDs to assign to this issue\n- `labels` (optional): Updated array of label IDs to assign to this issue\n\n> **Note:** The `assignees` and `labels` parameters must be arrays of ID strings, following the same format guidelines as the create-issue tool.\n\nExample:\n\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"issue_id\": \"01def456-7890-12gh-3456-789ijklmnopq\",\n  \"priority\": \"urgent\",\n  \"description_html\": \"<p>Updated description with <strong>more details</strong></p>\",\n  \"labels\": [\"446cf3ad-446e-4b7a-8706-14121a0338d7\", \"7de2b3d1-ae1a-4651-a3df-717629d70c1a\"]\n}\n```\n\n### State Management Tools\n\n#### list-states\n\nLists all states in a project.\n\nParameters:\n- `project_id`: ID of the project to get states from\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\"\n}\n```\n\n#### get-state\n\nGets detailed information about a specific state.\n\nParameters:\n- `project_id`: ID of the project containing the state\n- `state_id`: ID of the state to retrieve\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"state_id\": \"01def456-7890-12gh-3456-789ijklmnopq\"\n}\n```\n\n#### create-state\n\nCreates a new state in a project.\n\nParameters:\n- `project_id`: ID of the project where the state should be created\n- `name`: Name of the state\n- `group`: State group (\"unstarted\", \"started\", \"completed\", \"cancelled\")\n- `description` (optional): Description of the state\n- `color` (optional): Color code for the state (e.g., \"#ff0000\")\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"name\": \"In Review\",\n  \"group\": \"started\",\n  \"description\": \"Issues currently under review\",\n  \"color\": \"#ffaa00\"\n}\n```\n\n#### update-state\n\nUpdates an existing state in a project.\n\nParameters:\n- `project_id`: ID of the project containing the state\n- `state_id`: ID of the state to update\n- `name` (optional): Updated name of the state\n- `description` (optional): Updated description of the state\n- `color` (optional): Updated color code for the state\n- `group` (optional): Updated state group\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"state_id\": \"01def456-7890-12gh-3456-789ijklmnopq\",\n  \"name\": \"Code Review\",\n  \"color\": \"#00ff00\"\n}\n```\n\n#### delete-state\n\nDeletes a state from a project.\n\nParameters:\n- `project_id`: ID of the project containing the state\n- `state_id`: ID of the state to delete\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"state_id\": \"01def456-7890-12gh-3456-789ijklmnopq\"\n}\n```\n\n### Module (Sprint) Management Tools\n\n#### list-modules\n\nLists all modules (sprints) in a project with pagination support.\n\nParameters:\n- `project_id`: ID of the project to get modules from\n- `per_page` (optional): Number of items per page (default: 100, max: 100)\n- `cursor` (optional): Pagination cursor in format 'value:offset:is_prev'\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"per_page\": 50\n}\n```\n\nExample with pagination:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"per_page\": 25,\n  \"cursor\": \"module_name:25:false\"\n}\n```\n\n#### get-module\n\nGets detailed information about a specific module.\n\nParameters:\n- `project_id`: ID of the project containing the module\n- `module_id`: ID of the module to retrieve\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"module_id\": \"01def456-7890-12gh-3456-789ijklmnopq\"\n}\n```\n\n#### create-module\n\nCreates a new module (sprint) in a project.\n\nParameters:\n- `project_id`: ID of the project where the module should be created\n- `name`: Name of the module\n- `description` (optional): Description of the module\n- `start_date` (optional): Start date of the module (YYYY-MM-DD format)\n- `target_date` (optional): Target end date of the module (YYYY-MM-DD format)\n- `status` (optional): Status of the module (\"planned\", \"in-progress\", \"paused\", \"completed\", \"cancelled\")\n- `lead` (optional): User ID of the module lead\n- `members` (optional): Array of user IDs to assign as module members\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"name\": \"Sprint 1 - Core Features\",\n  \"description\": \"Initial sprint focusing on core functionality\",\n  \"start_date\": \"2024-01-01\",\n  \"target_date\": \"2024-01-14\",\n  \"status\": \"planned\",\n  \"lead\": \"user-id-1\",\n  \"members\": [\"user-id-1\", \"user-id-2\"]\n}\n```\n\n#### update-module\n\nUpdates an existing module in a project.\n\nParameters:\n- `project_id`: ID of the project containing the module\n- `module_id`: ID of the module to update\n- `name` (optional): Updated name of the module\n- `description` (optional): Updated description of the module\n- `start_date` (optional): Updated start date of the module\n- `target_date` (optional): Updated target end date of the module\n- `status` (optional): Updated status of the module\n- `lead` (optional): Updated user ID of the module lead\n- `members` (optional): Updated array of user IDs for module members\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"module_id\": \"01def456-7890-12gh-3456-789ijklmnopq\",\n  \"status\": \"in-progress\",\n  \"target_date\": \"2024-01-21\"\n}\n```\n\n#### delete-module\n\nDeletes a module from a project.\n\nParameters:\n- `project_id`: ID of the project containing the module\n- `module_id`: ID of the module to delete\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"module_id\": \"01def456-7890-12gh-3456-789ijklmnopq\"\n}\n```\n\n#### list-module-issues\n\nLists all issues in a specific module.\n\nParameters:\n- `project_id`: ID of the project containing the module\n- `module_id`: ID of the module to get issues from\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"module_id\": \"01def456-7890-12gh-3456-789ijklmnopq\"\n}\n```\n\n#### add-issues-to-module\n\nAdds issues to a module.\n\nParameters:\n- `project_id`: ID of the project containing the module\n- `module_id`: ID of the module to add issues to\n- `issues`: Array of issue IDs to add to the module\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"module_id\": \"01def456-7890-12gh-3456-789ijklmnopq\",\n  \"issues\": [\"issue-id-1\", \"issue-id-2\", \"issue-id-3\"]\n}\n```\n\n#### remove-issue-from-module\n\nRemoves an issue from a module.\n\nParameters:\n- `project_id`: ID of the project containing the module\n- `module_id`: ID of the module to remove issue from\n- `issue_id`: ID of the issue to remove from the module\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"module_id\": \"01def456-7890-12gh-3456-789ijklmnopq\",\n  \"issue_id\": \"01ghi789-0123-45jk-6789-lmnopqrstuvw\"\n}\n```\n\n### Cycle Management Tools\n\n#### list-cycles\n\nLists all cycles in a project with pagination support.\n\nParameters:\n- `project_id`: ID of the project to get cycles from\n- `per_page` (optional): Number of items per page (default: 100, max: 100)\n- `cursor` (optional): Pagination cursor in format 'value:offset:is_prev'\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"per_page\": 50\n}\n```\n\nExample with pagination:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"per_page\": 25,\n  \"cursor\": \"cycle_name:25:false\"\n}\n```\n\n#### get-cycle\n\nGets detailed information about a specific cycle.\n\nParameters:\n- `project_id`: ID of the project containing the cycle\n- `cycle_id`: ID of the cycle to retrieve\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"cycle_id\": \"01def456-7890-12gh-3456-789ijklmnopq\"\n}\n```\n\n#### create-cycle\n\nCreates a new cycle in a project.\n\nParameters:\n- `project_id`: ID of the project where the cycle should be created\n- `name`: Name of the cycle\n- `owned_by`: ID of the user who will own this cycle\n- `description` (optional): Description of the cycle\n- `start_date` (optional): Start date of the cycle (YYYY-MM-DD format)\n- `end_date` (optional): End date of the cycle (YYYY-MM-DD format)\n\nExample:\n```json\n{\n  \"project_id\": \"12345678-1234-5678-9abc-123456789def\",\n  \"name\": \"Q1 2024 Development Cycle\",\n  \"owned_by\": \"87654321-4321-8765-cba9-987654321fed\",\n  \"description\": \"First quarter development cycle\",\n  \"start_date\": \"2024-01-01\",\n  \"end_date\": \"2024-03-31\"\n}\n```\n\n#### update-cycle\n\nUpdates an existing cycle in a project.\n\nParameters:\n- `project_id`: ID of the project containing the cycle\n- `cycle_id`: ID of the cycle to update\n- `name` (optional): Updated name of the cycle\n- `description` (optional): Updated description of the cycle\n- `start_date` (optional): Updated start date of the cycle (YYYY-MM-DD format)\n- `end_date` (optional): Updated end date of the cycle (YYYY-MM-DD format)\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"cycle_id\": \"01def456-7890-12gh-3456-789ijklmnopq\",\n  \"name\": \"Q1 2024 Development Cycle - Updated\",\n  \"end_date\": \"2024-04-15\"\n}\n```\n\n#### delete-cycle\n\nDeletes a cycle from a project.\n\nParameters:\n- `project_id`: ID of the project containing the cycle\n- `cycle_id`: ID of the cycle to delete\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"cycle_id\": \"01def456-7890-12gh-3456-789ijklmnopq\"\n}\n```\n\n#### list-cycle-issues\n\nLists all issues in a specific cycle.\n\nParameters:\n- `project_id`: ID of the project containing the cycle\n- `cycle_id`: ID of the cycle to get issues from\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"cycle_id\": \"01def456-7890-12gh-3456-789ijklmnopq\"\n}\n```\n\n#### add-issues-to-cycle\n\nAdds issues to a cycle.\n\nParameters:\n- `project_id`: ID of the project containing the cycle\n- `cycle_id`: ID of the cycle to add issues to\n- `issues`: Array of issue IDs to add to the cycle\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"cycle_id\": \"01def456-7890-12gh-3456-789ijklmnopq\",\n  \"issues\": [\"issue-id-1\", \"issue-id-2\", \"issue-id-3\"]\n}\n```\n\n#### remove-issue-from-cycle\n\nRemoves an issue from a cycle.\n\nParameters:\n- `project_id`: ID of the project containing the cycle\n- `cycle_id`: ID of the cycle to remove issue from\n- `issue_id`: ID of the issue to remove from the cycle\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"cycle_id\": \"01def456-7890-12gh-3456-789ijklmnopq\",\n  \"issue_id\": \"01ghi789-0123-45jk-6789-lmnopqrstuvw\"\n}\n```\n\n### Label Management Tools\n\n#### list-labels\n\nLists all labels in a project with pagination support.\n\nParameters:\n- `project_id`: ID of the project to get labels from\n- `per_page` (optional): Number of items per page (default: 100, max: 100)\n- `cursor` (optional): Pagination cursor in format 'value:offset:is_prev'\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"per_page\": 50\n}\n```\n\nExample with pagination:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"per_page\": 25,\n  \"cursor\": \"label_name:25:false\"\n}\n```\n\n#### get-label\n\nGets detailed information about a specific label.\n\nParameters:\n- `project_id`: ID of the project containing the label\n- `label_id`: ID of the label to retrieve\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"label_id\": \"01def456-7890-12gh-3456-789ijklmnopq\"\n}\n```\n\n#### create-label\n\nCreates a new label in a project.\n\nParameters:\n- `project_id`: ID of the project where the label should be created\n- `name`: Name of the label\n- `description` (optional): Description of the label\n- `color` (optional): Color code for the label (e.g., \"#ff0000\")\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"name\": \"Bug\",\n  \"description\": \"Issues related to bugs\",\n  \"color\": \"#ff0000\"\n}\n```\n\n#### update-label\n\nUpdates an existing label in a project.\n\nParameters:\n- `project_id`: ID of the project containing the label\n- `label_id`: ID of the label to update\n- `name` (optional): Updated name of the label\n- `description` (optional): Updated description of the label\n- `color` (optional): Updated color code for the label (e.g., \"#ff0000\")\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"label_id\": \"01def456-7890-12gh-3456-789ijklmnopq\",\n  \"name\": \"Critical Bug\",\n  \"color\": \"#ff0000\",\n  \"description\": \"Issues that require immediate attention\"\n}\n```\n\n#### delete-label\n\nDeletes a label from a project.\n\nParameters:\n- `project_id`: ID of the project containing the label\n- `label_id`: ID of the label to delete\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"label_id\": \"01def456-7890-12gh-3456-789ijklmnopq\"\n}\n```\n\n### Team & Workspace Management Tools\n\n#### list-workspace-members\n\nLists all members in the workspace.\n\nParameters: None\n\nExample:\n```json\n{}\n```\n\n#### list-project-members\n\nLists all members in a specific project.\n\nParameters:\n- `project_id`: ID of the project to get members from\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\"\n}\n```\n\n### Issue Comments Tools\n\n#### list-issue-comments\n\nLists all comments on a specific issue.\n\nParameters:\n- `project_id`: ID of the project containing the issue\n- `issue_id`: ID of the issue to get comments from\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"issue_id\": \"01def456-7890-12gh-3456-789ijklmnopq\"\n}\n```\n\n#### get-issue-comment\n\nGets detailed information about a specific comment.\n\nParameters:\n- `project_id`: ID of the project containing the issue\n- `issue_id`: ID of the issue containing the comment\n- `comment_id`: ID of the comment to retrieve\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"issue_id\": \"01def456-7890-12gh-3456-789ijklmnopq\",\n  \"comment_id\": \"01ghi789-0123-45jk-6789-lmnopqrstuvw\"\n}\n```\n\n#### create-issue-comment\n\nCreates a new comment on an issue.\n\nParameters:\n- `project_id`: ID of the project containing the issue\n- `issue_id`: ID of the issue to comment on\n- `comment`: The comment text\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"issue_id\": \"01def456-7890-12gh-3456-789ijklmnopq\",\n  \"comment\": \"This looks good, but we need to add unit tests before merging.\"\n}\n```\n\n#### update-issue-comment\n\nUpdates an existing comment on an issue.\n\nParameters:\n- `project_id`: ID of the project containing the issue\n- `issue_id`: ID of the issue containing the comment\n- `comment_id`: ID of the comment to update\n- `comment`: The updated comment text\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"issue_id\": \"01def456-7890-12gh-3456-789ijklmnopq\",\n  \"comment_id\": \"01ghi789-0123-45jk-6789-lmnopqrstuvw\",\n  \"comment\": \"Updated: This looks good after the latest changes, ready to merge.\"\n}\n```\n\n#### delete-issue-comment\n\nDeletes a comment from an issue.\n\nParameters:\n- `project_id`: ID of the project containing the issue\n- `issue_id`: ID of the issue containing the comment\n- `comment_id`: ID of the comment to delete\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"issue_id\": \"01def456-7890-12gh-3456-789ijklmnopq\",\n  \"comment_id\": \"01ghi789-0123-45jk-6789-lmnopqrstuvw\"\n}\n```\n\n### Issue Links Tools\n\n#### list-issue-links\n\nLists all external links attached to an issue.\n\nParameters:\n- `project_id`: ID of the project containing the issue\n- `issue_id`: ID of the issue to get links from\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"issue_id\": \"01def456-7890-12gh-3456-789ijklmnopq\"\n}\n```\n\n#### get-issue-link\n\nGets detailed information about a specific issue link.\n\nParameters:\n- `project_id`: ID of the project containing the issue\n- `issue_id`: ID of the issue containing the link\n- `link_id`: ID of the link to retrieve\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"issue_id\": \"01def456-7890-12gh-3456-789ijklmnopq\",\n  \"link_id\": \"01ghi789-0123-45jk-6789-lmnopqrstuvw\"\n}\n```\n\n#### create-issue-link\n\nCreates a new external link for an issue.\n\nParameters:\n- `project_id`: ID of the project containing the issue\n- `issue_id`: ID of the issue to add link to\n- `title`: Title/name for the link\n- `url`: The URL to link to\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"issue_id\": \"01def456-7890-12gh-3456-789ijklmnopq\",\n  \"title\": \"Related Pull Request\",\n  \"url\": \"https://github.com/company/repo/pull/123\"\n}\n```\n\n#### update-issue-link\n\nUpdates an existing issue link.\n\nParameters:\n- `project_id`: ID of the project containing the issue\n- `issue_id`: ID of the issue containing the link\n- `link_id`: ID of the link to update\n- `title` (optional): Updated title/name for the link\n- `url` (optional): Updated URL\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"issue_id\": \"01def456-7890-12gh-3456-789ijklmnopq\",\n  \"link_id\": \"01ghi789-0123-45jk-6789-lmnopqrstuvw\",\n  \"title\": \"Updated Documentation Link\",\n  \"url\": \"https://docs.example.com/updated-section\"\n}\n```\n\n#### delete-issue-link\n\nDeletes an external link from an issue.\n\nParameters:\n- `project_id`: ID of the project containing the issue\n- `issue_id`: ID of the issue containing the link\n- `link_id`: ID of the link to delete\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"issue_id\": \"01def456-7890-12gh-3456-789ijklmnopq\",\n  \"link_id\": \"01ghi789-0123-45jk-6789-lmnopqrstuvw\"\n}\n```\n\n### Issue Attachments Tools\n\n#### list-issue-attachments\n\nLists all file attachments for an issue.\n\nParameters:\n- `project_id`: ID of the project containing the issue\n- `issue_id`: ID of the issue to get attachments from\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"issue_id\": \"01def456-7890-12gh-3456-789ijklmnopq\"\n}\n```\n\n#### get-issue-attachment-upload-url\n\nGets a pre-signed URL for uploading file attachments to an issue.\n\nParameters:\n- `project_id`: ID of the project containing the issue\n- `issue_id`: ID of the issue to attach file to\n- `file_name`: Name of the file to upload\n- `file_size`: Size of the file in bytes\n- `content_type`: MIME type of the file (e.g., 'image/png', 'application/pdf')\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"issue_id\": \"01def456-7890-12gh-3456-789ijklmnopq\",\n  \"file_name\": \"screenshot.png\",\n  \"file_size\": 1024000,\n  \"content_type\": \"image/png\"\n}\n```\n\n### Issue Activities Tools\n\n#### list-issue-activities\n\nLists all activities/history for an issue.\n\nParameters:\n- `project_id`: ID of the project containing the issue\n- `issue_id`: ID of the issue to get activities from\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"issue_id\": \"01def456-7890-12gh-3456-789ijklmnopq\"\n}\n```\n\n#### get-issue-activity\n\nGets detailed information about a specific issue activity.\n\nParameters:\n- `project_id`: ID of the project containing the issue\n- `issue_id`: ID of the issue containing the activity\n- `activity_id`: ID of the activity to retrieve\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"issue_id\": \"01def456-7890-12gh-3456-789ijklmnopq\",\n  \"activity_id\": \"01ghi789-0123-45jk-6789-lmnopqrstuvw\"\n}\n```\n\n### Worklogs (Time Tracking) Tools\n\n#### list-issue-worklogs\n\nLists all time logs for a specific issue.\n\nParameters:\n- `project_id`: ID of the project containing the issue\n- `issue_id`: ID of the issue to get worklogs from\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"issue_id\": \"01def456-7890-12gh-3456-789ijklmnopq\"\n}\n```\n\n#### get-project-total-worklogs\n\nGets total time logged across all issues in a project.\n\nParameters:\n- `project_id`: ID of the project to get total worklogs from\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\"\n}\n```\n\n#### create-issue-worklog\n\nCreates a new time log entry for an issue.\n\nParameters:\n- `project_id`: ID of the project containing the issue\n- `issue_id`: ID of the issue to log time for\n- `duration`: Time logged in hours (e.g., 2.5 for 2 hours 30 minutes)\n- `description` (optional): Description of the work done\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"issue_id\": \"01def456-7890-12gh-3456-789ijklmnopq\",\n  \"duration\": 3.5,\n  \"description\": \"Fixed the authentication bug and added unit tests\"\n}\n```\n\n#### update-issue-worklog\n\nUpdates an existing worklog entry.\n\nParameters:\n- `project_id`: ID of the project containing the issue\n- `issue_id`: ID of the issue containing the worklog\n- `worklog_id`: ID of the worklog to update\n- `duration` (optional): Updated time logged in hours\n- `description` (optional): Updated description of the work done\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"issue_id\": \"01def456-7890-12gh-3456-789ijklmnopq\",\n  \"worklog_id\": \"01ghi789-0123-45jk-6789-lmnopqrstuvw\",\n  \"duration\": 4.0,\n  \"description\": \"Fixed critical bug and updated documentation\"\n}\n```\n\n#### delete-issue-worklog\n\nDeletes a worklog entry from an issue.\n\nParameters:\n- `project_id`: ID of the project containing the issue\n- `issue_id`: ID of the issue containing the worklog\n- `worklog_id`: ID of the worklog to delete\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"issue_id\": \"01def456-7890-12gh-3456-789ijklmnopq\",\n  \"worklog_id\": \"01ghi789-0123-45jk-6789-lmnopqrstuvw\"\n}\n```\n\n### Issue Types Tools\n\n#### list-issue-types\n\nLists all custom issue types in a project.\n\nParameters:\n- `project_id`: ID of the project to get issue types from\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\"\n}\n```\n\n#### get-issue-type\n\nGets detailed information about a specific issue type.\n\nParameters:\n- `project_id`: ID of the project containing the issue type\n- `type_id`: ID of the issue type to retrieve\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"type_id\": \"01def456-7890-12gh-3456-789ijklmnopq\"\n}\n```\n\n#### create-issue-type\n\nCreates a new custom issue type in a project.\n\nParameters:\n- `project_id`: ID of the project to create issue type in\n- `name`: Name of the issue type\n- `description` (optional): Description of the issue type\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"name\": \"Epic\",\n  \"description\": \"Large feature that spans multiple sprints\"\n}\n```\n\n#### update-issue-type\n\nUpdates an existing issue type.\n\nParameters:\n- `project_id`: ID of the project containing the issue type\n- `type_id`: ID of the issue type to update\n- `name` (optional): Updated name of the issue type\n- `description` (optional): Updated description\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"type_id\": \"01def456-7890-12gh-3456-789ijklmnopq\",\n  \"name\": \"Major Epic\",\n  \"description\": \"Large feature spanning multiple quarters\"\n}\n```\n\n#### delete-issue-type\n\nDeletes an issue type from a project.\n\nParameters:\n- `project_id`: ID of the project containing the issue type\n- `type_id`: ID of the issue type to delete\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"type_id\": \"01def456-7890-12gh-3456-789ijklmnopq\"\n}\n```\n\n### Intake Issues Tools\n\n#### list-intake-issues\n\nLists all intake/inbox issues in a project.\n\nParameters:\n- `project_id`: ID of the project to get intake issues from\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\"\n}\n```\n\n#### get-intake-issue\n\nGets detailed information about a specific intake issue.\n\nParameters:\n- `project_id`: ID of the project containing the intake issue\n- `issue_id`: ID of the intake issue to retrieve\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"issue_id\": \"01def456-7890-12gh-3456-789ijklmnopq\"\n}\n```\n\n#### create-intake-issue\n\nCreates a new intake/inbox issue.\n\nParameters:\n- `project_id`: ID of the project to create intake issue in\n- `name`: Title of the intake issue\n- `description_html` (optional): HTML description of the issue\n- `priority` (optional): Priority of the issue (\"urgent\", \"high\", \"medium\", \"low\", \"none\")\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"name\": \"User reports login issues on mobile app\",\n  \"description_html\": \"<p>Multiple users experiencing login failures on iOS app version 2.1.3</p>\",\n  \"priority\": \"high\"\n}\n```\n\n#### update-intake-issue\n\nUpdates an existing intake issue.\n\nParameters:\n- `project_id`: ID of the project containing the intake issue\n- `issue_id`: ID of the intake issue to update\n- `name` (optional): Updated title\n- `description_html` (optional): Updated HTML description\n- `priority` (optional): Updated priority\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"issue_id\": \"01def456-7890-12gh-3456-789ijklmnopq\",\n  \"name\": \"Updated: Multiple users experiencing login issues on mobile app\",\n  \"priority\": \"urgent\",\n  \"description_html\": \"<p>Updated: Now affecting Android users as well as iOS. Version 2.1.3 and 2.1.4</p>\"\n}\n```\n\n#### delete-intake-issue\n\nDeletes an intake issue.\n\nParameters:\n- `project_id`: ID of the project containing the intake issue\n- `issue_id`: ID of the intake issue to delete\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"issue_id\": \"01def456-7890-12gh-3456-789ijklmnopq\"\n}\n```\n\n### list-issue-properties\n\nLists all custom properties for a specific issue type.\n\nParameters:\n- `project_id`: ID of the project\n- `type_id`: ID of the issue type to get properties for\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"type_id\": \"01def456-7890-12gh-3456-789ijklmnopq\"\n}\n```\n\n### get-issue-property\n\nGets details of a specific issue property.\n\nParameters:\n- `project_id`: ID of the project\n- `type_id`: ID of the issue type\n- `property_id`: ID of the property to retrieve\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"type_id\": \"01def456-7890-12gh-3456-789ijklmnopq\",\n  \"property_id\": \"01ghi789-0123-45jk-6789-lmnopqrstuvw\"\n}\n```\n\n### create-issue-property\n\nCreates a new custom property for an issue type.\n\nParameters:\n- `project_id`: ID of the project\n- `type_id`: ID of the issue type\n- `name`: Internal name for the property\n- `display_name`: Display name for the property\n- `property_type`: Type of property (TEXT, NUMBER, DATE, OPTION, MULTI_OPTION, BOOLEAN)\n- `description`: Description of the property (optional)\n- `is_required`: Whether this property is required (optional)\n- `is_multi`: Whether multiple values are allowed (optional)\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"type_id\": \"01def456-7890-12gh-3456-789ijklmnopq\",\n  \"name\": \"severity\",\n  \"display_name\": \"Bug Severity\",\n  \"property_type\": \"OPTION\",\n  \"description\": \"Severity level of the bug\",\n  \"is_required\": true,\n  \"is_multi\": false\n}\n```\n\n### update-issue-property\n\nUpdates an existing issue property.\n\nParameters:\n- `project_id`: ID of the project\n- `type_id`: ID of the issue type\n- `property_id`: ID of the property to update\n- `name`: Internal name for the property (optional)\n- `display_name`: Display name for the property (optional)\n- `description`: Description of the property (optional)\n- `is_required`: Whether this property is required (optional)\n- `is_multi`: Whether multiple values are allowed (optional)\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"type_id\": \"01def456-7890-12gh-3456-789ijklmnopq\",\n  \"property_id\": \"01ghi789-0123-45jk-6789-lmnopqrstuvw\",\n  \"display_name\": \"Bug Severity Level\",\n  \"description\": \"Updated severity level description\"\n}\n```\n\n### delete-issue-property\n\nDeletes an issue property.\n\nParameters:\n- `project_id`: ID of the project\n- `type_id`: ID of the issue type\n- `property_id`: ID of the property to delete\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"type_id\": \"01def456-7890-12gh-3456-789ijklmnopq\",\n  \"property_id\": \"01ghi789-0123-45jk-6789-lmnopqrstuvw\"\n}\n```\n\n### list-issue-property-options\n\nLists all options for a dropdown/select issue property.\n\nParameters:\n- `project_id`: ID of the project\n- `property_id`: ID of the property to get options for\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"property_id\": \"01ghi789-0123-45jk-6789-lmnopqrstuvw\"\n}\n```\n\n### create-issue-property-option\n\nCreates a new option for a dropdown/select issue property.\n\nParameters:\n- `project_id`: ID of the project\n- `property_id`: ID of the property to add option to\n- `name`: Name of the option\n- `description`: Description of the option (optional)\n- `sort_order`: Sort order for the option (optional)\n- `is_default`: Whether this is the default option (optional)\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"property_id\": \"01ghi789-0123-45jk-6789-lmnopqrstuvw\",\n  \"name\": \"Critical\",\n  \"description\": \"Critical severity level\",\n  \"sort_order\": 1,\n  \"is_default\": false\n}\n```\n\n### update-issue-property-option\n\nUpdates an option for a dropdown/select issue property.\n\nParameters:\n- `project_id`: ID of the project\n- `property_id`: ID of the property\n- `option_id`: ID of the option to update\n- `name`: Name of the option (optional)\n- `description`: Description of the option (optional)\n- `sort_order`: Sort order for the option (optional)\n- `is_default`: Whether this is the default option (optional)\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"property_id\": \"01ghi789-0123-45jk-6789-lmnopqrstuvw\",\n  \"option_id\": \"01jkl012-3456-78mn-9012-opqrstuvwxyz\",\n  \"name\": \"High Priority\",\n  \"description\": \"High priority severity level\"\n}\n```\n\n### list-sub-issues\n\nLists all sub-issues of a parent issue.\n\nParameters:\n- `project_id`: ID of the project\n- `parent_issue_id`: ID of the parent issue to get sub-issues for\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"parent_issue_id\": \"01def456-7890-12gh-3456-789ijklmnopq\"\n}\n```\n\n### create-sub-issue\n\nCreates a new sub-issue under a parent issue.\n\nParameters:\n- `project_id`: ID of the project\n- `parent_issue_id`: ID of the parent issue\n- `name`: Title of the sub-issue\n- `description_html`: HTML description of the sub-issue (optional)\n- `priority`: Priority of the sub-issue (urgent, high, medium, low, none) (optional)\n- `state_id`: ID of the state for this sub-issue (optional)\n- `assignees`: Array of user IDs to assign to this sub-issue (optional)\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"parent_issue_id\": \"01def456-7890-12gh-3456-789ijklmnopq\",\n  \"name\": \"Fix validation bug\",\n  \"description_html\": \"<p>Fix the email validation issue in the login form</p>\",\n  \"priority\": \"high\"\n}\n```\n\n### convert-to-sub-issue\n\nConverts an existing issue to a sub-issue of another issue.\n\nParameters:\n- `project_id`: ID of the project\n- `issue_id`: ID of the issue to convert to sub-issue\n- `parent_issue_id`: ID of the parent issue\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"issue_id\": \"01ghi789-0123-45jk-6789-lmnopqrstuvw\",\n  \"parent_issue_id\": \"01def456-7890-12gh-3456-789ijklmnopq\"\n}\n```\n\n### convert-to-issue\n\nConverts a sub-issue back to a regular issue (removes parent relationship).\n\nParameters:\n- `project_id`: ID of the project\n- `issue_id`: ID of the sub-issue to convert to regular issue\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"issue_id\": \"01ghi789-0123-45jk-6789-lmnopqrstuvw\"\n}\n```\n\n### transfer-issues\n\nTransfers issues from one cycle to another.\n\nParameters:\n- `project_id`: ID of the project\n- `cycle_id`: ID of the source cycle to transfer issues from\n- `new_cycle_id`: ID of the target cycle to transfer issues to\n\nExample:\n```json\n{\n  \"project_id\": \"01abc123-4567-89de-0123-456789abcdef\",\n  \"cycle_id\": \"01def456-7890-12gh-3456-789ijklmnopq\",\n  \"new_cycle_id\": \"01ghi789-0123-45jk-6789-lmnopqrstuvw\"\n}\n```\n\n## Development\n\n1. Install development dependencies:\n\n```bash\nnpm install --save-dev typescript @types/node\n```\n\n2. Start the server in development mode:\n\n```bash\nnpm run dev\n```\n\n## Testing\n\nYou can test the server using the MCP Inspector:\n\n```bash\nnpx @modelcontextprotocol/inspector node dist/index.js\n```\n\n## Examples\n\nHere are some example interactions you can try with Claude after setting up the Plane MCP server:\n\n### Basic Project & Issue Management\n1. \"Can you list all the projects in my Plane workspace?\"\n2. \"Please create a new high-priority issue in the Marketing project titled 'Update social media strategy'\"\n3. \"What are all the high-priority issues in the Development project?\"\n4. \"Update issue #123 in the QA project to change its priority to urgent\"\n\n### Sprint/Module Management\n5. \"Create a new sprint called 'Q1 2024 Features' in the Development project with a 2-week duration\"\n6. \"Show me all the issues in the current sprint for the Backend project\"\n7. \"Add issues #456 and #789 to the 'API Development' module\"\n8. \"What sprints are currently active in the project?\"\n\n### Workflow & State Management\n9. \"List all the workflow states available in the Frontend project\"\n10. \"Create a new state called 'Code Review' for the Backend project\"\n11. \"Move issue #123 to the 'In Progress' state\"\n\n### Cycle & Planning Management\n12. \"Create a development cycle for Q1 2024 from January 1st to March 31st\"\n13. \"Show me all issues assigned to the current development cycle\"\n14. \"Add the high-priority issues to the 'Release Preparation' cycle\"\n\n### Label & Organization\n15. \"List all available labels in the project and create a new 'Security' label\"\n16. \"Apply the 'Bug' and 'High Priority' labels to issue #789\"\n\n### Team & Member Management\n17. \"Who are all the members in this workspace?\"\n18. \"Show me the team members assigned to the Backend project\"\n19. \"List all issues assigned to John in the current sprint\"\n\n### Advanced Workflows\n20. \"Create a new sprint, add 5 specific issues to it, and set it to start next Monday\"\n21. \"Show me all overdue issues across all projects and their current states\"\n22. \"Create a comprehensive project status report with issues, sprints, and team assignments\"\n\nClaude will use the appropriate tools to interact with Plane while asking for your approval before creating or modifying any data.\n\n## Security Considerations\n\n- The API key requires proper Plane permissions to function\n- All operations that modify data require explicit user approval\n- Environment variables should be properly secured\n- API keys should never be committed to version control\n\n## Contributing\n\n1. Fork the repository from [disrex-group/plane-mcp-server](https://github.com/disrex-group/plane-mcp-server)\n2. Create your feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add some amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n## Badges\n\nThis project uses several badges to provide quick information about status, quality, and compatibility:\n\n### Available Badges\n\n- **NPM Version**: Shows the latest published version on npm\n  ```markdown\n  [![npm version](https://badge.fury.io/js/@disrex%2Fplane-mcp-server.svg)](https://badge.fury.io/js/@disrex%2Fplane-mcp-server)\n  ```\n\n- **MCP Catalog Quality**: Quality score from the Archestra.ai MCP catalog\n  ```markdown\n  [![Quality](https://www.archestra.ai/mcp-catalog/api/badge/quality/disrex-group/plane-mcp-server)](https://www.archestra.ai/mcp-catalog/server/plane-mcp-server)\n  ```\n\n- **License**: MIT License badge\n  ```markdown\n  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n  ```\n\n- **CI Status**: GitHub Actions workflow status\n  ```markdown\n  [![Node.js CI](https://github.com/disrex-group/plane-mcp-server/actions/workflows/nodejs-ci.yml/badge.svg)](https://github.com/disrex-group/plane-mcp-server/actions/workflows/nodejs-ci.yml)\n  ```\n\n- **TypeScript**: Technology badge\n  ```markdown\n  [![TypeScript](https://img.shields.io/badge/%3C%2F%3E-TypeScript-%230074c1.svg)](https://www.typescriptlang.org/)\n  ```\n\n- **Plane.so Compatibility**: Custom compatibility badge\n  ```markdown\n  [![Plane.so](https://img.shields.io/badge/Plane.so-Compatible-blue)](https://plane.so)\n  ```\n\n- **MCP Protocol**: Model Context Protocol badge\n  ```markdown\n  [![MCP](https://img.shields.io/badge/MCP-Model%20Context%20Protocol-green)](https://modelcontextprotocol.io)\n  ```\n\n### Creating Custom Badges\n\nYou can create custom badges using [Shields.io](https://shields.io/):\n\n1. **Basic Format**: `https://img.shields.io/badge/{label}-{message}-{color}`\n2. **Dynamic Badges**: Use endpoints for live data (npm downloads, GitHub stars, etc.)\n3. **Style Options**: Add `?style=flat-square`, `?style=for-the-badge`, etc.\n\nExample custom badge:\n```markdown\n[![Custom Badge](https://img.shields.io/badge/Custom-Message-brightgreen)](https://your-link.com)\n```\n\n### Badge Services\n\n- **[Shields.io](https://shields.io/)**: The most comprehensive badge service\n- **[Badge Fury](https://badge.fury.io/)**: Specifically for package managers\n- **[Archestra.ai MCP Catalog](https://www.archestra.ai/mcp-catalog/)**: Quality badges for MCP servers\n- **GitHub Actions**: Automatic CI/CD status badges\n\n## License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n\n## Support\n\nIf you encounter any issues or have questions:\n\n1. Check the [GitHub Issues section](https://github.com/disrex-group/plane-mcp-server/issues)\n2. Consult the MCP documentation at [modelcontextprotocol.io](https://modelcontextprotocol.io)\n3. Open a new issue with detailed reproduction steps\n\n## Repository History\n\nThis enhanced fork builds upon the excellent foundation of the original [kelvin6365/plane-mcp-server](https://github.com/kelvin6365/plane-mcp-server), adding comprehensive project management capabilities.\n\n## Star History\n\n[![Star History Chart](https://api.star-history.com/svg?repos=disrex-group/plane-mcp-server&type=Date)](https://www.star-history.com/#disrex-group/plane-mcp-server&Date)\n","readmeFilename":"README.md"}