Um servidor MCP de kanban para ChatGPT, Claude, Cursor e Codex

Por Andrei Finogeev, fundador do Weft ·

O Weft é um quadro kanban alojado — Backlog, Todo, Doing, Done, com sprints opcionais — e o seu servidor MCP está em https://letsweft.com/api/mcp. Adicione esse URL ao seu cliente de IA e inicie sessão uma vez com OAuth; não há nada para instalar nem para correr localmente. A partir daí, o assistente lê o quadro, cria e move cartões, assume um cartão antes de trabalhar nele para que dois agentes nunca peguem no mesmo, reporta o progresso, pergunta-lhe quando a decisão é sua e fecha o cartão com o que fez. Grátis até 50 tarefas e 200 chamadas de IA por mês.

URL do servidor MCP
https://letsweft.com/api/mcp

Streamable HTTP · OAuth ou um token de acesso pessoal · 32 ferramentas

Adicione-o ao seu cliente de IA

ChatGPT

Abrir o Weft no ChatGPT — ou configure-o manualmente:

  1. 1Abra Plugins na barra lateral do ChatGPT — ou Definições → Plugins.
  2. 2Procure "Weft" e abra a listagem.
  3. 3Clique em "Ligar" e reveja a que o Weft pode aceder.
  4. 4Inicie sessão com a sua conta do Weft na janela pop-up que se abre.

Mencione o plugin com @ em qualquer chat: "@Weft o que há no meu quadro?" — ou escolha o Weft no menu +. Se saltou a configuração, o ChatGPT oferece-se para ligar ali mesmo.

Claude Desktop

  1. 1Abra o Claude Desktop → Definições → Conectores.
  2. 2Clique em "Adicionar conector personalizado".
  3. 3Cole o URL do MCP do Weft abaixo e guarde.
  4. 4Conclua o OAuth na janela do navegador que se abre.

Comece um chat novo e pergunte: "o que há no meu quadro do Weft?". O Claude vai buscar o estado do quadro através do conector do Weft.

Claude Code

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

Corra `claude` em qualquer projeto e pergunte: "o que há no meu quadro?". Da primeira vez, abre-se uma janela do navegador para concluir o OAuth.

Cursor

Adicionar ao Cursor — ou configure-o manualmente:

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

Abra Cursor → Settings → MCP. O servidor "weft" deve aparecer com um indicador verde depois de concluir o OAuth.

Codex CLI

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

Corra `codex mcp login weft` para iniciar sessão pelo navegador, depois abra `codex` e pergunte: "o que há no meu quadro?". O comando `/mcp` lista o servidor ligado e as suas ferramentas.

VS Code

Instalar a extensão do Weft — ou configure-o manualmente:

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

Abra o chat, mude o seletor de modo para Agent e pergunte: «o que há no meu quadro?». Da primeira vez abre-se uma janela do navegador para o OAuth. «MCP: List Servers» deve mostrar weft como Running.

Windsurf

  1. 1Abra Windsurf → Settings → Cascade → MCP servers.
  2. 2Clique em "Add server" e escolha Remote (HTTP).
  3. 3Cole o URL do MCP do Weft abaixo e guarde.
  4. 4Conclua o OAuth na janela do navegador que se abre.

Abra o Cascade e pergunte: "o que há no meu quadro?". O Cascade marca as respostas que usaram o servidor do Weft.

Gemini CLI

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

Corra `gemini` e pergunte: "o que há no meu quadro do weft?". Na primeira utilização, abre-se um navegador para o OAuth. `gemini extensions list` deve mostrar "weft".

Feito para agentes, não só para si

Claims, não colisões

O start_task coloca um lease num cartão antes de um agente trabalhar nele. Um segundo agente que peça trabalho recebe outro cartão, e um cartão cujo agente ficou em silêncio volta a ser oferecido quando o lease expira.

Progresso e comprovativos

O report_progress mantém o claim ativo enquanto o agente trabalha; o complete_task fecha o cartão com o que foi feito, o que não foi e ligações que pode verificar.

As perguntas esperam por si

O request_input deixa uma pergunta com opções na sua Caixa de entrada — na web e no telemóvel — em vez de deixar o agente adivinhar algo que só o utilizador pode decidir.

A sua atenção dita o ritmo

Quando há demasiado trabalho terminado à espera da sua revisão, os agentes deixam de começar cartões novos. É o limite de trabalho em curso do kanban, aplicado a si.

Decide o que cada IA pode fazer

Dê a cada assistente ligado acesso total, de escrita ou só de leitura, e desligue-o com um clique. Os cartões eliminados vão para a reciclagem, não desaparecem de imediato.

Quadro do Weft num telemóvel, coluna Doing: três tarefas que um assistente de IA assumiu, cada uma marcada como IA
Os assistentes pegam na tarefa seguinte; cada cartão mostra quem está a trabalhar nela.
Uma tarefa do Weft criada por IA e concluída, com o resultado que o assistente registou: o que corrigiu e que 40 execuções de testes passaram
Quando um assistente termina, deixa um comprovativo: o que fez e como o verificou.

As 32 ferramentas

Cada ferramenta declara se só lê, se escreve ou se remove algo, para que o seu cliente saiba quando lhe deve perguntar primeiro.

FerramentaO que fazTipo
searchPesquisa por palavra-chave em tarefas, sprints, decisões e notas de memória. Devolve até 50 resultados {id, title, url} ordenados, cujos ids com prefixo do tipo servem de entrada ao fetch.Leitura
fetchObtém o conteúdo completo de um resultado de pesquisa — título, representação em texto, url de origem e metadados estruturados. Recebe o id com prefixo devolvido pelo search.Leitura
initialize_boardCria as colunas predefinidas Backlog, Todo, Doing e Done no seu quadro do Weft, se não existirem — a configuração numa só chamada antes de um agente de IA gerir tarefas. Idempotente.Escrita
get_board_stateDevolve um resumo compacto do quadro Scrumban do utilizador: colunas, sprint ativo, Doing, tarefas em atraso e conclusões recentes, cerca de 30 vezes mais pequeno do que um snapshot completo.Leitura
list_columnsLista todas as colunas do quadro, por ordem — id, nome e posição de cada uma, para que um agente saiba exatamente para onde uma tarefa pode ir.Leitura
list_tasksDevolve as tarefas do utilizador autenticado, opcionalmente filtradas por coluna, sprint, projeto (nome ou id), criador (pessoa ou IA) ou responsável (quem executa).Leitura
create_taskCria uma nova tarefa no quadro do utilizador. Vai para o Backlog se não for indicada coluna. A prioridade predefinida é média. Use quando o utilizador pede para adicionar uma tarefa.Escrita
bulk_create_tasksCria até 1000 tarefas numa só chamada atómica — importe exportações do Linear/Jira/Notion/Trello ou qualquer lista de 3 ou mais tarefas, gastando apenas uma chamada de IA da quota.Escrita
update_taskAltera campos de uma tarefa existente. Só mudam os campos que passar; os omitidos mantêm-se — com uma exceção: limpar requiresReview é recusado a um agente, e a recusa leva consigo toda a alteração.Escrita
move_taskMove uma tarefa para outra coluna e posição. Mover para uma coluna com semantic='doing' inicia a medição do tempo de ciclo; mover para semantic='done' regista a hora de conclusão.Escrita
start_taskA IA chama-a no momento em que começa a executar uma tarefa — o cartão passa para Doing, para que o utilizador e todos os outros clientes ligados o vejam em curso (e não lhe peguem duas vezes). Inicia a medição do tempo de ciclo; uma tarefa sem responsável é assumida pelo agente que chama (um responsável existente nunca é substituído). Não precisa de id de coluna.Escrita
report_progressDiz que ainda está a trabalhar. O claim de uma tarefa expira se o cliente ficar em silêncio, e isto renova-o. Sem um sinal de vida, uma tarefa longa é tratada como abandonada e oferecida a outro — de propósito, porque um agente que morre a meio da execução não reporta nada, por isso o silêncio é o único sinal que o quadro tem.Escrita
request_inputPergunta à pessoa algo que só ela pode decidir e espera sem perder o claim da tarefa. Se estiver no cliente, aparece aí um formulário e a resposta volta dentro da mesma chamada — o agente continua no mesmo contexto, com o mesmo claim. Se estiver ausente, a chamada regressa em espera e a pergunta fica na fila dela; a resposta chega ao agente no seu próximo start_task ou get_my_work. Para o irreversível e o genuinamente ambíguo, não para "posso continuar?" — cada pergunta gasta o mesmo orçamento de atenção que limita o trabalho novo.Escrita
submit_answerTraz de volta o que a pessoa respondeu a uma pergunta que o agente fez e devolve o trabalho com o mesmo runId e lease, para que continue na mesma tentativa em vez de recomeçar do zero. Fica marcado como transmitido, nunca como ação da própria pessoa — uma resposta trazida por um agente e um clique feito por uma pessoa são provas de natureza diferente, e o quadro mantém-nas separadas. Se a pergunta já tiver sido respondida na app do Weft, é essa resposta que é devolvida em vez de um erro: o que importa é que o agente continue com a resposta certa.Escrita
get_my_workPergunte o que fazer a seguir, em vez de ler o quadro inteiro e adivinhar. Devolve as tarefas atribuídas a este cliente, o que já está à espera da pessoa e se a fila de atenção tem espaço. Indica também o que está em atraso e o que vence ou começa dentro da semana, para que um agente saiba de um prazo sem ter de perguntar. Quando a fila está cheia, o útil é ajudar a esvaziá-la, não começar algo novo — e isto di-lo antes de se escolher uma tarefa.Leitura
complete_taskA IA chama-a quando o trabalho está realmente terminado — o cartão passa para Done com a hora de conclusão registada, e o outcome opcional (o que foi feito, onde está o resultado) é acrescentado ao cartão como nota "Outcome (AI, date)". Não precisa de id de coluna. O trabalho marcado como precisando de si NÃO passa para Done: vai para a sua fila com o comprovativo anexado e, se o agente disse o que faria a seguir, aceitar aprova exatamente esse passo e devolve-o ao agente. Se a tarefa tiver um plano de verificação, o servidor executa as verificações ali mesmo — abre o URL, procura a citação, compara o hash: um plano executable/state_delta cujas verificações bloqueantes passam todas fecha verificado pelo servidor; uma verificação bloqueante falhada mantém o cartão fora de Done e mostra ao agente o que o servidor observou.Escrita
record_decisionUma ferramenta, dois usos, uma única tabela de registo. (1) Transmitir um veredito que deu na conversa sobre trabalho terminado à sua espera — aprovado, devolver, descartar, mais tarde —, retirando o cartão da fila de revisão; a entrada fica guardada como transmitida e não como ação sua na app, e essa diferença fica visível de propósito. (2) Registar uma decisão avulsa que valha a pena lembrar — 'escolhemos o Neon em vez do Supabase', uma lição aprendida — como um registo MADR-lite imutável, com as opções ponderadas e a condição para a rever. Os registos nunca são editados: uma nova decisão com supersedesId substitui a antiga, e a antiga continua legível tal como estava no dia em que foi tomada. São estes registos que o get_context entrega a todos os agentes na semana seguinte.Escrita
get_contextAs decisões e lições em vigor no espaço de trabalho, compactadas num orçamento de tokens, das mais recentes para as mais antigas — o que um agente deve ler antes de começar algo que não seja trivial. É derivado das decisões registadas, e não escrito como documento, por isso não envelhece: uma decisão substituída sai no momento em que a substituta é registada, e cada linha traz a sua data. Restrinja-o a um projeto ou a uma tarefa para o limitar; as linhas que não cabem no orçamento são contadas, nunca escondidas em silêncio.Leitura
get_task_historyO que aconteceu a uma tarefa, não só os seus campos atuais. Três modos: 'summary' (predefinido, ≤500 tokens — o cartão, o último comprovativo, contagens), 'decisions' (todas as decisões registadas sobre ela, incluindo vereditos e os seus motivos — o motivo de um retrabalho sobrevive aqui depois de uma aceitação posterior sobrescrever o cartão), 'full' (o registo em bruto, limitado a 100 eventos e dizendo-o). Existe porque um registo de auditoria é demasiado verboso para ler diretamente, e a linha da tarefa só guarda o veredito mais recente.Leitura
trash_taskMove uma tarefa para a reciclagem no seu quadro do Weft. Recuperável durante 30 dias com restore_task; depois disso, uma tarefa agendada elimina-a de vez.Remove
restore_taskRecupera uma tarefa da reciclagem até 30 dias depois de lá ter ido parar. A tarefa volta ao quadro onde estava, intacta — para que um fundador a solo nunca perca trabalho por uma eliminação acidental.Escrita
archive_done_tasksEsvazia a coluna Done: todas as tarefas nela saem do quadro para o arquivo — continuam a ser encontradas por search/fetch e a aparecer no histórico do seu sprint, nunca são eliminadas. Concluir um sprint arquiva automaticamente as tarefas terminadas desse sprint; isto trata do resto. Leva a coluna inteira numa só chamada, sem contagem e sem volta atrás a partir do MCP — o restore_task restaura da reciclagem, não do arquivo —, e é por isso que está marcada como destrutiva: um cliente deve confirmar com o utilizador antes de a chamar.Remove
list_projectsLista os projetos do quadro — contextos leves (uma startup, um cliente, pessoal) a que uma tarefa pode pertencer. Exclui projetos arquivados, a menos que includeArchived esteja definido.Leitura
create_projectCria um contexto de projeto. O nome é único por quadro; a cor predefinida é escolhida de uma paleta rotativa; url é o site do projeto, cujo favicon aparece nos cartões das tarefas.Escrita
update_projectMuda o nome de um projeto, a sua cor ou o url do site, ou arquiva/desarquiva-o. Os projetos arquivados desaparecem dos seletores; as suas tarefas mantêm a associação.Escrita
list_sprintsLista todos os sprints (planeados, ativos, concluídos, arquivados) do utilizador, para que um fundador a solo ou um agente possa rever o histórico de sprints e o estado atual sem abrir a app.Leitura
get_active_sprintDevolve o sprint ativo neste momento, ou null se nenhum estiver a decorrer — para que um fundador a solo ou um agente possa ver o objetivo atual sem abrir a app.Leitura
create_sprintCria um novo sprint com o estado "planned" no seu quadro do Weft, pronto a agendar com um objetivo e datas. Use start_sprint à parte quando estiver pronto para começar a trabalhar.Escrita
start_sprintPassa um sprint planeado ao estado ativo. Só pode haver um sprint ativo de cada vez, em todos os planos — se outro sprint estiver a decorrer, a chamada falha e indica qual; conclua primeiro esse sprint e tente novamente.Escrita
complete_sprintTermina o sprint ativo. As tarefas terminadas são arquivadas no histórico do sprint — saem da coluna Done do quadro, continuam pesquisáveis e aparecem na página do sprint. As tarefas por terminar ficam no quadro, associadas ao sprint. Não pode ser desfeito por MCP — os clientes devem confirmar quando a intenção for ambígua.Remove
add_task_to_sprintAtribui uma tarefa existente a um sprint, para que apareça no âmbito e no burndown desse sprint. Idempotente — chamar duas vezes não tem efeito adicional, por isso é seguro repetir.Escrita
remove_task_from_sprintDesassocia uma tarefa do sprint atual sem a eliminar — a tarefa fica no quadro, na sua coluna, simplesmente deixa de fazer parte desse sprint e do seu burndown.Escrita

Perguntas

O que é um servidor MCP de kanban?

Um servidor MCP (Model Context Protocol) que expõe um quadro kanban como ferramentas que um assistente de IA pode chamar: listar as colunas, ler cartões, criar um cartão, passá-lo para Doing ou Done. O do Weft é alojado, por isso adiciona um URL em vez de correr um processo na sua máquina.

Preciso de instalar ou correr alguma coisa?

Não. Adicione https://letsweft.com/api/mcp ao seu cliente de IA e inicie sessão com OAuth. Os clientes sem OAuth usam um token de acesso pessoal de Definições → Tokens de acesso.

É gratuito?

Sim, até 50 tarefas e 200 chamadas de IA por mês. O Pro remove os limites por 7 US$ por lugar por mês, ou 60 US$ por lugar por ano.

Funciona com o ChatGPT Free?

Sim. O Weft está no Plugin directory do ChatGPT e funciona em todos os planos do ChatGPT, incluindo o Free. Adicionar um URL MCP direto no ChatGPT é uma funcionalidade do Business, Enterprise e Edu, mas não precisa dela para o Weft.

Dois agentes podem partilhar um quadro?

Sim — é para isso que o quadro serve. Cada agente assume um cartão com start_task antes de trabalhar nele, para que não peguem no mesmo cartão, e cada cartão mostra se foi uma IA ou uma pessoa que o criou ou concluiu.

Em que difere de um servidor MCP de kanban local?

Os servidores MCP de kanban open source correm na sua máquina e guardam o quadro num ficheiro ou base de dados local, por isso só os agentes nessa máquina o veem. O Weft é um quadro partilhado e alojado: os mesmos cartões no ChatGPT, no Claude, no Cursor, no Codex, na app web e nas apps para iOS e Android, para si e para a sua equipa.

Relacionados