給 ChatGPT、Claude、Cursor 和 Codex 的看板 MCP 伺服器
作者:Andrei Finogeev,Weft 創辦人 ·
Weft 是一塊託管的看板 — Backlog、Todo、Doing、Done,衝刺可選 — 它的 MCP 伺服器位於 https://letsweft.com/api/mcp。把這個 URL 加進你的 AI 客戶端,用 OAuth 登入一次就好;不必在本機安裝或執行任何東西。從那之後,助理會讀取看板、建立和移動卡片、開工前先認領卡片讓兩個代理人永遠不會拿到同一張、回報進度、遇到該你決定的事就問你,最後附上它做了什麼來關閉卡片。每月 50 個任務和 200 次 AI 呼叫以內免費。
https://letsweft.com/api/mcpStreamable HTTP · OAuth 或個人存取權杖 · 32 個工具
加進你的 AI 客戶端
ChatGPT
在 ChatGPT 中開啟 Weft — 或手動設定:
- 1從 ChatGPT 側邊欄打開 Plugins — 或走 Settings → Plugins。
- 2搜尋「Weft」並打開那個上架項目。
- 3點「Connect」,看一下 Weft 能存取哪些東西。
- 4在跳出的視窗裡用你的 Weft 帳號登入。
在任何對話裡用 @ 提到這個外掛:「@Weft 我的看板上有什麼?」 — 或從 + 選單挑 Weft。如果你跳過了設定,ChatGPT 會直接在對話裡提議幫你連上。
Claude Desktop
- 1打開 Claude Desktop → Settings → Connectors。
- 2點「Add custom connector」。
- 3把下面 Weft 的 MCP 網址貼上去並儲存。
- 4在開啟的瀏覽器視窗裡完成 OAuth。
開一個新對話,問:「我的 Weft 看板上有什麼?」Claude 會透過 Weft 連接器取得你的看板狀態。
Claude Code
claude mcp add --transport http weft https://letsweft.com/api/mcp在任一專案裡執行 `claude`,然後問:「我的看板上有什麼?」第一次會開一個瀏覽器視窗完成 OAuth。
Cursor
加到 Cursor — 或手動設定:
{
"mcpServers": {
"weft": {
"url": "https://letsweft.com/api/mcp"
}
}
}打開 Cursor → Settings → MCP。完成 OAuth 之後,「weft」這個伺服器應該會出現,並帶一個綠色指示。
Codex CLI
[mcp_servers.weft]
url = "https://letsweft.com/api/mcp"執行 `codex mcp login weft` 在瀏覽器登入,接著啟動 `codex` 並問:「我的看板上有什麼?」`/mcp` 會列出已連線的伺服器和它的工具。
VS Code
安裝 Weft 擴充套件 — 或手動設定:
{
"servers": {
"weft": {
"type": "http",
"url": "https://letsweft.com/api/mcp"
}
}
}打開聊天,把模式選單切到 Agent,然後問:「我的看板上有什麼?」。第一次會跳出瀏覽器視窗完成 OAuth。「MCP: List Servers」裡 weft 應顯示為 Running。
Windsurf
- 1打開 Windsurf → Settings → Cascade → MCP servers。
- 2點「Add server」,選 Remote (HTTP)。
- 3把下面 Weft 的 MCP 網址貼上去並儲存。
- 4在開啟的瀏覽器視窗裡完成 OAuth。
打開 Cascade,問:「我的看板上有什麼?」Cascade 會在用到 Weft 伺服器的回答上做標記。
Gemini CLI
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 會把附選項的問題放進你的收件匣 — 網頁和手機都有 — 而不是讓代理人去猜只有你能決定的事。
由你的注意力決定步調
當太多做完的工作在等你審閱,代理人就不再開新卡片。這就是看板方法對在製品的上限,套用在你身上。
每個 AI 能做什麼,由你決定
給每個已連接的助理完整、寫入或唯讀的權限,按一下就能中斷連線。刪除的卡片會進垃圾桶,而不是直接消失。


32 個工具
每個工具都會宣告它只是讀取、寫入,還是會移除東西,讓你的客戶端知道什麼時候該先問你。
| 工具 | 做什麼 | 類型 |
|---|---|---|
| search | 在任務、衝刺、決策和記憶筆記中做關鍵字搜尋。回傳最多 50 筆依相關度排序的 {id, title, url} 結果,帶類型前綴的 id 可以直接交給 fetch。 | 讀取 |
| fetch | 取得單一搜尋結果的完整內容 — 標題、文字內容、來源 url 和結構化中繼資料。參數是 search 回傳的帶前綴 id。 | 讀取 |
| initialize_board | 如果你的 Weft 看板上還沒有欄位,就建立預設的 Backlog、Todo、Doing 和 Done 欄位 — AI 代理人開始管理任務之前,一次呼叫完成設定。冪等。 | 寫入 |
| get_board_state | 回傳使用者 Scrumban 看板的精簡簡報:欄位、進行中的衝刺、Doing、逾期任務和最近完成的任務,大約比完整快照小 30 倍。 | 讀取 |
| list_columns | 依順序列出看板上的所有欄位 — 每個欄位的 id、名稱和位置,讓代理人確切知道任務能移到哪裡。 | 讀取 |
| list_tasks | 回傳已驗證使用者的任務,可依欄位、衝刺、專案(名稱或 id)、建立者(人或 AI)或負責人(執行者)篩選。 | 讀取 |
| create_task | 在使用者的看板上建立新任務。沒指定欄位時會放進 Backlog。優先度預設為中。在使用者要求新增任務時使用。 | 寫入 |
| bulk_create_tasks | 一次原子呼叫建立最多 1000 個任務 — 匯入 Linear/Jira/Notion/Trello 的匯出檔,或任何 3 個以上的任務清單,只消耗一次 AI 呼叫額度。 | 寫入 |
| update_task | 修改既有任務的欄位。只會變更你傳入的欄位;沒傳的欄位保持不變 — 只有一個例外:代理人不能清除 requiresReview,被拒絕時整個修改都不會套用。 | 寫入 |
| move_task | 把任務移到另一個欄位和位置。移到 semantic='doing' 的欄位會開始計算週期時間;移到 semantic='done' 的欄位會記錄完成時間。 | 寫入 |
| start_task | AI 開始執行任務的那一刻就呼叫它 — 卡片會移到 Doing,讓使用者和其他每個已連接的客戶端都看到它在進行中(也不會被接手兩次)。開始計算週期時間;沒有負責人的任務會由呼叫的代理人認領(既有的負責人永遠不會被覆蓋)。不需要欄位 id。 | 寫入 |
| report_progress | 表示你還在工作。客戶端沉默下來時,任務上的認領會到期,這個工具會延長它。沒有心跳的話,長時間執行的任務會被視為放棄並提供給別人 — 這是刻意的,因為中途掛掉的代理人什麼也回報不了,沉默是看板唯一能收到的訊號。 | 寫入 |
| request_input | 問對方一件只有他能決定的事,並在不失去任務認領的情況下等待。如果對方就在他的客戶端前,那裡會出現一個表單,答案會在同一次呼叫裡回來 — 代理人在同樣的上下文、同樣的認領下繼續工作。如果對方不在,呼叫會以暫停狀態回傳,問題在他的佇列裡等著;代理人下次呼叫 start_task 或 get_my_work 時就會收到答案。這是給無法復原的事和真正模稜兩可的情況用的,不是用來問「我可以繼續嗎?」 — 每個問題都會花掉限制新工作的同一份注意力額度。 | 寫入 |
| submit_answer | 把對方對代理人所提問題的回答帶回來,並用同樣的 runId 和租約把工作交回去,讓它在同一次嘗試裡繼續,而不是重新冷啟動。這會標記為轉達,絕不會當成是本人親自操作 — 由代理人帶回的答案和人親手按下的點擊是不同種類的證據,看板會把它們分開。如果問題已經在 Weft App 裡回答過,就會回傳那個答案而不是錯誤:重要的是代理人用正確的答案繼續。 | 寫入 |
| get_my_work | 問下一步該做什麼,而不是讀完整塊看板再用猜的。回傳指派給這個客戶端的任務、已經在等人處理的事,以及注意力佇列還有沒有空間。它也會列出逾期的事,以及本週內到期或開始的事,讓代理人不必問就知道截止日期。佇列滿了的時候,有用的做法是幫忙清空它,而不是開新的工作 — 這個工具會在挑任務之前就說明這一點。 | 讀取 |
| complete_task | 工作真正完成時,AI 會呼叫它 — 卡片移到 Done 並記錄完成時間,選填的 outcome(做了什麼、結果放在哪裡)會以「Outcome (AI, date)」筆記附加到卡片上。不需要欄位 id。標記為需要你處理的工作不會移到 Done:它會帶著收據進到你的佇列;如果代理人說了下一步要做什麼,接受就等於核准那一步,並把它交回給代理人。如果任務帶有驗證計畫,伺服器會當場執行檢查 — 抓取 URL、尋找引文、比對雜湊:executable/state_delta 計畫的阻擋性檢查全部通過時,任務會由伺服器驗證後關閉;阻擋性檢查失敗時,卡片不會進 Done,並讓代理人看到伺服器觀察到了什麼。 | 寫入 |
| record_decision | 一個工具、兩種用途、一張紀錄表。(1) 轉達你在對話中對等你處理的已完成工作所下的裁決 — 核准、退回、放棄、稍後再說 — 把卡片從審閱佇列中清掉;這筆紀錄會存成轉達,而不是你在 App 裡親自操作,這個差別是刻意保持可見的。(2) 記錄一個值得記住的獨立決策 — 「選了 Neon 而不是 Supabase」、一個學到的教訓 — 成為一筆不可變的 MADR-lite 紀錄,附上權衡過的選項和需要重新檢討的條件。紀錄永遠不會被編輯:帶有 supersedesId 的新決策會取代舊的,舊的仍然可讀,保留它當天所說的內容。get_context 下週會把這些紀錄提供給每個代理人。 | 寫入 |
| get_context | 工作區目前有效的決策和教訓,依 token 額度打包,最新的在前 — 代理人在開始任何不簡單的事之前應該先讀的內容。它是從已記錄的決策推導出來,而不是寫成一份文件,所以不會過時:被取代的決策在替代者記錄的那一刻就會消失,每一行都帶有日期。可以限定在某個專案或任務來縮小範圍;放不進額度的行會被計數,絕不會悄悄隱藏。 | 讀取 |
| get_task_history | 任務發生過什麼,而不只是它目前的欄位。三種模式:'summary'(預設,≤500 token — 卡片、最新的收據、計數)、'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 | 列出使用者的所有衝刺(已規劃、進行中、已結束、已封存),讓個人創業者或代理人不必打開 App 就能檢視衝刺歷史和目前狀態。 | 讀取 |
| get_active_sprint | 回傳目前進行中的衝刺,沒有衝刺在跑時回傳 null — 讓個人創業者或代理人不必打開 App 就能確認目前的目標。 | 讀取 |
| create_sprint | 在你的 Weft 看板上建立一個「planned」狀態的新衝刺,可以排定目標和日期。準備開始工作時,再另外呼叫 start_sprint。 | 寫入 |
| start_sprint | 把已規劃的衝刺轉為進行中。所有方案同一時間都只能有一個進行中的衝刺 — 如果已經有另一個衝刺在跑,呼叫會失敗並說出它的名字;先結束那個衝刺,再重試。 | 寫入 |
| complete_sprint | 結束進行中的衝刺。做完的任務會封存到衝刺的歷史裡 — 離開看板的 Done 欄,仍可搜尋,也會顯示在衝刺的頁面上。沒做完的任務留在看板上,仍掛在該衝刺下。無法透過 MCP 復原 — 意圖不明確時,客戶端應該先確認。 | 移除 |
| add_task_to_sprint | 把既有任務指派到某個衝刺,讓它出現在該衝刺的範圍和燃盡圖中。冪等 — 呼叫兩次也不會有額外效果,可以安全重試。 | 寫入 |
| remove_task_from_sprint | 把任務從目前的衝刺中解除,但不刪除它 — 任務仍留在看板上原本的欄位,只是不再屬於那個衝刺或它的燃盡圖。 | 寫入 |
常見問題
什麼是看板 MCP 伺服器?
一種 MCP(Model Context Protocol)伺服器,把看板以 AI 助理能呼叫的工具形式提供出來:列出欄位、讀取卡片、建立卡片、把它移到 Doing 或 Done。Weft 的伺服器是託管的,所以你只要加一個 URL,不必在自己的電腦上執行程序。
我需要安裝或執行任何東西嗎?
不需要。把 https://letsweft.com/api/mcp 加進你的 AI 客戶端,用 OAuth 登入。不支援 OAuth 的客戶端,可以使用在 設定 → 存取權杖 產生的個人存取權杖。
免費嗎?
是的,每月 50 個任務和 200 次 AI 呼叫以內免費。Pro 以每席次每月 $7,或每席次每年 $60 取消這些上限。
ChatGPT 免費版能用嗎?
可以。Weft 列在 ChatGPT 的 Plugin directory 裡,所有 ChatGPT 方案都能用,包含免費版。在 ChatGPT 裡直接加入 MCP URL 是 Business、Enterprise 和 Edu 才有的功能,但用 Weft 不需要它。
兩個代理人可以共用一塊看板嗎?
可以 — 這正是看板的用途。每個代理人處理卡片前都會先用 start_task 認領,所以不會拿到同一張卡片;每張卡片也會顯示是 AI 還是人建立或完成的。
這和本機的看板 MCP 伺服器有什麼不同?
開源的看板 MCP 伺服器在你的電腦上執行,把看板存在本機檔案或資料庫裡,所以只有那台電腦上的代理人看得到。Weft 是一塊共用的託管看板:同樣的卡片出現在 ChatGPT、Claude、Cursor、Codex、網頁 App,以及 iOS 和 Android App 裡,供你和你的團隊使用。