MCP-værktøjskatalog.
32 værktøjer dækker hele Wefts overflade. Hvert af dem er mærket med hints for læs / skriv / destruktiv, så MCP-klienter ved, hvilke de kan kalde automatisk, og hvilke de skal bekræfte. Disse hints er felterne readOnlyHint, destructiveHint og idempotentHint i ToolAnnotations i MCP-skemaet, som siger, at hvert af dem er et hint, ikke en garanteret beskrivelse af værktøjets adfærd. MCP-værktøjsspecifikationen kræver, at klienter behandler annotationer som ikke-betroede, medmindre de kommer fra en betroet server.
Weft er AI-opgavestyringen til solo-stiftere og små teams.
Værktøjsreferencen vedligeholdes på engelsk: værktøjsnavne, argumenter og eksempler er ens på alle sprog.
Søg og hent
Find elementer på nøgleord og hent alle detaljer.
searchlæsSearch Weft Items
Keyword search across tasks, sprints, decisions and memory notes. Returns up to 50 ranked {id, title, url} results whose kind-prefixed ids feed into fetch.
fetchlæsFetch Weft Item
Retrieve the full content of a single search result — title, text representation, source url, and structured metadata. Takes the prefixed id returned by search.
Tavle
Læs og initialiser tavlen.
initialize_boardidempotentInitialize Scrumban Board
Create the default Backlog, Todo, Doing, and Done columns on your Weft board if none exist — the one-call setup before an AI agent manages tasks. Idempotent.
get_board_statelæsGet Board Briefing
Return a compact briefing on the user's Scrumban board: columns, active sprint, Doing, overdue tasks and recent closes, about 30x smaller than a full snapshot.
list_columnslæsList Columns
List all columns on the board, in order — id, name, position, and WIP limit for each, so an agent knows exactly where a task can move.
get_my_worklæsGet My Work
Ask what to do next instead of reading the whole board and guessing. Returns the tasks assigned to this client, what is already waiting on the human, and whether the attention queue has room. When the queue is full the useful move is helping clear it, not starting something new — and this says so before a task is picked.
get_contextlæsGet Context Digest
The workspace's live decisions and lessons, packed to a token budget, newest first — what an agent should read before starting anything non-trivial. Derived from recorded decisions rather than authored as a document, so it cannot rot: a superseded decision drops out the moment its replacement is recorded, and every line carries its date. Scope it to a project or a task to narrow it; lines that do not fit the budget are counted, never silently hidden.
Opgaver
Opret, opdater, flyt, smid ud og gendan opgaver.
list_taskslæsList Tasks
Return tasks for the authenticated user, optionally filtered by column, sprint, project (name or id), creator (human vs AI) or assignee (the executor).
create_taskCreate Task
Create a new task on the user's board. Lands in Backlog if no column is set. Priority defaults to medium. Use when the user asks to add a task.
bulk_create_tasksBulk Create Tasks (Import)
Create up to 1000 tasks in one atomic call — import Linear/Jira/Notion/Trello exports or any list of 3+ tasks, using just one AI-call quota hit.
update_taskidempotentUpdate Task
Patch an existing task's fields. Only fields you pass are changed; omitted fields are preserved — with one exception: clearing requiresReview is refused for an agent, and the refusal takes the whole patch with it.
move_taskidempotentMove Task
Move a task to a different column and position. Moving to a column with semantic='doing' starts cycle-time tracking; moving to semantic='done' records completion time.
start_taskidempotentStart Working on Task
The AI calls this the moment it begins executing a task — the card moves to Doing so the user and every other connected client see it in progress (and don’t pick it up twice). Starts cycle-time tracking; an unassigned task is claimed by the calling agent (an existing assignee is never overridden). No column id needed.
report_progressidempotentReport Progress
Say you are still working. A claim on a task expires if the client goes quiet, and this renews it. Without a heartbeat a long-running task is treated as abandoned and offered to someone else — deliberately, because an agent that dies mid-run reports nothing, so silence is the only signal the board has.
request_inputidempotentAsk the User a Question
Ask the person something only they can decide, and wait without losing the claim on the task. If they are at their client, a form appears there and the answer comes back inside the same call — the agent carries on in the same context, with the same claim. If they are away, the call returns parked and the question waits in their queue; the answer reaches the agent at its next start_task or get_my_work. For the irreversible and the genuinely ambiguous, not for "may I continue?" — every question spends the same attention budget that limits new work.
submit_answeridempotentDeliver the User's Answer
Brings back what the person said to a question the agent raised, and hands the work back with the same runId and lease, so it continues in the same attempt rather than starting a cold one. Marked as relayed, never as the person acting themselves — an answer carried by an agent and a click made by a human are different kinds of evidence, and the board keeps them apart. If the question was already answered in the Weft app, that answer is returned instead of an error: what matters is that the agent continues with the right one.
complete_taskComplete Task
The AI calls this when the work is actually finished — the card moves to Done with completion time recorded, and the optional outcome (what was done, where the result lives) is appended to the card as an "Outcome (AI, date)" note. No column id needed. Work marked as needing you does NOT move to Done: it goes to your queue with the receipt attached, and if the agent said what it would do next, accepting approves exactly that step and hands it back to the agent. If the task carries a verification plan, the server executes its checks right here — fetching the URL, looking for the quote, comparing the hash: an executable/state_delta plan whose blocking checks all pass closes verified by the server; a failed blocking check keeps the card out of Done and shows the agent what the server observed.
record_decisionRecord a Decision
One tool, two uses, one table of record. (1) Relay a verdict you gave in conversation about finished work waiting on you — approved, send it back, drop it, later — clearing the card from the review queue; the entry is stored as relayed rather than as you acting in the app, and that difference is kept visible on purpose. (2) Record a standalone decision worth remembering — 'chose Neon over Supabase', a lesson learned — as an immutable MADR-lite record with the options weighed and the condition to revisit under. Records are never edited: a new decision with supersedesId replaces an old one, and the old one stays readable as what it said the day it was made. These records are what get_context serves back to every agent next week.
get_task_historylæsGet Task History
What happened to a task, not just its current fields. Three modes: 'summary' (default, ≤500 tokens — the card, its latest receipt, counts), 'decisions' (every decision recorded about it, including verdicts and their reasons — a rework's reason survives here after a later accept overwrites the card), 'full' (the raw journal, capped at 100 events and saying so). Exists because an audit log is too chatty to read directly, and the task row only ever holds the latest verdict.
trash_taskdestruktivMove Task to Trash
Move a task to the trash in your Weft board. Recoverable for 30 days via restore_task, after which a scheduled job deletes it permanently.
restore_taskRestore Task
Recover a task from the trash within 30 days of trashing it. The task returns to the board where it was, fully intact — so a solo founder never loses work to an accidental delete.
archive_done_tasksdestruktividempotentArchive Done Tasks
Clear the Done column: every task in it leaves the board into the archive — still found by search/fetch and still shown in its sprint’s history, never deleted. Completing a sprint archives that sprint’s finished tasks automatically; this handles the rest. It takes the whole column in one call, with no count and no way back from the MCP surface — restore_task restores from the trash, not from the archive — which is why it is marked destructive: a client should confirm with the user before calling it.
Projekter
Lette sammenhænge, som en opgave kan høre til.
list_projectslæsList Projects
List the board’s projects — lightweight contexts (a startup, a client, personal) a task can belong to. Excludes archived projects unless includeArchived is set.
create_projectCreate Project
Create a project context. Name is unique per board; color defaults to a rotating palette pick; url is the project’s website, whose favicon is shown on task cards.
update_projectidempotentUpdate Project
Rename a project, change its color or website url, or archive/unarchive it. Archived projects disappear from pickers; their tasks keep the association.
Sprints
Planlæg, kør og afslut sprints.
list_sprintslæsList Sprints
List all sprints (planned, active, completed, archived) for the user, so a solo founder or agent can review sprint history and current status without opening the app.
get_active_sprintlæsGet Active Sprint
Return the currently active sprint, or null if no sprint is running — so a solo founder or agent can check the current goal without opening the app.
create_sprintCreate Sprint
Create a new sprint in "planned" status for your Weft board, ready to schedule with a goal and dates. Use start_sprint separately when ready to begin working.
start_sprintStart Sprint
Transition a planned sprint to active status. One sprint can be active at a time, on every plan — if another sprint is running, the call fails and names it; complete that sprint first, then retry.
complete_sprintdestruktivComplete Sprint
Finish the active sprint. Its finished tasks are archived into the sprint’s history — off the board’s Done column, still searchable and shown on the sprint’s page. Unfinished tasks stay on the board, attached to the sprint. Cannot be undone via MCP — clients should confirm when intent is ambiguous.
add_task_to_sprintidempotentAdd Task to Sprint
Assign an existing task to a sprint so it shows up in that sprint's scope and burndown. Idempotent — calling twice has no extra effect, making it safe to retry.
remove_task_from_sprintidempotentRemove Task from Sprint
Detach a task from its current sprint without deleting it — the task stays on the board in its column, simply no longer scoped to that sprint or its burndown.