list_boards
List boards available to the caller's FeatureJet API key.
Takes no parameters.

io.github.CloudCorpRecordsPublished by GitHub account CloudCorpRecordsv0.1.0Updated Nov 7, 2026
Feedback boards for product teams: posts, votes, comments, agent work queue, changelog.
Local bridge to FeatureJet's hosted feedback-board service, letting an assistant manage boards, posts, comments and an agent work queue.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Follow the launch instructions in the repository.
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.
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.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.)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).
Each tool is also a subcommand taking one JSON argument string (omit it for tools that take none):
Exit codes: 0 on success, 1 on an isError
result, 2 on a usage error.
MCP client config:
The container's default command is mcp, so the first
form is a stdio MCP server; any other arguments reach
the CLI normally.
The test suite runs entirely against a stubbed JSON-RPC upstream - no live network calls.
MIT - see LICENSE.
Source: README.md at commit 43c141e
List boards available to the caller's FeatureJet API key.
Takes no parameters.
Get one board by slug.
slugrequiredCreate 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`).
namerequiredslugrequireddescriptionPublish 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`.
slugrequiredReturn a board to draft so its public URL stops serving it. Nothing is deleted; publish it again to bring it back.
slugrequiredList posts for a board, optionally filtered by status, search, or tag.
qtagslugrequiredlimitoffsetstatusGet one post by board slug and post id.
slugrequiredpost_idrequiredCreate a post on a board.
bodyslugrequiredtagstitlerequiredstatusUpdate mutable post fields; null queue_rank explicitly un-ranks.
bodyslugrequiredtagstitlepinnedstatuspost_idrequiredqueue_rankDelete a post by hiding it through the developer API.
slugrequiredpost_idrequiredList vote metadata for a post.
slugrequiredpost_idrequiredList comments for a post.
slugrequiredpost_idrequiredComment on a post as the board team, optionally replying to a comment.
bodyrequiredslugrequiredpost_idrequiredparent_comment_idTop 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.
slugrequiredlimitAtomically 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.
slugrequiredpost_idrequiredagent_labelttl_secondsRelease a post's claim so other agents can pick it up.
slugrequiredpost_idrequiredAttach 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.
refrequiredkindrequiredslugrequiredlabelpost_idrequiredaction_keyPropose 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.
noteslugrequiredstatusrequiredpost_idrequiredaction_keyList shipped posts for a board.
slugrequiredGet read-only analytics for a board.
slugrequiredperiodConfirm the caller's API key by listing accessible boards.
Takes no parameters.
Check MCP and FeatureJet API reachability for the caller's key.
Takes no parameters.
90% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
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 --versionnpx -y @reneturcios/queueboard mcp{ "mcpServers": { "queueboard": { "command": "npx", "args": ["-y", "@reneturcios/queueboard", "mcp"] } }}docker run -i ghcr.io/cloudcorprecords/queueboarddocker run --rm ghcr.io/cloudcorprecords/queueboard --versionnpm installnpm run buildnpm testnpm run dev