briefroom stdio MCP server — expose the briefroom CLI to Claude Code, Codex, and other agents.
Three tools with complete input schemas and descriptions. Tool names follow verb_noun pattern (deploy_html, get_feedback, list_deployments). Descriptions are detailed (100-300 chars) and explain WHAT, WHEN, and prerequisites. All parameters have types and descriptions. However, output schemas are not documented in the source, LLMs cannot see what fields to expect from responses. Error handling is present (cliErrorResult, cliExceptionResult) but lacks recovery guidance. No tool annotations (readOnlyHint/destructiveHint). Composition is sound: each tool has one responsibility, and deploy_html accepts human-friendly identifiers (path, room slug, display name).
Zip a local directory of HTML/CSS/JS and upload it to briefroom, returning a share URL. Supports a share-link expiry (`expires`: 24h | 7d | 30d | 90d | never), a room display `name` (any language, e.g. Japanese; distinct from `room` slug — see below), password protection (Pro+ plans), `private: true` for a room only the signed-in owner can open (every plan), `allow_comments: false` to hide the comment sidebar from viewers (page + header only), and `display_mode: "live"` for a chrome-less full-screen page instead of the default review UI. On a redeploy, `expires` / `password` / `visibility` / `allow_comments` / `display_mode` are applied to the existing link (same URL) only when set explicitly; omitted fields are left unchanged. Uses BRIEFROOM_TOKEN (or the briefroom CLI login) for authentication. Non-interactive.
Fetch reviewer comments for a briefroom share URL (or raw token) as an AI-agent-optimized Markdown prompt by default, or JSON. Public API — works without auth, but auth returns owner-only fields.
List briefroom rooms owned by the current PAT, with their latest deploy and share URL. Requires BRIEFROOM_TOKEN or a prior `briefroom login`.
Output schemas not documented. LLMs cannot see what fields deploy_html, get_feedback, or list_deployments return. This forces agents to guess structure and wastes tokens on trial-and-error parsing.
Error messages lack recovery guidance. cliErrorResult returns raw CLI stderr; agents cannot determine if the error is retryable, user-fixable, or fatal. Example: 'Not signed in' should suggest 'Run `npx @briefroom/cli login` or set BRIEFROOM_TOKEN.'
No tool annotations. deploy_html is destructive (WRITE risk) and should carry destructiveHint=true. get_feedback and list_deployments are read-only and should carry readOnlyHint=true. This helps agents reason about side effects and retry safety.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 64 | 2026-07-28+ | v2 |
deploy_html accepts 'expires' enum but does not document plan-based constraints (Free plan: 24h/7d only; Pro+: 30d/90d/never). LLMs may pass invalid values for the user's plan, causing silent failures.
list_deployments lacks pagination guidance. If a user has 100+ rooms, the tool returns only 20 by default. No documentation of how to iterate or whether a next_cursor is available. Large result sets risk context window exhaustion.