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