Noeto

io.github.noeto-tasksv0.6.5Updated Oct 3, 2026

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

Overview

AI-generated overview

Lets an assistant read and work a Noeto kanban board: browse boards, search cards, create, update, move and comment on cards, and keep documents on them.

What it does
The server exposes a Noeto kanban board to an assistant. Read tools list boards with card counts, show a board's columns and cards, search cards across boards by text, assignee, label, priority, column or due date, fetch a card with its comments and files, list team members, and report which member the token belongs to. Write tools create cards, update fields, move or reorder cards between columns, post comments, and attach or read Markdown documents and text or image attachments. Attachments can also be downloaded to disk, which returns a local path.
When to use it
Useful when a team keeps its work on a Noeto board and wants an assistant to answer questions about it, search it, or make routine card changes such as creating, moving, updating or commenting. It fits Claude Code and Claude Desktop on a desktop machine rather than browser or mobile clients.
Requirements
Runs as a local process over stdio, via Docker image, Homebrew binary or release archive; the binary is unsigned on macOS. Requires the environment variables NOETO_API_URL (API root) and NOETO_TOKEN, a personal access token created in Noeto under Settings, Access tokens. One server instance serves one team, as the token determines the team. Network access to the Noeto API is needed.
Before you install
The NOETO_TOKEN personal access token is a secret and grants access to the team's board; it is passed by environment variable, so keep it out of shared configuration. The server can write: it creates and updates cards, moves them, posts comments and replaces a document of the same name on a card, and it can save card attachments to a local directory. It cannot delete anything a person made and does not create boards, columns or labels.

Installation

In SourceWeft

  1. Open Noeto in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

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.

Source: README.md at commit 3dd0544

Tools

0
Tool metadata has not been indexed yet.

Version history

1
  1. v0.6.5LatestOct 3, 2026