Plane MCP Server
resmiResmi 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,
uvxaracılığıyla) - Node.js 22+ (uzak aktarımlar için,
npxaracı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:trueolduğ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 olarakfalse'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_project | Ad, tanımlayıcı ve isteğe bağlı yapılandırma ile yeni bir proje oluştur |
retrieve_project | Kimliğe göre bir projeyi al |
update_project | Kısmi verilerle bir projeyi güncelle |
delete_project | Kimliğe göre bir projeyi sil |
get_project_worklog_summary | Bir proje için çalışma günlüğü özetini al |
get_project_members | Bir projenin tüm üyelerini al |
update_project_features | Bir 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_item | Ad, 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_identifier | Proje tanımlayıcısı ve konu sıra numarasına göre bir iş öğesini al |
update_work_item | Kısmi verilerle bir iş öğesini güncelle |
delete_work_item | Kimliğe göre bir iş öğesini sil |
search_work_items | Sorgu dizesiyle bir çalışma alanı genelinde iş öğelerini ara |
Döngüler
| Araç Adı | Açıklama |
|---|---|
list_cycles | Bir projedeki döngüleri listele (arşivlenenler için archived=true ayarla) |
create_cycle | Ad, tarihler ve sahip ile yeni bir döngü oluştur |
retrieve_cycle | Kimliğe göre bir döngüyü al |
update_cycle | Kısmi verilerle bir döngüyü güncelle |
delete_cycle | Kimliğe göre bir döngüyü sil |
manage_cycle_work_items | Bir döngüye iş öğeleri ekle ve/veya çıkar |
list_cycle_work_items | Bir döngüdeki iş öğelerini listele |
transfer_cycle_work_items | İş öğelerini bir döngüden diğerine aktar |
manage_cycle_archive | Bir döngüyü arşivle veya arşivden çıkar |
Modüller
| Araç Adı | Açıklama |
|---|---|
list_modules | Bir projedeki modülleri listele (arşivlenenler için archived=true ayarla) |
create_module | Ad, tarihler, durum ve üyelerle yeni bir modül oluştur |
retrieve_module | Kimliğe göre bir modülü al |
update_module | Kısmi verilerle bir modülü güncelle |
delete_module | Kimliğe göre bir modülü sil |
manage_module_work_items | Bir modüle iş öğeleri ekle ve/veya çıkar |
list_module_work_items | Bir modüldeki iş öğelerini listele |
manage_module_archive | Bir modülü arşivle veya arşivden çıkar |
İnisiyatifler
| Araç Adı | Açıklama |
|---|---|
list_initiatives | Bir çalışma alanındaki tüm inisiyatifleri listele |
create_initiative | Ad, tarihler, durum ve lider ile yeni bir inisiyatif oluştur |
retrieve_initiative | Kimliğe göre bir inisiyatifi al |
update_initiative | Kısmi verilerle bir inisiyatifi güncelle |
delete_initiative | Kimliğ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_item | Bir 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_item | Kı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_properties | Bir iş öğesi türü için iş öğesi özelliklerini listele |
create_work_item_property | Tür, ayarlar ve doğrulama kuralları ile yeni bir iş öğesi özelliği oluştur |
retrieve_work_item_property | Kimliğe göre bir iş öğesi özelliğini al |
update_work_item_property | Kısmi verilerle bir iş öğesi özelliğini güncelle |
delete_work_item_property | Kimliğe göre bir iş öğesi özelliğini sil |
Kilometre Taşları
| Araç Adı | Açıklama |
|---|---|
list_milestones | Bir projedeki tüm kilometre taşlarını listele |
create_milestone | Yeni bir kilometre taşı oluştur |
retrieve_milestone | Kimliğe göre bir kilometre taşını al |
update_milestone | Kimliğe göre bir kilometre taşını güncelle |
delete_milestone | Kimliğe göre bir kilometre taşını sil |
manage_milestone_work_items | Bir kilometre taşına iş öğeleri ekle ve/veya çıkar |
list_milestone_work_items | Bir kilometre taşındaki iş öğelerini listele |
Etiketler
| Araç Adı | Açıklama |
|---|---|
list_labels | Bir projedeki tüm etiketleri listele |
create_label | Yeni bir etiket oluştur |
retrieve_label | Kimliğe göre bir etiketi al |
update_label | Kimliğe göre bir etiketi güncelle |
delete_label | Kimliğe göre bir etiketi sil |
Durumlar
| Araç Adı | Açıklama |
|---|---|
list_states | Bir projedeki tüm durumları listele |
create_state | Yeni bir durum oluştur |
retrieve_state | Kimliğe göre bir durumu al |
update_state | Kimliğe göre bir durumu güncelle |
delete_state | Kimliğe göre bir durumu sil |
İş Öğesi Yorumları
| Araç Adı | Açıklama |
|---|---|
list_work_item_comments | Bir iş öğesi için yorumları listele |
retrieve_work_item_comment | Bir iş öğesi için belirli bir yorumu al |
create_work_item_comment | Bir iş öğesi için yorum oluştur |
update_work_item_comment | Bir iş öğesi için yorumu güncelle |
delete_work_item_comment | Bir iş öğesi için yorumu sil |
İş Öğesi Bağlantıları
| Araç Adı | Açıklama |
|---|---|
list_work_item_links | Bir iş öğesi için bağlantıları listele |
retrieve_work_item_link | Bir iş öğesi için belirli bir bağlantıyı al |
create_work_item_link | Bir iş öğesi için bağlantı oluştur |
update_work_item_link | Bir iş öğesi için bağlantıyı güncelle |
delete_work_item_link | Bir iş öğesi için bağlantıyı sil |
İş Öğesi Türleri
| Araç Adı | Açıklama |
|---|---|
list_work_item_types | Bir projedeki tüm iş öğesi türlerini listele |
create_work_item_type | Yeni bir iş öğesi türü oluştur |
retrieve_work_item_type | Kimliğe göre bir iş öğesi türünü al |
update_work_item_type | Kimliğe göre bir iş öğesi türünü güncelle |
delete_work_item_type | Kimliğ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_type | Bir 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_relations | Bir iş öğesi için ilişkileri listele |
create_work_item_relation | Bir iş öğesi için ilişkiler oluştur |
remove_work_item_relation | Bir 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_definition | Bir çalışma alanı ilişki tanımı oluştur |
update_work_item_relation_definition | Bir ilişki tanımını güncelle |
delete_work_item_relation_definition | Bir ilişki tanımını sil |
İş Öğesi Aktiviteleri
| Araç Adı | Açıklama |
|---|---|
list_work_item_activities | Bir iş öğesi için aktiviteleri listele |
retrieve_work_item_activity | Bir iş öğesi için belirli bir aktiviteyi al |
Çalışma Günlükleri
| Araç Adı | Açıklama |
|---|---|
list_work_logs | Bir iş öğesi için çalışma günlüklerini listele |
create_work_log | Bir iş öğesi için çalışma günlüğü oluştur |
update_work_log | Bir iş öğesi için çalışma günlüğünü güncelle |
delete_work_log | Bir iş öğesi için çalışma günlüğünü sil |
Sayfalar
| Araç Adı | Açıklama |
|---|---|
list_pages | Sayfaları listele (çalışma alanı veya project_id verilmişse bir projenin) |
retrieve_page | Kimliğe göre bir sayfayı al (çalışma alanı veya project_id verilmişse projenin) |
create_page | Bir çalışma alanı veya proje sayfası oluştur |
Çalışma Alanları
| Araç Adı | Açıklama |
|---|---|
get_workspace_members | Mevcut ç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_features | Mevcut çalışma alanının özelliklerini güncelle |
Kullanıcılar
| Araç Adı | Açıklama |
|---|---|
get_me | Mevcut 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.