@briefroom/mcp
Advanced tools
| import { z } from 'zod'; | ||
| import { runCliAsToolResult, } from '../lib/tool-result.js'; | ||
| export const deployHtmlDescription = 'Zip a local directory of HTML/CSS/JS and upload it to briefroom, returning a share URL. Supports a share-link expiry (also applied to the existing link on redeploy) and password protection (Pro+ plans). Uses BRIEFROOM_TOKEN (or the briefroom CLI login) for authentication. Non-interactive.'; | ||
| export const deployHtmlDescription = 'Zip a local directory of HTML/CSS/JS and upload it to briefroom, returning a share URL. Supports a share-link expiry (also applied to the existing link on redeploy), a room display `name` (any language, e.g. Japanese; distinct from `room` slug — see below), and password protection (Pro+ plans). Uses BRIEFROOM_TOKEN (or the briefroom CLI login) for authentication. Non-interactive.'; | ||
| // Flag injection 防御: `-` 始まりの値は CLI の argv パーサ (citty/mri) に | ||
@@ -27,3 +27,9 @@ // フラグとして解釈され、`--api-url=http://evil/` を注入して PAT を攻撃者に | ||
| .optional() | ||
| .describe('Room slug to deploy into. Overrides briefroom.json / directory name.'), | ||
| .describe('Room slug — the ascii kebab-case identifier used to redeploy into an existing room (NOT the display name, and NOT part of the share URL). Overrides briefroom.json / directory name.'), | ||
| name: z | ||
| .string() | ||
| .min(1) | ||
| .max(100) | ||
| .optional() | ||
| .describe('Room display name shown on the dashboard and viewer (1-100 chars, any language including Japanese). Distinct from `room` (slug) and from the auto-issued share URL token. Sets the name on first deploy; on redeploy, updates the existing room name only when set explicitly.'), | ||
| expires: z | ||
@@ -69,2 +75,4 @@ .enum(['7d', '30d', 'never']) | ||
| args.push(`--room=${input.room}`); | ||
| if (input.name !== undefined) | ||
| args.push(`--name=${input.name}`); | ||
| if (input.expires) | ||
@@ -71,0 +79,0 @@ args.push(`--expires=${input.expires}`); |
+2
-2
| { | ||
| "name": "@briefroom/mcp", | ||
| "version": "0.2.1", | ||
| "version": "0.3.0", | ||
| "description": "briefroom stdio MCP server — expose the briefroom CLI to Claude Code, Codex, and other agents.", | ||
@@ -46,3 +46,3 @@ "license": "MIT", | ||
| "zod": "^4.4.3", | ||
| "@briefroom/cli": "^0.2.0" | ||
| "@briefroom/cli": "^0.3.0" | ||
| }, | ||
@@ -49,0 +49,0 @@ "devDependencies": { |
+10
-1
@@ -151,3 +151,4 @@ # @briefroom/mcp | ||
| "path": "./mockups", // 必須 — デプロイ対象ディレクトリ | ||
| "room": "demo-a", // 任意 — slug 上書き | ||
| "room": "demo-a", // 任意 — ルーム slug(再デプロイ先を指定する ascii 識別子) | ||
| "name": "企画書 v2", // 任意 — ルーム表示名、1〜100 字、日本語可 | ||
| "expires": "7d", // 任意 — "7d" | "30d" | "never"(再デプロイ時に既存リンクの期限も更新) | ||
@@ -162,2 +163,10 @@ "new": false, // 任意 — 新規ルームを開く | ||
| 混同しやすい 3 つの識別子: | ||
| | フィールド | 意味 | | ||
| |---|---| | ||
| | `name` | ダッシュボードとビューアに表示される**表示名**。日本語可。初回デプロイで設定し、再デプロイでは**明示した時だけ**既存のルーム名を更新(省略すれば現在の名前を維持)。 | | ||
| | `room` | ルーム **slug** — 再デプロイ先の既存ルームを特定するための ascii kebab-case 識別子。共有 URL には使われません。 | | ||
| | 共有 URL | 常にランダム token で自動発行 (`/s/<token>`)。`name` や `room` から生成されるものではありません。 | | ||
| ### `get_feedback` | ||
@@ -164,0 +173,0 @@ |
+10
-1
@@ -151,3 +151,4 @@ # @briefroom/mcp | ||
| "path": "./mockups", // required — directory to deploy | ||
| "room": "demo-a", // optional slug override | ||
| "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 — "7d" | "30d" | "never" (also updates the existing link on redeploy) | ||
@@ -162,2 +163,10 @@ "new": false, // optional — start a brand new room | ||
| Three identifiers that are easy to confuse: | ||
| | Field | What it is | | ||
| |---|---| | ||
| | `name` | Display name shown on the dashboard and in the viewer. Any language. Set it on the first deploy; on a redeploy it updates the room name **only when passed explicitly** (omit it to keep the current name). | | ||
| | `room` | Room slug — an ascii kebab-case identifier used only to find the existing room to redeploy into. Never part of the share URL. | | ||
| | share URL | Always auto-issued with a random token (`/s/<token>`). Not derived from `name` or `room`. | | ||
| ### `get_feedback` | ||
@@ -164,0 +173,0 @@ |
37400
6.08%357
2.29%226
4.15%+ Added
- Removed
Updated