En kanban-MCP-server för ChatGPT, Claude, Cursor och Codex

Av Andrei Finogeev, grundare av Weft ·

Weft är en molnbaserad kanbantavla — Backlog, Todo, Doing, Done, med valfria sprintar — och dess MCP-server finns på https://letsweft.com/api/mcp. Lägg till den adressen i din AI-klient och logga in en gång med OAuth; inget att installera eller köra lokalt. Därefter läser assistenten tavlan, skapar och flyttar kort, gör anspråk på ett kort innan den arbetar med det så att två agenter aldrig tar samma, rapporterar framsteg, frågar dig när ett beslut är ditt och stänger kortet med vad den gjorde. Gratis för 50 uppgifter och 200 AI-anrop i månaden.

MCP-serverns adress
https://letsweft.com/api/mcp

Streamable HTTP · OAuth, eller en personlig åtkomsttoken · 32 verktyg

Lägg till den i din AI-klient

ChatGPT

Öppna Weft i ChatGPT — eller konfigurera den manuellt:

  1. 1Öppna Plugins i ChatGPT:s sidofält — eller Settings → Plugins.
  2. 2Sök efter ”Weft” och öppna listningen.
  3. 3Klicka på ”Connect” och gå igenom vad Weft får åtkomst till.
  4. 4Logga in med ditt Weft-konto i fönstret som öppnas.

Nämn pluginet med @ i valfri chatt: ”@Weft vad ligger på min tavla?” — eller välj Weft i +-menyn. Hoppade du över uppsättningen erbjuder ChatGPT att koppla in det på plats.

Claude Desktop

  1. 1Öppna Claude Desktop → Settings → Connectors.
  2. 2Klicka på ”Add custom connector”.
  3. 3Klistra in Wefts MCP-URL nedan och spara.
  4. 4Slutför OAuth i webbläsarfönstret som öppnas.

Starta en ny chatt och fråga: ”vad ligger på min Weft-tavla?”. Claude hämtar tavlans läge via Weft-kopplingen.

Claude Code

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

Kör `claude` i ett valfritt projekt och fråga: ”vad ligger på min tavla?”. Första gången öppnas ett webbläsarfönster för OAuth.

Cursor

Lägg till i Cursor — eller konfigurera den manuellt:

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

Öppna Cursor → Settings → MCP. Servern ”weft” ska dyka upp med en grön indikator när du slutfört OAuth.

Codex CLI

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

Kör `codex mcp login weft` och logga in i webbläsaren, starta sedan `codex` och fråga: ”vad ligger på min tavla?”. `/mcp` listar den anslutna servern och dess verktyg.

VS Code

Installera Weft-tillägget — eller konfigurera den manuellt:

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

Öppna chatten, ställ lägesväljaren på Agent och fråga: ”vad står på min tavla?”. Första gången öppnas ett webbläsarfönster för OAuth. «MCP: List Servers» ska visa weft som Running.

Windsurf

  1. 1Öppna Windsurf → Settings → Cascade → MCP servers.
  2. 2Klicka på ”Add server” och välj Remote (HTTP).
  3. 3Klistra in Wefts MCP-URL nedan och spara.
  4. 4Slutför OAuth i webbläsarfönstret som öppnas.

Öppna Cascade och fråga: ”vad ligger på min tavla?”. Cascade märker de svar som använt Weft-servern.

Gemini CLI

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

Kör `gemini` och fråga: ”vad ligger på min weft-tavla?”. En webbläsare öppnas för OAuth första gången. `gemini extensions list` ska visa ”weft”.

Byggd för agenter, inte bara för dig

Anspråk, inte krockar

start_task lägger ett lån på ett kort innan en agent arbetar med det. En andra agent som ber om arbete får ett annat kort, och ett kort vars agent har tystnat erbjuds igen när lånet går ut.

Framsteg och kvitton

report_progress håller anspråket vid liv medan agenten arbetar; complete_task stänger kortet med vad som gjordes, vad som inte gjordes och länkar du kan kontrollera.

Frågor väntar på dig

request_input lägger en fråga med alternativ i din Inkorg — på webben och i telefonen — i stället för att låta agenten gissa om något som bara du kan avgöra.

Din uppmärksamhet sätter takten

När för mycket färdigt arbete väntar på din granskning slutar agenterna påbörja nya kort. Det är kanbans gräns för pågående arbete, tillämpad på dig.

Du bestämmer vad varje AI får göra

Ge varje ansluten assistent full åtkomst, skrivåtkomst eller endast läsåtkomst, och koppla bort den med ett klick. Raderade kort hamnar i papperskorgen, de försvinner inte direkt.

Weft-tavla i en telefon, kolumnen Doing: tre uppgifter som en AI-assistent har tagit, var och en märkt AI
Assistenterna tar nästa uppgift; varje kort visar vem som arbetar med den.
En avslutad Weft-uppgift skapad av AI, med resultatet som assistenten registrerade: vad den åtgärdade och att 40 testkörningar gick igenom
När en assistent är klar lämnar den ett kvitto: vad den gjorde och hur den kontrollerade det.

De 32 verktygen

Varje verktyg anger om det bara läser, skriver eller tar bort något, så att din klient vet när den ska fråga dig först.

VerktygVad det görTyp
searchSökning på nyckelord i uppgifter, sprintar, beslut och minnesanteckningar. Returnerar upp till 50 rangordnade resultat {id, title, url} vars id:n med typprefix går vidare till fetch.Läser
fetchHämta hela innehållet i ett enskilt sökresultat — titel, textrepresentation, källadress och strukturerad metadata. Tar det id med prefix som search returnerade.Läser
initialize_boardSkapa standardkolumnerna Backlog, Todo, Doing och Done på din Weft-tavla om inga finns — konfigurationen i ett anrop innan en AI-agent hanterar uppgifter. Idempotent.Skriver
get_board_stateReturnera en kompakt lägesbild av användarens Scrumban-tavla: kolumner, aktiv sprint, Doing, försenade uppgifter och nyligen stängda, ungefär 30 gånger mindre än en fullständig ögonblicksbild.Läser
list_columnsLista alla kolumner på tavlan, i ordning — id, namn och position för var och en, så att en agent vet exakt vart en uppgift kan flyttas.Läser
list_tasksReturnera uppgifter för den inloggade användaren, valfritt filtrerade på kolumn, sprint, projekt (namn eller id), skapare (människa eller AI) eller tilldelad (den som utför).Läser
create_taskSkapa en ny uppgift på användarens tavla. Hamnar i Backlog om ingen kolumn anges. Prioriteten är medel som standard. Används när användaren ber om att lägga till en uppgift.Skriver
bulk_create_tasksSkapa upp till 1000 uppgifter i ett atomärt anrop — importera exporter från Linear/Jira/Notion/Trello eller valfri lista med 3+ uppgifter, och använd bara ett AI-anrop av kvoten.Skriver
update_taskÄndra fält i en befintlig uppgift. Bara fälten du skickar ändras; utelämnade fält behålls — med ett undantag: att rensa requiresReview vägras för en agent, och vägran gäller då hela ändringen.Skriver
move_taskFlytta en uppgift till en annan kolumn och position. En flytt till en kolumn med semantic='doing' startar mätningen av cykeltid; en flytt till semantic='done' registrerar tidpunkten för slutförandet.Skriver
start_taskAI:n anropar detta i samma stund som den börjar utföra en uppgift — kortet flyttas till Doing så att användaren och alla andra anslutna klienter ser att den pågår (och inte tar den två gånger). Startar mätningen av cykeltid; en otilldelad uppgift tas av den anropande agenten (en befintlig tilldelning skrivs aldrig över). Inget kolumn-id behövs.Skriver
report_progressSäg att du fortfarande arbetar. Ett anspråk på en uppgift går ut om klienten tystnar, och detta förnyar det. Utan livstecken behandlas en långvarig uppgift som övergiven och erbjuds någon annan — med avsikt, eftersom en agent som dör mitt i en körning inte rapporterar något, så tystnad är den enda signal tavlan har.Skriver
request_inputFråga personen något som bara den kan avgöra, och vänta utan att förlora anspråket på uppgiften. Om personen sitter vid sin klient visas ett formulär där och svaret kommer tillbaka i samma anrop — agenten fortsätter i samma kontext, med samma anspråk. Om personen är borta returnerar anropet parked och frågan väntar i personens kö; svaret når agenten vid dess nästa start_task eller get_my_work. För det oåterkalleliga och det genuint tvetydiga, inte för "får jag fortsätta?" — varje fråga förbrukar samma uppmärksamhetsbudget som begränsar nytt arbete.Skriver
submit_answerTar tillbaka vad personen svarade på en fråga som agenten ställde, och lämnar tillbaka arbetet med samma runId och lån, så att det fortsätter i samma försök i stället för att börja ett nytt från noll. Markeras som vidarebefordrat, aldrig som att personen själv agerat — ett svar som en agent bär fram och ett klick som en människa gör är olika sorters bevis, och tavlan håller isär dem. Om frågan redan besvarats i Weft-appen returneras det svaret i stället för ett fel: det viktiga är att agenten fortsätter med rätt svar.Skriver
get_my_workFråga vad du ska göra härnäst i stället för att läsa hela tavlan och gissa. Returnerar uppgifterna som är tilldelade den här klienten, vad som redan väntar på människan och om uppmärksamhetskön har plats. Den nämner också vad som är försenat och vad som förfaller eller startar inom veckan, så att en agent får höra om en deadline utan att fråga. När kön är full är det nyttiga draget att hjälpa till att beta av den, inte att börja på något nytt — och det här säger det innan en uppgift väljs.Läser
complete_taskAI:n anropar detta när arbetet faktiskt är klart — kortet flyttas till Done med tidpunkten för slutförandet registrerad, och det valfria resultatet (vad som gjordes, var resultatet finns) läggs till på kortet som en anteckning "Outcome (AI, date)". Inget kolumn-id behövs. Arbete som är markerat som att det behöver dig flyttas INTE till Done: det går till din kö med kvittot bifogat, och om agenten sa vad den skulle göra härnäst godkänner ett godkännande exakt det steget och lämnar tillbaka det till agenten. Om uppgiften har en verifieringsplan kör servern dess kontroller just här — hämtar adressen, letar efter citatet, jämför hashen: en plan av typen executable/state_delta vars blockerande kontroller alla går igenom stängs som verifierad av servern; en blockerande kontroll som misslyckas håller kortet borta från Done och visar agenten vad servern observerade.Skriver
record_decisionEtt verktyg, två användningar, en registertabell. (1) Vidarebefordra ett utlåtande som du gav i konversationen om färdigt arbete som väntar på dig — godkänt, skicka tillbaka, släpp det, senare — vilket tar bort kortet från granskningskön; posten sparas som vidarebefordrad snarare än som att du agerat i appen, och den skillnaden hålls synlig med avsikt. (2) Registrera ett fristående beslut värt att minnas — 'valde Neon framför Supabase', en lärdom — som en oföränderlig MADR-lite-post med de vägda alternativen och villkoret för när det ska omprövas. Poster redigeras aldrig: ett nytt beslut med supersedesId ersätter ett gammalt, och det gamla förblir läsbart som det det sa den dag det fattades. Dessa poster är vad get_context lämnar tillbaka till varje agent nästa vecka.Skriver
get_contextArbetsytans gällande beslut och lärdomar, packade till en tokenbudget, nyast först — vad en agent bör läsa innan den börjar med något som inte är trivialt. Härleds från registrerade beslut i stället för att skrivas som ett dokument, så det kan inte ruttna: ett ersatt beslut faller bort i samma stund som ersättaren registreras, och varje rad har sitt datum. Avgränsa till ett projekt eller en uppgift för att snäva in det; rader som inte ryms i budgeten räknas, de döljs aldrig i tysthet.Läser
get_task_historyVad som hänt med en uppgift, inte bara dess nuvarande fält. Tre lägen: 'summary' (standard, ≤500 tokens — kortet, dess senaste kvitto, antal), 'decisions' (varje beslut som registrerats om den, inklusive utlåtanden och deras skäl — skälet till en omarbetning finns kvar här även efter att ett senare godkännande skrivit över kortet), 'full' (den råa journalen, begränsad till 100 händelser och säger det). Finns eftersom en granskningslogg är för pratig för att läsas direkt, och uppgiftsraden bara någonsin har det senaste utlåtandet.Läser
trash_taskFlytta en uppgift till papperskorgen på din Weft-tavla. Kan återställas i 30 dagar via restore_task, därefter raderar ett schemalagt jobb den permanent.Tar bort
restore_taskÅterställ en uppgift från papperskorgen inom 30 dagar efter att den slängts. Uppgiften kommer tillbaka till tavlan där den var, helt intakt — så att en soloföretagare aldrig förlorar arbete på grund av en oavsiktlig radering.Skriver
archive_done_tasksTöm kolumnen Done: varje uppgift i den lämnar tavlan och hamnar i arkivet — hittas fortfarande av search/fetch och visas fortfarande i sin sprints historik, raderas aldrig. När en sprint avslutas arkiveras sprintens färdiga uppgifter automatiskt; det här tar hand om resten. Det tar hela kolumnen i ett anrop, utan antal och utan väg tillbaka från MCP-ytan — restore_task återställer från papperskorgen, inte från arkivet — och därför är det markerat som destruktivt: en klient bör bekräfta med användaren innan den anropar det.Tar bort
list_projectsLista tavlans projekt — lätta sammanhang (en startup, en kund, privat) som en uppgift kan höra till. Utesluter arkiverade projekt om inte includeArchived anges.Läser
create_projectSkapa ett projektsammanhang. Namnet är unikt per tavla; färgen väljs som standard ur en roterande palett; url är projektets webbplats, vars favicon visas på uppgiftskorten.Skriver
update_projectByt namn på ett projekt, ändra dess färg eller webbplatsadress, eller arkivera/avarkivera det. Arkiverade projekt försvinner från väljare; deras uppgifter behåller kopplingen.Skriver
list_sprintsLista alla sprintar (planerade, aktiva, avslutade, arkiverade) för användaren, så att en soloföretagare eller agent kan gå igenom sprinthistoriken och aktuell status utan att öppna appen.Läser
get_active_sprintReturnera den aktiva sprinten, eller null om ingen sprint pågår — så att en soloföretagare eller agent kan kontrollera det aktuella målet utan att öppna appen.Läser
create_sprintSkapa en ny sprint med statusen "planned" på din Weft-tavla, redo att schemaläggas med ett mål och datum. Använd start_sprint separat när det är dags att börja arbeta.Skriver
start_sprintÄndra en planerad sprint till aktiv status. En sprint i taget kan vara aktiv, på alla planer — om en annan sprint pågår misslyckas anropet och nämner den; avsluta den sprinten först och försök sedan igen.Skriver
complete_sprintAvsluta den aktiva sprinten. Dess färdiga uppgifter arkiveras i sprintens historik — bort från tavlans kolumn Done, fortfarande sökbara och visade på sprintens sida. Ofärdiga uppgifter blir kvar på tavlan, kopplade till sprinten. Kan inte ångras via MCP — klienter bör bekräfta när avsikten är oklar.Tar bort
add_task_to_sprintKoppla en befintlig uppgift till en sprint så att den syns i sprintens omfattning och burndown. Idempotent — att anropa två gånger har ingen extra effekt, så det är säkert att försöka igen.Skriver
remove_task_from_sprintKoppla loss en uppgift från dess nuvarande sprint utan att radera den — uppgiften blir kvar på tavlan i sin kolumn, bara inte längre inom den sprinten eller dess burndown.Skriver

Frågor

Vad är en kanban-MCP-server?

En MCP-server (Model Context Protocol) som exponerar en kanbantavla som verktyg som en AI-assistent kan anropa: lista kolumnerna, läsa kort, skapa ett kort, flytta det till Doing eller Done. Wefts är molnbaserad, så du lägger till en adress i stället för att köra en process på din dator.

Behöver jag installera eller köra något?

Nej. Lägg till https://letsweft.com/api/mcp i din AI-klient och logga in med OAuth. Klienter utan OAuth använder en personlig åtkomsttoken från Inställningar → Åtkomsttokens.

Är det gratis?

Ja, för 50 uppgifter och 200 AI-anrop i månaden. Pro tar bort gränserna för $7 per plats och månad, eller $60 per plats och år.

Fungerar det med ChatGPT Free?

Ja. Weft finns i ChatGPT:s Plugin directory och fungerar på alla ChatGPT-planer, även Free. Att lägga till en rå MCP-adress i ChatGPT är en funktion för Business, Enterprise och Edu, men du behöver den inte för Weft.

Kan två agenter dela en tavla?

Ja — det är det tavlan är till för. Varje agent gör anspråk på ett kort med start_task innan den arbetar med det, så att de inte tar samma kort, och varje kort visar om en AI eller en människa skapade eller avslutade det.

Hur skiljer sig detta från en lokal kanban-MCP-server?

MCP-servrar för kanban med öppen källkod körs på din dator och sparar tavlan i en lokal fil eller databas, så bara agenterna på den datorn ser den. Weft är en delad, molnbaserad tavla: samma kort i ChatGPT, Claude, Cursor, Codex, webbappen och apparna för iOS och Android, för dig och ditt team.

Relaterat