Plane
आधिकारिकप्लेन एमसीपी सर्वर प्लेन एपीआई के साथ एकीकरण प्रदान करता है, जो प्लेन प्रोजेक्ट्स, वर्क आइटम्स, साइकल्स और अधिक के पूर्ण एआई ऑटोमेशन को सक्षम बनाता है।
Plane MCP के साथ आप क्या कर सकते हैं?
- कार्य आइटम बनाएं — अपने सहायक से किसी प्रोजेक्ट में कार्य आइटम बनाने के लिए कहें, नाम और अन्य विवरण
workitemटूल के माध्यम से निर्दिष्ट करें। - PQL के साथ कार्य आइटम क्वेरी करें — स्टेट, प्राथमिकता या असाइनी द्वारा फ़िल्टर किए गए कार्य आइटम को सूचीबद्ध या गिनने के लिए प्लेन क्वेरी भाषा का उपयोग करें, जैसे, ।
- साइकिल प्रबंधित करें — किसी प्रोजेक्ट में साइकिल को संग्रहीत या अपडेट करें, जैसे
cycle(action="archive", project_id=..., cycle_id=...)। - PQL सिंटैक्स संदर्भ तक पहुंचें — पूर्ण PQL सिंटैक्स, ऑपरेटरों और काम किए गए उदाहरणों के लिए
get_pql_referenceटूल का अनुरोध करें।
दस्तावेज़
Plane MCP सर्वर
Plane के लिए एक मॉडल कॉन्टेक्स्ट प्रोटोकॉल सर्वर। यह AI एजेंट को प्रोजेक्ट, वर्क आइटम, साइकिल, मॉड्यूल, रिलीज़, कस्टमर और अधिक को पढ़ने और प्रबंधित करने के लिए टूल देता है।
FastMCP और आधिकारिक plane-sdk पर निर्मित।
- 30 टूल, प्रति Plane संसाधन एक, 207 ऑपरेशन कवर करते हुए
- स्थानीय या दूरस्थ — stdio, स्ट्रीमेबल HTTP, SSE
- OAuth या API कुंजी प्रमाणीकरण
त्वरित आरंभ
Plane से API कुंजी प्राप्त करें: वर्कस्पेस सेटिंग्स → API टोकन।
इसे अपने 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 — अप्रचलित
https://mcp.plane.so/sse केवल पिछड़े संगतता के लिए बनाए रखा गया है। इसके बजाय HTTP ट्रांसपोर्ट का उपयोग करें।
टूल
सर्वर 30 टूल विज्ञापित करता है, प्रति संसाधन एक। प्रत्येक एक 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 कुंजी |
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_URL | OAuth टोकन भंडारण एक कनेक्शन URL के रूप में (TLS के लिए redis:// या rediss://); होस्ट/पोर्ट पर जीतता है |
REDIS_HOST / REDIS_PORT | OAuth टोकन भंडारण; इन-मेमोरी पर वापस आता है |
PLANE_OAUTH_PROVIDER_* | OAuth क्लाइंट क्रेडेंशियल और बेस URL |
MCP_PATH_PREFIX | HTTP रूट्स के लिए पाथ प्रीफ़िक्स, जब प्रॉक्सी के पीछे माउंट किया जाता है — /plane /plane/http/mcp परोसता है |
OAuth रीडायरेक्ट URI
OAuth ट्रांसपोर्ट प्रत्येक क्लाइंट के रीडायरेक्ट URI को अनुमति सूची के विरुद्ध मान्य करते हैं। सामान्य क्लाइंट (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=false # also log the display name (PII);
export LOG_PAYLOADS=false # keep request payloads out of logs; default true
केवल 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) अप्रचलित और अनुरक्षित नहीं है। यह 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 देखें।