Server MCP kanban untuk ChatGPT, Claude, Cursor, dan Codex

Oleh Andrei Finogeev, pendiri Weft ·

Weft adalah papan kanban yang di-hosting — Backlog, Todo, Doing, Done, dengan sprint opsional — dan server MCP-nya ada di https://letsweft.com/api/mcp. Tambahkan URL itu ke klien AI Anda dan masuk sekali dengan OAuth; tidak ada yang perlu dipasang atau dijalankan secara lokal. Sejak itu asisten membaca papan, membuat dan memindahkan kartu, mengklaim kartu sebelum mengerjakannya agar dua agen tidak pernah mengambil kartu yang sama, melaporkan progres, bertanya kepada Anda saat keputusan ada di tangan Anda, dan menutup kartu beserta apa yang dikerjakannya. Gratis untuk 50 tugas dan 200 panggilan AI per bulan.

URL server MCP
https://letsweft.com/api/mcp

Streamable HTTP · OAuth, atau token akses pribadi · 32 alat

Tambahkan ke klien AI Anda

ChatGPT

Buka Weft di ChatGPT — atau konfigurasikan secara manual:

  1. 1Buka Plugins di bilah sisi ChatGPT — atau Settings → Plugins.
  2. 2Cari “Weft” lalu buka daftarnya.
  3. 3Klik “Connect” dan periksa apa saja yang bisa diakses Weft.
  4. 4Masuk dengan akun Weft Anda di popup yang terbuka.

Sebut plugin-nya dengan @ di obrolan mana pun: “@Weft apa yang ada di papan saya?” — atau pilih Weft dari menu +. Kalau Anda melewatkan penyiapannya, ChatGPT menawarkan menyambungkannya langsung di situ.

Claude Desktop

  1. 1Buka Claude Desktop → Settings → Connectors.
  2. 2Klik “Add custom connector”.
  3. 3Tempelkan URL MCP Weft di bawah ini lalu simpan.
  4. 4Selesaikan OAuth di jendela browser yang terbuka.

Mulai obrolan baru dan tanyakan: “apa yang ada di papan Weft saya?”. Claude mengambil keadaan papan Anda lewat konektor Weft.

Claude Code

bash
claude mcp add --transport http weft https://letsweft.com/api/mcp

Jalankan `claude` di proyek mana pun, lalu tanyakan: “apa yang ada di papan saya?”. Jendela browser terbuka untuk menyelesaikan OAuth pada kali pertama.

Cursor

Tambahkan ke Cursor — atau konfigurasikan secara manual:

~/.cursor/mcp.json
{
  "mcpServers": {
    "weft": {
      "url": "https://letsweft.com/api/mcp"
    }
  }
}

Buka Cursor → Settings → MCP. Server “weft” akan muncul dengan indikator hijau setelah Anda menyelesaikan OAuth.

Codex CLI

~/.codex/config.toml
[mcp_servers.weft]
url = "https://letsweft.com/api/mcp"

Jalankan `codex mcp login weft` untuk masuk lewat browser, lalu buka `codex` dan tanyakan: “apa yang ada di papan saya?”. `/mcp` menampilkan server yang tersambung beserta alatnya.

VS Code

Pasang ekstensi Weft — atau konfigurasikan secara manual:

.vscode/mcp.json
{
  "servers": {
    "weft": {
      "type": "http",
      "url": "https://letsweft.com/api/mcp"
    }
  }
}

Buka obrolan, ubah pemilih mode ke Agent, lalu tanya: «ada apa di papan saya?». Pertama kali, jendela peramban terbuka untuk OAuth. «MCP: List Servers» semestinya menampilkan weft sebagai Running.

Windsurf

  1. 1Buka Windsurf → Settings → Cascade → MCP servers.
  2. 2Klik “Add server” lalu pilih Remote (HTTP).
  3. 3Tempelkan URL MCP Weft di bawah ini lalu simpan.
  4. 4Selesaikan OAuth di jendela browser yang terbuka.

Buka Cascade dan tanyakan: “apa yang ada di papan saya?”. Cascade menandai jawaban yang memakai server Weft.

Gemini CLI

bash
gemini extensions install https://github.com/AndreiFinogeev/weft-gemini-extension

Jalankan `gemini` dan tanyakan: “apa yang ada di papan weft saya?”. Browser terbuka untuk OAuth pada pemakaian pertama. `gemini extensions list` seharusnya menampilkan “weft”.

Dibuat untuk agen, bukan hanya untuk Anda

Klaim, bukan tabrakan

start_task memasang sewa (lease) pada kartu sebelum agen mengerjakannya. Agen kedua yang meminta pekerjaan mendapat kartu lain, dan kartu yang agennya diam ditawarkan lagi saat sewanya habis.

Progres dan tanda terima

report_progress menjaga klaim tetap hidup selagi agen bekerja; complete_task menutup kartu beserta apa yang dikerjakan, apa yang tidak, dan tautan yang bisa Anda periksa.

Pertanyaan menunggu Anda

request_input menaruh pertanyaan beserta pilihannya di Kotak masuk Anda — di web dan di ponsel — alih-alih membiarkan agen menebak sesuatu yang hanya bisa Anda putuskan.

Perhatian Anda yang menentukan tempo

Saat terlalu banyak pekerjaan selesai yang menunggu tinjauan Anda, agen berhenti memulai kartu baru. Itulah batas work-in-progress ala kanban, diterapkan pada Anda.

Anda menentukan apa yang boleh dilakukan setiap AI

Beri setiap asisten yang terhubung akses penuh, tulis, atau hanya-baca, dan putuskan dengan satu klik. Kartu yang dihapus masuk ke Sampah, tidak langsung lenyap.

Papan Weft di ponsel, kolom Doing: tiga tugas yang diambil asisten AI, masing-masing bertanda AI
Asisten mengambil tugas berikutnya; setiap kartu menunjukkan siapa yang sedang mengerjakannya.
Tugas Weft yang sudah selesai dan dibuat oleh AI, dengan hasil yang dicatat asisten: apa yang diperbaikinya dan bahwa 40 uji coba lulus
Saat asisten selesai, ia meninggalkan tanda terima: apa yang dikerjakannya dan bagaimana ia memeriksanya.

32 alat

Setiap alat menyatakan apakah ia hanya membaca, menulis, atau menghapus sesuatu, sehingga klien Anda tahu kapan harus bertanya kepada Anda lebih dulu.

AlatFungsinyaJenis
searchPencarian kata kunci di seluruh tugas, sprint, keputusan, dan catatan memori. Mengembalikan hingga 50 hasil {id, title, url} yang diurutkan, dengan id berawalan jenis yang bisa diteruskan ke fetch.Baca
fetchMengambil isi lengkap satu hasil pencarian — judul, representasi teks, url sumber, dan metadata terstruktur. Menerima id berawalan yang dikembalikan oleh search.Baca
initialize_boardMembuat kolom default Backlog, Todo, Doing, dan Done di papan Weft Anda jika belum ada — penyiapan sekali panggil sebelum agen AI mengelola tugas. Idempoten.Tulis
get_board_stateMengembalikan ringkasan padat tentang papan Scrumban pengguna: kolom, sprint aktif, Doing, tugas yang lewat tenggat, dan yang baru ditutup, sekitar 30x lebih kecil dari snapshot lengkap.Baca
list_columnsMenampilkan semua kolom di papan, berurutan — id, nama, dan posisi masing-masing, sehingga agen tahu persis ke mana tugas bisa dipindahkan.Baca
list_tasksMengembalikan tugas milik pengguna yang terautentikasi, bisa difilter menurut kolom, sprint, proyek (nama atau id), pembuat (manusia atau AI), atau penerima tugas (pelaksananya).Baca
create_taskMembuat tugas baru di papan pengguna. Masuk ke Backlog jika kolom tidak ditentukan. Prioritas default-nya medium. Dipakai saat pengguna meminta menambahkan tugas.Tulis
bulk_create_tasksMembuat hingga 1000 tugas dalam satu panggilan atomik — impor ekspor Linear/Jira/Notion/Trello atau daftar berisi 3+ tugas, dengan hanya memakai satu kuota panggilan AI.Tulis
update_taskMengubah sebagian field tugas yang sudah ada. Hanya field yang Anda kirim yang diubah; field yang tidak disertakan tetap — dengan satu pengecualian: menghapus requiresReview ditolak untuk agen, dan penolakan itu membatalkan seluruh perubahan.Tulis
move_taskMemindahkan tugas ke kolom dan posisi lain. Memindahkan ke kolom dengan semantic='doing' memulai pelacakan cycle time; memindahkan ke semantic='done' mencatat waktu selesai.Tulis
start_taskAI memanggil ini begitu mulai mengerjakan tugas — kartu pindah ke Doing sehingga pengguna dan setiap klien lain yang terhubung melihatnya sedang dikerjakan (dan tidak mengambilnya dua kali). Memulai pelacakan cycle time; tugas yang belum punya penerima diklaim oleh agen pemanggil (penerima yang sudah ada tidak pernah ditimpa). Tidak perlu id kolom.Tulis
report_progressMemberi tahu bahwa Anda masih bekerja. Klaim atas tugas kedaluwarsa jika klien diam, dan panggilan ini memperpanjangnya. Tanpa detak jantung, tugas yang berjalan lama dianggap ditinggalkan dan ditawarkan ke pihak lain — sengaja begitu, karena agen yang mati di tengah jalan tidak melaporkan apa pun, jadi diam adalah satu-satunya sinyal yang dimiliki papan.Tulis
request_inputMenanyakan kepada orangnya sesuatu yang hanya bisa ia putuskan, dan menunggu tanpa kehilangan klaim atas tugas. Jika ia sedang berada di kliennya, sebuah formulir muncul di sana dan jawabannya kembali di dalam panggilan yang sama — agen melanjutkan dalam konteks yang sama, dengan klaim yang sama. Jika ia sedang tidak ada, panggilan kembali dengan status parked dan pertanyaannya menunggu di antreannya; jawabannya sampai ke agen pada start_task atau get_my_work berikutnya. Untuk hal yang tak bisa dibatalkan dan yang benar-benar ambigu, bukan untuk "boleh saya lanjut?" — setiap pertanyaan memakai anggaran perhatian yang sama dengan yang membatasi pekerjaan baru.Tulis
submit_answerMembawa kembali apa yang dikatakan orangnya atas pertanyaan yang diajukan agen, dan mengembalikan pekerjaan dengan runId dan lease yang sama, sehingga pekerjaan berlanjut dalam percobaan yang sama alih-alih mulai dari nol. Ditandai sebagai diteruskan, tidak pernah sebagai tindakan orangnya sendiri — jawaban yang dibawa agen dan klik yang dilakukan manusia adalah jenis bukti yang berbeda, dan papan memisahkannya. Jika pertanyaan sudah dijawab di aplikasi Weft, jawaban itulah yang dikembalikan alih-alih error: yang penting agen melanjutkan dengan jawaban yang benar.Tulis
get_my_workMenanyakan apa yang harus dikerjakan berikutnya alih-alih membaca seluruh papan dan menebak. Mengembalikan tugas yang ditugaskan ke klien ini, apa yang sudah menunggu manusianya, dan apakah antrean perhatian masih punya ruang. Alat ini juga menyebutkan apa yang lewat tenggat dan apa yang jatuh tempo atau dimulai dalam minggu ini, sehingga agen tahu soal tenggat tanpa harus bertanya. Saat antrean penuh, langkah yang berguna adalah membantu mengosongkannya, bukan memulai hal baru — dan alat ini mengatakannya sebelum tugas dipilih.Baca
complete_taskAI memanggil ini saat pekerjaannya benar-benar selesai — kartu pindah ke Done dengan waktu selesai tercatat, dan hasil opsional (apa yang dikerjakan, di mana hasilnya berada) ditambahkan ke kartu sebagai catatan "Outcome (AI, date)". Tidak perlu id kolom. Pekerjaan yang ditandai perlu Anda TIDAK pindah ke Done: pekerjaan itu masuk ke antrean Anda dengan tanda terima terlampir, dan jika agen menyebutkan apa yang akan dilakukannya berikutnya, menerimanya berarti menyetujui persis langkah itu dan menyerahkannya kembali ke agen. Jika tugas membawa rencana verifikasi, server menjalankan pengecekannya saat itu juga — mengambil URL, mencari kutipan, membandingkan hash: rencana executable/state_delta yang semua pengecekan pemblokirnya lulus akan ditutup sebagai terverifikasi oleh server; pengecekan pemblokir yang gagal menahan kartu di luar Done dan menunjukkan kepada agen apa yang diamati server.Tulis
record_decisionSatu alat, dua kegunaan, satu tabel catatan. (1) Meneruskan putusan yang Anda berikan dalam percakapan tentang pekerjaan selesai yang menunggu Anda — disetujui, kembalikan, buang, nanti — sehingga kartu keluar dari antrean tinjauan; entri disimpan sebagai diteruskan, bukan sebagai tindakan Anda di aplikasi, dan perbedaan itu sengaja tetap terlihat. (2) Mencatat keputusan mandiri yang layak diingat — 'memilih Neon daripada Supabase', sebuah pelajaran — sebagai catatan MADR-lite yang tidak bisa diubah, beserta pilihan yang ditimbang dan kondisi untuk meninjaunya kembali. Catatan tidak pernah diedit: keputusan baru dengan supersedesId menggantikan yang lama, dan yang lama tetap bisa dibaca sebagaimana bunyinya pada hari dibuat. Catatan inilah yang disajikan kembali oleh get_context ke setiap agen minggu depan.Tulis
get_contextKeputusan dan pelajaran yang berlaku di workspace, dikemas sesuai anggaran token, terbaru lebih dulu — yang perlu dibaca agen sebelum memulai apa pun yang tidak sepele. Diturunkan dari keputusan yang tercatat, bukan ditulis sebagai dokumen, jadi tidak bisa basi: keputusan yang digantikan langsung hilang begitu penggantinya dicatat, dan setiap baris membawa tanggalnya. Batasi ke proyek atau tugas untuk mempersempitnya; baris yang tidak muat dalam anggaran dihitung, tidak pernah disembunyikan diam-diam.Baca
get_task_historyApa yang terjadi pada sebuah tugas, bukan hanya field-nya saat ini. Tiga mode: 'summary' (default, ≤500 token — kartunya, tanda terima terbarunya, jumlah-jumlah), 'decisions' (setiap keputusan yang dicatat tentangnya, termasuk putusan dan alasannya — alasan pengerjaan ulang tetap ada di sini setelah penerimaan berikutnya menimpa kartu), 'full' (jurnal mentah, dibatasi 100 peristiwa dan menyebutkannya). Ada karena log audit terlalu ramai untuk dibaca langsung, dan baris tugas hanya menyimpan putusan terakhir.Baca
trash_taskMemindahkan tugas ke sampah di papan Weft Anda. Bisa dipulihkan selama 30 hari lewat restore_task, setelah itu tugas terjadwal menghapusnya secara permanen.Menghapus
restore_taskMemulihkan tugas dari sampah dalam 30 hari sejak dibuang. Tugas kembali ke papan di tempatnya semula, utuh sepenuhnya — sehingga pendiri tunggal tidak pernah kehilangan pekerjaan karena salah hapus.Tulis
archive_done_tasksMengosongkan kolom Done: setiap tugas di dalamnya keluar dari papan ke arsip — tetap ditemukan oleh search/fetch dan tetap tampil di riwayat sprint-nya, tidak pernah dihapus. Menyelesaikan sprint otomatis mengarsipkan tugas selesai milik sprint itu; alat ini menangani sisanya. Alat ini mengambil seluruh kolom dalam satu panggilan, tanpa jumlah dan tanpa jalan kembali dari sisi MCP — restore_task memulihkan dari sampah, bukan dari arsip — itulah sebabnya ia ditandai destruktif: klien sebaiknya meminta konfirmasi pengguna sebelum memanggilnya.Menghapus
list_projectsMenampilkan proyek di papan — konteks ringan (startup, klien, pribadi) yang bisa menjadi tempat sebuah tugas. Proyek yang diarsipkan tidak disertakan kecuali includeArchived diatur.Baca
create_projectMembuat konteks proyek. Nama unik per papan; warna default diambil bergiliran dari palet; url adalah situs web proyek, yang favicon-nya ditampilkan di kartu tugas.Tulis
update_projectMengganti nama proyek, mengubah warna atau url situs webnya, atau mengarsipkan/membatalkan arsipnya. Proyek yang diarsipkan hilang dari pemilih; tugas-tugasnya tetap terkait.Tulis
list_sprintsMenampilkan semua sprint (direncanakan, aktif, selesai, diarsipkan) milik pengguna, sehingga pendiri tunggal atau agen bisa meninjau riwayat sprint dan status saat ini tanpa membuka aplikasi.Baca
get_active_sprintMengembalikan sprint yang sedang aktif, atau null jika tidak ada sprint yang berjalan — sehingga pendiri tunggal atau agen bisa mengecek sasaran saat ini tanpa membuka aplikasi.Baca
create_sprintMembuat sprint baru berstatus "planned" di papan Weft Anda, siap dijadwalkan dengan sasaran dan tanggal. Gunakan start_sprint secara terpisah saat siap mulai bekerja.Tulis
start_sprintMengubah sprint yang direncanakan menjadi aktif. Hanya satu sprint yang bisa aktif dalam satu waktu, di semua paket — jika sprint lain sedang berjalan, panggilan gagal dan menyebutkan namanya; selesaikan sprint itu dulu, lalu coba lagi.Tulis
complete_sprintMenyelesaikan sprint aktif. Tugas-tugasnya yang selesai diarsipkan ke riwayat sprint — keluar dari kolom Done di papan, tetap bisa dicari dan tampil di halaman sprint. Tugas yang belum selesai tetap di papan, terkait dengan sprint itu. Tidak bisa dibatalkan lewat MCP — klien sebaiknya meminta konfirmasi saat maksudnya ambigu.Menghapus
add_task_to_sprintMenetapkan tugas yang sudah ada ke sebuah sprint sehingga muncul di cakupan dan burndown sprint itu. Idempoten — memanggil dua kali tidak menimbulkan efek tambahan, jadi aman untuk dicoba ulang.Tulis
remove_task_from_sprintMelepaskan tugas dari sprint-nya saat ini tanpa menghapusnya — tugas tetap di papan di kolomnya, hanya tidak lagi termasuk dalam cakupan sprint itu atau burndown-nya.Tulis

Pertanyaan

Apa itu server MCP kanban?

Server MCP (Model Context Protocol) yang menyajikan papan kanban sebagai alat yang bisa dipanggil asisten AI: menampilkan kolom, membaca kartu, membuat kartu, memindahkannya ke Doing atau Done. Server milik Weft di-hosting, jadi Anda cukup menambahkan URL alih-alih menjalankan proses di komputer Anda.

Apakah saya perlu memasang atau menjalankan sesuatu?

Tidak. Tambahkan https://letsweft.com/api/mcp ke klien AI Anda dan masuk dengan OAuth. Klien tanpa OAuth memakai token akses pribadi dari Pengaturan → Token akses.

Apakah gratis?

Ya, untuk 50 tugas dan 200 panggilan AI per bulan. Pro menghapus batasnya seharga $7 per kursi per bulan, atau $60 per kursi per tahun.

Apakah berfungsi dengan ChatGPT Free?

Ya. Weft ada di Plugin directory ChatGPT dan berfungsi di semua paket ChatGPT, termasuk Free. Menambahkan URL MCP mentah di ChatGPT adalah fitur Business, Enterprise, dan Edu, tetapi Anda tidak memerlukannya untuk Weft.

Bisakah dua agen berbagi satu papan?

Bisa — justru untuk itulah papan ini dibuat. Setiap agen mengklaim kartu dengan start_task sebelum mengerjakannya, sehingga mereka tidak mengambil kartu yang sama, dan setiap kartu menunjukkan apakah AI atau manusia yang membuat atau menyelesaikannya.

Apa bedanya dengan server MCP kanban lokal?

Server MCP kanban open source berjalan di komputer Anda dan menyimpan papan di file atau database lokal, sehingga hanya agen di komputer itu yang melihatnya. Weft adalah papan bersama yang di-hosting: kartu yang sama di ChatGPT, Claude, Cursor, Codex, aplikasi web, serta aplikasi iOS dan Android, untuk Anda dan tim Anda.

Terkait