Plane
आधिकारिकप्लेन एमसीपी सर्वर प्लेन एपीआई के साथ एकीकरण प्रदान करता है, जो प्लेन प्रोजेक्ट्स, वर्क आइटम्स, साइकल्स और अधिक के पूर्ण एआई ऑटोमेशन को सक्षम बनाता है।
Plane MCP के साथ आप क्या कर सकते हैं?
- कार्य आइटम बनाएँ —
workitemक्रियाcreateके माध्यम से किसी प्रोजेक्ट में कार्य आइटम बनाएँ। - PQL के साथ कार्य आइटम क्वेरी करें —
workitemक्रियाओंlist/countका उपयोग करके PQL (जैसे, स्थिति, प्राथमिकता) द्वारा फ़िल्टर किए गए कार्य आइटम की सूची बनाएँ या गिनें। - PQL संदर्भ प्राप्त करें —
get_pql_referenceके माध्यम से पूर्ण PQL सिंटैक्स और ऑपरेटरों के लिए पूछें। - साइकिल संग्रहित करें —
cycleक्रियाarchiveका उपयोग करके एक साइकिल संग्रहित करें।
दस्तावेज़
Plane MCP Server
Model Context Protocol के लिए एक सर्वर Plane के लिए। AI एजेंट को प्रोजेक्ट, वर्क आइटम, साइकिल, मॉड्यूल, रिलीज़, ग्राहक और अधिक को पढ़ने और प्रबंधित करने के लिए उपकरण देता है।
FastMCP और आधिकारिक
plane-sdk पर बनाया गया।
- 28 उपकरण, प्रति Plane संसाधन एक, 183 ऑपरेशन कवर करते हुए
- स्थानीय या दूरस्थ — stdio, streamable HTTP, SSE
- OAuth या API key प्रमाणीकरण
त्वरित प्रारंभ
Plane से API key प्राप्त करें: Workspace Settings → API tokens।
इसे अपने MCP क्लाइंट की कॉन्फ़िगरेशन में जोड़ें:
{
"mcpServers": {
"plane": {
"command": "uvx",
"args": ["plane-mcp-server", "stdio"],
"env": {
"PLANE_API_KEY": "<your-api-key>",
"PLANE_WORKSPACE_SLUG": "<your-workspace-slug>"
}
}
}
}
uvx को किसी इंस्टॉल चरण की आवश्यकता नहीं है। Python 3.10+ आवश्यक है।
सेल्फ-होस्टेड Plane के लिए, "PLANE_BASE_URL": "https://plane.example.com" जोड़ें।
ट्रांसपोर्ट
stdio — स्थानीय
आपके MCP क्लाइंट के सबप्रोसेस के रूप में चलता है। कॉन्फ़िगरेशन ऊपर दिखाया गया है; PLANE_API_KEY और PLANE_WORKSPACE_SLUG आवश्यक हैं।
PLANE_API_KEY=... PLANE_WORKSPACE_SLUG=... uvx plane-mcp-server stdio
HTTP with OAuth — होस्टेड
https://mcp.plane.so/http/mcp
OAuth प्रवाह कनेक्शन पर संभाला जाता है; आपके कॉन्फ़िगर में कोई क्रेडेंशियल नहीं। बिना नेटिव रिमोट MCP समर्थन वाले क्लाइंट के लिए, mcp-remote के साथ ब्रिज करें:
{
"mcpServers": {
"plane": {
"command": "npx",
"args": ["mcp-remote@latest", "https://mcp.plane.so/http/mcp"]
}
}
}
Node.js 22+ आवश्यक है।
HTTP with a personal access token — होस्टेड
https://mcp.plane.so/http/api-key/mcp
| हेडर | मान |
|---|---|
Authorization | Bearer <PAT> |
X-Workspace-slug | <workspace-slug> |
{
"mcpServers": {
"plane": {
"command": "npx",
"args": ["mcp-remote@latest", "https://mcp.plane.so/http/api-key/mcp"],
"headers": {
"Authorization": "Bearer <PAT>",
"X-Workspace-slug": "<workspace-slug>"
}
}
}
}
SSE — deprecated
https://mcp.plane.so/sse केवल पिछड़ी संगतता के लिए बनाए रखा गया है। इसके बजाय HTTP ट्रांसपोर्ट का उपयोग करें।
उपकरण
सर्वर 28 उपकरण की घोषणा करता है, प्रति संसाधन एक। प्रत्येक action पैरामीटर लेता है जो ऑपरेशन का चयन करता है:
workitem(action="create", project_id=..., name="Fix login")
workitem(action="list", project_id=..., pql='state__group = "started"')
cycle(action="archive", project_id=..., cycle_id=...)
प्रत्येक उपकरण का विवरण उसकी क्रियाओं को उनके आवश्यक और वैकल्पिक मापदंडों के साथ सूचीबद्ध करता है, इसलिए कैटलॉग कॉल समय पर स्व-दस्तावेजीकरण है।
→ पूर्ण उपकरण और क्रिया संदर्भ
कार्य आइटम क्वेरी करना
सूची, गणना और खोज PQL, Plane की क्वेरी भाषा स्वीकार करते हैं:
workitem(action="list", project_id=..., pql='state__group = "started" AND priority = "urgent"')
workitem(action="count", pql='assignees__id = "<member id>"', group_by="state_id")
पूर्ण सिंटैक्स, ऑपरेटरों और उदाहरणों के लिए get_pql_reference को कॉल करें।
प्रति-ऑपरेशन उपकरण से अपग्रेड करना
पिछले संस्करणों ने प्रति API ऑपरेशन एक उपकरण जारी किया। मौजूदा एकीकरण काम करते रहते हैं: उन 177 नामों में से 169 अभी भी समेकित उपकरण पर हल होते हैं, इसलिए एक सहेजा गया प्रॉम्प्ट या स्क्रिप्ट जो create_work_item या list_cycles को कॉल करती है, उसे बदलाव की आवश्यकता नहीं है। वे अब विज्ञापित नहीं हैं, और वे पैरामीटर नाम बनाए रखते हैं जिनके साथ वे आए थे (work_item_id, workitem_id नहीं)।
सात नामों ने एक पैरामीटर (manage_project_archive(archive=False)) के साथ दो ऑपरेशनों के बीच चुना, जिसे एक टूल-और-एक्शन जोड़ी दोहरा नहीं सकती; एक को कॉल करने से उसका प्रतिस्थापन बताता है। get_pql_reference अपरिवर्तित है।
कॉन्फ़िगरेशन
प्रमाणीकरण
| वेरिएबल | आवश्यक के लिए | उद्देश्य |
|---|---|---|
PLANE_API_KEY | stdio | API key |
PLANE_WORKSPACE_SLUG | stdio | लक्ष्य कार्यक्षेत्र |
PLANE_BASE_URL | वैकल्पिक | Plane API URL (डिफ़ॉल्ट https://api.plane.so) |
दूरस्थ ट्रांसपोर्ट कनेक्शन में क्रेडेंशियल रखते हैं — OAuth प्रवाह या PAT हेडर — और इनमें से किसी की आवश्यकता नहीं है।
सर्वर को स्वयं स्व-होस्ट करना:
| वेरिएबल | उद्देश्य |
|---|---|
PLANE_INTERNAL_BASE_URL | सर्वर-से-सर्वर कॉल के लिए आंतरिक URL, PLANE_BASE_URL से पसंदीदा |
REDIS_HOST / REDIS_PORT | OAuth टोकन भंडारण; इन-मेमोरी पर फ़ॉलबैक |
PLANE_OAUTH_PROVIDER_* | OAuth क्लाइंट क्रेडेंशियल और आधार URL |
MCP_PATH_PREFIX | HTTP रूट्स के लिए पथ उपसर्ग, जब प्रॉक्सी के पीछे माउंट किया जाता है — /plane /plane/http/mcp परोसता है |
OAuth redirect URIs
OAuth ट्रांसपोर्ट प्रत्येक क्लाइंट के redirect URI को allowlist के विरुद्ध सत्यापित करते हैं। सामान्य क्लाइंट (Cursor, VS Code, Claude.ai, ChatGPT कनेक्टर, localhost) डिफ़ॉल्ट रूप से अनुमत हैं।
बिना रिलीज़ के नए क्लाइंट को ऑनबोर्ड करने के लिए, पैटर्न जोड़ें:
export PLANE_OAUTH_ALLOWED_REDIRECT_URIS="https://newclient.com/cb,https://other.app/oauth/*"
* किसी भी पोर्ट, पथ खंड या सबडोमेन से मेल खाता है। होस्ट को पिन रखें और केवल पोर्ट या पथ पर वाइल्डकार्ड करें।
लॉगिंग
संरचित JSON। प्रत्येक टूल कॉल अपना नाम, अवधि, स्थिति और — जब उपलब्ध हो — अपारदर्शी उपयोगकर्ता आईडी और कार्यक्षेत्र स्लग लॉग करता है।
export LOG_USER_INFO=true # also log the display name (PII); default false
केवल OAuth और PAT ट्रांसपोर्ट एक प्रदर्शन नाम रखते हैं; stdio अप्रभावित है।
विकास
git clone https://github.com/makeplane/plane-mcp-server
cd plane-mcp-server
uv pip install -e ".[dev]"
कार्यक्षेत्र के विरुद्ध सर्वर चलाएं:
PLANE_API_KEY=... PLANE_WORKSPACE_SLUG=... python -m plane_mcp stdio
python -m plane_mcp http # port 8211
परीक्षण, प्रारूप, लिंट:
pytest # no network or credentials needed
ruff format plane_mcp/ tests/ # line length 120
ruff check plane_mcp/ tests/ # rules E, F, I, UP, B
सुइट पूरी तरह से ऑफ़लाइन चलता है — प्रत्येक संसाधन की हर क्रिया एक स्टैंड-इन के विरुद्ध निष्पादित होती है जो प्रत्येक कॉल को वास्तविक plane-sdk हस्ताक्षर के विरुद्ध जोड़ती है। देखें plane_mcp/tools/README.md।
लाइव एकीकरण परीक्षण छोड़ दिए जाते हैं जब तक कि आप उन्हें चल रहे सर्वर की ओर इंगित नहीं करते:
export PLANE_TEST_API_KEY=... PLANE_TEST_WORKSPACE_SLUG=...
export PLANE_TEST_MCP_URL=http://localhost:8211 # optional; this is the default
pytest tests/test_integration.py -v
वे उस कार्यक्षेत्र में वास्तविक डेटा लिखते हैं।
रिपॉजिटरी लेआउट
| पथ | सामग्री |
|---|---|
plane_mcp/__main__.py | प्रवेश बिंदु; argv[1] से ट्रांसपोर्ट चुनता है |
plane_mcp/server.py | प्रति ट्रांसपोर्ट एक फ़ैक्टरी |
plane_mcp/client.py | क्रेडेंशियल को plane-sdk क्लाइंट में हल करता है |
plane_mcp/auth/ | OAuth प्रदाता और हेडर प्रमाणीकरण |
plane_mcp/tools/ | उपकरण सतह: प्रति Plane संसाधन एक मॉड्यूल |
plane_mcp/toolkit/ | उपकरण सतह के लिए साझा निर्माण खंड |
plane_mcp/pql_reference.py | मॉडल को दिया गया PQL सिंटैक्स संदर्भ |
योगदान
पुल अनुरोधों का स्वागत है। जमा करने से पहले कृपया pytest और ruff check चलाएं; नए उपकरणों को plane_mcp/tools/README.md में वर्णित अपरिवर्तनीय के साथ आना चाहिए।
देखें CONTRIBUTING.md और CODE_OF_CONDUCT.md।
Node.js सर्वर से माइग्रेट करना
@makeplane/plane-mcp-server (Node.js) deprecated और अनुरक्षित नहीं है। यह Python कार्यान्वयन इसे प्रतिस्थापित करता है।
| Node.js | Python |
|---|---|
PLANE_API_KEY | PLANE_API_KEY |
PLANE_API_HOST_URL | PLANE_BASE_URL |
PLANE_WORKSPACE_SLUG | PLANE_WORKSPACE_SLUG |
command और args को त्वरित प्रारंभ में stdio कॉन्फ़िगरेशन से बदलें।
लाइसेंस
MIT — देखें LICENSE।