ChatGPT, Claude, Cursor ve Codex için bir kanban MCP sunucusu
Yazan: Andrei Finogeev, Weft’in kurucusu ·
Weft barındırılan bir kanban panosudur — Backlog, Todo, Doing, Done ve isteğe bağlı sprintler — ve MCP sunucusu https://letsweft.com/api/mcp adresindedir. Bu URL’yi yapay zekâ istemcine ekle ve OAuth ile bir kez giriş yap; yerelde kurulacak ya da çalıştırılacak bir şey yok. O andan itibaren asistan panoyu okur, kart oluşturur ve taşır, iki ajan asla aynı kartı almasın diye üzerinde çalışmadan önce kartı sahiplenir, ilerlemeyi bildirir, karar senin olduğunda sana sorar ve kartı ne yaptığıyla birlikte kapatır. Ayda 50 görev ve 200 yapay zekâ çağrısına kadar ücretsiz.
https://letsweft.com/api/mcpStreamable HTTP · OAuth ya da kişisel erişim belirteci · 32 araç
Yapay zekâ istemcine ekle
ChatGPT
Weft'i ChatGPT'de aç — ya da elle yapılandır:
- 1ChatGPT kenar çubuğunda Plugins bölümünü aç — ya da Settings → Plugins.
- 2“Weft” diye ara ve listelemeyi aç.
- 3“Connect” tıkla ve Weft'in neye erişebileceğini gözden geçir.
- 4Açılan pencerede Weft hesabınla giriş yap.
Herhangi bir sohbette eklentiyi @ ile an: “@Weft panomda ne var?” — ya da + menüsünden Weft'i seç. Kurulumu atladıysan ChatGPT bağlamayı sohbetin içinde önerir.
Claude Desktop
- 1Claude Desktop → Settings → Connectors yolunu aç.
- 2“Add custom connector” tıkla.
- 3Aşağıdaki Weft MCP adresini yapıştır ve kaydet.
- 4Açılan tarayıcı penceresinde OAuth akışını tamamla.
Yeni bir sohbet başlat ve sor: “Weft panomda ne var?”. Claude, Weft bağlayıcısı üzerinden pano durumunu getirir.
Claude Code
claude mcp add --transport http weft https://letsweft.com/api/mcpHerhangi bir projede `claude` çalıştır, sonra sor: “panomda ne var?”. İlk seferinde OAuth için bir tarayıcı penceresi açılır.
Cursor
Cursor'a ekle — ya da elle yapılandır:
{
"mcpServers": {
"weft": {
"url": "https://letsweft.com/api/mcp"
}
}
}Cursor → Settings → MCP yolunu aç. OAuth akışını bitirdikten sonra “weft” sunucusu yeşil göstergeyle görünmeli.
Codex CLI
[mcp_servers.weft]
url = "https://letsweft.com/api/mcp"`codex mcp login weft` komutunu çalıştırıp tarayıcıdan giriş yap, sonra `codex` başlat ve sor: “panomda ne var?”. `/mcp` bağlı sunucuyu ve araçlarını listeler.
VS Code
Weft uzantısını yükle — ya da elle yapılandır:
{
"servers": {
"weft": {
"type": "http",
"url": "https://letsweft.com/api/mcp"
}
}
}Sohbeti aç, mod seçicisini Agent yap ve sor: „panomda ne var?”. İlk seferde OAuth için bir tarayıcı penceresi açılır. «MCP: List Servers» weft'i Running olarak göstermeli.
Windsurf
- 1Windsurf → Settings → Cascade → MCP servers yolunu aç.
- 2“Add server” tıkla ve Remote (HTTP) seç.
- 3Aşağıdaki Weft MCP adresini yapıştır ve kaydet.
- 4Açılan tarayıcı penceresinde OAuth akışını tamamla.
Cascade'i aç ve sor: “panomda ne var?”. Cascade, Weft sunucusunu kullanan yanıtları işaretler.
Gemini CLI
gemini extensions install https://github.com/AndreiFinogeev/weft-gemini-extension`gemini` çalıştır ve sor: “weft panomda ne var?”. İlk kullanımda OAuth için tarayıcı açılır. `gemini extensions list` çıktısında “weft” görünmeli.
Yalnızca senin için değil, ajanlar için yapıldı
Çakışma değil, sahiplenme
start_task, bir ajan üzerinde çalışmadan önce karta bir kiralama koyar. İş isteyen ikinci bir ajan başka bir kart alır; ajanı sessizleşen bir kart ise kiralamanın süresi dolunca yeniden sunulur.
İlerleme ve makbuzlar
report_progress, ajan çalışırken sahiplenmeyi canlı tutar; complete_task kartı neyin yapıldığı, neyin yapılmadığı ve kontrol edebileceğin bağlantılarla kapatır.
Sorular seni bekler
request_input, ajanın yalnızca senin karar verebileceğin bir şeyi tahmin etmesine izin vermek yerine Gelen kutuna — webde ve telefonunda — seçenekli bir soru bırakır.
Hızı senin dikkatin belirler
İncelemeni bekleyen bitmiş iş fazlalaştığında ajanlar yeni kartlara başlamayı bırakır. Bu, kanban’ın devam eden iş sınırının sana uygulanmış hâlidir.
Her yapay zekânın ne yapabileceğine sen karar verirsin
Bağlanan her asistana tam, yazma ya da salt okuma erişimi ver ve tek tıkla bağlantısını kes. Silinen kartlar doğrudan yok olmaz, çöp kutusuna gider.


32 araç
Her araç yalnızca okuyup okumadığını, yazıp yazmadığını ya da bir şey kaldırıp kaldırmadığını bildirir; böylece istemcin sana ne zaman önce sorması gerektiğini bilir.
| Araç | Ne yapar | Tür |
|---|---|---|
| search | Görevlerde, sprintlerde, kararlarda ve hafıza notlarında anahtar kelimeyle arama. Sıralanmış en fazla 50 {id, title, url} sonucu döndürür; türe göre önekli id’ler fetch’e verilir. | Okuma |
| fetch | Tek bir arama sonucunun tam içeriğini getirir — başlık, metin gösterimi, kaynak url’si ve yapılandırılmış meta veriler. search’ün döndürdüğü önekli id’yi alır. | Okuma |
| initialize_board | Weft panonda hiç sütun yoksa varsayılan Backlog, Todo, Doing ve Done sütunlarını oluşturur — bir yapay zekâ ajanı görevleri yönetmeden önceki tek çağrılık kurulum. İdempotent. | Yazma |
| get_board_state | Kullanıcının Scrumban panosu hakkında kısa bir özet döndürür: sütunlar, etkin sprint, Doing, gecikmiş görevler ve son kapananlar; tam bir anlık görüntüden yaklaşık 30 kat daha küçük. | Okuma |
| list_columns | Panodaki tüm sütunları sırasıyla listeler — her biri için id, ad ve konum; böylece bir ajan bir görevin tam olarak nereye taşınabileceğini bilir. | Okuma |
| list_tasks | Kimliği doğrulanmış kullanıcının görevlerini döndürür; isteğe bağlı olarak sütuna, sprinte, projeye (ad ya da id), oluşturana (insan ya da yapay zekâ) veya atanan kişiye (işi yürüten) göre filtrelenir. | Okuma |
| create_task | Kullanıcının panosunda yeni bir görev oluşturur. Sütun belirtilmezse Backlog’a düşer. Öncelik varsayılan olarak orta. Kullanıcı görev eklemek istediğinde kullanılır. | Yazma |
| bulk_create_tasks | Tek bir atomik çağrıda 1000’e kadar görev oluşturur — Linear/Jira/Notion/Trello dışa aktarımlarını ya da 3 veya daha fazla görevden oluşan herhangi bir listeyi içe aktarır ve yapay zekâ çağrısı kotasından yalnızca bir çağrı düşer. | Yazma |
| update_task | Mevcut bir görevin alanlarını yamalar. Yalnızca gönderdiğin alanlar değişir; gönderilmeyen alanlar korunur — bir istisnayla: bir ajanın requiresReview’u temizlemesi reddedilir ve bu ret tüm yamayı da beraberinde götürür. | Yazma |
| move_task | Bir görevi farklı bir sütuna ve konuma taşır. semantic='doing' olan bir sütuna taşımak döngü süresi takibini başlatır; semantic='done' olana taşımak tamamlanma zamanını kaydeder. | Yazma |
| start_task | Yapay zekâ bir görevi yürütmeye başladığı anda bunu çağırır — kart Doing’e taşınır; böylece kullanıcı ve bağlı diğer her istemci onu devam ediyor olarak görür (ve iki kez almaz). Döngü süresi takibini başlatır; atanmamış bir görevi çağıran ajan sahiplenir (mevcut bir atanan kişi asla geçersiz kılınmaz). Sütun id’si gerekmez. | Yazma |
| report_progress | Hâlâ çalıştığını söyler. İstemci sessizleşirse görev üzerindeki sahiplenmenin süresi dolar; bu çağrı onu yeniler. Nabız olmadan uzun süren bir görev terk edilmiş sayılır ve başkasına sunulur — bilerek, çünkü çalışırken ölen bir ajan hiçbir şey bildirmez; bu yüzden panonun elindeki tek sinyal sessizliktir. | Yazma |
| request_input | Kişiye yalnızca onun karar verebileceği bir şeyi sorar ve görev üzerindeki sahiplenmeyi kaybetmeden bekler. Kişi istemcisinin başındaysa orada bir form çıkar ve yanıt aynı çağrının içinde geri gelir — ajan aynı bağlamda, aynı sahiplenmeyle devam eder. Kişi uzaktaysa çağrı park edilmiş olarak döner ve soru kişinin kuyruğunda bekler; yanıt ajana bir sonraki start_task ya da get_my_work çağrısında ulaşır. Geri alınamayan ve gerçekten belirsiz durumlar içindir, "devam edebilir miyim?" için değil — her soru, yeni işi sınırlayan aynı dikkat bütçesinden harcar. | Yazma |
| submit_answer | Kişinin, ajanın sorduğu bir soruya verdiği yanıtı geri getirir ve işi aynı runId ve kiralamayla geri verir; böylece iş sıfırdan başlamak yerine aynı denemede sürer. Kişinin kendisinin yaptığı bir işlem olarak değil, aktarılmış olarak işaretlenir — bir ajanın taşıdığı yanıt ile bir insanın yaptığı tıklama farklı türden kanıtlardır ve pano onları ayrı tutar. Soru Weft uygulamasında zaten yanıtlandıysa hata yerine o yanıt döndürülür: önemli olan ajanın doğru yanıtla devam etmesidir. | Yazma |
| get_my_work | Tüm panoyu okuyup tahmin yürütmek yerine sırada ne olduğunu sorar. Bu istemciye atanmış görevleri, insanı zaten neyin beklediğini ve dikkat kuyruğunda yer olup olmadığını döndürür. Ayrıca neyin geciktiğini ve hafta içinde neyin teslim edileceğini ya da başlayacağını söyler; böylece ajan bir son tarihi sormadan öğrenir. Kuyruk doluyken yapılacak faydalı şey yeni bir şeye başlamak değil, kuyruğu boşaltmaya yardım etmektir — ve bu çağrı bunu bir görev seçilmeden önce söyler. | Okuma |
| complete_task | Yapay zekâ iş gerçekten bittiğinde bunu çağırır — kart tamamlanma zamanı kaydedilerek Done’a taşınır ve isteğe bağlı outcome (ne yapıldığı, sonucun nerede durduğu) karta "Outcome (AI, date)" notu olarak eklenir. Sütun id’si gerekmez. Seni gerektirdiği işaretlenen iş Done’a TAŞINMAZ: makbuzu ekli olarak senin kuyruğuna gider; ajan sonra ne yapacağını söylediyse kabul etmek tam olarak o adımı onaylar ve ajana geri verir. Görevin bir doğrulama planı varsa sunucu kontrollerini tam burada yürütür — URL’yi getirir, alıntıyı arar, hash’i karşılaştırır: tüm engelleyici kontrolleri geçen executable/state_delta planı sunucu tarafından doğrulanmış olarak kapanır; başarısız olan bir engelleyici kontrol kartı Done’ın dışında tutar ve ajana sunucunun ne gözlemlediğini gösterir. | Yazma |
| record_decision | Tek araç, iki kullanım, tek bir kayıt tablosu. (1) Seni bekleyen bitmiş iş hakkında konuşmada verdiğin kararı aktarır — onaylandı, geri gönder, bırak, sonra — ve kartı inceleme kuyruğundan temizler; girdi, senin uygulamada yaptığın bir işlem olarak değil, aktarılmış olarak saklanır ve bu fark bilerek görünür tutulur. (2) Hatırlamaya değer bağımsız bir kararı — 'Supabase yerine Neon seçildi', çıkarılan bir ders — tartılan seçenekler ve yeniden bakılacak koşulla birlikte değiştirilemez bir MADR-lite kaydı olarak kaydeder. Kayıtlar asla düzenlenmez: supersedesId’li yeni bir karar eskisinin yerini alır ve eskisi verildiği gün ne dediyse öyle okunabilir kalır. Bu kayıtlar, get_context’in gelecek hafta her ajana geri sunduğu şeylerdir. | Yazma |
| get_context | Çalışma alanının geçerli kararları ve dersleri, bir belirteç bütçesine sığdırılmış, en yenisi önce — bir ajanın önemsiz olmayan herhangi bir işe başlamadan önce okuması gerekenler. Bir belge olarak yazılmaz, kaydedilmiş kararlardan türetilir; bu yüzden eskiyemez: yerini başkası alan bir karar, yenisi kaydedildiği anda listeden düşer ve her satır kendi tarihini taşır. Daraltmak için bir projeyle ya da görevle sınırla; bütçeye sığmayan satırlar sayılır, asla sessizce gizlenmez. | Okuma |
| get_task_history | Bir görevin yalnızca güncel alanlarını değil, başına neler geldiğini gösterir. Üç mod: 'summary' (varsayılan, ≤500 belirteç — kart, son makbuzu, sayılar), 'decisions' (hakkında kaydedilmiş her karar, hükümler ve gerekçeleri dahil — sonraki bir kabul kartın üzerine yazsa bile yeniden çalışma gerekçesi burada kalır), 'full' (ham günlük, 100 olayla sınırlı ve bunu belirtir). Var olma nedeni: bir denetim günlüğü doğrudan okunamayacak kadar ayrıntılıdır ve görev satırı her zaman yalnızca son hükmü tutar. | Okuma |
| trash_task | Weft panondaki bir görevi çöp kutusuna taşır. 30 gün boyunca restore_task ile kurtarılabilir; ardından zamanlanmış bir iş onu kalıcı olarak siler. | Kaldırma |
| restore_task | Bir görevi çöp kutusuna atıldıktan sonraki 30 gün içinde kurtarır. Görev panoda bulunduğu yere eksiksiz döner — böylece tek kişilik bir girişimci kazara silme yüzünden asla iş kaybetmez. | Yazma |
| archive_done_tasks | Done sütununu temizler: içindeki her görev panodan arşive gider — search/fetch ile hâlâ bulunur ve sprintinin geçmişinde hâlâ gösterilir, asla silinmez. Bir sprinti tamamlamak o sprintin bitmiş görevlerini otomatik olarak arşivler; bu araç geri kalanını halleder. Tek çağrıda bütün sütunu alır, sayı sınırı yoktur ve MCP üzerinden geri dönüş yoktur — restore_task arşivden değil, çöp kutusundan geri yükler — bu yüzden yıkıcı olarak işaretlenmiştir: bir istemci çağırmadan önce kullanıcıdan onay almalıdır. | Kaldırma |
| list_projects | Panonun projelerini listeler — bir görevin ait olabileceği hafif bağlamlar (bir girişim, bir müşteri, kişisel). includeArchived ayarlanmadıkça arşivlenmiş projeleri dışarıda bırakır. | Okuma |
| create_project | Bir proje bağlamı oluşturur. Ad pano başına benzersizdir; renk varsayılan olarak dönüşümlü bir paletten seçilir; url projenin web sitesidir ve favicon’u görev kartlarında gösterilir. | Yazma |
| update_project | Bir projeyi yeniden adlandırır, rengini ya da web sitesi url’sini değiştirir veya onu arşivler/arşivden çıkarır. Arşivlenmiş projeler seçicilerden kaybolur; görevleri bağlantıyı korur. | Yazma |
| list_sprints | Kullanıcının tüm sprintlerini (planlanmış, etkin, tamamlanmış, arşivlenmiş) listeler; böylece tek kişilik bir girişimci ya da ajan uygulamayı açmadan sprint geçmişini ve güncel durumu gözden geçirebilir. | Okuma |
| get_active_sprint | Şu anda etkin olan sprinti, hiçbir sprint çalışmıyorsa null döndürür — böylece tek kişilik bir girişimci ya da ajan uygulamayı açmadan güncel hedefi kontrol edebilir. | Okuma |
| create_sprint | Weft panonda "planned" durumunda, bir hedef ve tarihlerle zamanlanmaya hazır yeni bir sprint oluşturur. Çalışmaya başlamaya hazır olduğunda ayrıca start_sprint kullan. | Yazma |
| start_sprint | Planlanmış bir sprinti etkin duruma geçirir. Her planda aynı anda yalnızca bir sprint etkin olabilir — başka bir sprint çalışıyorsa çağrı başarısız olur ve onun adını verir; önce o sprinti tamamla, sonra yeniden dene. | Yazma |
| complete_sprint | Etkin sprinti bitirir. Bitmiş görevleri sprintin geçmişine arşivlenir — panonun Done sütunundan çıkar, hâlâ aranabilir ve sprintin sayfasında gösterilir. Bitmemiş görevler sprinte bağlı olarak panoda kalır. MCP üzerinden geri alınamaz — niyet belirsiz olduğunda istemciler onay almalıdır. | Kaldırma |
| add_task_to_sprint | Mevcut bir görevi bir sprinte atar; böylece görev o sprintin kapsamında ve burndown’ında görünür. İdempotent — iki kez çağırmanın ek bir etkisi yoktur, bu yüzden yeniden denemek güvenlidir. | Yazma |
| remove_task_from_sprint | Bir görevi silmeden mevcut sprintinden ayırır — görev panoda kendi sütununda kalır, yalnızca artık o sprintin kapsamında ya da burndown’ında değildir. | Yazma |
Sorular
Kanban MCP sunucusu nedir?
Bir kanban panosunu, bir yapay zekâ asistanının çağırabileceği araçlar olarak sunan bir MCP (Model Context Protocol) sunucusu: sütunları listelemek, kartları okumak, kart oluşturmak, onu Doing’e ya da Done’a taşımak. Weft’inki barındırılır; yani makinende bir süreç çalıştırmak yerine bir URL eklersin.
Bir şey kurmam ya da çalıştırmam gerekiyor mu?
Hayır. https://letsweft.com/api/mcp adresini yapay zekâ istemcine ekle ve OAuth ile giriş yap. OAuth desteklemeyen istemciler Ayarlar → Erişim anahtarları bölümünden alınan kişisel bir erişim belirteci kullanır.
Ücretsiz mi?
Evet, ayda 50 görev ve 200 yapay zekâ çağrısına kadar. Pro, koltuk başına ayda $7 ya da koltuk başına yılda $60 karşılığında sınırları kaldırır.
ChatGPT Free ile çalışıyor mu?
Evet. Weft, ChatGPT’nin Plugin directory’sinde yer alır ve Free dahil her ChatGPT planında çalışır. ChatGPT’de ham bir MCP URL’si eklemek Business, Enterprise ve Edu özelliğidir, ama Weft için buna ihtiyacın yok.
İki ajan tek bir panoyu paylaşabilir mi?
Evet — pano tam da bunun için. Her ajan üzerinde çalışmadan önce bir kartı start_task ile sahiplenir; böylece aynı kartı almazlar ve her kart onu bir yapay zekânın mı yoksa bir kişinin mi oluşturduğunu ya da bitirdiğini gösterir.
Bunun yerel bir kanban MCP sunucusundan farkı ne?
Açık kaynaklı kanban MCP sunucuları senin makinende çalışır ve panoyu yerel bir dosyada ya da veritabanında saklar; bu yüzden onu yalnızca o makinedeki ajanlar görür. Weft ortak, barındırılan bir pano: ChatGPT’de, Claude’da, Cursor’da, Codex’te, web uygulamasında ve iOS ile Android uygulamalarında, senin ve ekibin için aynı kartlar.