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

Por Andrei Finogeev, fundador do Weft ·

O Weft é um quadro kanban hospedado — Backlog, Todo, Doing, Done, com sprints opcionais — e o servidor MCP dele fica em https://letsweft.com/api/mcp. Adicione essa URL ao seu cliente de IA e entre uma vez com OAuth; não há nada para instalar nem rodar localmente. A partir daí, o assistente lê o quadro, cria e move cartões, faz o claim de um cartão antes de trabalhar nele para que dois agentes nunca peguem o mesmo, relata o progresso, pergunta a você quando a decisão é sua e fecha o cartão com o que fez. Grátis para 50 tarefas e 200 chamadas de IA por mês.

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

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

Adicione ao seu cliente de IA

ChatGPT

Abrir o Weft no ChatGPT — ou configure manualmente:

  1. 1Abra Plugins na barra lateral do ChatGPT — ou Configurações → Plugins.
  2. 2Busque "Weft" e abra a listagem.
  3. 3Clique em "Conectar" e revise o que o Weft pode acessar.
  4. 4Entre com sua conta do Weft na janela pop-up que se abre.

Mencione o plugin com @ em qualquer chat: "@Weft o que tem no meu quadro?" — ou escolha o Weft no menu +. Se você pulou a configuração, o ChatGPT se oferece para conectar ali mesmo.

Claude Desktop

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

Comece um chat novo e pergunte: "o que tem no meu quadro do Weft?". O Claude busca o estado do quadro pelo conector do Weft.

Claude Code

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

Rode `claude` em qualquer projeto e pergunte: "o que tem no meu quadro?". Na primeira vez, uma janela do navegador abre para concluir o OAuth.

Cursor

Adicionar ao Cursor — ou configure 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 que você concluir o OAuth.

Codex CLI

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

Rode `codex mcp login weft` para entrar pelo navegador, depois abra `codex` e pergunte: "o que tem no meu quadro?". O comando `/mcp` lista o servidor conectado e suas ferramentas.

VS Code

Instalar a extensão do Weft — ou configure 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 tem no meu quadro?». Na primeira vez abre 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 a URL do MCP do Weft abaixo e salve.
  4. 4Conclua o OAuth na janela do navegador que se abre.

Abra o Cascade e pergunte: "o que tem 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

Rode `gemini` e pergunte: "o que tem no meu quadro do weft?". No primeiro uso, um navegador abre para o OAuth. `gemini extensions list` deve mostrar "weft".

Feito para agentes, não só para você

Claims, não colisões

O start_task coloca um lease em um cartão antes de um agente trabalhar nele. Um segundo agente que pede trabalho recebe outro cartão, e um cartão cujo agente ficou em silêncio é oferecido de novo quando o lease expira.

Progresso e recibos

O report_progress mantém o claim vivo enquanto o agente trabalha; o complete_task fecha o cartão com o que foi feito, o que não foi e links que você pode conferir.

As perguntas esperam por você

O request_input coloca uma pergunta com opções na sua Caixa de entrada — na web e no celular — em vez de deixar o agente adivinhar algo que só você pode decidir.

A sua atenção dita o ritmo

Quando há trabalho concluído demais esperando a sua revisão, os agentes param de começar cartões novos. É o limite de trabalho em andamento do kanban, aplicado a você.

Você decide o que cada IA pode fazer

Dê a cada assistente conectado acesso total, de escrita ou só de leitura, e desconecte-o com um clique. Cartões excluídos vão para a lixeira, em vez de deixarem de existir na hora.

Quadro do Weft no celular, coluna Doing: três tarefas que um assistente de IA assumiu, cada uma marcada como IA
Os assistentes pegam a próxima tarefa; cada cartão mostra quem está trabalhando nela.
Uma tarefa do Weft criada por IA e concluída, com o resultado que o assistente registrou: o que ele corrigiu e que 40 execuções de teste passaram
Quando um assistente termina, ele deixa um recibo: o que fez e como conferiu.

As 32 ferramentas

Cada ferramenta declara se só lê, se escreve ou se remove algo, para que o seu cliente saiba quando perguntar a você antes.

FerramentaO que fazTipo
searchBusca por palavra-chave em tarefas, sprints, decisões e notas de memória. Retorna até 50 resultados {id, title, url} ordenados por relevância, cujos ids com prefixo de tipo servem de entrada para o fetch.Leitura
fetchRecupera o conteúdo completo de um resultado de busca — título, representação em texto, url de origem e metadados estruturados. Recebe o id com prefixo retornado pelo search.Leitura
initialize_boardCria as colunas padrão Backlog, Todo, Doing e Done no seu quadro do Weft se ainda não existirem — a configuração em uma chamada antes de um agente de IA gerenciar tarefas. Idempotente.Escrita
get_board_stateRetorna um resumo compacto do quadro Scrumban do usuário: colunas, sprint ativa, Doing, tarefas atrasadas e conclusões recentes, cerca de 30 vezes menor que um snapshot completo.Leitura
list_columnsLista todas as colunas do quadro, em ordem — id, nome e posição de cada uma, para que o agente saiba exatamente para onde uma tarefa pode ir.Leitura
list_tasksRetorna as tarefas do usuário autenticado, com filtro opcional 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 usuário. Vai para o Backlog se nenhuma coluna for indicada. A prioridade padrão é média. Use quando o usuário pedir para adicionar uma tarefa.Escrita
bulk_create_tasksCria até 1000 tarefas em uma única chamada atômica — importe exportações do Linear/Jira/Notion/Trello ou qualquer lista de 3 ou mais tarefas, gastando só uma chamada de IA da cota.Escrita
update_taskAltera campos de uma tarefa existente. Só os campos enviados mudam; os omitidos são preservados — com uma exceção: limpar requiresReview é recusado para um agente, e a recusa derruba a alteração inteira.Escrita
move_taskMove uma tarefa para outra coluna e posição. Mover para uma coluna com semantic='doing' inicia a medição do cycle time; mover para semantic='done' registra o horário de conclusão.Escrita
start_taskA IA chama esta ferramenta no momento em que começa a executar uma tarefa — o cartão vai para Doing, para que o usuário e todos os outros clientes conectados o vejam em andamento (e não o peguem duas vezes). Inicia a medição do cycle time; uma tarefa sem responsável é assumida pelo agente que chamou (um responsável já definido nunca é substituído). Não precisa de id de coluna.Escrita
report_progressDiz que você ainda está trabalhando. O claim de uma tarefa expira se o cliente fica em silêncio, e isto o renova. Sem esse sinal de vida, uma tarefa longa é tratada como abandonada e oferecida a outra pessoa — de propósito, porque um agente que morre no meio da execução não relata nada, então 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 ela estiver no cliente, aparece um formulário ali e a resposta volta dentro da mesma chamada — o agente continua no mesmo contexto, com o mesmo claim. Se ela estiver ausente, a chamada retorna estacionada e a pergunta espera na fila dela; a resposta chega ao agente no próximo start_task ou get_my_work. Serve para o irreversível e o realmente 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 disse sobre uma pergunta que o agente fez e devolve o trabalho com o mesmo runId e o mesmo lease, para que ele continue na mesma tentativa em vez de começar uma do zero. Fica marcado como repassado, nunca como se a própria pessoa tivesse agido — uma resposta levada por um agente e um clique feito por uma pessoa são tipos diferentes de evidência, e o quadro os mantém separados. Se a pergunta já foi respondida no app do Weft, essa resposta é retornada em vez de um erro: o que importa é que o agente continue com a resposta certa.Escrita
get_my_workPergunta o que fazer a seguir em vez de ler o quadro inteiro e adivinhar. Retorna as tarefas atribuídas a este cliente, o que já está esperando pela pessoa e se a fila de atenção tem espaço. Também aponta o que está atrasado e o que vence ou começa dentro da semana, para que o agente saiba de um prazo sem perguntar. Quando a fila está cheia, o útil é ajudar a esvaziá-la, não começar algo novo — e isto é dito antes de escolher uma tarefa.Leitura
complete_taskA IA chama esta ferramenta quando o trabalho está de fato terminado — o cartão vai para Done com o horário de conclusão registrado, e o resultado opcional (o que foi feito, onde está o resultado) é anexado ao cartão como uma nota "Outcome (AI, date)". Não precisa de id de coluna. Trabalho marcado como precisando de você NÃO vai para Done: vai para a sua fila com o recibo anexado e, se o agente disse o que faria em seguida, aceitar aprova exatamente esse passo e o devolve ao agente. Se a tarefa tiver um plano de verificação, o servidor executa as checagens ali mesmo — abre a URL, procura a citação, compara o hash: um plano executable/state_delta cujas checagens bloqueantes passam todas fecha como verificado pelo servidor; uma checagem bloqueante que falha mantém o cartão fora de Done e mostra ao agente o que o servidor observou.Escrita
record_decisionUma ferramenta, dois usos, uma só tabela de registro. (1) Repassar um veredito que você deu na conversa sobre trabalho concluído que espera por você — aprovado, devolver, descartar, depois — tirando o cartão da fila de revisão; o registro fica guardado como repassado, e não como se você tivesse agido no app, e essa diferença fica visível de propósito. (2) Registrar uma decisão avulsa que vale lembrar — 'escolhemos Neon em vez de Supabase', uma lição aprendida — como um registro imutável no estilo MADR-lite, com as opções consideradas e a condição para revisitá-la. Os registros nunca são editados: uma nova decisão com supersedesId substitui a antiga, e a antiga continua legível como o que dizia no dia em que foi tomada. São esses registros que o get_context entrega de volta a todos os agentes na semana seguinte.Escrita
get_contextAs decisões e lições em vigor no workspace, compactadas em um orçamento de tokens, das mais novas para as mais antigas — o que um agente deve ler antes de começar qualquer coisa não trivial. Derivado das decisões registradas, e não escrito como documento, então não fica desatualizado: uma decisão substituída sai no momento em que a substituta é registrada, e cada linha traz a sua data. Restrinja a um projeto ou a uma tarefa para afunilar; linhas que não cabem no orçamento são contadas, nunca escondidas em silêncio.Leitura
get_task_historyO que aconteceu com uma tarefa, não só os campos atuais. Três modos: 'summary' (padrão, ≤500 tokens — o cartão, o recibo mais recente, contagens), 'decisions' (todas as decisões registradas sobre ela, inclusive vereditos e seus motivos — o motivo de um retrabalho sobrevive aqui depois que um aceite posterior sobrescreve o cartão), 'full' (o diário bruto, limitado a 100 eventos e avisando disso). Existe porque um log de auditoria é verboso demais para ler direto, e a linha da tarefa só guarda o veredito mais recente.Leitura
trash_taskMove uma tarefa para a lixeira do seu quadro do Weft. Recuperável por 30 dias via restore_task; depois disso, uma rotina agendada a apaga de vez.Remove
restore_taskRecupera uma tarefa da lixeira em até 30 dias depois de ela ir para lá. A tarefa volta ao quadro onde estava, intacta — para que um fundador solo nunca perca trabalho por uma exclusão acidental.Escrita
archive_done_tasksLimpa a coluna Done: todas as tarefas dela saem do quadro e vão para o arquivo — continuam aparecendo no search/fetch e no histórico da sprint, nunca são apagadas. Concluir uma sprint arquiva automaticamente as tarefas terminadas dela; esta ferramenta cuida do resto. Ela leva a coluna inteira em uma chamada, sem contagem e sem volta pela superfície MCP — o restore_task restaura da lixeira, não do arquivo —, e por isso é marcada como destrutiva: o cliente deve confirmar com o usuário antes de chamá-la.Remove
list_projectsLista os projetos do quadro — contextos leves (uma startup, um cliente, pessoal) aos quais uma tarefa pode pertencer. Exclui projetos arquivados, a menos que includeArchived seja definido.Leitura
create_projectCria um contexto de projeto. O nome é único por quadro; a cor padrão vem de uma paleta em rodízio; url é o site do projeto, cujo favicon aparece nos cartões das tarefas.Escrita
update_projectRenomeia um projeto, muda a cor ou a url do site, ou arquiva/desarquiva. Projetos arquivados somem dos seletores; as tarefas deles mantêm o vínculo.Escrita
list_sprintsLista todas as sprints (planejadas, ativas, concluídas, arquivadas) do usuário, para que um fundador solo ou um agente revise o histórico e o status atual das sprints sem abrir o app.Leitura
get_active_sprintRetorna a sprint ativa no momento, ou null se nenhuma estiver em andamento — para que um fundador solo ou um agente confira a meta atual sem abrir o app.Leitura
create_sprintCria uma nova sprint com status "planned" no seu quadro do Weft, pronta para ser agendada com meta e datas. Use start_sprint separadamente quando for começar o trabalho.Escrita
start_sprintPassa uma sprint planejada para o status ativo. Só uma sprint pode estar ativa por vez, em todos os planos — se outra estiver em andamento, a chamada falha e diz qual é; conclua essa sprint primeiro e tente de novo.Escrita
complete_sprintEncerra a sprint ativa. As tarefas terminadas dela são arquivadas no histórico da sprint — saem da coluna Done do quadro, mas continuam pesquisáveis e aparecem na página da sprint. Tarefas não terminadas ficam no quadro, vinculadas à sprint. Não pode ser desfeito via MCP — os clientes devem confirmar quando a intenção for ambígua.Remove
add_task_to_sprintAtribui uma tarefa existente a uma sprint para que ela apareça no escopo e no burndown dessa sprint. Idempotente — chamar duas vezes não tem efeito extra, então é seguro tentar de novo.Escrita
remove_task_from_sprintDesvincula uma tarefa da sprint atual sem apagá-la — a tarefa continua no quadro, na sua coluna, só deixa de fazer parte do escopo e do burndown daquela sprint.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, movê-lo para Doing ou Done. O do Weft é hospedado, então você adiciona uma URL em vez de rodar um processo na sua máquina.

Preciso instalar ou rodar alguma coisa?

Não. Adicione https://letsweft.com/api/mcp ao seu cliente de IA e entre com OAuth. Clientes sem OAuth usam um token de acesso pessoal criado em Configurações → Tokens de acesso.

É grátis?

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

Funciona com o ChatGPT Free?

Sim. O Weft está no Plugin directory do ChatGPT e funciona em todos os planos do ChatGPT, inclusive o Free. Adicionar uma URL MCP direta no ChatGPT é recurso do Business, do Enterprise e do Edu, mas você não precisa disso para o Weft.

Dois agentes podem compartilhar um quadro?

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

Qual a diferença para um servidor MCP de kanban local?

Os servidores MCP de kanban open source rodam na sua máquina e guardam o quadro em um arquivo ou banco de dados local, então só os agentes daquela máquina o veem. O Weft é um quadro compartilhado e hospedado: os mesmos cartões no ChatGPT, no Claude, no Cursor, no Codex, no app web e nos apps para iOS e Android, para você e o seu time.

Relacionados