Queueboard

io.github.CloudCorpRecords由 GitHub 帳號 CloudCorpRecords 發布v0.1.0更新於 Nov 7, 2026

Feedback boards for product teams: posts, votes, comments, agent work queue, changelog.

已驗證STDIO僅桌面效率與工作流商業與電商

概覽

AI 產生的概覽

連接 FeatureJet 託管回饋看板服務的本地橋接,讓助理管理看板、貼文、留言與代理工作佇列。

可以做什麼
  • 列出、建立、發布與取消發布回饋看板
  • 列出、讀取、建立、更新與隱藏貼文;查看投票與留言,並以團隊身分留言
  • 處理建置佇列:讀取排序後的未認領貼文、認領與釋放貼文、附加實作證據、提出狀態變更建議等待人工確認
  • 查看已發布貼文的更新日誌與唯讀看板分析資料
  • 用 whoami 與 ping 確認 API 金鑰與連線狀態
適用情境
適合產品團隊在 FeatureJet 上經營回饋看板,並希望助理篩選貼文、草擬回覆,或從排序佇列取下一項並記錄工作進度的情境。也適合以命令列腳本呼叫同一 API。
執行需求
透過 npx 或 Docker 以 stdio 在本機執行,需要能連線至上游 FeatureJet MCP 端點。API 金鑰由選用環境變數 FEATUREJET_API_KEY 提供,並以 Bearer 標頭轉送;FEATUREJET_MCP_URL 可覆寫端點。未設定金鑰時不送出驗證標頭。
安裝前請注意
多數工具會寫入呼叫者的工作區:建立、編輯或隱藏看板、貼文與留言,並佔用認領。發布看板會將其公開到網際網路,但預設關閉,否則需在後台手動發布。附加到貼文的證據會公開展示。API 金鑰會轉送給上游服務,README 說明金鑰處理與錯誤呈現屬於重建實作,而非原始擷取行為。

安裝

在 SourceWeft 中

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

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

其他 MCP 客戶端

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

README

queueboard

queueboard is a small local bridge to FeatureJet's hosted MCP server, which runs feedback boards for product teams: people post ideas and requests to a board, vote and comment on them, and the team works the ranked queue, publishes a changelog and watches board analytics.

The bridge holds no feedback data of its own. It serves the upstream server's tool list locally, exactly as captured from the live endpoint, and forwards each tool call upstream, returning the result untouched. Most of the surface writes to the caller's own workspace - boards, posts and comments are created and edited, an agent can claim a post from the work queue, attach evidence and propose a status change for the owner to confirm.

Tools

Boards:

  • list_boards - every board the caller's key can reach. No arguments.
  • get_board - one board by slug. Required: slug.
  • create_board - a new board, created as a draft. Required: name, slug. Optional: description.
  • publish_board - make a board live at its public URL. Required: slug. Off by default upstream; where it is not enabled the owner publishes from the dashboard.
  • unpublish_board - return a board to draft so its public URL stops serving it. Required: slug.

Posts, votes and comments:

  • list_posts - posts on a board, optionally filtered by status, search text q or tag, with limit and offset paging. Required: slug.
  • get_post - one post in full. Required: slug, post_id.
  • create_post - a new post on a board. Required: slug, title. Optional: body, status, tags.
  • update_post - change mutable post fields such as title, body, status, tags, pinned and queue_rank (a null rank un-ranks the post). Required: slug, post_id.
  • delete_post - hide a post through the developer API. Required: slug, post_id.
  • list_votes - vote metadata for a post. Required: slug, post_id.
  • list_comments - comments on a post. Required: slug, post_id.
  • create_comment - comment as the board team, optionally replying via parent_comment_id. Required: slug, post_id, body.

Agent work queue:

  • get_queue - the top unclaimed posts in the owner's curated build order: ranked posts first, then unranked planned posts by votes. Required: slug. Optional: limit.
  • claim_post - atomically claim a post before working on it, so two agents never build the same thing. Required: slug, post_id. Optional: ttl_seconds (default 3600, max 86400) and agent_label.
  • release_post - give a claim back so other agents can pick the post up. Required: slug, post_id.
  • add_evidence - attach implementation evidence that voters see on the post page. Required: slug, post_id, kind (branch, commit, pr, transcript or url) and ref. Optional: label, action_key.
  • propose_status - propose a status change (open, planned, in_progress, shipped or declined) for the board owner to confirm; nothing changes publicly until a human confirms. Required: slug, post_id, status. Optional: note, action_key.

Reads:

  • get_changelog - shipped posts for a board. Required: slug.
  • get_analytics - read-only analytics for a board, optionally for a period. Required: slug.
  • whoami - confirm the caller's key by listing its accessible boards. No arguments.
  • ping - check MCP and FeatureJet API reachability for the caller's key. No arguments.

Configuration

  • FEATUREJET_MCP_URL (optional) - override the upstream endpoint. Defaults to https://mcp.featurejet.com/mcp. (The override hook is this rebuild's own labelled reconstruction.)
  • FEATUREJET_API_KEY (optional) - when set, every upstream request carries an Authorization: Bearer <key> header. When it is not set, no auth header is sent. (This forwarding is also a labelled reconstruction; the original surface was captured keyless, and the registry record declares the Authorization header as the key carrier.)

Forwarding mechanics

On the first tool call the client opens a streamable HTTP session with the upstream: a JSON-RPC initialize request (protocolVersion 2025-03-26, clientInfo name queueboard), then a notifications/initialized notification, then the tools/call request carrying the caller's arguments unchanged. When the upstream answers initialize with an Mcp-Session-Id header, that value rides on every later request of the session, which is reused for the life of the process. Replies may arrive as plain JSON or as server-sent events; both are read.

Successful upstream results pass through verbatim, including any isError flag the upstream sets. Failures - a JSON-RPC error, a non-2xx status, an unreadable response, or a request that cannot be completed - come back as an isError result whose text starts with queueboard error: (this rendering is this rebuild's own labelled reconstruction).

CLI

Each tool is also a subcommand taking one JSON argument string (omit it for tools that take none):

bash
npx @reneturcios/queueboard list_boardsnpx @reneturcios/queueboard get_board '{"slug":"ideas"}'npx @reneturcios/queueboard create_post '{"slug":"ideas","title":"Dark mode"}'npx @reneturcios/queueboard get_queue '{"slug":"ideas"}'npx @reneturcios/queueboard claim_post '{"slug":"ideas","post_id":42}'npx @reneturcios/queueboard --version

Exit codes: 0 on success, 1 on an isError result, 2 on a usage error.

MCP server

bash
npx -y @reneturcios/queueboard mcp

MCP client config:

json
{  "mcpServers": {    "queueboard": {      "command": "npx",      "args": ["-y", "@reneturcios/queueboard", "mcp"]    }  }}

Docker

bash
docker run -i ghcr.io/cloudcorprecords/queueboarddocker run --rm ghcr.io/cloudcorprecords/queueboard --version

The container's default command is mcp, so the first form is a stdio MCP server; any other arguments reach the CLI normally.

Development

bash
npm installnpm run buildnpm testnpm run dev

The test suite runs entirely against a stubbed JSON-RPC upstream - no live network calls.

License

MIT - see LICENSE.

來源:README.md,提交 43c141e

工具

22

list_boards

List boards available to the caller's FeatureJet API key.

無需輸入參數。

get_board

Get one board by slug.

輸入參數slug必填

create_board

Create a new feedback board, as a DRAFT. `slug` is the board's URL path segment (lowercase, hyphenated, unique); `name` is the display name. The new board's public URL 404s until a human publishes it from the dashboard -- `publish_board` is off by default (403 `publish_disabled`).

輸入參數name必填slug必填description

publish_board

Publish a board so it is live at its public URL. OFF BY DEFAULT. Putting a board on the public internet is a human decision: unless the FeatureJet deployment has opted in, this returns 403 `publish_disabled` and the owner publishes from the dashboard. Where it is enabled it needs a `write` (or `admin`) scoped key and an active subscription -- an org without one gets 403 `subscription_required`.

輸入參數slug必填

unpublish_board

Return a board to draft so its public URL stops serving it. Nothing is deleted; publish it again to bring it back.

輸入參數slug必填

list_posts

List posts for a board, optionally filtered by status, search, or tag.

輸入參數qtagslug必填limitoffsetstatus

get_post

Get one post by board slug and post id.

輸入參數slug必填post_id必填

create_post

Create a post on a board.

輸入參數bodyslug必填tagstitle必填status

update_post

Update mutable post fields; null queue_rank explicitly un-ranks.

輸入參數bodyslug必填tagstitlepinnedstatuspost_id必填queue_rank

delete_post

Delete a post by hiding it through the developer API.

輸入參數slug必填post_id必填

list_votes

List vote metadata for a post.

輸入參數slug必填post_id必填

list_comments

List comments for a post.

輸入參數slug必填post_id必填

create_comment

Comment on a post as the board team, optionally replying to a comment.

輸入參數body必填slug必填post_id必填parent_comment_id

get_queue

Top UNCLAIMED posts in the owner's curated build order. Owner-ranked posts (queue_rank, lower = sooner) come first, then unranked planned posts by votes. Call this to find the next thing to build, then claim_post before starting work.

輸入參數slug必填limit

claim_post

Atomically claim a post before working on it (double-work guard). ttl_seconds defaults to 3600 (max 86400); re-claiming with the same key extends the lease. Returns 409 if another key holds a live claim.

輸入參數slug必填post_id必填agent_labelttl_seconds

release_post

Release a post's claim so other agents can pick it up.

輸入參數slug必填post_id必填

add_evidence

Attach implementation evidence to a post (shown publicly). kind is one of branch|commit|pr|transcript|url; ref is the branch name, commit sha, or URL. Voters see these in the post page's "Implementation" section.

輸入參數ref必填kind必填slug必填labelpost_id必填action_key

propose_status

Propose a status change for the board owner to confirm. The agent-honest way to mark work done: nothing changes on the public board and no voter is notified until a human confirms the proposal from the dashboard. status is one of open|planned|in_progress|shipped|declined; a new proposal replaces any pending one. Prefer this over update_post's direct status flip.

輸入參數noteslug必填status必填post_id必填action_key

get_changelog

List shipped posts for a board.

輸入參數slug必填

get_analytics

Get read-only analytics for a board.

輸入參數slug必填period

whoami

Confirm the caller's API key by listing accessible boards.

無需輸入參數。

ping

Check MCP and FeatureJet API reachability for the caller's key.

無需輸入參數。

版本歷史

1
  1. v0.1.0最新Nov 5, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分