Plane

आधिकारिक

प्लेन एमसीपी सर्वर प्लेन एपीआई के साथ एकीकरण प्रदान करता है, जो प्लेन प्रोजेक्ट्स, वर्क आइटम्स, साइकल्स और अधिक के पूर्ण एआई ऑटोमेशन को सक्षम बनाता है।

Plane MCP के साथ आप क्या कर सकते हैं?

  • कार्य आइटम बनाएं और अपडेट करें — अपने सहायक से "लॉगिन ठीक करें" जैसा कार्य आइटम बनाने या उसकी स्थिति, प्राथमिकता, या असाइनी को workitem टूल के माध्यम से अपडेट करने के लिए कहें।
  • PQL के साथ कार्य आइटम क्वेरी करें — कार्य आइटम को सूचीबद्ध करने, गिनने, या खोजने के लिए Plane की क्वेरी भाषा का उपयोग करें, जैसे फ़िल्टर state__group = "started" AND priority = "urgent"।
  • साइकिल और मॉड्यूल प्रबंधित करें — समेकित संसाधन टूल के माध्यम से साइकिल को संग्रहीत करें, प्रोजेक्ट साइकिल सूचीबद्ध करें, या अन्य साइकिल/मॉड्यूल संचालन करें।
  • URL से अनुलग्नक संभालें — बाहरी URL से अनुलग्नक अपलोड ट्रिगर करें, upload_from_url के माध्यम से SSRF नियंत्रण के लिए प्रॉक्सी समर्थन के साथ।
  • PQL सिंटैक्स संदर्भ प्राप्त करें — get_pql_reference को कॉल करके पूर्ण PQL सिंटैक्स, ऑपरेटर, और काम के उदाहरण मांगें।

दस्तावेज़

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

हेडरमान
AuthorizationBearer <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_KEYstdioAPI कुंजी
PLANE_WORKSPACE_SLUGstdioलक्ष्य वर्कस्पेस
PLANE_BASE_URLवैकल्पिकPlane API URL (डिफ़ॉल्ट https://api.plane.so)

रिमोट ट्रांसपोर्ट कनेक्शन में क्रेडेंशियल ले जाते हैं — OAuth फ़्लो या PAT हेडर — और इनमें से किसी की आवश्यकता नहीं होती।

अटैचमेंट अपलोड के लिए आउटबाउंड प्रॉक्सी

HTTP_PROXY / HTTPS_PROXY / NO_PROXY (और उनके लोअरकेस रूप) अटैचमेंट-अपलोड-फ्रॉम-URL फ़ेच (upload_from_url) के लिए सम्मानित हैं। जब कोई प्रॉक्सी किसी दिए गए अनुरोध पर लागू होता है, प्रॉक्सी — यह सर्वर नहीं — उस अनुरोध का SSRF नियंत्रण है: सर्वर लक्ष्य के हल किए गए पते को पिन या सत्यापित नहीं करता है, क्योंकि प्रॉक्सी स्वतंत्र रूप से लक्ष्य से कनेक्ट और हल करता है। NO_PROXY और प्रॉक्सी ईग्रेस नीति को तदनुसार स्कोप करें।

सर्वर को स्वयं होस्ट करना:

चरउद्देश्य
PLANE_INTERNAL_BASE_URLसर्वर-से-सर्वर कॉल के लिए आंतरिक URL, PLANE_BASE_URL पर पसंदीदा
REDIS_URLOAuth टोकन भंडारण एक कनेक्शन URL के रूप में (TLS के लिए redis:// या rediss://); होस्ट/पोर्ट पर जीतता है
REDIS_HOST / REDIS_PORTOAuth टोकन भंडारण; इन-मेमोरी पर वापस आता है
PLANE_OAUTH_PROVIDER_*OAuth क्लाइंट क्रेडेंशियल और बेस URL
MCP_PATH_PREFIXHTTP रूट्स के लिए पाथ प्रीफ़िक्स, जब प्रॉक्सी के पीछे माउंट किया जाता है — /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.jsPython
PLANE_API_KEYPLANE_API_KEY
PLANE_API_HOST_URLPLANE_BASE_URL
PLANE_WORKSPACE_SLUGPLANE_WORKSPACE_SLUG

command और args को त्वरित आरंभ में stdio कॉन्फ़िगरेशन से बदलें।

लाइसेंस

MIT — LICENSE देखें।