Un servidor MCP de kanban per a ChatGPT, Claude, Cursor i Codex
Per Andrei Finogeev, fundador de Weft ·
Weft és un tauler kanban allotjat —Backlog, Todo, Doing, Done, amb sprints opcionals— i el seu servidor MCP és a https://letsweft.com/api/mcp. Afegeix aquesta URL al teu client d'IA i inicia la sessió una vegada amb OAuth; no cal instal·lar ni executar res en local. A partir d'aleshores, l'assistent llegeix el tauler, crea i mou targetes, reclama una targeta abans de treballar-hi perquè dos agents no agafin mai la mateixa, informa del progrés, et pregunta quan la decisió és teva i tanca la targeta amb el que ha fet. Gratis fins a 50 tasques i 200 crides d'IA al mes.
https://letsweft.com/api/mcpStreamable HTTP · OAuth o un token d'accés personal · 32 eines
Afegeix-lo al teu client d'IA
ChatGPT
Obre Weft a ChatGPT — o configura'l manualment:
- 1Obre Plugins a la barra lateral de ChatGPT, o Configuració → Plugins.
- 2Cerca «Weft» i obre el llistat.
- 3Fes clic a «Connecta» i revisa a què pot accedir Weft.
- 4Inicia la sessió amb el teu compte de Weft a la finestra emergent que s'obre.
Menciona el plugin amb @ en qualsevol xat: «@Weft què hi ha al meu tauler?», o tria Weft al menú +. Si t'has saltat la configuració, ChatGPT s'ofereix a connectar-lo allà mateix.
Claude Desktop
- 1Obre Claude Desktop → Configuració → Connectors.
- 2Fes clic a «Afegeix un connector personalitzat».
- 3Enganxa l'URL de l'MCP de Weft que hi ha a sota i desa.
- 4Completa l'OAuth a la finestra del navegador que s'obre.
Comença un xat nou i pregunta: «què hi ha al meu tauler de Weft?». Claude obté l'estat del tauler mitjançant el connector de Weft.
Claude Code
claude mcp add --transport http weft https://letsweft.com/api/mcpExecuta `claude` en qualsevol projecte i pregunta: «què hi ha al meu tauler?». La primera vegada s'obre una finestra del navegador per completar l'OAuth.
Cursor
Afegeix a Cursor — o configura'l manualment:
{
"mcpServers": {
"weft": {
"url": "https://letsweft.com/api/mcp"
}
}
}Obre Cursor → Settings → MCP. El servidor «weft» hauria d'aparèixer amb un indicador verd quan completis l'OAuth.
Codex CLI
[mcp_servers.weft]
url = "https://letsweft.com/api/mcp"Executa `codex mcp login weft` per iniciar la sessió al navegador; després obre `codex` i pregunta: «què hi ha al meu tauler?». L'ordre `/mcp` llista el servidor connectat i les seves eines.
VS Code
Instal·la l'extensió de Weft — o configura'l manualment:
{
"servers": {
"weft": {
"type": "http",
"url": "https://letsweft.com/api/mcp"
}
}
}Obre el xat, posa el selector de mode a Agent i pregunta: «què hi ha al meu tauler?». La primera vegada s'obre una finestra del navegador per a l'OAuth. «MCP: List Servers» hauria de mostrar weft com a Running.
Windsurf
- 1Obre Windsurf → Settings → Cascade → MCP servers.
- 2Fes clic a «Add server» i tria Remote (HTTP).
- 3Enganxa l'URL de l'MCP de Weft de sota i desa.
- 4Completa l'OAuth a la finestra del navegador que s'obre.
Obre Cascade i pregunta: «què hi ha al meu tauler?». Cascade etiqueta les respostes que han fet servir el servidor de Weft.
Gemini CLI
gemini extensions install https://github.com/AndreiFinogeev/weft-gemini-extensionExecuta `gemini` i pregunta: «què hi ha al meu tauler de weft?». La primera vegada s'obre un navegador per a l'OAuth. `gemini extensions list` hauria de mostrar «weft».
Pensat per a agents, no només per a tu
Reclamacions, no col·lisions
start_task posa una concessió temporal sobre una targeta abans que un agent hi treballi. Un segon agent que demana feina en rep una altra, i una targeta l'agent de la qual ha quedat en silenci es torna a oferir quan la concessió caduca.
Progrés i rebuts
report_progress manté viva la reclamació mentre l'agent treballa; complete_task tanca la targeta amb el que s'ha fet, el que no, i enllaços que pots comprovar.
Les preguntes t'esperen
request_input deixa una pregunta amb opcions a la teva Safata d'entrada —al web i al mòbil— en lloc de deixar que l'agent endevini una cosa que només pots decidir tu.
La teva atenció marca el ritme
Quan hi ha massa feina acabada esperant la teva revisió, els agents deixen de començar targetes noves. És el límit de feina en curs del kanban, aplicat a tu.
Tu decideixes què pot fer cada IA
Dona a cada assistent connectat accés complet, d'escriptura o només de lectura, i desconnecta'l amb un clic. Les targetes esborrades van a la paperera, no desapareixen del tot.


Les 32 eines
Cada eina declara si només llegeix, si escriu o si elimina alguna cosa, perquè el teu client sàpiga quan t'ha de preguntar primer.
| Eina | Què fa | Tipus |
|---|---|---|
| search | Cerca per paraules clau entre tasques, sprints, decisions i notes de memòria. Retorna fins a 50 resultats {id, title, url} ordenats per rellevància, amb ids prefixats pel tipus que es passen a fetch. | Lectura |
| fetch | Obté el contingut complet d'un sol resultat de cerca: títol, representació en text, url d'origen i metadades estructurades. Rep l'id prefixat que retorna search. | Lectura |
| initialize_board | Crea les columnes per defecte Backlog, Todo, Doing i Done al teu tauler de Weft si no n'hi ha cap: la configuració d'una sola crida abans que un agent d'IA gestioni tasques. Idempotent. | Escriptura |
| get_board_state | Retorna un resum compacte del tauler Scrumban de l'usuari: columnes, sprint actiu, Doing, tasques endarrerides i tancaments recents, unes 30 vegades més petit que una instantània completa. | Lectura |
| list_columns | Llista totes les columnes del tauler, en ordre —id, nom i posició de cadascuna—, perquè un agent sàpiga exactament on pot moure una tasca. | Lectura |
| list_tasks | Retorna les tasques de l'usuari autenticat, opcionalment filtrades per columna, sprint, projecte (nom o id), creador (persona o IA) o responsable (qui l'executa). | Lectura |
| create_task | Crea una tasca nova al tauler de l'usuari. Va a Backlog si no s'indica cap columna. La prioritat per defecte és mitjana. Fes-la servir quan l'usuari demana afegir una tasca. | Escriptura |
| bulk_create_tasks | Crea fins a 1000 tasques en una sola crida atòmica —importa exportacions de Linear/Jira/Notion/Trello o qualsevol llista de 3 o més tasques— gastant només una crida d'IA de la quota. | Escriptura |
| update_task | Modifica camps d'una tasca existent. Només canvien els camps que passes; els que omets es conserven, amb una excepció: es refusa que un agent esborri requiresReview, i el refús s'emporta tota la modificació. | Escriptura |
| move_task | Mou una tasca a una altra columna i posició. Moure-la a una columna amb semantic='doing' comença a mesurar el temps de cicle; moure-la a semantic='done' registra l'hora de finalització. | Escriptura |
| start_task | La IA la crida en el moment que comença a executar una tasca: la targeta passa a Doing perquè l'usuari i tots els altres clients connectats la vegin en curs (i no l'agafin dues vegades). Comença a mesurar el temps de cicle; una tasca sense responsable la reclama l'agent que fa la crida (mai no es substitueix un responsable existent). No cal id de columna. | Escriptura |
| report_progress | Diu que encara hi estàs treballant. La reclamació d'una tasca caduca si el client queda en silenci, i això la renova. Sense un batec, una tasca llarga es considera abandonada i s'ofereix a algú altre; és deliberat, perquè un agent que mor a mitja execució no informa de res, així que el silenci és l'únic senyal que té el tauler. | Escriptura |
| request_input | Pregunta a la persona una cosa que només ella pot decidir, i espera sense perdre la reclamació de la tasca. Si és al seu client, hi apareix un formulari i la resposta torna dins de la mateixa crida: l'agent continua en el mateix context, amb la mateixa reclamació. Si no hi és, la crida torna aparcada i la pregunta espera a la seva cua; la resposta arriba a l'agent en el següent start_task o get_my_work. Per al que és irreversible i el que és realment ambigu, no per a «puc continuar?»: cada pregunta gasta el mateix pressupost d'atenció que limita la feina nova. | Escriptura |
| submit_answer | Torna el que la persona ha dit a una pregunta que havia fet l'agent, i retorna la feina amb el mateix runId i la mateixa concessió, perquè continuï en el mateix intent en lloc de començar-ne un de nou en fred. Es marca com a transmesa, mai com si la persona hagués actuat ella mateixa: una resposta que porta un agent i un clic que fa una persona són proves de tipus diferent, i el tauler les manté separades. Si la pregunta ja s'havia respost a l'aplicació de Weft, es retorna aquella resposta en lloc d'un error: el que importa és que l'agent continuï amb la correcta. | Escriptura |
| get_my_work | Pregunta què has de fer ara en lloc de llegir tot el tauler i endevinar-ho. Retorna les tasques assignades a aquest client, el que ja està esperant la persona i si hi ha lloc a la cua d'atenció. També indica què està endarrerit i què venç o comença aquesta setmana, perquè un agent s'assabenti d'un termini sense haver de preguntar. Quan la cua és plena, el que és útil és ajudar a buidar-la, no començar res de nou, i això ho diu abans que es triï cap tasca. | Lectura |
| complete_task | La IA la crida quan la feina està realment acabada: la targeta passa a Done amb l'hora de finalització registrada, i el resultat opcional (què s'ha fet, on és el resultat) s'afegeix a la targeta com una nota «Outcome (AI, date)». No cal id de columna. La feina marcada com que et necessita NO passa a Done: va a la teva cua amb el rebut adjunt, i si l'agent ha dit què faria després, acceptar aprova exactament aquell pas i el torna a l'agent. Si la tasca porta un pla de verificació, el servidor n'executa les comprovacions aquí mateix —obre la URL, busca la cita, compara el hash—: un pla executable/state_delta amb totes les comprovacions bloquejants superades es tanca verificat pel servidor; una comprovació bloquejant fallida manté la targeta fora de Done i mostra a l'agent el que ha observat el servidor. | Escriptura |
| record_decision | Una eina, dos usos, una sola taula de registre. (1) Transmetre un veredicte que has donat a la conversa sobre feina acabada que t'espera —aprovada, tornar-la enrere, descartar-la, més tard—, cosa que treu la targeta de la cua de revisió; l'entrada es desa com a transmesa i no com si haguessis actuat tu a l'aplicació, i aquesta diferència es manté visible expressament. (2) Registrar una decisió independent que valgui la pena recordar —«hem triat Neon en lloc de Supabase», una lliçó apresa— com un registre immutable de tipus MADR-lite, amb les opcions valorades i la condició per revisar-la. Els registres no s'editen mai: una decisió nova amb supersedesId en substitueix una d'antiga, i l'antiga continua llegible tal com era el dia que es va prendre. Aquests registres són els que get_context torna a tots els agents la setmana següent. | Escriptura |
| get_context | Les decisions i lliçons vigents de l'espai de treball, empaquetades dins d'un pressupost de tokens, de la més nova a la més antiga: el que un agent hauria de llegir abans de començar qualsevol cosa no trivial. Es deriva de les decisions registrades en lloc d'escriure's com un document, així que no es pot quedar antiquat: una decisió substituïda desapareix en el moment que se'n registra la substituta, i cada línia porta la seva data. Limita-la a un projecte o a una tasca per acotar-la; les línies que no caben al pressupost es compten, mai no s'amaguen en silenci. | Lectura |
| get_task_history | Què ha passat amb una tasca, no només els seus camps actuals. Tres modes: 'summary' (per defecte, ≤500 tokens: la targeta, el seu últim rebut, recomptes), 'decisions' (totes les decisions registrades sobre ella, inclosos els veredictes i els seus motius; el motiu d'un retorn per refer sobreviu aquí després que una acceptació posterior sobreescrigui la targeta), 'full' (el diari en brut, limitat a 100 esdeveniments i dient-ho). Existeix perquè un registre d'auditoria és massa verbós per llegir-lo directament, i la fila de la tasca només guarda l'últim veredicte. | Lectura |
| trash_task | Mou una tasca a la paperera del teu tauler de Weft. Es pot recuperar durant 30 dies amb restore_task; després, una tasca programada l'esborra definitivament. | Elimina |
| restore_task | Recupera una tasca de la paperera dins dels 30 dies després d'haver-la llençat. La tasca torna al tauler on era, intacta, perquè un fundador en solitari no perdi mai feina per un esborrat accidental. | Escriptura |
| archive_done_tasks | Buida la columna Done: totes les tasques que hi ha surten del tauler cap a l'arxiu; continuen apareixent a search/fetch i a l'historial del seu sprint, mai no s'esborren. Completar un sprint arxiva automàticament les tasques acabades d'aquell sprint; això s'encarrega de la resta. Agafa tota la columna en una sola crida, sense recompte i sense marxa enrere des de la superfície MCP —restore_task restaura des de la paperera, no des de l'arxiu—, i per això està marcada com a destructiva: un client hauria de confirmar-ho amb l'usuari abans de cridar-la. | Elimina |
| list_projects | Llista els projectes del tauler: contextos lleugers (una startup, un client, el personal) als quals pot pertànyer una tasca. Exclou els projectes arxivats, tret que s'indiqui includeArchived. | Lectura |
| create_project | Crea un context de projecte. El nom és únic per tauler; el color per defecte surt d'una paleta rotativa; url és el lloc web del projecte, el favicon del qual es mostra a les targetes de les tasques. | Escriptura |
| update_project | Canvia el nom d'un projecte, el color o la url del lloc web, o l'arxiva o desarxiva. Els projectes arxivats desapareixen dels selectors; les seves tasques mantenen l'associació. | Escriptura |
| list_sprints | Llista tots els sprints (planificats, actius, completats, arxivats) de l'usuari, perquè un fundador en solitari o un agent pugui revisar l'historial i l'estat actual dels sprints sense obrir l'aplicació. | Lectura |
| get_active_sprint | Retorna el sprint actiu, o null si no n'hi ha cap en curs, perquè un fundador en solitari o un agent pugui consultar l'objectiu actual sense obrir l'aplicació. | Lectura |
| create_sprint | Crea un sprint nou en estat "planned" al teu tauler de Weft, a punt per programar-lo amb un objectiu i unes dates. Fes servir start_sprint per separat quan vulguis començar a treballar. | Escriptura |
| start_sprint | Passa un sprint planificat a l'estat actiu. Només pot haver-hi un sprint actiu alhora, en tots els plans: si n'hi ha un altre en curs, la crida falla i l'anomena; completa primer aquell sprint i torna-ho a provar. | Escriptura |
| complete_sprint | Acaba el sprint actiu. Les seves tasques acabades s'arxiven a l'historial del sprint: fora de la columna Done del tauler, però encara es poden cercar i es mostren a la pàgina del sprint. Les tasques no acabades es queden al tauler, vinculades al sprint. No es pot desfer via MCP: els clients haurien de confirmar-ho quan la intenció no és clara. | Elimina |
| add_task_to_sprint | Assigna una tasca existent a un sprint perquè aparegui a l'abast i al burndown d'aquell sprint. Idempotent: cridar-la dues vegades no té cap efecte addicional, així que es pot tornar a provar sense risc. | Escriptura |
| remove_task_from_sprint | Desvincula una tasca del seu sprint actual sense esborrar-la: la tasca es queda al tauler, a la seva columna, simplement ja no forma part de l'abast d'aquell sprint ni del seu burndown. | Escriptura |
Preguntes
Què és un servidor MCP de kanban?
Un servidor MCP (Model Context Protocol) que exposa un tauler kanban com a eines que un assistent d'IA pot cridar: llistar les columnes, llegir targetes, crear-ne una, moure-la a Doing o Done. El de Weft és allotjat, així que afegeixes una URL en lloc d'executar un procés a la teva màquina.
He d'instal·lar o executar alguna cosa?
No. Afegeix https://letsweft.com/api/mcp al teu client d'IA i inicia la sessió amb OAuth. Els clients sense OAuth fan servir un token d'accés personal de Configuració → Tokens d'accés.
És gratis?
Sí, fins a 50 tasques i 200 crides d'IA al mes. Pro elimina els límits per 7 $ per usuari al mes, o 60 $ per usuari l'any.
Funciona amb ChatGPT Free?
Sí. Weft és al Plugin directory de ChatGPT i funciona en tots els plans de ChatGPT, Free inclòs. Afegir una URL MCP directament a ChatGPT és una funció de Business, Enterprise i Edu, però no la necessites per a Weft.
Dos agents poden compartir un tauler?
Sí, per a això serveix el tauler. Cada agent reclama una targeta amb start_task abans de treballar-hi, així que no agafen la mateixa, i cada targeta mostra si l'ha creada o acabada una IA o una persona.
En què es diferencia d'un servidor MCP de kanban local?
Els servidors MCP de kanban de codi obert s'executen a la teva màquina i guarden el tauler en un fitxer o una base de dades local, de manera que només el veuen els agents d'aquella màquina. Weft és un tauler compartit i allotjat: les mateixes targetes a ChatGPT, Claude, Cursor, Codex, l'aplicació web i les aplicacions per a iOS i Android, per a tu i el teu equip.