Ein Kanban-MCP-Server für ChatGPT, Claude, Cursor und Codex
Von Andrei Finogeev, Gründer von Weft ·
Weft ist ein gehostetes Kanban-Board – Backlog, Todo, Doing, Done, mit optionalen Sprints –, und sein MCP-Server liegt unter https://letsweft.com/api/mcp. Füg diese URL in deinen KI-Client ein und melde dich einmal mit OAuth an; lokal ist nichts zu installieren oder zu betreiben. Ab dann liest der Assistent das Board, erstellt und verschiebt Karten, übernimmt eine Karte, bevor er daran arbeitet, damit nie zwei Agenten dieselbe nehmen, meldet Fortschritt, fragt dich, wenn eine Entscheidung bei dir liegt, und schließt die Karte mit dem ab, was er getan hat. Kostenlos für 50 Aufgaben und 200 KI-Aufrufe im Monat.
https://letsweft.com/api/mcpStreamable HTTP · OAuth oder ein persönliches Zugriffstoken · 32 Tools
Zu deinem KI-Client hinzufügen
ChatGPT
Weft in ChatGPT öffnen – oder manuell konfigurieren:
- 1Öffne in der ChatGPT-Seitenleiste „Plugins“ — oder Settings → Plugins.
- 2Such nach „Weft“ und öffne den Eintrag.
- 3Klick auf „Connect“ und sieh dir an, worauf Weft zugreifen kann.
- 4Melde dich im Popup mit deinem Weft-Konto an.
Erwähn das Plugin in einem Chat mit @: „@Weft was steht auf meinem Board?“ — oder wähl Weft im +-Menü. Wenn du die Einrichtung übersprungen hast, bietet ChatGPT die Verbindung direkt an.
Claude Desktop
- 1Öffne Claude Desktop → Settings → Connectors.
- 2Klick auf „Add custom connector“.
- 3Füg die Weft-MCP-URL unten ein und speichere.
- 4Schließ OAuth im Browserfenster ab, das sich öffnet.
Starte einen neuen Chat und frag: „Was steht auf meinem Weft-Board?“. Claude holt den Zustand deines Boards über den Weft-Connector.
Claude Code
claude mcp add --transport http weft https://letsweft.com/api/mcpFühr `claude` in einem beliebigen Projekt aus und frag: „Was steht auf meinem Board?“. Beim ersten Mal öffnet sich ein Browserfenster für OAuth.
Cursor
Zu Cursor hinzufügen – oder manuell konfigurieren:
{
"mcpServers": {
"weft": {
"url": "https://letsweft.com/api/mcp"
}
}
}Öffne Cursor → Settings → MCP. Nach abgeschlossenem OAuth sollte der Server „weft“ dort mit grüner Anzeige erscheinen.
Codex CLI
[mcp_servers.weft]
url = "https://letsweft.com/api/mcp"Führ `codex mcp login weft` aus und melde dich im Browser an, starte dann `codex` und frag: „Was steht auf meinem Board?“. `/mcp` listet den verbundenen Server und seine Tools.
VS Code
Weft-Erweiterung installieren – oder manuell konfigurieren:
{
"servers": {
"weft": {
"type": "http",
"url": "https://letsweft.com/api/mcp"
}
}
}Öffne den Chat, stell den Modus auf Agent und frag: „Was liegt auf meinem Board?“. Beim ersten Mal öffnet sich ein Browserfenster für OAuth. „MCP: List Servers“ sollte weft als Running zeigen.
Windsurf
- 1Öffne Windsurf → Settings → Cascade → MCP servers.
- 2Klick auf „Add server“ und wähl Remote (HTTP).
- 3Füg die Weft-MCP-URL unten ein und speichere.
- 4Schließ OAuth im Browserfenster ab, das sich öffnet.
Öffne Cascade und frag: „Was steht auf meinem Board?“. Cascade markiert Antworten, die den Weft-Server benutzt haben.
Gemini CLI
gemini extensions install https://github.com/AndreiFinogeev/weft-gemini-extensionFühr `gemini` aus und frag: „Was steht auf meinem Weft-Board?“. Beim ersten Mal öffnet sich ein Browser für OAuth. `gemini extensions list` sollte „weft“ zeigen.
Für Agenten gebaut, nicht nur für dich
Übernahmen statt Kollisionen
start_task legt ein Lease auf eine Karte, bevor ein Agent daran arbeitet. Ein zweiter Agent, der nach Arbeit fragt, bekommt eine andere Karte, und eine Karte, deren Agent verstummt ist, wird erneut angeboten, wenn das Lease abläuft.
Fortschritt und Belege
report_progress hält die Übernahme am Leben, während der Agent arbeitet; complete_task schließt die Karte mit dem ab, was erledigt wurde, was nicht, und mit Links, die du prüfen kannst.
Fragen warten auf dich
request_input legt eine Frage mit Optionen in deine Inbox – im Web und auf dem Handy –, statt den Agenten bei etwas raten zu lassen, das nur du entscheiden kannst.
Deine Aufmerksamkeit gibt das Tempo vor
Wenn zu viel fertige Arbeit auf deine Prüfung wartet, fangen Agenten keine neuen Karten mehr an. Das ist das Kanban-Limit für laufende Arbeit, angewendet auf dich.
Du entscheidest, was jede KI darf
Gib jedem verbundenen Assistenten vollen Zugriff, Schreib- oder Nur-Lese-Zugriff, und trenne ihn mit einem Klick. Gelöschte Karten landen im Papierkorb, statt sofort zu verschwinden.


Die 32 Tools
Jedes Tool gibt an, ob es nur liest, schreibt oder etwas entfernt, damit dein Client weiß, wann er dich vorher fragen sollte.
| Tool | Was es tut | Art |
|---|---|---|
| search | Stichwortsuche über Aufgaben, Sprints, Entscheidungen und Gedächtnisnotizen. Liefert bis zu 50 gerankte Ergebnisse {id, title, url}, deren IDs mit Art-Präfix an fetch weitergegeben werden. | Lesen |
| fetch | Ruft den vollständigen Inhalt eines einzelnen Suchergebnisses ab – Titel, Textdarstellung, Quell-URL und strukturierte Metadaten. Nimmt die von search gelieferte ID mit Präfix. | Lesen |
| initialize_board | Legt auf deinem Weft-Board die Standardspalten Backlog, Todo, Doing und Done an, falls noch keine existieren – die Einrichtung mit einem Aufruf, bevor ein KI-Agent Aufgaben verwaltet. Idempotent. | Schreiben |
| get_board_state | Liefert ein kompaktes Briefing zum Scrumban-Board der Person: Spalten, aktiver Sprint, Doing, überfällige Aufgaben und kürzlich Abgeschlossenes, etwa 30-mal kleiner als ein vollständiger Snapshot. | Lesen |
| list_columns | Listet alle Spalten des Boards in Reihenfolge auf – ID, Name und Position für jede, damit ein Agent genau weiß, wohin eine Aufgabe wandern kann. | Lesen |
| list_tasks | Liefert die Aufgaben der angemeldeten Person, optional gefiltert nach Spalte, Sprint, Projekt (Name oder ID), Ersteller (Mensch oder KI) oder Zuständigem (wer sie ausführt). | Lesen |
| create_task | Legt eine neue Aufgabe auf dem Board der Person an. Landet im Backlog, wenn keine Spalte gesetzt ist. Die Priorität ist standardmäßig mittel. Zu verwenden, wenn die Person eine Aufgabe hinzufügen will. | Schreiben |
| bulk_create_tasks | Legt bis zu 1000 Aufgaben in einem atomaren Aufruf an – Exporte aus Linear/Jira/Notion/Trello importieren oder jede Liste mit 3+ Aufgaben, und das zählt nur als ein KI-Aufruf im Kontingent. | Schreiben |
| update_task | Ändert Felder einer bestehenden Aufgabe. Nur übergebene Felder werden geändert; weggelassene bleiben erhalten – mit einer Ausnahme: requiresReview zu löschen wird einem Agenten verweigert, und die Verweigerung nimmt die ganze Änderung mit. | Schreiben |
| move_task | Verschiebt eine Aufgabe in eine andere Spalte und Position. Das Verschieben in eine Spalte mit semantic='doing' startet die Messung der Durchlaufzeit; das Verschieben nach semantic='done' hält den Abschlusszeitpunkt fest. | Schreiben |
| start_task | Die KI ruft das in dem Moment auf, in dem sie mit der Ausführung einer Aufgabe beginnt – die Karte wandert nach Doing, sodass die Person und jeder andere verbundene Client sie als in Arbeit sehen (und sie nicht doppelt übernehmen). Startet die Messung der Durchlaufzeit; eine nicht zugewiesene Aufgabe wird vom aufrufenden Agenten übernommen (eine bestehende Zuweisung wird nie überschrieben). Keine Spalten-ID nötig. | Schreiben |
| report_progress | Sagt, dass du noch arbeitest. Eine Übernahme läuft ab, wenn der Client verstummt, und das hier erneuert sie. Ohne Herzschlag gilt eine lange laufende Aufgabe als verlassen und wird jemand anderem angeboten – mit Absicht, denn ein Agent, der mitten im Lauf abstürzt, meldet nichts, und Stille ist das einzige Signal, das das Board hat. | Schreiben |
| request_input | Fragt die Person etwas, das nur sie entscheiden kann, und wartet, ohne die Übernahme der Aufgabe zu verlieren. Ist sie an ihrem Client, erscheint dort ein Formular, und die Antwort kommt im selben Aufruf zurück – der Agent macht im selben Kontext und mit derselben Übernahme weiter. Ist sie nicht da, kehrt der Aufruf geparkt zurück, und die Frage wartet in ihrer Warteschlange; die Antwort erreicht den Agenten bei seinem nächsten start_task oder get_my_work. Für Unumkehrbares und echt Mehrdeutiges, nicht für "darf ich weitermachen?" – jede Frage verbraucht dasselbe Aufmerksamkeitsbudget, das neue Arbeit begrenzt. | Schreiben |
| submit_answer | Bringt zurück, was die Person auf eine Frage des Agenten gesagt hat, und gibt die Arbeit mit derselben runId und demselben Lease zurück, sodass sie im selben Versuch weitergeht statt kalt neu zu starten. Als weitergeleitet markiert, nie so, als hätte die Person selbst gehandelt – eine von einem Agenten überbrachte Antwort und ein Klick eines Menschen sind verschiedene Arten von Beleg, und das Board hält sie auseinander. Wurde die Frage schon in der Weft-App beantwortet, kommt diese Antwort statt eines Fehlers zurück: Entscheidend ist, dass der Agent mit der richtigen weitermacht. | Schreiben |
| get_my_work | Fragt, was als Nächstes zu tun ist, statt das ganze Board zu lesen und zu raten. Liefert die Aufgaben, die diesem Client zugewiesen sind, was schon auf den Menschen wartet und ob in der Aufmerksamkeits-Warteschlange Platz ist. Außerdem nennt es, was überfällig ist und was innerhalb der Woche fällig wird oder beginnt, sodass ein Agent von einer Frist erfährt, ohne zu fragen. Ist die Warteschlange voll, hilft es mehr, sie abzuarbeiten, als etwas Neues anzufangen – und das sagt es, bevor eine Aufgabe gewählt wird. | Lesen |
| complete_task | Die KI ruft das auf, wenn die Arbeit wirklich fertig ist – die Karte wandert mit festgehaltenem Abschlusszeitpunkt nach Done, und das optionale Ergebnis (was getan wurde, wo das Resultat liegt) wird als Notiz "Outcome (AI, date)" an die Karte angehängt. Keine Spalten-ID nötig. Arbeit, die als prüfbedürftig markiert ist, wandert NICHT nach Done: Sie geht mit angehängtem Beleg in deine Warteschlange, und wenn der Agent gesagt hat, was er als Nächstes tun würde, genehmigt das Annehmen genau diesen Schritt und gibt ihn an den Agenten zurück. Hat die Aufgabe einen Verifikationsplan, führt der Server dessen Prüfungen direkt hier aus – ruft die URL ab, sucht das Zitat, vergleicht den Hash: Ein executable/state_delta-Plan, dessen blockierende Prüfungen alle bestehen, wird vom Server verifiziert abgeschlossen; eine fehlgeschlagene blockierende Prüfung hält die Karte aus Done heraus und zeigt dem Agenten, was der Server beobachtet hat. | Schreiben |
| record_decision | Ein Tool, zwei Zwecke, eine maßgebliche Tabelle. (1) Ein Urteil weitergeben, das du im Gespräch über fertige, auf dich wartende Arbeit gefällt hast – angenommen, zurückschicken, verwerfen, später –, und damit die Karte aus der Prüf-Warteschlange nehmen; der Eintrag wird als weitergeleitet gespeichert, nicht so, als hättest du in der App gehandelt, und dieser Unterschied bleibt absichtlich sichtbar. (2) Eine eigenständige Entscheidung festhalten, die man sich merken sollte – „Neon statt Supabase gewählt“, eine gelernte Lektion – als unveränderlichen MADR-lite-Eintrag mit den abgewogenen Optionen und der Bedingung, unter der sie neu zu prüfen ist. Einträge werden nie bearbeitet: Eine neue Entscheidung mit supersedesId ersetzt eine alte, und die alte bleibt so lesbar, wie sie am Tag ihrer Entstehung lautete. Diese Einträge liefert get_context nächste Woche an jeden Agenten zurück. | Schreiben |
| get_context | Die geltenden Entscheidungen und Lektionen des Workspace, auf ein Token-Budget gepackt, neueste zuerst – das, was ein Agent lesen sollte, bevor er etwas Nicht-Triviales anfängt. Abgeleitet aus festgehaltenen Entscheidungen statt als Dokument verfasst, darum kann es nicht veralten: Eine ersetzte Entscheidung fällt heraus, sobald ihr Ersatz festgehalten ist, und jede Zeile trägt ihr Datum. Auf ein Projekt oder eine Aufgabe eingrenzbar; Zeilen, die nicht ins Budget passen, werden gezählt, nie stillschweigend versteckt. | Lesen |
| get_task_history | Was mit einer Aufgabe passiert ist, nicht nur ihre aktuellen Felder. Drei Modi: 'summary' (Standard, ≤500 Tokens – die Karte, ihr letzter Beleg, Zählungen), 'decisions' (jede zu ihr festgehaltene Entscheidung, einschließlich Urteilen und ihrer Begründungen – der Grund für eine Nacharbeit bleibt hier erhalten, auch wenn ein späteres Annehmen die Karte überschreibt), 'full' (das rohe Journal, auf 100 Ereignisse begrenzt, und das sagt es auch). Gibt es, weil ein Audit-Log zu geschwätzig ist, um es direkt zu lesen, und die Aufgabenzeile immer nur das letzte Urteil enthält. | Lesen |
| trash_task | Verschiebt eine Aufgabe auf deinem Weft-Board in den Papierkorb. 30 Tage lang über restore_task wiederherstellbar, danach löscht ein geplanter Job sie endgültig. | Entfernt |
| restore_task | Holt eine Aufgabe innerhalb von 30 Tagen nach dem Löschen aus dem Papierkorb zurück. Die Aufgabe kehrt vollständig erhalten an ihren Platz auf dem Board zurück – damit ein Solo-Gründer nie Arbeit durch versehentliches Löschen verliert. | Schreiben |
| archive_done_tasks | Leert die Spalte Done: Jede Aufgabe darin verlässt das Board ins Archiv – weiterhin über search/fetch auffindbar und in der Historie ihres Sprints sichtbar, nie gelöscht. Das Abschließen eines Sprints archiviert dessen erledigte Aufgaben automatisch; das hier kümmert sich um den Rest. Es nimmt die ganze Spalte in einem Aufruf, ohne Anzahl und ohne Weg zurück über MCP – restore_task stellt aus dem Papierkorb wieder her, nicht aus dem Archiv –, deshalb ist es als destruktiv markiert: Ein Client sollte vor dem Aufruf bei der Person nachfragen. | Entfernt |
| list_projects | Listet die Projekte des Boards auf – leichtgewichtige Kontexte (ein Startup, ein Kunde, Privates), zu denen eine Aufgabe gehören kann. Archivierte Projekte sind ausgeschlossen, außer includeArchived ist gesetzt. | Lesen |
| create_project | Legt einen Projektkontext an. Der Name ist pro Board eindeutig; die Farbe kommt standardmäßig reihum aus einer Palette; url ist die Website des Projekts, deren Favicon auf den Aufgabenkarten erscheint. | Schreiben |
| update_project | Benennt ein Projekt um, ändert seine Farbe oder Website-URL oder archiviert es bzw. holt es aus dem Archiv. Archivierte Projekte verschwinden aus den Auswahllisten; ihre Aufgaben behalten die Zuordnung. | Schreiben |
| list_sprints | Listet alle Sprints (geplant, aktiv, abgeschlossen, archiviert) der Person auf, damit ein Solo-Gründer oder Agent die Sprint-Historie und den aktuellen Stand prüfen kann, ohne die App zu öffnen. | Lesen |
| get_active_sprint | Liefert den aktuell aktiven Sprint oder null, wenn keiner läuft – damit ein Solo-Gründer oder Agent das aktuelle Ziel prüfen kann, ohne die App zu öffnen. | Lesen |
| create_sprint | Legt auf deinem Weft-Board einen neuen Sprint mit Status "planned" an, bereit, mit Ziel und Daten eingeplant zu werden. Mit start_sprint startest du ihn separat, wenn die Arbeit beginnen soll. | Schreiben |
| start_sprint | Setzt einen geplanten Sprint auf aktiv. In jedem Tarif kann jeweils ein Sprint aktiv sein – läuft schon ein anderer, schlägt der Aufruf fehl und nennt ihn; schließ diesen Sprint zuerst ab und versuch es dann erneut. | Schreiben |
| complete_sprint | Beendet den aktiven Sprint. Seine erledigten Aufgaben werden in die Historie des Sprints archiviert – raus aus der Spalte Done des Boards, weiterhin durchsuchbar und auf der Seite des Sprints sichtbar. Unerledigte Aufgaben bleiben auf dem Board, dem Sprint zugeordnet. Lässt sich über MCP nicht rückgängig machen – Clients sollten nachfragen, wenn die Absicht unklar ist. | Entfernt |
| add_task_to_sprint | Ordnet eine bestehende Aufgabe einem Sprint zu, sodass sie in dessen Umfang und Burndown erscheint. Idempotent – ein zweiter Aufruf hat keine weitere Wirkung, ein Wiederholen ist also sicher. | Schreiben |
| remove_task_from_sprint | Löst eine Aufgabe aus ihrem aktuellen Sprint, ohne sie zu löschen – die Aufgabe bleibt in ihrer Spalte auf dem Board, gehört nur nicht mehr zu diesem Sprint oder seinem Burndown. | Schreiben |
Fragen
Was ist ein Kanban-MCP-Server?
Ein MCP-Server (Model Context Protocol), der ein Kanban-Board als Tools bereitstellt, die ein KI-Assistent aufrufen kann: Spalten auflisten, Karten lesen, eine Karte anlegen, sie nach Doing oder Done verschieben. Der von Weft ist gehostet, du fügst also eine URL hinzu, statt einen Prozess auf deinem Rechner laufen zu lassen.
Muss ich etwas installieren oder betreiben?
Nein. Füg https://letsweft.com/api/mcp in deinen KI-Client ein und melde dich mit OAuth an. Clients ohne OAuth nutzen ein persönliches Zugriffstoken aus Einstellungen → Zugriffstokens.
Ist es kostenlos?
Ja, für 50 Aufgaben und 200 KI-Aufrufe im Monat. Pro hebt die Grenzen auf, für $7 pro Platz im Monat oder $60 pro Platz im Jahr.
Funktioniert es mit ChatGPT Free?
Ja. Weft steht im Plugin directory von ChatGPT und funktioniert in jedem ChatGPT-Tarif, Free eingeschlossen. Eine rohe MCP-URL in ChatGPT hinzuzufügen ist eine Funktion von Business, Enterprise und Edu, aber für Weft brauchst du das nicht.
Können sich zwei Agenten ein Board teilen?
Ja – genau dafür ist das Board da. Jeder Agent übernimmt eine Karte mit start_task, bevor er daran arbeitet, sodass sie nicht dieselbe Karte nehmen, und jede Karte zeigt, ob eine KI oder ein Mensch sie angelegt oder abgeschlossen hat.
Was ist der Unterschied zu einem lokalen Kanban-MCP-Server?
Open-Source-Kanban-MCP-Server laufen auf deinem Rechner und speichern das Board in einer lokalen Datei oder Datenbank, sodass nur die Agenten auf diesem Rechner es sehen. Weft ist ein gemeinsames, gehostetes Board: dieselben Karten in ChatGPT, Claude, Cursor, Codex, der Web-App und den Apps für iOS und Android, für dich und dein Team.