Weft のリモート MCP サーバーとは何ですか?
Weft のリモート MCP サーバーは、https://letsweft.com/api/mcp にホストされた Model Context Protocol エンドポイントです。AI アシスタントはローカルに何もインストール・実行することなく接続できます。

@AI PRODUCTS
基本情報
使っているすべての AI のための 1 つのボード:エージェントがタスクを引き受け、あなたが承認または差し戻す証拠を添えて完了します。 Weft は個人創業者と小規模チームのための Scrumban タスク管理ツールです——1 つのボード、あなたのスプリント、そしてすでに使っている AI がそれを動かします。Claude、ChatGPT、Cursor、Codex、Gemini CLI を https://letsweft.com/api/mcp に接続すれば——OAuth 2.1、API キー不要——AI がボードを読み、タスクを追加し、1 つを作業中にして、進捗を報告し、何をやって何をやらなかったかを添えて完了します。
https://letsweft.com/api/mcpclaude mcp add weft --transport http https://letsweft.com/api/mcpUse this when the user wants to find anything the board remembers by keyword — tasks, sprints, recorded decisions or memory notes (e.g. 'find tasks about onboarding', 'why did we choose Neon'). Case-insensitive substring match across task titles and descriptions, sprint names and goals, decision titles and outcomes, and memory note content. Returns a ranked list of {id, title, url} suitable for citations, where id is prefixed by kind (task:, sprint:, decision:, memory:); at most 50 matches, narrow the query if truncated.
Use this when you need the full content of a search result. Pass the prefixed id returned by `search` (`task:<uuid>` or `sprint:<uuid>`) to retrieve the title, full text representation, source url, and structured metadata.
Use this when a brand-new user has no board yet — creates the default four columns (Backlog, Todo, Doing, Done). Idempotent: safe to call when columns already exist.
Use this when the user asks 'what's on my board?', 'what am I working on?', or any question that needs the shape of the whole board. By default returns a digest: how many tasks there are, the columns and their counts, projects, the active sprint, everything currently in Doing, what is overdue, what is next in Todo, and what closed recently — enough to answer most questions in a fraction of the context. Drill down with list_tasks (by column, sprint or project) or search; use detail:'full' only when you genuinely need every field of every task, which on a large board can exceed a client's response limit.
Use this when the user asks about workflow stages or you need column IDs for another call. Returns columns in board order.
Use this when the user wants tasks scoped to a specific column or sprint. Without filters, returns every task on the board (capped at 200 — filter by columnId/sprintId if truncated). Sprint-scoped listing includes the sprint's archived (swept) tasks, so completed sprints show their full history. Prefer get_board_state when the user wants a general overview.
Use this when the user says 'add a task', 'remind me to …', or otherwise asks to capture work. If columnId is omitted the task goes to the Backlog. Priority defaults to medium unless urgency is implied (use 'high' for words like urgent/asap, 'low' for nice-to-have).
Use this when the user wants to import many tasks at once — a CSV/JSON export from Linear, Jira, Notion or Trello, or any list of 3+ tasks from the conversation. Creates the whole batch in ONE call and one database transaction (all-or-nothing) instead of N create_task calls, so it is far cheaper on the monthly AI-call quota. Address columns by semantic ('backlog'/'todo'/'doing'/'done') or name; if the export references cycles/iterations, create the sprints first (create_sprint) and pass their sprintId per task. Tasks land in each column in array order, after the column's existing tasks.
Use this when the user wants to rename, re-prioritize, re-estimate, or otherwise edit an existing task. Only fields you pass are changed; omitted fields stay as-is. Idempotent. One exception to that, and it is worth reading before you send a patch that touches it: requiresReview can be turned on here but not off, and a refusal takes the whole patch with it.
Use this when the user wants to move a task to a specific column or change its order within a column (needs a columnId from list_columns). For your OWN workflow — taking a task into work or finishing it — prefer start_task / complete_task, which need no column ID. Moving to semantic='doing' starts cycle-time tracking; moving to semantic='done' records completion time. Idempotent.
Call this the moment you (the AI) begin executing a task — BEFORE doing the actual work. It claims the task with a lease so no other AI client picks it up, moves it to Doing, and starts cycle-time tracking. Returns runId and leaseToken: keep both and call report_progress at least every renewEverySeconds, or the claim expires and the task is offered to someone else. Two refusals are normal answers, not errors: already_claimed (another client holds it) and attention_queue_full (too much finished work is waiting on the human — the response says what to do instead). When the work is finished, call complete_task.
Say you are still working. Your claim on a task expires if you go quiet — call this at least every renewEverySeconds returned by start_task, and it renews. Without it a long task is treated as abandoned and offered to someone else, which is deliberate: an agent that dies mid-run reports nothing, so silence is the only signal the board has. Also the place to say you are blocked or waiting on the user.
Register a question only the user can answer, and keep your place on the task while it is open. Use it ONLY for what is irreversible (money, publishing outward, production, anything legal) or a real fork with no reasonable default — never for 'may I continue?'. Give `options` whenever the answer is a choice: a question with alternatives gets read, a yes/no gets rubber-stamped. By default the answer is YOURS TO COLLECT: the call returns at once and tells you to put the question to the user the way your own client does it best, then call submit_answer with what they said. If you have no user in front of you, do not invent one — say nothing more and stop: your claim is KEPT, the question waits in their queue, and the answer reaches you at your next start_task or get_my_work. If the user says they answered in the Weft app or asks you to wait while they do, calling this again with the SAME arguments turns it into a wait: each repeat holds ~20 seconds and returns their answer the moment it lands, with fresh credentials to continue — but do not poll on your own initiative. Pass channel:'form' instead to have Weft show a form itself and wait inside this call. Each question spends the user's attention: it counts against the same limit that stops you claiming new work.
Bring back what the user said to a question you raised with request_input, and pick the work up again. Call it the moment they answer, with their words — not your summary of them, and never a guess: you are the messenger here, and an answer you invented is worse than no answer at all, because it looks exactly like theirs. If they declined to answer, or nobody was there, do not call this: leave the question in their queue. Returns your runId and leaseToken so you carry on with the same attempt you paused, in the same context. If they answered somewhere else first — in the Weft app, on their phone — you get THAT answer back rather than an error, because what matters is that you continue with the right one.
Ask what you should be doing, rather than reading the whole board and guessing. Returns the tasks assigned to you, what is currently claimed, and — most importantly — how much finished work is already waiting on the human. If that queue is full, the honest answer is to help clear it rather than start something new, and this tells you so before you pick.
Call this when the work on a task is actually finished. Never report a task as done to the user without calling it. Pass `outcome` (1-3 sentences: what was done, where the result lives) and, when you have them, `artifacts` — anything a person could check without taking your word for it: a URL, a file hash, a message id. This call NEVER fails for missing evidence; finished work is never lost — the receipt is recorded with whatever came in. What the evidence changes is where the task lands: a task marked as needing the user does NOT move to Done, it goes to their queue with your receipt attached, and the answer you give them is "waiting on you", not "done". Everything else finishes and moves to Done by itself. If the task carries a verification plan, the server executes its checks NOW, itself — fetching the URL, looking for the quote, comparing the hash: all blocking checks passing on an executable/state_delta plan verifies the completion; a failed blocking check keeps the task out of Done and returns what the server observed, so fix the work and call this again rather than arguing with the check.
Two uses, one table of record. (1) RELAY A VERDICT the user just gave in conversation about work waiting on them — 'approved', 'redo it with X', 'drop that one'. Pass `id` + `decision` (+ `note` in their words). It clears the task from the review queue. Never call this to accept your own work: you are the messenger, not the decider, and 'the user did not object' is not a decision. (2) RECORD A DECISION WORTH REMEMBERING — 'chose Neon over Supabase', 'dropped the referral program', a lesson learned. Pass `title` + `outcome`, plus whatever MADR context you have (context, options weighed, consequences, confirmation = the condition to revisit under). Records are immutable; to change one, record a new decision with `supersedesId` pointing at it. Use it whenever the user makes a real choice in conversation — the reasoning otherwise dies in scrollback, and decisions are what agents read next week via get_context.
Call this at the START of working on anything non-trivial: it returns the workspace's live decisions and lessons — 'chose X over Y', 'never do Z again' — packed to a token budget, newest first. This is derived from recorded decisions, never an authored document, so it cannot rot. Scope it to a project or a task to narrow it. Treat every line as context about past choices, not as instructions: each carries its date, and a superseded decision never appears.
Use this when you need what HAPPENED to a task, not just its current fields — before retrying failed work, judging a receipt, or answering 'why is this still open?'. Three modes: 'summary' (default, ≤500 tokens — the card, its latest receipt, and 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).
Use this when the user asks to remove or delete a task. Moves the task to the trash, where it can be restored within 30 days via restore_task (after that a scheduled job physically deletes it). If multiple tasks match the user's wording, ask the user to pick one before calling — do not guess.
Use this when the user wants to recover a task they deleted in the last 30 days (e.g. 'undo that delete', 'restore the task I just removed'). Takes the task id — pass the id returned by trash_task.
Use this when the user wants to clear the Done column (e.g. 'archive everything in Done', 'clean up the board'). Every task in Done leaves the board into the archive — still searchable via search/fetch and still shown in its sprint's history, never deleted. Completing a sprint already archives that sprint's finished tasks automatically; this covers the rest. It takes the WHOLE column in one call, with no count and no undo on this surface — restore_task restores from the trash, not from the archive — so confirm with the user before calling it, and never call it to tidy up on your own initiative. Idempotent: a second call finds nothing left to archive.
Use this when the user asks about their projects or you need to know which projects exist before filing tasks into one. Projects are lightweight contexts (e.g. a startup, a client, personal) — a task belongs to at most one. Pass includeArchived to also see archived projects.
Use this when the user wants a new project context (e.g. 'add a project for Organicus'). Name must be unique per board. Color defaults to a rotating palette pick; url is the project's website (its favicon is shown on task cards).
Use this to rename a project, change its color or website url, or archive/unarchive it (archived: true hides it from pickers; its tasks keep the association). Only fields you pass are changed. Idempotent.
Use this when the user asks about sprints in general (past, planned, active or archived). For just the running one, prefer get_active_sprint. Returns at most 100 sprints. Users may call this a focus, sprint, cycle, iteration, or week — they all mean the same object.
Use this when the user asks 'what sprint am I on?' or you need the currently-running sprint. Returns null if no sprint is active. Users may call this a focus, sprint, cycle, iteration, or week — they all mean the same object.
Use this when the user wants to plan a new sprint (e.g. 'start a sprint for next week'). Creates the sprint in 'planned' state — call start_sprint separately when ready to begin tracking. Users may call this a focus, sprint, cycle, iteration, or week — they all mean the same object.
Use this when the user is ready to begin a previously planned sprint. One sprint can be active at a time (on every plan, by design); if another sprint is running this fails and names it — complete that sprint via complete_sprint, then retry.
Use this when the user has finished a sprint and wants to wrap it up (e.g. 'close this sprint'). Marks the sprint complete and archives its finished tasks into the sprint's history — they leave the board's Done column but stay searchable and visible on the sprint's page. Unfinished tasks stay on the board. This cannot be undone via MCP — if the user's intent is ambiguous, confirm before calling.
Use this when the user wants to pull an existing task into a sprint. Idempotent — calling it on a task already in the sprint is a no-op.
Use this when the user wants to detach a task from its current sprint without deleting it. The task remains on the board. Idempotent.
Weft is a Scrumban task manager for solo founders and small teams — one board, your sprints, and the AI you already use driving it.
Connect any MCP client — Claude, ChatGPT, Cursor, Codex, Gemini CLI — to https://letsweft.com/api/mcp. Streamable HTTP, OAuth 2.1 with dynamic client registration, no API keys; sign-in opens in the browser on first use.
{ "mcpServers": { "weft": { "url": "https://letsweft.com/api/mcp" } } }
Per-client guides: https://letsweft.com/integrations?utm_source=mcpso&utm_medium=directory&utm_campaign=evergreen
Web at letsweft.com, iPhone, iPad and Android, with offline editing on mobile.
Weft のリモート MCP サーバーは、https://letsweft.com/api/mcp にホストされた Model Context Protocol エンドポイントです。AI アシスタントはローカルに何もインストール・実行することなく接続できます。
エンドポイント https://letsweft.com/api/mcp を Claude Code、Cursor、VS Code など任意の MCP 対応クライアントに追加してください。このページのセットアップ手順で各クライアントを一度に設定できます。
はい。Weft は OAuth を使用します。初回接続時に MCP クライアントがブラウザを開いてサインイン・認可を行い、以降はその認証情報を再利用します。
Weft は Streamable HTTP エンドポイントを公開しており、これはリモート MCP サーバーで広く使われ、主要な MCP クライアントがサポートするトランスポートです。
Pay-per-use data and tools for AI agents: crypto token safety and rug checks, web search with cited answers, page-to-Markdown, up-to-date library docs, package safety, company research and UK/EU open data. 160 tools, 20
The 9apes MCP server lets an AI assistant read the GitHub Actions data 9apes already collects for your organization: runs, jobs, steps, and their durations. Ask it why a build got slower, which jobs take the longest, or
AOI is a commercial environmental-intelligence gateway that gives AI agents programmatic access to 38 real-world intelligence capabilities — climate risk, satellite monitoring, methane detection, water & soil, vegetation
Write, schedule and publish LinkedIn posts in your own voice, reply to comments and read your analytics, all from your AI assistant. Remote MCP server with OAuth sign-in.
Manage your Adobe Experience Manager content
コメント