Kanban MCP-szerver ChatGPT-hez, Claude-hoz, Cursorhoz és Codexhez

Írta: Andrei Finogeev, a Weft alapítója ·

A Weft egy hosztolt kanban tábla — Backlog, Todo, Doing, Done, opcionális sprintekkel —, és az MCP-szervere a https://letsweft.com/api/mcp címen érhető el. Add hozzá ezt az URL-t az AI-kliensedhez, és jelentkezz be egyszer OAuth-tal; semmit nem kell telepíteni vagy helyben futtatni. Ettől kezdve az asszisztens olvassa a táblát, kártyákat hoz létre és mozgat, munka előtt lefoglalja a kártyát, hogy két ügynök soha ne vegye fel ugyanazt, jelenti a haladást, megkérdez, ha a döntés a tiéd, és azzal zárja le a kártyát, amit csinált. Ingyenes 50 feladatig és havi 200 AI-hívásig.

MCP-szerver URL
https://letsweft.com/api/mcp

Streamable HTTP · OAuth vagy személyes hozzáférési token · 32 eszköz

Add hozzá az AI-kliensedhez

ChatGPT

Weft megnyitása a ChatGPT-ben — vagy állítsd be kézzel:

  1. 1Nyisd meg a Pluginokat a ChatGPT oldalsávjában — vagy Settings → Plugins.
  2. 2Keress rá a „Weft” szóra, és nyisd meg a listázást.
  3. 3Kattints a „Connect” gombra, és nézd át, mihez férhet hozzá a Weft.
  4. 4Jelentkezz be a Weft-fiókoddal a megnyíló felugró ablakban.

@-említsd a plugint bármelyik csevegésben: „@Weft mi van a táblámon?” — vagy válaszd a Weftet a + menüből. Ha kihagytad a beállítást, a ChatGPT felajánlja az összekötést helyben.

Claude Desktop

  1. 1Nyisd meg: Claude Desktop → Settings → Connectors.
  2. 2Kattints az „Add custom connector” gombra.
  3. 3Illeszd be az alábbi Weft MCP-URL-t, és mentsd.
  4. 4Fejezd be az OAuth-ot a megnyíló böngészőablakban.

Kezdj új csevegést, és kérdezd: „mi van a Weft-táblámon?”. A Claude a Weft-konnektoron át kéri le a tábla állapotát.

Claude Code

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

Futtasd a `claude` parancsot bármelyik projektben, majd kérdezd: „mi van a táblámon?”. Első alkalommal böngészőablak nyílik az OAuth befejezéséhez.

Cursor

Hozzáadás a Cursorhoz — vagy állítsd be kézzel:

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

Nyisd meg: Cursor → Settings → MCP. A „weft” szervernek zöld jelzéssel kell megjelennie, miután befejezted az OAuth-ot.

Codex CLI

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

Futtasd a `codex mcp login weft` parancsot a böngészős bejelentkezéshez, majd indítsd a `codex` parancsot, és kérdezd: „mi van a táblámon?”. A `/mcp` listázza az összekötött szervert és az eszközeit.

VS Code

A Weft-bővítmény telepítése — vagy állítsd be kézzel:

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

Nyisd meg a Chatet, kapcsold a módválasztót Agentre, és kérdezd: „mi van a táblámon?”. Első alkalommal böngészőablak nyílik az OAuth-hoz. Az „MCP: List Servers” parancsnak Running állapotban kell mutatnia a weftet.

Windsurf

  1. 1Nyisd meg: Windsurf → Settings → Cascade → MCP servers.
  2. 2Kattints az „Add server” gombra, és válaszd a Remote (HTTP) lehetőséget.
  3. 3Illeszd be az alábbi Weft MCP-URL-t, és mentsd.
  4. 4Fejezd be az OAuth-ot a megnyíló böngészőablakban.

Nyisd meg a Cascade-et, és kérdezd: „mi van a táblámon?”. A Cascade megjelöli azokat a válaszokat, amelyek a Weft-szervert használták.

Gemini CLI

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

Futtasd a `gemini` parancsot, és kérdezd: „mi van a weft-táblámon?”. Első használatkor böngésző nyílik az OAuth-hoz. A `gemini extensions list` kimenetében meg kell jelennie a „weft” bejegyzésnek.

Ügynököknek készült, nem csak neked

Lefoglalás ütközések helyett

A start_task lease-t tesz egy kártyára, mielőtt egy ügynök dolgozni kezd rajta. Egy második ügynök, amely munkát kér, másik kártyát kap, és az a kártya, amelynek az ügynöke elhallgatott, a lease lejártakor újra felkínálásra kerül.

Haladás és nyugták

A report_progress életben tartja a lefoglalást, amíg az ügynök dolgozik; a complete_task azzal zárja le a kártyát, mi készült el, mi nem, és ellenőrizhető linkeket ad.

A kérdések rád várnak

A request_input opciókkal együtt kérdést tesz az Inboxodba — a weben és a telefonodon —, ahelyett hogy az ügynök találgatna valamiben, amit csak te dönthetsz el.

A figyelmed szabja meg a tempót

Ha túl sok befejezett munka vár az átnézésedre, az ügynökök nem kezdenek új kártyát. Ez a kanban folyamatban lévő munkára vonatkozó korlátja, rád alkalmazva.

Te döntöd el, mit tehet egy-egy AI

Minden csatlakoztatott asszisztensnek adhatsz teljes, írási vagy csak olvasási hozzáférést, és egy kattintással leválaszthatod. A törölt kártyák a kukába kerülnek, nem tűnnek el azonnal végleg.

Weft-tábla telefonon, Doing oszlop: három feladat, amelyet egy AI-asszisztens vett fel, mindegyik AI jelöléssel
Az asszisztensek felveszik a következő feladatot; minden kártyán látszik, ki dolgozik rajta.
Egy AI által létrehozott, befejezett Weft-feladat az asszisztens által rögzített eredménnyel: mit javított, és hogy 40 tesztfuttatás sikeres volt
Amikor egy asszisztens végez, nyugtát hagy: mit csinált, és hogyan ellenőrizte.

A(z) 32 eszköz

Minden eszköz jelzi, hogy csak olvas, ír, vagy eltávolít valamit, így a kliensed tudja, mikor kell előbb megkérdeznie téged.

EszközMit csinálFajta
searchKulcsszavas keresés feladatokban, sprintekben, döntésekben és memóriajegyzetekben. Legfeljebb 50 rangsorolt {id, title, url} találatot ad vissza, amelyek fajtaelőtagos azonosítói a fetch bemenetéül szolgálnak.Olvas
fetchEgyetlen keresési találat teljes tartalmának lekérése — cím, szöveges megjelenítés, forrás-URL és strukturált metaadatok. A search által visszaadott előtagos azonosítót várja.Olvas
initialize_boardLétrehozza az alapértelmezett Backlog, Todo, Doing és Done oszlopot a Weft-tábládon, ha még nincsenek — ez az egyhívásos beállítás, mielőtt egy AI-ügynök feladatokat kezelne. Idempotens.Ír
get_board_stateTömör összefoglalót ad a felhasználó Scrumban táblájáról: oszlopok, aktív sprint, Doing, lejárt határidejű feladatok és a legutóbbi lezárások, nagyjából 30-szor kisebb egy teljes pillanatképnél.Olvas
list_columnsA tábla összes oszlopát listázza sorrendben — mindegyiknél az azonosítót, a nevet és a pozíciót, így az ügynök pontosan tudja, hová mozgathat egy feladatot.Olvas
list_tasksA hitelesített felhasználó feladatait adja vissza, opcionálisan oszlop, sprint, projekt (név vagy azonosító), létrehozó (ember vagy AI) vagy felelős (a végrehajtó) szerint szűrve.Olvas
create_taskÚj feladatot hoz létre a felhasználó tábláján. Ha nincs megadva oszlop, a Backlogba kerül. A prioritás alapból közepes. Akkor használd, ha a felhasználó feladat hozzáadását kéri.Ír
bulk_create_tasksLegfeljebb 1000 feladatot hoz létre egyetlen atomi hívásban — Linear/Jira/Notion/Trello exportok vagy bármilyen 3+ feladatos lista importálásához, mindössze egy AI-hívásnyi kvótáért.Ír
update_taskEgy meglévő feladat mezőit módosítja. Csak az átadott mezők változnak; a kihagyottak megmaradnak — egy kivétellel: a requiresReview törlését ügynöknek megtagadja, és a megtagadás az egész módosítást elveti.Ír
move_taskEgy feladatot másik oszlopba és pozícióba mozgat. A semantic='doing' oszlopba mozgatás elindítja a ciklusidő mérését; a semantic='done' oszlopba mozgatás rögzíti a befejezés idejét.Ír
start_taskAz AI abban a pillanatban hívja meg, amikor elkezdi végrehajtani a feladatot — a kártya a Doing oszlopba kerül, így a felhasználó és minden más csatlakoztatott kliens látja, hogy folyamatban van (és nem veszi fel kétszer). Elindítja a ciklusidő mérését; a felelős nélküli feladatot a hívó ügynök foglalja le (a meglévő felelőst soha nem írja felül). Oszlopazonosító nem kell.Ír
report_progressJelzi, hogy még dolgozol. A feladat lefoglalása lejár, ha a kliens elhallgat, és ez megújítja. Szívverés nélkül egy hosszan futó feladat elhagyottnak számít, és másnak kínálják fel — szándékosan, mert a futás közben leálló ügynök semmit sem jelent, így a csend az egyetlen jel, ami a táblának rendelkezésére áll.Ír
request_inputMegkérdez valamit az embertől, amit csak ő dönthet el, és a feladat lefoglalásának elvesztése nélkül vár. Ha a kliensénél van, ott megjelenik egy űrlap, és a válasz ugyanabban a hívásban érkezik vissza — az ügynök ugyanabban a kontextusban, ugyanazzal a lefoglalással folytatja. Ha nincs ott, a hívás parkoltatott állapottal tér vissza, és a kérdés a sorában vár; a válasz az ügynök következő start_task vagy get_my_work hívásakor jut el hozzá. A visszafordíthatatlan és a valóban kétértelmű esetekre való, nem arra, hogy „folytathatom?” — minden kérdés ugyanabból a figyelemkeretből fogy, amely az új munkát is korlátozza.Ír
submit_answerVisszahozza, amit az ember az ügynök kérdésére mondott, és ugyanazzal a runId-vel és lease-szel adja vissza a munkát, így az ugyanabban a próbálkozásban folytatódik, nem kezdődik elölről. Továbbítottként jelöli, soha nem úgy, mintha maga az ember cselekedett volna — az ügynök által hozott válasz és az ember kattintása különböző fajta bizonyíték, és a tábla elkülönítve tartja őket. Ha a kérdésre már válaszoltak a Weft appban, hiba helyett azt a választ adja vissza: az számít, hogy az ügynök a helyes válasszal folytassa.Ír
get_my_workMegkérdezi, mi a következő teendő, ahelyett hogy az egész táblát végigolvasná és találgatna. Visszaadja az ehhez a klienshez rendelt feladatokat, azt, ami már az emberre vár, és hogy van-e hely a figyelemsorban. Megnevezi azt is, mi késik, és mi esedékes vagy indul a héten, így az ügynök kérdezés nélkül értesül egy határidőről. Ha a sor megtelt, a hasznos lépés a kiürítésében segíteni, nem újat kezdeni — és ezt még azelőtt megmondja, hogy feladatot választanának.Olvas
complete_taskAz AI akkor hívja meg, amikor a munka valóban elkészült — a kártya a Done oszlopba kerül a befejezés idejével, az opcionális eredmény (mi készült el, hol található az eredmény) pedig "Outcome (AI, date)" jegyzetként a kártyához fűződik. Oszlopazonosító nem kell. Az a munka, amelyhez rád van szükség, NEM kerül a Done oszlopba: a sorodba kerül a csatolt nyugtával, és ha az ügynök megmondta, mit tenne ezután, az elfogadás pontosan azt a lépést hagyja jóvá, és visszaadja az ügynöknek. Ha a feladathoz ellenőrzési terv tartozik, a szerver itt helyben lefuttatja az ellenőrzéseit — lekéri az URL-t, megkeresi az idézetet, összeveti a hash-t: az az executable/state_delta terv, amelynek minden blokkoló ellenőrzése sikeres, szerver által ellenőrzötten zárul; egy sikertelen blokkoló ellenőrzés kívül tartja a kártyát a Done oszlopon, és megmutatja az ügynöknek, mit észlelt a szerver.Ír
record_decisionEgy eszköz, két felhasználás, egy nyilvántartási tábla. (1) Továbbít egy ítéletet, amelyet beszélgetésben mondtál egy rád váró befejezett munkáról — jóváhagyva, vissza vele, elvetve, később —, és ezzel kiveszi a kártyát az átnézési sorból; a bejegyzés továbbítottként tárolódik, nem úgy, mintha te cselekedtél volna az appban, és ez a különbség szándékosan látható marad. (2) Rögzít egy önálló, megjegyzésre érdemes döntést — „a Neont választottuk a Supabase helyett”, egy tanulságot — megváltoztathatatlan MADR-lite bejegyzésként a mérlegelt opciókkal és azzal a feltétellel, amelynél újra kell gondolni. A bejegyzéseket soha nem szerkesztik: egy supersedesId-vel rögzített új döntés felváltja a régit, a régi pedig olvasható marad abban a formában, ahogy a meghozatala napján szólt. Ezeket a bejegyzéseket adja vissza a get_context jövő héten minden ügynöknek.Ír
get_contextA munkaterület élő döntései és tanulságai, egy tokenkeretbe csomagolva, a legújabbak elöl — amit egy ügynöknek el kell olvasnia, mielőtt bármi nem triviálisba kezd. A rögzített döntésekből származik, nem dokumentumként íródik, így nem tud elavulni: egy felváltott döntés abban a pillanatban kiesik, amikor az utódját rögzítik, és minden sor viseli a dátumát. Egy projektre vagy feladatra szűkítheted; a keretbe nem férő sorokat megszámolja, soha nem rejti el csendben.Olvas
get_task_historyMi történt egy feladattal, nem csak a jelenlegi mezői. Három mód: 'summary' (alapértelmezett, ≤500 token — a kártya, a legutóbbi nyugtája, darabszámok), 'decisions' (minden róla rögzített döntés, az ítéletekkel és indoklásukkal együtt — egy átdolgozás oka itt megmarad azután is, hogy egy későbbi elfogadás felülírja a kártyát), 'full' (a nyers napló, legfeljebb 100 eseménnyel, és ezt jelzi is). Azért létezik, mert egy auditnapló túl bőbeszédű ahhoz, hogy közvetlenül olvassák, a feladat sora pedig mindig csak a legutóbbi ítéletet tartja.Olvas
trash_taskEgy feladatot a kukába tesz a Weft-tábládon. 30 napig visszaállítható a restore_task segítségével, utána egy ütemezett feladat véglegesen törli.Eltávolít
restore_taskVisszaállít egy feladatot a kukából a kukába helyezéstől számított 30 napon belül. A feladat sértetlenül visszakerül a táblán oda, ahol volt — így egy egyéni alapító soha nem veszít el munkát egy véletlen törlés miatt.Ír
archive_done_tasksKiüríti a Done oszlopot: minden benne lévő feladat lekerül a tábláról az archívumba — a search/fetch továbbra is megtalálja, és a sprintje előzményeiben is megjelenik, soha nem törlődik. Egy sprint lezárása automatikusan archiválja annak befejezett feladatait; ez kezeli a többit. Egyetlen hívásban viszi az egész oszlopot, darabszám nélkül, és az MCP felől nincs visszaút — a restore_task a kukából állít vissza, nem az archívumból —, ezért van rombolóként jelölve: a kliensnek meg kell erősítenie a felhasználóval, mielőtt meghívja.Eltávolít
list_projectsListázza a tábla projektjeit — könnyű kontextusokat (egy startup, egy ügyfél, személyes), amelyekhez egy feladat tartozhat. Az archivált projekteket kihagyja, hacsak nincs beállítva az includeArchived.Olvas
create_projectProjektkontextust hoz létre. A név táblánként egyedi; a szín alapból egy körbeforgó palettából jön; az url a projekt webhelye, amelynek faviconja a feladatkártyákon jelenik meg.Ír
update_projectÁtnevez egy projektet, megváltoztatja a színét vagy a webhely-URL-jét, illetve archiválja vagy visszaállítja az archívumból. Az archivált projektek eltűnnek a választókból; a feladataik megtartják a hozzárendelést.Ír
list_sprintsA felhasználó összes sprintjét listázza (tervezett, aktív, lezárt, archivált), így egy egyéni alapító vagy ügynök az app megnyitása nélkül áttekintheti a sprintek előzményeit és a jelenlegi állapotot.Olvas
get_active_sprintVisszaadja az éppen aktív sprintet, vagy null értéket, ha nem fut sprint — így egy egyéni alapító vagy ügynök az app megnyitása nélkül ellenőrizheti az aktuális célt.Olvas
create_sprintÚj sprintet hoz létre "planned" állapotban a Weft-tábládon, céllal és dátumokkal ütemezhetően. Ha készen állsz a munkára, külön használd a start_sprint eszközt.Ír
start_sprintEgy tervezett sprintet aktív állapotba állít. Egyszerre egy sprint lehet aktív, minden csomagban — ha egy másik sprint fut, a hívás sikertelen, és megnevezi azt; előbb azt a sprintet zárd le, aztán próbáld újra.Ír
complete_sprintLezárja az aktív sprintet. A befejezett feladatai a sprint előzményeibe archiválódnak — lekerülnek a tábla Done oszlopáról, de kereshetők maradnak, és a sprint oldalán megjelennek. A befejezetlen feladatok a táblán maradnak, a sprinthez csatolva. MCP-n keresztül nem vonható vissza — a klienseknek meg kell erősíteniük, ha a szándék nem egyértelmű.Eltávolít
add_task_to_sprintEgy meglévő feladatot egy sprinthez rendel, hogy megjelenjen annak terjedelmében és burndown diagramján. Idempotens — a kétszeri hívásnak nincs további hatása, így biztonságosan újrapróbálható.Ír
remove_task_from_sprintLeválaszt egy feladatot a jelenlegi sprintjéről törlés nélkül — a feladat a táblán marad az oszlopában, csak már nem tartozik a sprint terjedelmébe és burndown diagramjába.Ír

Kérdések

Mi az a kanban MCP-szerver?

Egy MCP (Model Context Protocol) szerver, amely egy kanban táblát olyan eszközökként tesz elérhetővé, amelyeket egy AI-asszisztens meghívhat: oszlopok listázása, kártyák olvasása, kártya létrehozása, áthelyezése a Doing vagy a Done oszlopba. A Weft szervere hosztolt, így egy URL-t adsz meg, ahelyett hogy egy folyamatot futtatnál a gépeden.

Kell bármit telepítenem vagy futtatnom?

Nem. Add hozzá a https://letsweft.com/api/mcp címet az AI-kliensedhez, és jelentkezz be OAuth-tal. Az OAuth nélküli kliensek a Beállítások → Hozzáférési tokenek alatt létrehozható személyes hozzáférési tokent használják.

Ingyenes?

Igen, 50 feladatig és havi 200 AI-hívásig. A Pro megszünteti a korlátokat helyenként havi 7 $-ért, vagy helyenként évi 60 $-ért.

Működik a ChatGPT Free-vel?

Igen. A Weft szerepel a ChatGPT Plugin directory-jában, és minden ChatGPT-csomagban működik, a Free-ben is. Nyers MCP-URL hozzáadása a ChatGPT-ben Business, Enterprise és Edu funkció, de a Wefthez nincs rá szükséged.

Megoszthat két ügynök egy táblát?

Igen — erre való a tábla. Minden ügynök a start_task segítségével lefoglal egy kártyát, mielőtt dolgozni kezd rajta, így nem veszik fel ugyanazt a kártyát, és minden kártyán látszik, hogy AI vagy ember hozta létre, illetve fejezte be.

Miben különbözik ez egy helyi kanban MCP-szervertől?

A nyílt forráskódú kanban MCP-szerverek a gépeden futnak, és a táblát helyi fájlban vagy adatbázisban tárolják, így csak az azon a gépen futó ügynökök látják. A Weft közös, hosztolt tábla: ugyanazok a kártyák a ChatGPT-ben, a Claude-ban, a Cursorban, a Codexben, a webappban, valamint az iOS- és Android-appokban, neked és a csapatodnak.

Kapcsolódó