Noeto

io.github.noeto-tasksv0.6.5更新於 Oct 3, 2026

Work a Noeto kanban board: read and search it, create, move and comment on cards, keep docs on them.

概覽

AI 產生的概覽

讓助理讀取並操作 Noeto 看板:瀏覽看板、搜尋卡片、建立、更新、移動與留言卡片,並在卡片上保存文件。

功能
此伺服器把 Noeto 看板開放給助理使用。讀取類工具可列出看板與卡片數量、查看某個看板的欄位與卡片、依文字、負責人、標籤、優先順序、欄位或到期日跨看板搜尋卡片、取得單張卡片及其留言與檔案、列出團隊成員,並顯示權杖屬於哪位成員。寫入類工具可建立卡片、更新欄位、在欄位之間移動或重新排序卡片、張貼留言,以及附加或讀取 Markdown 文件與文字、圖片附件。附件也可下載到本機磁碟並回傳路徑。
適用情境
適合團隊把工作放在 Noeto 看板上,並希望助理回答相關問題、進行搜尋,或完成建立、移動、更新、留言等日常卡片操作。適用於桌面版的 Claude Code 與 Claude Desktop,而非瀏覽器或行動用戶端。
執行需求
以本機程序透過 stdio 執行,可用 Docker 映像、Homebrew 二進位檔或發行壓縮檔安裝;macOS 上的二進位檔未簽章。需要環境變數 NOETO_API_URL(API 根網址)與 NOETO_TOKEN(在 Noeto 的「設定 → 存取權杖」建立的個人存取權杖)。一個伺服器實例只服務一個團隊,由權杖決定。需要能連線至 Noeto API 的網路。
安裝前請注意
NOETO_TOKEN 個人存取權杖屬於機密,可存取該團隊的看板;它透過環境變數傳入,請勿寫入共用設定。此伺服器可以寫入:建立與更新卡片、移動卡片、張貼留言、取代卡片上同名文件,並能把卡片附件存到本機目錄。它不能刪除人工建立的內容,也不會建立看板、欄位或標籤。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Noeto,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

noeto-mcp

[noeto-tasks/noeto-mcp MCP server]

An MCP server that lets an AI agent work a noeto kanban board: read it, create and update cards, move them, comment, and keep a written document on a card.

[Claude Code files a bug card, moves a card to In Progress and comments a plan, while the noeto board updates beside it]

Quick start (Claude Code)

  1. In noeto, Settings → Access tokens → Create token, and copy the secret.

  2. Install the plugin. It bundles the server and the /card workflow:

    sh
    /plugin marketplace add noeto-tasks/noeto-mcp/plugin install noeto@noeto-mcp
  3. Export the token and restart Claude Code:

    sh
    export NOETO_TOKEN=noeto_pat_…export NOETO_API_URL=https://api.noeto.online/api/v1

Then ask: "What's on my board?" More in the plugin README.

Other ways to run it

Docker, for any MCP host:

sh
claude mcp add noeto -s user \  -e NOETO_TOKEN=noeto_pat_… \  -e NOETO_API_URL=https://api.noeto.online/api/v1 \  -- docker run -i --rm -e NOETO_TOKEN -e NOETO_API_URL ghcr.io/noeto-tasks/noeto-mcp:v0.6.5

Or by hand in ~/.claude.json, .mcp.json or Claude Desktop's config:

json
{  "mcpServers": {    "noeto": {      "command": "docker",      "args": ["run", "-i", "--rm", "-e", "NOETO_TOKEN", "-e", "NOETO_API_URL",               "ghcr.io/noeto-tasks/noeto-mcp:v0.6.5"],      "env": {        "NOETO_TOKEN": "noeto_pat_…",        "NOETO_API_URL": "https://api.noeto.online/api/v1"      }    }  }}

Native binary, with Homebrew:

sh
brew install noeto-tasks/tap/noeto-mcpclaude mcp add noeto -s user \  -e NOETO_TOKEN=noeto_pat_… \  -e NOETO_API_URL=https://api.noeto.online/api/v1 \  -- "$(brew --prefix)/bin/noeto-mcp"

Or take an archive from releases (macOS, Linux, Windows). The binary is unsigned, so on macOS run xattr -d com.apple.quarantine noeto-mcp first. Point the config at it by absolute path.

Good to know

  • One server serves one team — the token decides which. For two teams, add two entries with their own tokens (noeto-work, noeto-personal).
  • Against a local noeto from Docker, use http://host.docker.internal:8081/api/v1 (macOS, Windows) or --network host (Linux).
  • It runs as a local process, so it works in Claude Code and Claude Desktop, not in claude.ai in the browser or the mobile apps.

Tools

toolwhat it does
list_boardsthe team's boards, with card countsreads
get_boardone board: columns in order and the cards in themreads
find_cardssearch every board by text, assignee, label, priority, column, due datereads
get_cardone card in full, with comments and the files on itreads
list_memberswho is on the teamreads
whoamiwhich member the token belongs toreads
create_cardadd a card to a columnwrites
update_cardtitle, description, assignee, priority, due date, labelswrites
move_cardto another column, or reorder within onewrites
comment_on_cardpost a commentwrites
read_documentthe Markdown of a document on a cardreads
attach_documentwrite one, replacing the previous copy of that namereplaces
read_attachmenta text or image file on a cardreads
download_attachmentsave any file on a card to disk and return its pathsaves locally
  • Boards, columns, labels and people can be named: move_card(card, column: "Done"). The card itself needs its id, so a typo can never edit the wrong card.
  • none clears a field: update_card(card, due: "none"). An omitted argument leaves it alone.
  • Documents and text files are capped at 512 KB, images at 1.5 MB. Bigger files and other types go through download_attachment.
  • Downloads land in NOETO_DOWNLOAD_DIR (default: noeto-attachments in the system temp directory). In Docker, mount that directory at the same path on both sides — the plugin's config already does.

It deliberately cannot delete anything a person made, and does not create boards, columns or labels. The reasoning behind these and the other choices is in docs/internals.md.

Development

sh
make test         # hermetic, against a fake APImake smoke        # contract check against a running noeto (needs NOETO_TOKEN)make lintmake docker       # build the image for this machinemake release-dry  # build release artifacts into dist/, publish nothing

Run make smoke after any API change.

Releasing: Actions → Release → Run workflow, with the version (0.6.3). It tests, pins the version, pushes the image, tags, publishes the GitHub release and Homebrew cask, and lists the version in the MCP Registry. It needs a HOMEBREW_TAP_TOKEN secret that can write to noeto-tasks/homebrew-tap. make release-plugin RELEASE=x.y.z does the same from a laptop, except the registry: run the Publish to MCP Registry workflow afterwards.

來源:README.md,提交 3dd0544

工具

0
工具後設資料尚未被收錄。

版本歷史

1
  1. v0.6.5最新Oct 3, 2026