Plane MCP Server

आधिकारिक

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

दस्तावेज़

Plane MCP सर्वर

Plane एकीकरण के लिए एक मॉडल संदर्भ प्रोटोकॉल (MCP) सर्वर। यह सर्वर AI एजेंटों के माध्यम से Plane के साथ इंटरैक्ट करने के लिए उपकरण और संसाधन प्रदान करता है।

विशेषताएँ

  • 🔧 Plane एकीकरण: Plane API और सेवाओं के साथ इंटरैक्ट करें
  • 🔌 एकाधिक ट्रांसपोर्ट: stdio, SSE, और स्ट्रीमेबल HTTP ट्रांसपोर्ट का समर्थन करता है
  • 🌐 रिमोट और स्थानीय: स्थानीय रूप से और रिमोट सेवा के रूप में दोनों तरह से काम करता है
  • 🛠️ विस्तारणीय: नए उपकरण और संसाधन जोड़ना आसान

उपयोग

सर्वर तीन ट्रांसपोर्ट विधियों का समर्थन करता है। हम uvx का उपयोग करने की अनुशंसा करते हैं क्योंकि इसमें इंस्टॉलेशन की आवश्यकता नहीं होती है।

आवश्यकताएँ:

  • Python 3.10+ (stdio ट्रांसपोर्ट के लिए, uvx के माध्यम से)
  • Node.js 22+ (रिमोट ट्रांसपोर्ट के लिए, npx के माध्यम से)

1. Stdio ट्रांसपोर्ट (स्थानीय उपयोग के लिए)

MCP क्लाइंट कॉन्फ़िगरेशन (uvx का उपयोग करके - अनुशंसित):

{
  "mcpServers": {
    "plane": {
      "command": "uvx",
      "args": ["plane-mcp-server", "stdio"],
      "env": {
        "PLANE_API_KEY": "<your-api-key>",
        "PLANE_WORKSPACE_SLUG": "<your-workspace-slug>",
        "PLANE_BASE_URL": "https://api.plane.so"
      }
    }
  }
}

2. OAuth के साथ रिमोट HTTP ट्रांसपोर्ट

OAuth प्रमाणीकरण का उपयोग करके होस्ट किए गए Plane MCP सर्वर से कनेक्ट करें।

URL: https://mcp.plane.so/http/mcp

MCP क्लाइंट कॉन्फ़िगरेशन (मूल रिमोट MCP समर्थन के बिना Claude Desktop जैसे उपकरणों के लिए):

{
  "mcpServers": {
    "plane": {
      "command": "npx",
      "args": ["mcp-remote@latest", "https://mcp.plane.so/http/mcp"]
    }
  }
}

नोट: रिमोट सर्वर से कनेक्ट होने पर OAuth प्रमाणीकरण स्वचालित रूप से संभाला जाएगा।

3. PAT टोकन का उपयोग करके रिमोट HTTP ट्रांसपोर्ट

व्यक्तिगत एक्सेस टोकन (PAT) का उपयोग करके होस्ट किए गए Plane MCP सर्वर से कनेक्ट करें।

URL: https://mcp.plane.so/http/api-key/mcp

हेडर:

  • Authorization: Bearer <PAT_TOKEN>
  • X-Workspace-slug: <SLUG>

MCP क्लाइंट कॉन्फ़िगरेशन (मूल रिमोट MCP समर्थन के बिना Claude Desktop जैसे उपकरणों के लिए):

{
  "mcpServers": {
    "plane": {
      "command": "npx",
      "args": ["mcp-remote@latest", "https://mcp.plane.so/http/api-key/mcp"],
      "headers": {
        "Authorization": "Bearer <PAT_TOKEN>",
        "X-Workspace-slug": "<SLUG>"
      }
    }
  }
}

4. SSE ट्रांसपोर्ट (विरासत)

⚠️ विरासत ट्रांसपोर्ट: SSE (सर्वर-प्रेषित ईवेंट) ट्रांसपोर्ट पश्चगामी संगतता के लिए बनाए रखा गया है। नए कार्यान्वयनों को इसके बजाय HTTP ट्रांसपोर्ट (अनुभाग 2 या 3) का उपयोग करना चाहिए।

सर्वर-प्रेषित ईवेंट के माध्यम से OAuth प्रमाणीकरण का उपयोग करके होस्ट किए गए Plane MCP सर्वर से कनेक्ट करें।

URL: https://mcp.plane.so/sse

MCP क्लाइंट कॉन्फ़िगरेशन (SSE ट्रांसपोर्ट का समर्थन करने वाले उपकरणों के लिए):

{
  "mcpServers": {
    "plane": {
      "command": "npx",
      "args": ["mcp-remote@latest", "https://mcp.plane.so/sse"]
    }
  }
}

नोट: रिमोट सर्वर से कनेक्ट होने पर OAuth प्रमाणीकरण स्वचालित रूप से संभाला जाएगा। यह ट्रांसपोर्ट HTTP ट्रांसपोर्ट के पक्ष में पदावनत है।

कॉन्फ़िगरेशन

प्रमाणीकरण

सर्वर को पर्यावरण चर के माध्यम से प्रमाणीकरण की आवश्यकता होती है:

  • PLANE_BASE_URL: Plane API के लिए आधार URL (डिफ़ॉल्ट: https://api.plane.so) - वैकल्पिक
  • PLANE_API_KEY: प्रमाणीकरण के लिए API कुंजी (stdio ट्रांसपोर्ट के लिए आवश्यक)
  • PLANE_WORKSPACE_SLUG: कार्यक्षेत्र स्लग पहचानकर्ता (stdio ट्रांसपोर्ट के लिए आवश्यक)
  • PLANE_ACCESS_TOKEN: प्रमाणीकरण के लिए एक्सेस टोकन (API कुंजी का विकल्प)

उदाहरण (stdio ट्रांसपोर्ट के लिए):

export PLANE_BASE_URL="https://api.plane.so"
export PLANE_API_KEY="your-api-key"
export PLANE_WORKSPACE_SLUG="your-workspace-slug"

नोट: रिमोट HTTP ट्रांसपोर्ट (OAuth या PAT) के लिए, प्रमाणीकरण कनेक्शन विधि (OAuth प्रवाह या PAT हेडर) के माध्यम से संभाला जाता है और इन पर्यावरण चरों की आवश्यकता नहीं होती है।

OAuth रीडायरेक्ट URI

OAuth HTTP/SSE ट्रांसपोर्ट के लिए, सर्वर प्रत्येक क्लाइंट के रीडायरेक्ट URI को अनुमति सूची के विरुद्ध मान्य करता है। सामान्य MCP क्लाइंट (Cursor, VS Code, Claude.ai, ChatGPT कनेक्टर, लोकलहोस्ट) डिफ़ॉल्ट रूप से अनुमत हैं।

कोड परिवर्तन या रिलीज़ के बिना किसी नए क्लाइंट को शामिल करने के लिए, पर्यावरण चर के माध्यम से अतिरिक्त पैटर्न जोड़ें:

  • PLANE_OAUTH_ALLOWED_REDIRECT_URIS: अंतर्निहित अनुमति सूची में जोड़े गए अल्पविराम-पृथक रीडायरेक्ट URI पैटर्न।
export PLANE_OAUTH_ALLOWED_REDIRECT_URIS="https://newclient.com/cb,https://other.app/oauth/*"

पैटर्न ग्लोब मिलान का समर्थन करते हैं (* किसी भी पोर्ट, पथ खंड, या उपडोमेन से मेल खाता है)। सुरक्षा के लिए, होस्ट को पिन रखें और केवल पोर्ट/पथ को वाइल्डकार्ड करें।

लॉगिंग

सर्वर संरचित JSON लॉग उत्सर्जित करता है। प्रत्येक उपकरण कॉल को उसके उपकरण नाम, अवधि, स्थिति, और (जब उपलब्ध हो) अपारदर्शी उपयोगकर्ता आईडी और कार्यक्षेत्र स्लग के साथ लॉग किया जाता है।

  • LOG_USER_INFO: जब true, अपारदर्शी उपयोगकर्ता आईडी के साथ लॉग में उपयोगकर्ता जानकारी (जैसे प्रदर्शन नाम) शामिल करें। डिफ़ॉल्ट false है ताकि PII कभी भी लॉग न हो जब तक स्पष्ट रूप से ऑप्ट-इन न किया जाए। केवल OAuth और PAT (हेडर) HTTP ट्रांसपोर्ट में प्रदर्शन नाम होता है; stdio अप्रभावित है।
export LOG_USER_INFO="true"

उपलब्ध उपकरण

सर्वर Plane के साथ इंटरैक्ट करने के लिए व्यापक उपकरण प्रदान करता है। सभी उपकरण प्रकार सुरक्षा और सत्यापन के लिए Plane SDK से Pydantic मॉडल का उपयोग करते हैं।

परियोजनाएँ

उपकरण नामविवरण
list_projectsवैकल्पिक पृष्ठांकन और फ़िल्टरिंग के साथ कार्यक्षेत्र में सभी परियोजनाओं की सूची बनाएं
create_projectनाम, पहचानकर्ता और वैकल्पिक कॉन्फ़िगरेशन के साथ एक नई परियोजना बनाएं
retrieve_projectआईडी द्वारा एक परियोजना पुनर्प्राप्त करें
update_projectआंशिक डेटा के साथ एक परियोजना अपडेट करें
delete_projectआईडी द्वारा एक परियोजना हटाएं
get_project_worklog_summaryकिसी परियोजना के लिए कार्य लॉग सारांश प्राप्त करें
get_project_membersकिसी परियोजना के सभी सदस्य प्राप्त करें
update_project_featuresकिसी परियोजना के फीचर्स कॉन्फ़िगरेशन को अपडेट करें

कार्य आइटम

उपकरण नामविवरण
list_work_itemsवैकल्पिक फ़िल्टरिंग और पृष्ठांकन के साथ किसी परियोजना में सभी कार्य आइटम सूचीबद्ध करें
create_work_itemनाम, असाइनी, लेबल और अन्य विशेषताओं के साथ एक नया कार्य आइटम बनाएं
retrieve_work_itemवैकल्पिक फ़ील्ड विस्तार के साथ आईडी द्वारा एक कार्य आइटम पुनर्प्राप्त करें
retrieve_work_item_by_identifierपरियोजना पहचानकर्ता और मुद्दा अनुक्रम संख्या द्वारा एक कार्य आइटम पुनर्प्राप्त करें
update_work_itemआंशिक डेटा के साथ एक कार्य आइटम अपडेट करें
delete_work_itemआईडी द्वारा एक कार्य आइटम हटाएं
search_work_itemsक्वेरी स्ट्रिंग के साथ कार्यक्षेत्र में कार्य आइटम खोजें

चक्र

उपकरण नामविवरण
list_cyclesकिसी परियोजना में चक्रों की सूची बनाएं (संग्रहीत के लिए archived=true सेट करें)
create_cycleनाम, तिथियाँ और स्वामी के साथ एक नया चक्र बनाएं
retrieve_cycleआईडी द्वारा एक चक्र पुनर्प्राप्त करें
update_cycleआंशिक डेटा के साथ एक चक्र अपडेट करें
delete_cycleआईडी द्वारा एक चक्र हटाएं
manage_cycle_work_itemsकिसी चक्र पर कार्य आइटम जोड़ें और/या हटाएं
list_cycle_work_itemsकिसी चक्र में कार्य आइटम सूचीबद्ध करें
transfer_cycle_work_itemsकार्य आइटम को एक चक्र से दूसरे में स्थानांतरित करें
manage_cycle_archiveकिसी चक्र को संग्रहीत या असंग्रहीत करें

मॉड्यूल

उपकरण नामविवरण
list_modulesकिसी परियोजना में मॉड्यूल सूचीबद्ध करें (संग्रहीत के लिए archived=true सेट करें)
create_moduleनाम, तिथियाँ, स्थिति और सदस्यों के साथ एक नया मॉड्यूल बनाएं
retrieve_moduleआईडी द्वारा एक मॉड्यूल पुनर्प्राप्त करें
update_moduleआंशिक डेटा के साथ एक मॉड्यूल अपडेट करें
delete_moduleआईडी द्वारा एक मॉड्यूल हटाएं
manage_module_work_itemsकिसी मॉड्यूल पर कार्य आइटम जोड़ें और/या हटाएं
list_module_work_itemsकिसी मॉड्यूल में कार्य आइटम सूचीबद्ध करें
manage_module_archiveकिसी मॉड्यूल को संग्रहीत या असंग्रहीत करें

पहल

उपकरण नामविवरण
list_initiativesकार्यक्षेत्र में सभी पहलों की सूची बनाएं
create_initiativeनाम, तिथियाँ, स्थिति और लीड के साथ एक नई पहल बनाएं
retrieve_initiativeआईडी द्वारा एक पहल पुनर्प्राप्त करें
update_initiativeआंशिक डेटा के साथ एक पहल अपडेट करें
delete_initiativeआईडी द्वारा एक पहल हटाएं

इनटेक कार्य आइटम

उपकरण नामविवरण
list_intake_work_itemsवैकल्पिक पृष्ठांकन के साथ किसी परियोजना में सभी इनटेक कार्य आइटम सूचीबद्ध करें
create_intake_work_itemकिसी परियोजना में एक नया इनटेक कार्य आइटम बनाएं
retrieve_intake_work_itemवैकल्पिक फ़ील्ड विस्तार के साथ कार्य आइटम आईडी द्वारा एक इनटेक कार्य आइटम पुनर्प्राप्त करें
update_intake_work_itemआंशिक डेटा के साथ एक इनटेक कार्य आइटम अपडेट करें
delete_intake_work_itemकार्य आइटम आईडी द्वारा एक इनटेक कार्य आइटम हटाएं

कार्य आइटम गुण

उपकरण नामविवरण
list_work_item_propertiesकिसी कार्य आइटम प्रकार के लिए कार्य आइटम गुण सूचीबद्ध करें
create_work_item_propertyप्रकार, सेटिंग्स और सत्यापन नियमों के साथ एक नया कार्य आइटम गुण बनाएं
retrieve_work_item_propertyआईडी द्वारा एक कार्य आइटम गुण पुनर्प्राप्त करें
update_work_item_propertyआंशिक डेटा के साथ एक कार्य आइटम गुण अपडेट करें
delete_work_item_propertyआईडी द्वारा एक कार्य आइटम गुण हटाएं

माइलस्टोन

उपकरण नामविवरण
list_milestonesकिसी परियोजना में सभी माइलस्टोन सूचीबद्ध करें
create_milestoneएक नया माइलस्टोन बनाएं
retrieve_milestoneआईडी द्वारा एक माइलस्टोन पुनर्प्राप्त करें
update_milestoneआईडी द्वारा एक माइलस्टोन अपडेट करें
delete_milestoneआईडी द्वारा एक माइलस्टोन हटाएं
manage_milestone_work_itemsकिसी माइलस्टोन पर कार्य आइटम जोड़ें और/या हटाएं
list_milestone_work_itemsकिसी माइलस्टोन में कार्य आइटम सूचीबद्ध करें

लेबल

उपकरण नामविवरण
list_labelsकिसी परियोजना में सभी लेबल सूचीबद्ध करें
create_labelएक नया लेबल बनाएं
retrieve_labelआईडी द्वारा एक लेबल पुनर्प्राप्त करें
update_labelआईडी द्वारा एक लेबल अपडेट करें
delete_labelआईडी द्वारा एक लेबल हटाएं

स्थितियाँ

उपकरण नामविवरण
list_statesकिसी परियोजना में सभी स्थितियाँ सूचीबद्ध करें
create_stateएक नई स्थिति बनाएं
retrieve_stateआईडी द्वारा एक स्थिति पुनर्प्राप्त करें
update_stateआईडी द्वारा एक स्थिति अपडेट करें
delete_stateआईडी द्वारा एक स्थिति हटाएं

कार्य आइटम टिप्पणियाँ

उपकरण नामविवरण
list_work_item_commentsकिसी कार्य आइटम के लिए टिप्पणियाँ सूचीबद्ध करें
retrieve_work_item_commentकिसी कार्य आइटम के लिए एक विशिष्ट टिप्पणी पुनर्प्राप्त करें
create_work_item_commentकिसी कार्य आइटम के लिए एक टिप्पणी बनाएं
update_work_item_commentकिसी कार्य आइटम के लिए एक टिप्पणी अपडेट करें
delete_work_item_commentकिसी कार्य आइटम के लिए एक टिप्पणी हटाएं

कार्य आइटम लिंक

उपकरण नामविवरण
list_work_item_linksकिसी कार्य आइटम के लिए लिंक सूचीबद्ध करें
retrieve_work_item_linkकिसी कार्य आइटम के लिए एक विशिष्ट लिंक पुनर्प्राप्त करें
create_work_item_linkकिसी कार्य आइटम के लिए एक लिंक बनाएं
update_work_item_linkकिसी कार्य आइटम के लिए एक लिंक अपडेट करें
delete_work_item_linkकिसी कार्य आइटम के लिए एक लिंक हटाएं

कार्य आइटम प्रकार

उपकरण नामविवरण
list_work_item_typesकिसी परियोजना में सभी कार्य आइटम प्रकार सूचीबद्ध करें
create_work_item_typeएक नया कार्य आइटम प्रकार बनाएं
retrieve_work_item_typeआईडी द्वारा एक कार्य आइटम प्रकार पुनर्प्राप्त करें
update_work_item_typeआईडी द्वारा एक कार्य आइटम प्रकार अपडेट करें
delete_work_item_typeआईडी द्वारा एक कार्य आइटम प्रकार हटाएं
import_work_item_types_to_projectकार्यक्षेत्र-स्तरीय कार्य आइटम प्रकारों को किसी परियोजना से बल्क-लिंक करें
resolve_work_item_typeकिसी परियोजना के लिए एक नामित प्रकार खोजें या बनाएं, कार्यक्षेत्र बनाम परियोजना दायरे और आयात को स्वचालित रूप से संभालते हुए

कार्य आइटम संबंध

उपकरण नामविवरण
list_work_item_relationsकिसी कार्य आइटम के लिए संबंध सूचीबद्ध करें
create_work_item_relationकिसी कार्य आइटम के लिए संबंध बनाएं
remove_work_item_relationकिसी कार्य आइटम से एक संबंध हटाएं

कार्य आइटम संबंध परिभाषाएँ

उपकरण नामविवरण
list_work_item_relation_definitionsकार्यक्षेत्र कस्टम संबंध परिभाषाएँ सूचीबद्ध करें
create_work_item_relation_definitionएक कार्यक्षेत्र संबंध परिभाषा बनाएं
update_work_item_relation_definitionएक संबंध परिभाषा अपडेट करें
delete_work_item_relation_definitionएक संबंध परिभाषा हटाएं

कार्य आइटम गतिविधियाँ

उपकरण नामविवरण
list_work_item_activitiesकिसी कार्य आइटम के लिए गतिविधियाँ सूचीबद्ध करें
retrieve_work_item_activityकिसी कार्य आइटम के लिए एक विशिष्ट गतिविधि पुनर्प्राप्त करें

कार्य लॉग

उपकरण नामविवरण
list_work_logsकिसी कार्य आइटम के लिए कार्य लॉग सूचीबद्ध करें
create_work_logकिसी कार्य आइटम के लिए एक कार्य लॉग बनाएं
update_work_logकिसी कार्य आइटम के लिए एक कार्य लॉग अपडेट करें
delete_work_logकिसी कार्य आइटम के लिए एक कार्य लॉग हटाएं

पृष्ठ

उपकरण नामविवरण
list_pagesपृष्ठ सूचीबद्ध करें (कार्यक्षेत्र, या यदि project_id दिया गया हो तो किसी परियोजना के)
retrieve_pageआईडी द्वारा एक पृष्ठ पुनर्प्राप्त करें (कार्यक्षेत्र, या यदि project_id दिया गया हो तो परियोजना का)
create_pageएक कार्यक्षेत्र या परियोजना पृष्ठ बनाएं

कार्यक्षेत्र

उपकरण नामविवरण
get_workspace_membersवर्तमान कार्यक्षेत्र के सभी सदस्य प्राप्त करें
get_featuresफीचर फ्लैग प्राप्त करें (कार्यक्षेत्र, या यदि project_id दिया गया हो तो किसी परियोजना के)
update_workspace_featuresवर्तमान कार्यक्षेत्र की सुविधाएँ अपडेट करें

उपयोगकर्ता

उपकरण नामविवरण
get_meवर्तमान प्रमाणीकृत उपयोगकर्ता जानकारी प्राप्त करें

कुल उपकरण: 20 श्रेणियों में 100+ उपकरण

विकास

परीक्षण चलाना

pytest

कोड फ़ॉर्मेटिंग

black plane_mcp/
ruff check plane_mcp/

लाइसेंस

MIT लाइसेंस - विवरण के लिए LICENSE देखें।

योगदान

योगदान का स्वागत है! कृपया बेझिझक एक पुल अनुरोध सबमिट करें।

पदावनति सूचना

⚠️ Node.js-आधारित plane-mcp-server पदावनत है और अब इसका रखरखाव नहीं किया जाता।

यह रिपॉजिटरी Plane MCP सर्वर के नए Python+FastMCP आधारित कार्यान्वयन का प्रतिनिधित्व करती है। यदि आप पिछले Node.js संस्करण का उपयोग कर रहे थे, तो कृपया निरंतर समर्थन और अपडेट के लिए इस Python-आधारित संस्करण पर माइग्रेट करें।

नया कार्यान्वयन प्रदान करता है:

  • Pydantic मॉडलों के साथ बेहतर प्रकार सुरक्षा
  • FastMCP के साथ बेहतर प्रदर्शन
  • उन्नत उपकरण कवरेज
  • सक्रिय रखरखाव और विकास

माइग्रेशन सहायता के लिए, कृपया इस README में कॉन्फ़िगरेशन उदाहरण देखें या समर्थन के लिए एक मुद्दा खोलें।

पुराना Node.js कॉन्फ़िगरेशन (पदावनत):

यदि आप पिछले Node.js-आधारित @makeplane/plane-mcp-server का उपयोग कर रहे थे, तो आपका कॉन्फ़िगरेशन इस प्रकार दिखता था:

{
  "mcpServers": {
    "plane": {
      "command": "npx",
      "args": [
        "-y",
        "@makeplane/plane-mcp-server"
      ],
      "env": {
        "PLANE_API_KEY": "<YOUR_API_KEY>",
        "PLANE_API_HOST_URL": "<HOST_URL_FOR_SELF_HOSTED>",
        "PLANE_WORKSPACE_SLUG": "<YOUR_WORKSPACE_SLUG>"
      }
    }
  }
}

कृपया ऊपर उपयोग अनुभाग में दिखाए गए नए Python-आधारित कॉन्फ़िगरेशन पर माइग्रेट करें।