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

हेडरमान
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 हेडर — और इनमें से किसी की आवश्यकता नहीं है।

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

चरउद्देश्य
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 देखें।