Kanban MCP -palvelin ChatGPT:lle, Claudelle, Cursorille ja Codexille
Kirjoittanut Andrei Finogeev, Weftin perustaja ·
Weft on isännöity kanban-taulu — Backlog, Todo, Doing, Done, ja sprintit valinnaisina — ja sen MCP-palvelin on osoitteessa https://letsweft.com/api/mcp. Lisää osoite tekoälyasiakkaaseesi ja kirjaudu kerran OAuthilla; mitään ei tarvitse asentaa tai ajaa paikallisesti. Siitä lähtien avustaja lukee taulua, luo ja siirtää kortteja, varaa kortin ennen kuin tekee sitä, jotta kaksi agenttia ei koskaan ota samaa, raportoi edistymisestä, kysyy sinulta, kun päätös kuuluu sinulle, ja sulkee kortin kertoen, mitä teki. Ilmainen 50 tehtävälle ja 200 tekoälykutsulle kuukaudessa.
https://letsweft.com/api/mcpStreamable HTTP · OAuth tai henkilökohtainen pääsytunnus · 32 työkalua
Lisää se tekoälyasiakkaaseesi
ChatGPT
Avaa Weft ChatGPT:ssä — tai määritä se käsin:
- 1Avaa Plugins ChatGPT:n sivupalkista — tai Settings → Plugins.
- 2Hae ”Weft” ja avaa listaus.
- 3Napsauta ”Connect” ja tarkista, mihin Weft saa pääsyn.
- 4Kirjaudu Weft-tililläsi avautuvassa ponnahdusikkunassa.
Mainitse lisäosa @-merkillä missä tahansa keskustelussa: ”@Weft mitä taulullani on?” — tai valitse Weft +-valikosta. Jos ohitit asennuksen, ChatGPT tarjoaa yhdistämistä suoraan keskustelussa.
Claude Desktop
- 1Avaa Claude Desktop → Settings → Connectors.
- 2Napsauta ”Add custom connector”.
- 3Liitä alla oleva Weftin MCP-URL ja tallenna.
- 4Viimeistele OAuth avautuvassa selainikkunassa.
Aloita uusi keskustelu ja kysy: ”mitä Weft-taulullani on?”. Claude hakee taulun tilan Weft-liittimen kautta.
Claude Code
claude mcp add --transport http weft https://letsweft.com/api/mcpAja `claude` missä tahansa projektissa ja kysy: ”mitä taulullani on?”. Ensimmäisellä kerralla avautuu selainikkuna OAuthin viimeistelyä varten.
Cursor
Lisää Cursoriin — tai määritä se käsin:
{
"mcpServers": {
"weft": {
"url": "https://letsweft.com/api/mcp"
}
}
}Avaa Cursor → Settings → MCP. ”weft”-palvelimen pitäisi näkyä vihreällä merkillä, kun olet viimeistellyt OAuthin.
Codex CLI
[mcp_servers.weft]
url = "https://letsweft.com/api/mcp"Aja `codex mcp login weft` kirjautuaksesi selaimen kautta, käynnistä sitten `codex` ja kysy: ”mitä taulullani on?”. `/mcp` listaa yhdistetyn palvelimen ja sen työkalut.
VS Code
Asenna Weft-laajennus — tai määritä se käsin:
{
"servers": {
"weft": {
"type": "http",
"url": "https://letsweft.com/api/mcp"
}
}
}Avaa Chat, vaihda tilavalitsin asentoon Agent ja kysy: ”mitä taulullani on?”. Ensimmäisellä kerralla avautuu selainikkuna OAuthia varten. ”MCP: List Servers” -komennon pitäisi näyttää weft tilassa Running.
Windsurf
- 1Avaa Windsurf → Settings → Cascade → MCP servers.
- 2Napsauta ”Add server” ja valitse Remote (HTTP).
- 3Liitä alla oleva Weftin MCP-URL ja tallenna.
- 4Viimeistele OAuth avautuvassa selainikkunassa.
Avaa Cascade ja kysy: ”mitä taulullani on?”. Cascade merkitsee vastaukset, joissa Weft-palvelinta käytettiin.
Gemini CLI
gemini extensions install https://github.com/AndreiFinogeev/weft-gemini-extensionAja `gemini` ja kysy: ”mitä weft-taulullani on?”. Selain avautuu OAuthia varten ensimmäisellä kerralla. `gemini extensions list` -komennon pitäisi näyttää ”weft”.
Tehty agenteille, ei vain sinulle
Varauksia, ei törmäyksiä
start_task asettaa kortille leasen ennen kuin agentti alkaa tehdä sitä. Toinen työtä pyytävä agentti saa eri kortin, ja kortti, jonka agentti hiljeni, tarjotaan uudelleen, kun lease raukeaa.
Edistyminen ja kuitit
report_progress pitää varauksen voimassa agentin työskennellessä; complete_task sulkee kortin kertoen, mitä tehtiin, mitä ei, ja linkit, jotka voit tarkistaa.
Kysymykset odottavat sinua
request_input jättää kysymyksen vaihtoehtoineen Saapuneisiisi — verkossa ja puhelimessa — sen sijaan, että agentti arvaisi jotain, minkä vain sinä voit päättää.
Sinun huomiosi määrää tahdin
Kun katselmointiasi odottaa liikaa valmista työtä, agentit lakkaavat aloittamasta uusia kortteja. Se on kanbanin keskeneräisen työn raja, sovellettuna sinuun.
Sinä päätät, mitä kukin tekoäly saa tehdä
Anna jokaiselle yhdistetylle avustajalle täysi, kirjoitus- tai vain luku -oikeus, ja katkaise yhteys yhdellä klikkauksella. Poistetut kortit menevät roskakoriin, eivät katoa suoraan olemattomiin.


32 työkalua
Jokainen työkalu ilmoittaa, lukeeko se vain, kirjoittaako se vai poistaako se jotain, joten asiakkaasi tietää, milloin kysyä sinulta ensin.
| Työkalu | Mitä se tekee | Tyyppi |
|---|---|---|
| search | Avainsanahaku tehtävistä, sprinteistä, päätöksistä ja muistiinpanoista. Palauttaa enintään 50 järjestettyä {id, title, url} -tulosta, joiden tyyppietuliitteiset id:t syötetään fetchille. | Luku |
| fetch | Hakee yksittäisen hakutuloksen koko sisällön — otsikon, tekstiesityksen, lähdeosoitteen ja rakenteiset metatiedot. Ottaa searchin palauttaman etuliitteellisen id:n. | Luku |
| initialize_board | Luo Weft-taulullesi oletussarakkeet Backlog, Todo, Doing ja Done, jos niitä ei ole — yhden kutsun alkuasetus ennen kuin tekoälyagentti hallitsee tehtäviä. Idempotentti. | Kirjoitus |
| get_board_state | Palauttaa tiiviin katsauksen käyttäjän Scrumban-tauluun: sarakkeet, aktiivinen sprintti, Doing, myöhässä olevat tehtävät ja viimeksi suljetut, noin 30 kertaa pienempänä kuin täysi tilannekuva. | Luku |
| list_columns | Listaa taulun kaikki sarakkeet järjestyksessä — kunkin id, nimi ja sijainti, jotta agentti tietää tarkalleen, minne tehtävän voi siirtää. | Luku |
| list_tasks | Palauttaa todennetun käyttäjän tehtävät, valinnaisesti suodatettuna sarakkeen, sprintin, projektin (nimi tai id), luojan (ihminen vai tekoäly) tai vastuuhenkilön (tekijän) mukaan. | Luku |
| create_task | Luo uuden tehtävän käyttäjän taululle. Päätyy Backlogiin, jos saraketta ei anneta. Prioriteetti on oletuksena keskitaso. Käytä, kun käyttäjä pyytää lisäämään tehtävän. | Kirjoitus |
| bulk_create_tasks | Luo enintään 1000 tehtävää yhdellä atomisella kutsulla — tuo Linear-, Jira-, Notion- tai Trello-viennit tai minkä tahansa vähintään 3 tehtävän listan yhden tekoälykutsun kiintiöllä. | Kirjoitus |
| update_task | Päivittää olemassa olevan tehtävän kenttiä. Vain annetut kentät muuttuvat; pois jätetyt säilyvät — yhdellä poikkeuksella: agentilta evätään requiresReview-kentän tyhjentäminen, ja epääminen hylkää koko päivityksen. | Kirjoitus |
| move_task | Siirtää tehtävän toiseen sarakkeeseen ja kohtaan. Siirto sarakkeeseen, jonka semantic='doing', käynnistää läpimenoajan seurannan; siirto sarakkeeseen semantic='done' kirjaa valmistumisajan. | Kirjoitus |
| start_task | Tekoäly kutsuu tätä heti, kun se alkaa tehdä tehtävää — kortti siirtyy Doingiin, jotta käyttäjä ja jokainen muu yhdistetty asiakas näkee sen olevan kesken (eikä ota sitä kahdesti). Käynnistää läpimenoajan seurannan; vastuuhenkilötön tehtävä varataan kutsuvalle agentille (olemassa olevaa vastuuhenkilöä ei koskaan ohiteta). Sarakkeen id:tä ei tarvita. | Kirjoitus |
| report_progress | Kertoo, että työ on yhä käynnissä. Tehtävän varaus vanhenee, jos asiakas hiljenee, ja tämä uusii sen. Ilman sydämenlyöntiä pitkään kestävä tehtävä katsotaan hylätyksi ja tarjotaan jollekulle muulle — tarkoituksella, koska kesken ajon kuoleva agentti ei raportoi mitään, joten hiljaisuus on ainoa signaali, joka taululla on. | Kirjoitus |
| request_input | Kysyy ihmiseltä jotain, minkä vain hän voi päättää, ja odottaa menettämättä tehtävän varausta. Jos hän on asiakkaansa ääressä, siellä näkyy lomake ja vastaus palaa saman kutsun sisällä — agentti jatkaa samassa kontekstissa samalla varauksella. Jos hän on poissa, kutsu palaa pysäköitynä ja kysymys odottaa hänen jonossaan; vastaus tavoittaa agentin sen seuraavassa start_task- tai get_my_work-kutsussa. Peruuttamattomiin ja aidosti epäselviin asioihin, ei kysymykseen "saanko jatkaa?" — jokainen kysymys kuluttaa samaa huomiobudjettia, joka rajaa uutta työtä. | Kirjoitus |
| submit_answer | Tuo takaisin, mitä ihminen vastasi agentin esittämään kysymykseen, ja palauttaa työn samalla runId:llä ja leasella, jotta se jatkuu samana yrityksenä eikä ala kylmiltään. Merkitään välitetyksi, ei koskaan ihmisen omaksi toiminnaksi — agentin välittämä vastaus ja ihmisen tekemä klikkaus ovat eri lajin todisteita, ja taulu pitää ne erillään. Jos kysymykseen on jo vastattu Weft-sovelluksessa, palautetaan se vastaus virheen sijaan: olennaista on, että agentti jatkaa oikealla vastauksella. | Kirjoitus |
| get_my_work | Kysyy, mitä tehdä seuraavaksi, sen sijaan että lukisi koko taulun ja arvaisi. Palauttaa tälle asiakkaalle osoitetut tehtävät, sen mikä jo odottaa ihmistä, ja sen, onko huomiojonossa tilaa. Se nimeää myös myöhässä olevat sekä viikon sisällä erääntyvät tai alkavat tehtävät, joten agentti kuulee määräajasta kysymättä. Kun jono on täynnä, hyödyllinen siirto on auttaa purkamaan sitä, ei aloittaa uutta — ja tämä sanoo sen ennen kuin tehtävä valitaan. | Luku |
| complete_task | Tekoäly kutsuu tätä, kun työ on todella valmis — kortti siirtyy Doneen valmistumisaika kirjattuna, ja valinnainen lopputulos (mitä tehtiin, missä tulos on) lisätään kortille muistiinpanona "Outcome (AI, date)". Sarakkeen id:tä ei tarvita. Sinua vaativaksi merkitty työ EI siirry Doneen: se menee jonoosi kuitti liitettynä, ja jos agentti kertoi, mitä tekisi seuraavaksi, hyväksyminen hyväksyy juuri sen vaiheen ja palauttaa sen agentille. Jos tehtävällä on varmennussuunnitelma, palvelin suorittaa sen tarkistukset tässä — hakee osoitteen, etsii lainauksen, vertaa tiivistettä: executable/state_delta-suunnitelma, jonka kaikki estävät tarkistukset menevät läpi, suljetaan palvelimen varmentamana; epäonnistunut estävä tarkistus pitää kortin poissa Donesta ja näyttää agentille, mitä palvelin havaitsi. | Kirjoitus |
| record_decision | Yksi työkalu, kaksi käyttöä, yksi kirjaustaulu. (1) Välittää keskustelussa antamasi ratkaisun sinua odottavasta valmiista työstä — hyväksytty, palauta, hylkää, myöhemmin — ja poistaa kortin katselmointijonosta; merkintä tallennetaan välitettynä eikä sinun toimintanasi sovelluksessa, ja ero pidetään tarkoituksella näkyvissä. (2) Kirjaa erillisen muistamisen arvoisen päätöksen — 'valittiin Neon Supabasen sijaan', opittu läksy — muuttumattomana MADR-lite-tietueena punnittuine vaihtoehtoineen ja ehtoineen, jolloin asiaan palataan. Tietueita ei koskaan muokata: uusi päätös supersedesId-kentällä korvaa vanhan, ja vanha pysyy luettavana sellaisena kuin se oli tekopäivänään. Näitä tietueita get_context tarjoaa jokaiselle agentille ensi viikolla. | Kirjoitus |
| get_context | Työtilan voimassa olevat päätökset ja opit tunnusbudjettiin pakattuina, uusimmat ensin — mitä agentin pitäisi lukea ennen kuin aloittaa mitään ei-triviaalia. Johdettu kirjatuista päätöksistä eikä kirjoitettu dokumenttina, joten se ei voi vanhentua: korvattu päätös putoaa pois heti, kun sen korvaaja kirjataan, ja jokaisella rivillä on päivämäärä. Rajaa se projektiin tai tehtävään kaventaaksesi sitä; budjettiin mahtumattomat rivit lasketaan, niitä ei koskaan piiloteta hiljaa. | Luku |
| get_task_history | Mitä tehtävälle tapahtui, ei vain sen nykyiset kentät. Kolme tilaa: 'summary' (oletus, ≤500 tunnusta — kortti, sen viimeisin kuitti, määrät), 'decisions' (jokainen siitä kirjattu päätös ratkaisuineen ja perusteluineen — uudelleentyön syy säilyy täällä, vaikka myöhempi hyväksyntä kirjoittaa kortin yli), 'full' (raaka loki, enintään 100 tapahtumaa, ja se kerrotaan). Olemassa, koska auditointiloki on liian runsassanainen luettavaksi suoraan, ja tehtävärivillä on aina vain viimeisin ratkaisu. | Luku |
| trash_task | Siirtää tehtävän Weft-taulusi roskakoriin. Palautettavissa 30 päivän ajan restore_task-työkalulla, minkä jälkeen ajastettu työ poistaa sen pysyvästi. | Poisto |
| restore_task | Palauttaa tehtävän roskakorista 30 päivän sisällä sen poistamisesta. Tehtävä palaa taululle sinne, missä se oli, täysin ehjänä — joten soolo-perustaja ei koskaan menetä työtä vahingossa tehdyn poiston vuoksi. | Kirjoitus |
| archive_done_tasks | Tyhjentää Done-sarakkeen: jokainen siinä oleva tehtävä siirtyy taululta arkistoon — yhä löydettävissä search/fetch-työkaluilla ja yhä näkyvissä sprinttinsä historiassa, ei koskaan poistettuna. Sprintin päättäminen arkistoi sen valmiit tehtävät automaattisesti; tämä hoitaa loput. Se ottaa koko sarakkeen yhdellä kutsulla, ilman määrää ja ilman paluuta MCP:n kautta — restore_task palauttaa roskakorista, ei arkistosta — minkä vuoksi se on merkitty tuhoavaksi: asiakkaan pitäisi varmistaa käyttäjältä ennen kutsumista. | Poisto |
| list_projects | Listaa taulun projektit — kevyet kontekstit (startup, asiakas, henkilökohtainen), joihin tehtävä voi kuulua. Arkistoidut projektit jätetään pois, ellei includeArchived ole asetettu. | Luku |
| create_project | Luo projektikontekstin. Nimi on yksilöllinen taulua kohden; väri valitaan oletuksena vuorottelevasta paletista; url on projektin verkkosivusto, jonka favicon näytetään tehtäväkorteissa. | Kirjoitus |
| update_project | Nimeää projektin uudelleen, vaihtaa sen värin tai verkkosivuston osoitteen tai arkistoi / palauttaa sen arkistosta. Arkistoidut projektit katoavat valitsimista; niiden tehtävät säilyttävät liitoksen. | Kirjoitus |
| list_sprints | Listaa käyttäjän kaikki sprintit (suunnitellut, aktiiviset, valmiit, arkistoidut), jotta soolo-perustaja tai agentti voi tarkastella sprinttihistoriaa ja nykytilaa avaamatta sovellusta. | Luku |
| get_active_sprint | Palauttaa käynnissä olevan sprintin tai null, jos sprinttiä ei ole käynnissä — jotta soolo-perustaja tai agentti voi tarkistaa nykyisen tavoitteen avaamatta sovellusta. | Luku |
| create_sprint | Luo Weft-taulullesi uuden sprintin tilassa "planned", valmiina aikataulutettavaksi tavoitteella ja päivämäärillä. Käytä erikseen start_sprint-työkalua, kun olet valmis aloittamaan. | Kirjoitus |
| start_sprint | Siirtää suunnitellun sprintin aktiiviseksi. Kerrallaan voi olla aktiivisena yksi sprintti, kaikilla tasoilla — jos toinen sprintti on käynnissä, kutsu epäonnistuu ja nimeää sen; päätä se sprintti ensin ja yritä sitten uudelleen. | Kirjoitus |
| complete_sprint | Päättää aktiivisen sprintin. Sen valmiit tehtävät arkistoidaan sprintin historiaan — pois taulun Done-sarakkeesta, yhä haettavissa ja näkyvissä sprintin sivulla. Keskeneräiset tehtävät jäävät taululle sprinttiin liitettyinä. Ei voi perua MCP:n kautta — asiakkaiden pitäisi varmistaa, kun aikomus on epäselvä. | Poisto |
| add_task_to_sprint | Liittää olemassa olevan tehtävän sprinttiin, jotta se näkyy sprintin laajuudessa ja burndownissa. Idempotentti — kahdesti kutsuminen ei vaikuta enempää, joten uudelleenyritys on turvallinen. | Kirjoitus |
| remove_task_from_sprint | Irrottaa tehtävän nykyisestä sprintistään poistamatta sitä — tehtävä pysyy taululla sarakkeessaan, se ei vain enää kuulu sen sprintin laajuuteen tai burndowniin. | Kirjoitus |
Kysymykset
Mikä on kanban MCP -palvelin?
MCP (Model Context Protocol) -palvelin, joka tarjoaa kanban-taulun työkaluina, joita tekoälyavustaja voi kutsua: listata sarakkeet, lukea kortteja, luoda kortin, siirtää sen Doingiin tai Doneen. Weftin palvelin on isännöity, joten lisäät osoitteen sen sijaan, että ajaisit prosessia koneellasi.
Tarvitseeko minun asentaa tai ajaa mitään?
Ei. Lisää https://letsweft.com/api/mcp tekoälyasiakkaaseesi ja kirjaudu OAuthilla. Asiakkaat, joissa ei ole OAuthia, käyttävät henkilökohtaista pääsytunnusta kohdasta Asetukset → Pääsytunnukset.
Onko se ilmainen?
Kyllä, 50 tehtävälle ja 200 tekoälykutsulle kuukaudessa. Pro poistaa rajat hintaan $7 paikalta kuukaudessa tai $60 paikalta vuodessa.
Toimiiko se ChatGPT Freessä?
Kyllä. Weft on ChatGPT:n Plugin directoryssa ja toimii kaikilla ChatGPT:n tasoilla, Free mukaan lukien. Pelkän MCP-osoitteen lisääminen ChatGPT:ssä on Business-, Enterprise- ja Edu-tasojen ominaisuus, mutta Weft ei sitä tarvitse.
Voivatko kaksi agenttia jakaa yhden taulun?
Kyllä — sitä varten taulu on. Jokainen agentti varaa kortin start_task-työkalulla ennen kuin tekee sitä, joten ne eivät ota samaa korttia, ja jokainen kortti näyttää, loiko tai viimeistelikö sen tekoäly vai ihminen.
Miten tämä eroaa paikallisesta kanban MCP -palvelimesta?
Avoimen lähdekoodin kanban MCP -palvelimet toimivat koneellasi ja tallentavat taulun paikalliseen tiedostoon tai tietokantaan, joten vain sen koneen agentit näkevät sen. Weft on jaettu, isännöity taulu: samat kortit ChatGPT:ssä, Claudessa, Cursorissa, Codexissa, verkkosovelluksessa sekä iOS- ja Android-sovelluksissa, sinulle ja tiimillesi.