Plane MCP Server

resmi

Resmi Plane MCP sunucusu, Plane API'leri ile entegrasyon sağlayarak Plane projelerinin, iş öğelerinin, döngülerinin ve daha fazlasının tam AI otomasyonunu mümkün kılar.

Dokümantasyon

Plane MCP Sunucusu

Plane entegrasyonu için bir Model Bağlam Protokolü (MCP) sunucusu. Bu sunucu, AI ajanları aracılığıyla Plane ile etkileşim kurmak için araçlar ve kaynaklar sağlar.

Özellikler

  • 🔧 Plane Entegrasyonu: Plane API'leri ve hizmetleriyle etkileşim kurun
  • 🔌 Çoklu Aktarımlar: stdio, SSE ve akışlı HTTP aktarımlarını destekler
  • 🌐 Uzak ve Yerel: Hem yerel olarak hem de uzak bir hizmet olarak çalışır
  • 🛠️ Genişletilebilir: Yeni araçlar ve kaynaklar eklemek kolaydır

Kullanım

Sunucu üç aktarım yöntemini destekler. Kurulum gerektirmediği için uvx kullanmanızı öneririz.

Gereksinimler:

  • Python 3.10+ (stdio aktarımı için, uvx aracılığıyla)
  • Node.js 22+ (uzak aktarımlar için, npx aracılığıyla)

1. Stdio Aktarımı (yerel kullanım için)

MCP İstemci Yapılandırması (uvx kullanarak - önerilir):

{
  "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 ile Uzak HTTP Aktarımı

OAuth kimlik doğrulaması kullanarak barındırılan Plane MCP sunucusuna bağlanın.

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

MCP İstemci Yapılandırması (yerel uzak MCP desteği olmayan Claude Desktop gibi araçlar için):

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

Not: Uzak sunucuya bağlanırken OAuth kimlik doğrulaması otomatik olarak gerçekleştirilecektir.

3. PAT Token Kullanarak Uzak HTTP Aktarımı

Kişisel Erişim Token'ı (PAT) kullanarak barındırılan Plane MCP sunucusuna bağlanın.

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

Başlıklar:

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

MCP İstemci Yapılandırması (yerel uzak MCP desteği olmayan Claude Desktop gibi araçlar için):

{
  "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 Aktarımı (Eski)

⚠️ Eski Aktarım: SSE (Sunucu Tarafından Gönderilen Olaylar) aktarımı, geriye dönük uyumluluk için korunmaktadır. Yeni uygulamalar bunun yerine HTTP aktarımını (bölüm 2 veya 3) kullanmalıdır.

Sunucu Tarafından Gönderilen Olaylar aracılığıyla OAuth kimlik doğrulaması kullanarak barındırılan Plane MCP sunucusuna bağlanın.

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

MCP İstemci Yapılandırması (SSE aktarımını destekleyen araçlar için):

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

Not: Uzak sunucuya bağlanırken OAuth kimlik doğrulaması otomatik olarak gerçekleştirilecektir. Bu aktarım, HTTP aktarımı lehine kullanımdan kaldırılmıştır.

Yapılandırma

Kimlik Doğrulama

Sunucu, ortam değişkenleri aracılığıyla kimlik doğrulaması gerektirir:

  • PLANE_BASE_URL: Plane API için temel URL (varsayılan: https://api.plane.so) - İsteğe bağlı
  • PLANE_API_KEY: Kimlik doğrulama için API anahtarı (stdio aktarımı için gereklidir)
  • PLANE_WORKSPACE_SLUG: Çalışma alanı slug tanımlayıcısı (stdio aktarımı için gereklidir)
  • PLANE_ACCESS_TOKEN: Kimlik doğrulama için erişim token'ı (API anahtarına alternatif)

Örnek (stdio aktarımı için):

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

Not: Uzak HTTP aktarımları (OAuth veya PAT) için kimlik doğrulama, bağlantı yöntemi (OAuth akışı veya PAT başlıkları) aracılığıyla gerçekleştirilir ve bu ortam değişkenlerini gerektirmez.

OAuth yönlendirme URI'leri

OAuth HTTP/SSE aktarımları için sunucu, her istemcinin yönlendirme URI'sini bir izin listesine göre doğrular. Yaygın MCP istemcilerine (Cursor, VS Code, Claude.ai, ChatGPT bağlayıcıları, localhost) varsayılan olarak izin verilir.

Kod değişikliği veya sürüm olmadan yeni bir istemciyi dahil etmek için, bir ortam değişkeni aracılığıyla ek desenler ekleyin:

  • PLANE_OAUTH_ALLOWED_REDIRECT_URIS: Yerleşik izin listesine eklenen virgülle ayrılmış yönlendirme URI desenleri.
export PLANE_OAUTH_ALLOWED_REDIRECT_URIS="https://newclient.com/cb,https://other.app/oauth/*"

Desenler glob eşleştirmesini destekler (* herhangi bir bağlantı noktası, yol segmenti veya alt alan adıyla eşleşir). Güvenlik için, ana bilgisayarı sabit tutun ve yalnızca bağlantı noktası/yol için joker karakter kullanın.

Günlük Kaydı

Sunucu yapılandırılmış JSON günlükleri yayar. Her araç çağrısı, araç adı, süre, durum ve (varsa) opak kullanıcı kimliği ve çalışma alanı slug'ı ile günlüğe kaydedilir.

  • LOG_USER_INFO: true olduğunda, opak kullanıcı kimliğinin yanı sıra kullanıcı bilgilerini (görünen ad gibi PII) günlüklere dahil edin. Varsayılan olarak false'dir, böylece açıkça izin verilmedikçe PII asla günlüğe kaydedilmez. Yalnızca OAuth ve PAT (başlık) HTTP aktarımları bir görünen ad taşır; stdio etkilenmez.
export LOG_USER_INFO="true"

Mevcut Araçlar

Sunucu, Plane ile etkileşim kurmak için kapsamlı araçlar sağlar. Tüm araçlar, tip güvenliği ve doğrulama için Plane SDK'dan Pydantic modellerini kullanır.

Projeler

Araç AdıAçıklama
list_projectsİsteğe bağlı sayfalama ve filtreleme ile bir çalışma alanındaki tüm projeleri listele
create_projectAd, tanımlayıcı ve isteğe bağlı yapılandırma ile yeni bir proje oluştur
retrieve_projectKimliğe göre bir projeyi al
update_projectKısmi verilerle bir projeyi güncelle
delete_projectKimliğe göre bir projeyi sil
get_project_worklog_summaryBir proje için çalışma günlüğü özetini al
get_project_membersBir projenin tüm üyelerini al
update_project_featuresBir projenin özellik yapılandırmasını güncelle

İş Öğeleri

Araç AdıAçıklama
list_work_itemsİsteğe bağlı filtreleme ve sayfalama ile bir projedeki tüm iş öğelerini listele
create_work_itemAd, atananlar, etiketler ve diğer özniteliklerle yeni bir iş öğesi oluştur
retrieve_work_itemİsteğe bağlı alan genişletme ile kimliğe göre bir iş öğesini al
retrieve_work_item_by_identifierProje tanımlayıcısı ve konu sıra numarasına göre bir iş öğesini al
update_work_itemKısmi verilerle bir iş öğesini güncelle
delete_work_itemKimliğe göre bir iş öğesini sil
search_work_itemsSorgu dizesiyle bir çalışma alanı genelinde iş öğelerini ara

Döngüler

Araç AdıAçıklama
list_cyclesBir projedeki döngüleri listele (arşivlenenler için archived=true ayarla)
create_cycleAd, tarihler ve sahip ile yeni bir döngü oluştur
retrieve_cycleKimliğe göre bir döngüyü al
update_cycleKısmi verilerle bir döngüyü güncelle
delete_cycleKimliğe göre bir döngüyü sil
manage_cycle_work_itemsBir döngüye iş öğeleri ekle ve/veya çıkar
list_cycle_work_itemsBir döngüdeki iş öğelerini listele
transfer_cycle_work_itemsİş öğelerini bir döngüden diğerine aktar
manage_cycle_archiveBir döngüyü arşivle veya arşivden çıkar

Modüller

Araç AdıAçıklama
list_modulesBir projedeki modülleri listele (arşivlenenler için archived=true ayarla)
create_moduleAd, tarihler, durum ve üyelerle yeni bir modül oluştur
retrieve_moduleKimliğe göre bir modülü al
update_moduleKısmi verilerle bir modülü güncelle
delete_moduleKimliğe göre bir modülü sil
manage_module_work_itemsBir modüle iş öğeleri ekle ve/veya çıkar
list_module_work_itemsBir modüldeki iş öğelerini listele
manage_module_archiveBir modülü arşivle veya arşivden çıkar

İnisiyatifler

Araç AdıAçıklama
list_initiativesBir çalışma alanındaki tüm inisiyatifleri listele
create_initiativeAd, tarihler, durum ve lider ile yeni bir inisiyatif oluştur
retrieve_initiativeKimliğe göre bir inisiyatifi al
update_initiativeKısmi verilerle bir inisiyatifi güncelle
delete_initiativeKimliğe göre bir inisiyatifi sil

Alım İş Öğeleri

Araç AdıAçıklama
list_intake_work_itemsİsteğe bağlı sayfalama ile bir projedeki tüm alım iş öğelerini listele
create_intake_work_itemBir projede yeni bir alım iş öğesi oluştur
retrieve_intake_work_itemİsteğe bağlı alan genişletme ile iş öğesi kimliğine göre bir alım iş öğesini al
update_intake_work_itemKısmi verilerle bir alım iş öğesini güncelle
delete_intake_work_itemİş öğesi kimliğine göre bir alım iş öğesini sil

İş Öğesi Özellikleri

Araç AdıAçıklama
list_work_item_propertiesBir iş öğesi türü için iş öğesi özelliklerini listele
create_work_item_propertyTür, ayarlar ve doğrulama kuralları ile yeni bir iş öğesi özelliği oluştur
retrieve_work_item_propertyKimliğe göre bir iş öğesi özelliğini al
update_work_item_propertyKısmi verilerle bir iş öğesi özelliğini güncelle
delete_work_item_propertyKimliğe göre bir iş öğesi özelliğini sil

Kilometre Taşları

Araç AdıAçıklama
list_milestonesBir projedeki tüm kilometre taşlarını listele
create_milestoneYeni bir kilometre taşı oluştur
retrieve_milestoneKimliğe göre bir kilometre taşını al
update_milestoneKimliğe göre bir kilometre taşını güncelle
delete_milestoneKimliğe göre bir kilometre taşını sil
manage_milestone_work_itemsBir kilometre taşına iş öğeleri ekle ve/veya çıkar
list_milestone_work_itemsBir kilometre taşındaki iş öğelerini listele

Etiketler

Araç AdıAçıklama
list_labelsBir projedeki tüm etiketleri listele
create_labelYeni bir etiket oluştur
retrieve_labelKimliğe göre bir etiketi al
update_labelKimliğe göre bir etiketi güncelle
delete_labelKimliğe göre bir etiketi sil

Durumlar

Araç AdıAçıklama
list_statesBir projedeki tüm durumları listele
create_stateYeni bir durum oluştur
retrieve_stateKimliğe göre bir durumu al
update_stateKimliğe göre bir durumu güncelle
delete_stateKimliğe göre bir durumu sil

İş Öğesi Yorumları

Araç AdıAçıklama
list_work_item_commentsBir iş öğesi için yorumları listele
retrieve_work_item_commentBir iş öğesi için belirli bir yorumu al
create_work_item_commentBir iş öğesi için yorum oluştur
update_work_item_commentBir iş öğesi için yorumu güncelle
delete_work_item_commentBir iş öğesi için yorumu sil

İş Öğesi Bağlantıları

Araç AdıAçıklama
list_work_item_linksBir iş öğesi için bağlantıları listele
retrieve_work_item_linkBir iş öğesi için belirli bir bağlantıyı al
create_work_item_linkBir iş öğesi için bağlantı oluştur
update_work_item_linkBir iş öğesi için bağlantıyı güncelle
delete_work_item_linkBir iş öğesi için bağlantıyı sil

İş Öğesi Türleri

Araç AdıAçıklama
list_work_item_typesBir projedeki tüm iş öğesi türlerini listele
create_work_item_typeYeni bir iş öğesi türü oluştur
retrieve_work_item_typeKimliğe göre bir iş öğesi türünü al
update_work_item_typeKimliğe göre bir iş öğesi türünü güncelle
delete_work_item_typeKimliğe göre bir iş öğesi türünü sil
import_work_item_types_to_projectÇalışma alanı düzeyindeki iş öğesi türlerini bir projeye toplu olarak bağla
resolve_work_item_typeBir proje için adlandırılmış bir tür bul veya oluştur, çalışma alanı vs proje kapsamını ve içe aktarmayı otomatik olarak yönet

İş Öğesi İlişkileri

Araç AdıAçıklama
list_work_item_relationsBir iş öğesi için ilişkileri listele
create_work_item_relationBir iş öğesi için ilişkiler oluştur
remove_work_item_relationBir iş öğesinden bir ilişkiyi kaldır

İş Öğesi İlişki Tanımları

Araç AdıAçıklama
list_work_item_relation_definitionsÇalışma alanı özel ilişki tanımlarını listele
create_work_item_relation_definitionBir çalışma alanı ilişki tanımı oluştur
update_work_item_relation_definitionBir ilişki tanımını güncelle
delete_work_item_relation_definitionBir ilişki tanımını sil

İş Öğesi Aktiviteleri

Araç AdıAçıklama
list_work_item_activitiesBir iş öğesi için aktiviteleri listele
retrieve_work_item_activityBir iş öğesi için belirli bir aktiviteyi al

Çalışma Günlükleri

Araç AdıAçıklama
list_work_logsBir iş öğesi için çalışma günlüklerini listele
create_work_logBir iş öğesi için çalışma günlüğü oluştur
update_work_logBir iş öğesi için çalışma günlüğünü güncelle
delete_work_logBir iş öğesi için çalışma günlüğünü sil

Sayfalar

Araç AdıAçıklama
list_pagesSayfaları listele (çalışma alanı veya project_id verilmişse bir projenin)
retrieve_pageKimliğe göre bir sayfayı al (çalışma alanı veya project_id verilmişse projenin)
create_pageBir çalışma alanı veya proje sayfası oluştur

Çalışma Alanları

Araç AdıAçıklama
get_workspace_membersMevcut çalışma alanının tüm üyelerini al
get_featuresÖzellik bayraklarını al (çalışma alanı veya project_id verilmişse bir projenin)
update_workspace_featuresMevcut çalışma alanının özelliklerini güncelle

Kullanıcılar

Araç AdıAçıklama
get_meMevcut kimliği doğrulanmış kullanıcı bilgilerini al

Toplam Araç: 20 kategoride 100'den fazla araç

Geliştirme

Testleri Çalıştırma

pytest

Kod Biçimlendirme

black plane_mcp/
ruff check plane_mcp/

Lisans

MIT Lisansı - ayrıntılar için LICENSE dosyasına bakın.

Katkıda Bulunma

Katkılar memnuniyetle karşılanır! Lütfen bir Pull Request göndermekten çekinmeyin.

Kullanımdan Kaldırma Bildirimi

⚠️ Node.js tabanlı plane-mcp-server kullanımdan kaldırılmıştır ve artık bakımı yapılmamaktadır.

Bu depo, Plane MCP sunucusunun yeni Python+FastMCP tabanlı uygulamasını temsil eder. Önceki Node.js sürümünü kullanıyorsanız, devam eden destek ve güncellemeler için lütfen bu Python tabanlı sürüme geçiş yapın.

Yeni uygulama şunları sunar:

  • Pydantic modelleri ile daha iyi tip güvenliği
  • FastMCP ile geliştirilmiş performans
  • Genişletilmiş araç kapsamı
  • Aktif bakım ve geliştirme

Geçiş yardımı için lütfen bu README'deki yapılandırma örneklerine bakın veya destek için bir konu (issue) açın.

Eski Node.js Yapılandırması (Kullanımdan Kaldırıldı):

Önceki Node.js tabanlı @makeplane/plane-mcp-server kullanıyorsanız, yapılandırmanız şuna benziyordu:

{
  "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>"
      }
    }
  }
}

Lütfen yukarıdaki Kullanım bölümünde gösterilen yeni Python tabanlı yapılandırmaya geçiş yapın.