Weft
UK

Канбан MCP-сервер для ChatGPT, Claude, Cursor і Codex

Автор — Андрій Фіногеєв, засновник Weft ·

Weft — це хостована канбан-дошка — Backlog, Todo, Doing, Done, із необов’язковими спринтами, — а її MCP-сервер розміщено за адресою https://letsweft.com/api/mcp. Додай цю адресу у свій ШІ-клієнт і один раз увійди через OAuth; нічого не треба встановлювати чи запускати локально. Відтоді асистент читає дошку, створює й переносить картки, бере картку за собою, перш ніж над нею працювати, щоб два агенти ніколи не взяли ту саму, звітує про прогрес, питає тебе, коли рішення за тобою, і закриває картку з описом того, що зробив. Безкоштовно для 50 завдань і 200 викликів ШІ на місяць.

Адреса MCP-сервера
https://letsweft.com/api/mcp

Streamable HTTP · OAuth або особистий токен доступу · інструментів: 32

Додай його у свій ШІ-клієнт

ChatGPT

Відкрити Weft у ChatGPT — або налаштуй вручну:

  1. 1Відкрий Plugins на бічній панелі ChatGPT — або Settings → Plugins.
  2. 2Знайди «Weft» і відкрий картку.
  3. 3Натисни «Connect» і переглянь, до чого Weft отримує доступ.
  4. 4Увійди у свій обліковий запис Weft у спливному вікні.

Згадай плагін через @ у будь-якому чаті: «@Weft що в мене на дошці?» — або вибери Weft у меню +. Якщо ти пропустив налаштування, ChatGPT запропонує підключити його просто в розмові.

Claude Desktop

  1. 1Відкрий Claude Desktop → Settings → Connectors.
  2. 2Натисни «Add custom connector».
  3. 3Встав адресу MCP Weft, наведену нижче, і збережи.
  4. 4Пройди OAuth у вікні браузера, що відкриється.

Почни новий чат і запитай: «що в мене на дошці Weft?». Claude отримає стан дошки через конектор Weft.

Claude Code

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

Запусти `claude` у будь-якому проєкті й запитай: «що в мене на дошці?». Першого разу відкриється вікно браузера, щоб пройти OAuth.

Cursor

Додати в Cursor — або налаштуй вручну:

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

Відкрий Cursor → Settings → MCP. Після проходження OAuth сервер «weft» має з’явитися там із зеленим індикатором.

Codex CLI

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

Виконай `codex mcp login weft`, щоб увійти через браузер, потім запусти `codex` і запитай: «що в мене на дошці?». `/mcp` покаже підключений сервер і його інструменти.

VS Code

Встановити розширення Weft — або налаштуй вручну:

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

Відкрий Chat, перемкни вибір режиму на Agent і запитай: «що в мене на дошці?». Першого разу відкриється вікно браузера для OAuth. «MCP: List Servers» має показати weft зі статусом Running.

Windsurf

  1. 1Відкрий Windsurf → Settings → Cascade → MCP servers.
  2. 2Натисни «Add server» і вибери Remote (HTTP).
  3. 3Встав адресу MCP Weft, наведену нижче, і збережи.
  4. 4Пройди OAuth у вікні браузера, що відкриється.

Відкрий Cascade і запитай: «що в мене на дошці?». Cascade позначає відповіді, у яких використовувався сервер Weft.

Gemini CLI

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

Запусти `gemini` і запитай: «що в мене на дошці weft?». Під час першого використання відкриється браузер для OAuth. `gemini extensions list` має показати «weft».

Створено для агентів, а не лише для тебе

Заявки замість зіткнень

start_task бере картку в оренду, перш ніж агент почне над нею працювати. Другий агент, який попросить роботу, отримає іншу картку, а картку, агент якої замовк, запропонують знову, коли оренда спливе.

Прогрес і звіти

report_progress підтримує заявку живою, поки агент працює; complete_task закриває картку з тим, що зроблено, що ні, і посиланнями, які можна перевірити.

Запитання чекають на тебе

request_input кладе запитання з варіантами у твої Вхідні — у вебі й на телефоні, — щоб агент не вгадував те, що можеш вирішити лише ти.

Темп задає твоя увага

Коли на твою перевірку чекає забагато готової роботи, агенти перестають брати нові картки. Це канбанівський ліміт незавершеної роботи, застосований до тебе.

Ти вирішуєш, що може кожен ШІ

Дай кожному підключеному асистенту повний доступ, доступ на запис або лише на читання й відключай його одним кліком. Видалені картки потрапляють у кошик, а не зникають назавжди.

Дошка Weft на телефоні, колонка Doing: три завдання, які взяв ШІ-асистент, кожне з позначкою AI
Асистенти беруть наступне завдання; на кожній картці видно, хто над нею працює.
Завершене завдання Weft, створене ШІ, з результатом, який записав асистент: що він виправив і що 40 тестових прогонів пройшли
Закінчивши, асистент залишає звіт: що зробив і як перевірив.

Інструменти: 32

Кожен інструмент оголошує, чи він лише читає, записує чи щось видаляє, тож твій клієнт знає, коли спершу спитати тебе.

ІнструментЩо робитьТип
searchПошук за ключовими словами серед завдань, спринтів, рішень і нотаток пам’яті. Повертає до 50 ранжованих результатів {id, title, url}, чиї id з префіксом типу передаються у fetch.Читання
fetchОтримує повний вміст одного результату пошуку — назву, текстове подання, url джерела й структуровані метадані. Приймає id з префіксом, який повернув search.Читання
initialize_boardСтворює на твоїй дошці Weft стандартні колонки Backlog, Todo, Doing і Done, якщо їх немає, — налаштування одним викликом, перш ніж ШІ-агент почне керувати завданнями. Ідемпотентний.Запис
get_board_stateПовертає стисле зведення Scrumban-дошки користувача: колонки, активний спринт, Doing, прострочені завдання й нещодавно закриті — приблизно в 30 разів менше за повний знімок.Читання
list_columnsПерелічує всі колонки дошки по порядку — id, назву й позицію кожної, щоб агент точно знав, куди можна перенести завдання.Читання
list_tasksПовертає завдання автентифікованого користувача, за бажання з фільтром за колонкою, спринтом, проєктом (назва чи id), автором (людина чи ШІ) або виконавцем (assignee).Читання
create_taskСтворює нове завдання на дошці користувача. Якщо колонку не вказано, воно потрапляє в Backlog. Пріоритет за замовчуванням — середній. Використовується, коли користувач просить додати завдання.Запис
bulk_create_tasksСтворює до 1000 завдань одним атомарним викликом — імпорт експортів Linear/Jira/Notion/Trello або будь-якого списку з 3+ завдань, витрачаючи лише один виклик ШІ з квоти.Запис
update_taskЧастково оновлює поля наявного завдання. Змінюються лише передані поля; пропущені зберігаються — з одним винятком: агенту відмовлено в очищенні requiresReview, і разом із відмовою відхиляється вся зміна.Запис
move_taskПереносить завдання в іншу колонку й позицію. Перенесення в колонку з semantic='doing' запускає облік часу циклу; перенесення в semantic='done' записує час завершення.Запис
start_taskШІ викликає його в ту мить, коли починає виконувати завдання, — картка переходить у Doing, тож користувач і кожен інший підключений клієнт бачать, що вона в роботі (і не беруть її вдруге). Запускає облік часу циклу; завдання без виконавця закріплюється за агентом, що викликав (наявного виконавця ніколи не перезаписує). id колонки не потрібен.Запис
report_progressПовідомляє, що ти ще працюєш. Заявка на завдання спливає, якщо клієнт замовкає, а цей виклик її поновлює. Без пульсу довге завдання вважається покинутим і пропонується комусь іншому — навмисно, бо агент, що впав посеред роботи, нічого не повідомляє, тож мовчання — єдиний сигнал, який має дошка.Запис
request_inputПитає людину про те, що може вирішити лише вона, і чекає, не втрачаючи заявки на завдання. Якщо людина в своєму клієнті, там з’являється форма, і відповідь повертається в межах того самого виклику — агент продовжує в тому самому контексті, з тією самою заявкою. Якщо людини немає, виклик повертається відкладеним, а запитання чекає в її черзі; відповідь дійде до агента під час наступного start_task або get_my_work. Для незворотного й справді неоднозначного, а не для «можна продовжити?» — кожне запитання витрачає той самий бюджет уваги, що обмежує нову роботу.Запис
submit_answerПовертає те, що людина відповіла на запитання агента, і передає роботу назад із тим самим runId і орендою, тож вона продовжується в тій самій спробі, а не починається з нуля. Позначається як передане, а ніколи не як дія самої людини — відповідь, яку переніс агент, і клік людини — різні види доказів, і дошка тримає їх окремо. Якщо на запитання вже відповіли в застосунку Weft, повертається ця відповідь, а не помилка: важливо, щоб агент продовжив із правильною.Запис
get_my_workПитає, що робити далі, замість читати всю дошку й вгадувати. Повертає завдання, призначені цьому клієнту, те, що вже чекає на людину, і чи є місце в черзі уваги. Також називає прострочене й те, що має бути зроблено чи починається протягом тижня, тож агент дізнається про дедлайн, не питаючи. Коли черга повна, корисний хід — допомогти її розібрати, а не починати щось нове, — і це сказано ще до вибору завдання.Читання
complete_taskШІ викликає його, коли роботу справді завершено, — картка переходить у Done із записаним часом завершення, а необов’язковий результат (що зроблено, де лежить результат) додається до картки як нотатка «Outcome (AI, date)». id колонки не потрібен. Робота, позначена як така, що потребує тебе, НЕ переходить у Done: вона потрапляє у твою чергу з доданим звітом, і якщо агент сказав, що зробить далі, прийняття схвалює саме цей крок і повертає його агенту. Якщо в завдання є план перевірки, сервер виконує його перевірки просто тут — завантажує URL, шукає цитату, порівнює хеш: план executable/state_delta, усі блокувальні перевірки якого пройдено, закривається як перевірений сервером; невдала блокувальна перевірка не пускає картку в Done і показує агенту, що побачив сервер.Запис
record_decisionОдин інструмент, два застосування, одна таблиця записів. (1) Передати вердикт, який ти дав у розмові щодо готової роботи, що чекає на тебе, — схвалено, повернути, відкинути, пізніше, — прибравши картку з черги перевірки; запис зберігається як переданий, а не як твоя дія в застосунку, і цю різницю навмисно залишено видимою. (2) Записати окреме рішення, яке варто пам’ятати, — «обрали Neon замість Supabase», засвоєний урок, — як незмінний запис у форматі MADR-lite зі зваженими варіантами й умовою, за якої варто переглянути. Записи ніколи не редагуються: нове рішення із supersedesId замінює старе, а старе лишається доступним для читання таким, яким було в день ухвалення. Саме ці записи get_context наступного тижня віддає кожному агенту.Запис
get_contextЧинні рішення й уроки робочого простору, укладені в бюджет токенів, найновіші першими, — те, що агент має прочитати, перш ніж братися за щось нетривіальне. Виводиться із записаних рішень, а не пишеться як документ, тож не може застаріти: замінене рішення зникає в ту мить, коли записано заміну, а кожен рядок має дату. Можна обмежити проєктом чи завданням; рядки, що не вмістилися в бюджет, підраховуються, а не приховуються мовчки.Читання
get_task_historyЩо сталося із завданням, а не лише його поточні поля. Три режими: 'summary' (за замовчуванням, ≤500 токенів — картка, її останній звіт, лічильники), 'decisions' (кожне записане щодо нього рішення, зокрема вердикти та їхні причини — причина доробки зберігається тут і після того, як пізніше прийняття перезапише картку), 'full' (сирий журнал, не більше 100 подій, про що сказано прямо). Існує тому, що журнал аудиту надто багатослівний, щоб читати його напряму, а рядок завдання зберігає лише останній вердикт.Читання
trash_taskПереносить завдання в кошик на твоїй дошці Weft. Його можна відновити протягом 30 днів через restore_task, після чого заплановане завдання видаляє його остаточно.Видалення
restore_taskВідновлює завдання з кошика протягом 30 днів після видалення. Завдання повертається на дошку туди, де було, повністю цілим — тож соло-засновник ніколи не втратить роботу через випадкове видалення.Запис
archive_done_tasksОчищає колонку Done: кожне завдання в ній іде з дошки в архів — його й далі знаходять search/fetch і показує історія його спринту, воно ніколи не видаляється. Завершення спринту автоматично архівує виконані завдання цього спринту; цей інструмент бере на себе решту. Він забирає всю колонку одним викликом, без лічильника й без шляху назад через MCP — restore_task відновлює з кошика, а не з архіву, — тому його позначено як руйнівний: клієнт має підтвердити з користувачем, перш ніж викликати його.Видалення
list_projectsПерелічує проєкти дошки — легкі контексти (стартап, клієнт, особисте), до яких може належати завдання. Архівні проєкти не показуються, якщо не задано includeArchived.Читання
create_projectСтворює контекст проєкту. Назва унікальна в межах дошки; колір за замовчуванням береться з палітри по черзі; url — сайт проєкту, чий favicon показується на картках завдань.Запис
update_projectПерейменовує проєкт, змінює його колір чи url сайту або архівує/розархівовує його. Архівні проєкти зникають зі списків вибору; їхні завдання зберігають прив’язку.Запис
list_sprintsПерелічує всі спринти користувача (заплановані, активні, завершені, архівні), щоб соло-засновник чи агент міг переглянути історію спринтів і поточний стан, не відкриваючи застосунок.Читання
get_active_sprintПовертає поточний активний спринт або null, якщо жоден спринт не триває, — щоб соло-засновник чи агент міг перевірити поточну мету, не відкриваючи застосунок.Читання
create_sprintСтворює на твоїй дошці Weft новий спринт зі статусом "planned", готовий до планування з метою й датами. Коли будеш готовий починати роботу, окремо викликай start_sprint.Запис
start_sprintПереводить запланований спринт в активний статус. Активним може бути лише один спринт одночасно, на кожному тарифі — якщо триває інший спринт, виклик завершується помилкою й називає його; спершу заверши той спринт, потім повтори.Запис
complete_sprintЗавершує активний спринт. Його виконані завдання архівуються в історію спринту — зникають із колонки Done на дошці, але й далі доступні в пошуку й показуються на сторінці спринту. Незавершені завдання лишаються на дошці, прив’язані до спринту. Скасувати через MCP не можна — клієнтам варто підтверджувати, коли намір неочевидний.Видалення
add_task_to_sprintПризначає наявне завдання спринту, щоб воно з’явилося в обсязі цього спринту та його burndown. Ідемпотентний — повторний виклик нічого додатково не робить, тож його безпечно повторювати.Запис
remove_task_from_sprintВід’єднує завдання від поточного спринту, не видаляючи його, — завдання лишається на дошці у своїй колонці, просто більше не входить в обсяг цього спринту чи його burndown.Запис

Запитання

Що таке канбан MCP-сервер?

MCP-сервер (Model Context Protocol), який надає канбан-дошку як інструменти, що їх може викликати ШІ-асистент: перелічити колонки, прочитати картки, створити картку, перенести її в Doing чи Done. Сервер Weft хостований, тож ти додаєш адресу, а не запускаєш процес на своєму комп’ютері.

Чи треба щось встановлювати чи запускати?

Ні. Додай https://letsweft.com/api/mcp у свій ШІ-клієнт і ввійди через OAuth. Клієнти без OAuth використовують особистий токен доступу з розділу Налаштування → Токени доступу.

Це безкоштовно?

Так, для 50 завдань і 200 викликів ШІ на місяць. Pro знімає обмеження за $7 за місце на місяць або $60 за місце на рік.

Чи працює це з ChatGPT Free?

Так. Weft є в «Plugin directory» ChatGPT і працює на кожному тарифі ChatGPT, зокрема Free. Додавання довільної MCP-адреси в ChatGPT — функція Business, Enterprise та Edu, але для Weft вона не потрібна.

Чи можуть два агенти ділити одну дошку?

Так — для цього дошка й існує. Кожен агент бере картку через start_task, перш ніж над нею працювати, тож вони не беруть ту саму картку, а на кожній картці видно, хто її створив чи завершив — ШІ чи людина.

Чим це відрізняється від локального канбан MCP-сервера?

Канбан MCP-сервери з відкритим кодом працюють на твоєму комп’ютері й зберігають дошку в локальному файлі чи базі даних, тож її бачать лише агенти на цьому комп’ютері. Weft — спільна хостована дошка: ті самі картки в ChatGPT, Claude, Cursor, Codex, вебзастосунку та застосунках для iOS і Android, для тебе й твоєї команди.

Схожі матеріали