关于 briefroom
briefroom 是面向 Agent 的 MCP 服务,可将 HTML 目录部署到 briefroom 并获取评审反馈。它通过现有 briefroom CLI 提供部署、反馈和房间列表操作。
主要功能
- 01将本地目录部署为可分享的 HTML 房间
- 02以 Markdown 或 JSON 获取评审意见
- 03列出自有房间及其最新部署
- 04部署到私人房间
适用场景
- 01分享 HTML 原型以供浏览器评审
- 02将评审意见载入 Agent 上下文
- 03查看并跟踪现有部署
MCP 相关
此 stdio MCP 服务通过 `deploy_html`、`get_feedback` 和 `list_deployments` 工具提供 briefroom CLI 操作,并以子进程运行 `@briefroom/cli`。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
3收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| new | boolean | 否 | 忽略 briefroom.json 并创建具有唯一 slug 的全新房间。 |
| name | string | 否 | 在控制面板和查看器中显示的房间名称(1-100 个字符,任意语言,包括日语)。不同于 `room`(slug)和自动签发的共享 URL 令牌。首次部署时设置名称;重新部署时,仅在明确设置的情况下更新现有房间名称。 |
| path | string | 是 | 要部署的 HTML 所在目录的路径(必須)。 |
| room | string | 否 | 房间 slug——用于重新部署到现有房间的 ASCII kebab-case 标识符(不是显示名称,也不是共享 URL 的一部分)。优先于 briefroom.json/目录名称。 |
| expires | enum | 否 | 共享链接过期时间:24h | 7d | 30d | 90d | never。服务器默认值为 7d。免费计划仅允许 24h 和 7d(30d / 90d / never 需要 Pro+;私人房间除外)。重新部署时设置此项也会更新现有链接(同一 URL);省略则保留当前过期时间。24h | 7d | 30d | 90d | never |
| private | boolean | 否 | 将房间设为私人房间:只有登录的所有者可以打开 URL。所有计划均可用,不计入共享房间数量限制,并可与 expires "never" 搭配使用。是 visibility "email_invite_only" 的简写。 |
| password | string | 否 | 使用密码保护共享链接(仅限 Pro+ 计划)。通过环境变量传递给 CLI,而非作为 argv 标志,因此不会显示在进程列表中。 |
| visibility | enum | 否 | 共享链接可见性。'unlisted' 会移除现有密码;'password_protected' 要求提供 password 字段;'email_invite_only' 会将房间设为私人房间(与 private: true 相同)。unlisted | password_protected | email_invite_only |
| display_mode | enum | 否 | "review"(服务器默认值):briefroom 页眉 + 评论侧栏。"live":无浏览器界面的全屏页面,不显示任何 briefroom UI。重新部署时,仅在明确设置的情况下应用到现有链接;省略则保留当前设置。所有计划均可用。review | live |
| allow_comments | boolean | 否 | 是否向查看者显示评论侧栏(服务器默认值为 true)。设为 false 可完全隐藏评论:查看者只能看到页面和 briefroom 页眉。重新部署时,仅在明确设置的情况下应用到现有链接;省略则保留当前设置。所有计划均可用。 |
详细介绍
@briefroom/mcp
日文版 README:README.ja.md
briefroom stdio MCP 服务 — 将 briefroom CLI 提供给 Claude Code、Codex、Cursor 和其他 Agent,让它们无需自行启动 shell 即可部署 HTML 并获取审阅者评论。
- 一次调用即可部署 — 将本地目录打包成 zip 并上传,获取分享 URL。
- 获取审阅反馈 — 从浏览器获取评论,并转换为适用于 AI Agent 的 Markdown。
- 列出你的房间 — 列出你现有的部署及其分享 URL。
- 仅供自己使用 — 直接部署到私人房间,只有登录后才能打开。
将其添加到 Claude Code(一条命令)
claude mcp add briefroom -- npx -y @briefroom/mcp
在环境中设置 BRIEFROOM_TOKEN(在 briefroom.net/dashboard/settings/tokens 创建 PAT),或运行一次 npx @briefroom/cli login 将其保存到操作系统密钥链。
它能为你的 Agent 提供什么
| 工具 | 功能 |
|---|---|
deploy_html | 将本地目录打包成 zip 并上传到 briefroom。返回分享 URL。 |
get_feedback | 获取分享 URL 对应的审阅者评论,返回适用于 AI Agent 的 Markdown(默认)或 JSON。 |
list_deployments | 列出当前 PAT 所属的房间,以及每个房间的最新部署和分享 URL。 |
在内部,每个工具都会将 @briefroom/cli 作为子进程运行(process.execPath → node <cli>/dist/index.js),因此行为与 CLI 保持一致,两个包也会协同演进。
安装
npm i -g @briefroom/mcp
# or use it via npx (recommended for .mcp.json)
配置
配置文件位置和 env 插值语义因客户端而异。选择与你使用的客户端相符的配置块。
Claude Code
在项目根目录放置 .mcp.json。Claude Code 会根据启动 shell 的环境展开 ${VAR}:
{
"mcpServers": {
"briefroom": {
"command": "npx",
"args": ["-y", "@briefroom/mcp"],
"env": {
"BRIEFROOM_TOKEN": "${BRIEFROOM_TOKEN}"
}
}
}
}
或者通过 Claude Code CLI 注册:
claude mcp add briefroom -- npx -y @briefroom/mcp
Codex CLI
Codex 从 ~/.codex/config.toml 读取 MCP 服务定义(参见 Codex CLI 文档):
[mcp_servers.briefroom]
command = "npx"
args = ["-y", "@briefroom/mcp"]
env = { BRIEFROOM_TOKEN = "hak_your_pat_here" }
也可以省略 env 块,让 MCP 进程继承启动 Codex 的 shell 环境中的 BRIEFROOM_TOKEN。
Cursor
Cursor 不会展开 MCP 配置中 env 块里的 ${VAR},因此你需要预先决定如何提供 PAT。选项按推荐顺序排列:
选项 A — 使用包含明文 PAT 的用户级配置(避免 PAT 出现在任何仓库中):
~/.cursor/mcp.json:
{
"mcpServers": {
"briefroom": {
"command": "npx",
"args": ["-y", "@briefroom/mcp"],
"env": { "BRIEFROOM_TOKEN": "hak_your_pat_here" }
}
}
}
该文件位于你的主目录中,因此不会进入项目的 git 历史记录。
选项 B — 继承父 shell 环境(配置文件中不含 PAT):
使用 ~/.cursor/mcp.json 或项目的 .cursor/mcp.json,并且不包含 env 块:
{
"mcpServers": {
"briefroom": {
"command": "npx",
"args": ["-y", "@briefroom/mcp"]
}
}
}
省略 env 后,MCP 进程会继承 shell 的环境。如果你运行过 npx @briefroom/cli login,CLI 会从操作系统密钥链读取 PAT。或者,从已导出 BRIEFROOM_TOKEN=hak_... 的 shell 启动 Cursor。
不推荐 — 项目 .cursor/mcp.json 中包含明文 PAT:
如果必须在项目的
.cursor/mcp.json中放入明文 PAT,请将该文件添加到.gitignore,并且绝不要提交。PAT 泄露到公开仓库是众所周知的一类安全事件——优先选择上面的选项 A 或 B。如果不慎提交了 PAT,请在 briefroom.net/dashboard/settings/tokens 轮换该 PAT。
其他 stdio-MCP 客户端(Cline / Roo Code / Continue / …)
上面的配置段可以原样使用,但采用前请查阅客户端文档,了解 ${VAR} 插值语义以及在文件中保存 PAT 的安全性——同样应优先选择“用户级文件或继承环境变量”。
身份验证
有两种方式,可根据你的设置选择:
BRIEFROOM_TOKEN环境变量(推荐用于.mcp.json):在 briefroom.net/dashboard/settings/tokens 创建 PAT,并通过上方的env块传入。- OS 钥匙串(推荐用于本地开发):运行一次
npx @briefroom/cli login。MCP 服务会自动读取同一凭据。
同时设置时,BRIEFROOM_TOKEN 的优先级高于钥匙串。
存储在钥匙串中的登录信息与签发它的 API 源站绑定,绝不会发送到其他源站。如果你设置了 BRIEFROOM_API_URL(开发/预发布环境),请运行 npx @briefroom/cli login --api-url <url> 登录该源站,或传入 BRIEFROOM_TOKEN。BRIEFROOM_TOKEN 仅通过 https 发送(仅 localhost 允许使用纯 http)。
get_feedback 无需凭据也能使用——分享 URL 上的评论属于公开 API。身份验证仅用于解锁仅所有者可见的字段。
配置参考
| 环境变量 | 用途 | 默认值 |
|---|---|---|
BRIEFROOM_TOKEN | 个人访问令牌。跳过钥匙串查找。 | (未设置) |
BRIEFROOM_API_URL | 将 CLI 指向其他后端(开发/预发布环境)。 | https://briefroom.net |
工具参考
deploy_html
{
"path": "./mockups", // required — directory to deploy
"room": "demo-a", // optional — room slug: ascii identifier of the room to redeploy into
"name": "企画書 v2", // optional — room display name, 1-100 chars, any language
"expires": "7d", // optional — "24h" | "7d" | "30d" | "90d" | "never" (Free: 24h / 7d only, private rooms exempt; also updates the existing link on redeploy)
"new": false, // optional — start a brand new room
"password": "s3cret", // optional — password-protect the link (Pro+ plans; passed to the CLI via env, never argv)
"visibility": "unlisted", // optional — "unlisted" | "password_protected" | "email_invite_only"; "unlisted" clears an existing password
"private": false, // optional — true is shorthand for visibility "email_invite_only": only you, signed in, can open the room
"allow_comments": true, // optional — false hides the comment sidebar (viewers see the page + header only); every plan
"display_mode": "review" // optional — "review" (header + comment sidebar) | "live" (chrome-less full-screen page); every plan
}
返回原始 CLI JSON(share_url、room_id、version_number、visibility、allow_comments、
display_mode,……)。
重新部署时,只有显式传入 expires/password/visibility/allow_comments/display_mode,才会将其应用到现有分享链接(同一 URL)。省略某个字段则保留该设置不变。
以下三个标识符容易混淆:
| 字段 | 含义 |
|---|---|
name | 显示在仪表板和查看器中的显示名称。可使用任何语言。首次部署时设置;重新部署时,只有显式传入才会更新房间名称(省略则保留当前名称)。 |
room | 房间 slug——仅用于查找要重新部署到的现有房间的 ASCII kebab-case 标识符。绝不会出现在分享 URL 中。 |
| 分享 URL | 始终自动生成并带有随机令牌(/s/<token>)。不会根据 name 或 room 生成。 |
get_feedback
{
"share": "https://briefroom.net/s/aB3xQ2mK9pNvR4", // URL or bare token
"status": "all", // optional — "open" | "resolved" | "all"
"since": "2026-07-01T00:00Z",// optional ISO 8601 for delta pulls
"format": "prompt", // optional — "prompt" (Markdown) | "json"
"locale": "ja" // optional — "ja" | "en"
}
默认返回 Markdown,格式适合 Agent 直接粘贴回上下文中。
list_deployments
{
"limit": 20, // optional — 1-100, default 20
"archived": false
}
返回原始的 /api/v1/rooms JSON。
调试
日志仅写入 stderr——stdout 保留用于 JSON-RPC。要查看服务的运行情况:
BRIEFROOM_TOKEN=$YOUR_PAT npx @modelcontextprotocol/inspector \
npx -y @briefroom/mcp
在针对本地开发服务进行开发时,将检查器指向正在运行的后端,并设置 BRIEFROOM_API_URL=http://localhost:3000。
路线图
resolve_comment——等待后端支持评论 PATCH 端点的 PAT。- 用于托管场景的 Streamable HTTP 传输。
参与贡献
欢迎通过 github.com/briefroom/mcp 提交问题和拉取请求。公开仓库与 briefroom 单体仓库中的内部权威源保持同步;更改先在上游合入,再导出到此处。
此仓库中的本地开发:
npm install
npm run build
npm test
许可证
MIT © Talent Cloud, Inc.
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。