vibedsgn-mcp 1.2.1 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -21,7 +21,19 @@ Built for agents — every tool has a workflow-explaining description, structure
21
21
  npx vibedsgn-mcp init
22
22
  ```
23
23
 
24
- **Option B: Manual configuration**
24
+ **Option B: Non-interactive setup (CI / non-TTY shells)**
25
+
26
+ ```bash
27
+ npx vibedsgn-mcp init --key vdsgn_your_key_here --agent claude --yes
28
+ # or via env var:
29
+ VIBEDSGN_API_KEY=vdsgn_your_key_here npx vibedsgn-mcp init --agent cursor --yes
30
+ ```
31
+
32
+ Flags: `--key` (or `VIBEDSGN_API_KEY` env), `--agent claude|cursor|manual`, `--url <custom-api>`, `--yes` (fail instead of prompting).
33
+
34
+ > **After install: fully restart your AI agent.** Most MCP clients (Claude Code, Cursor) cache the config in memory at startup — `/mcp reconnect` only re-handshakes the existing process. Quit and reopen the agent for the new config to take effect.
35
+
36
+ **Option C: Manual configuration**
25
37
 
26
38
  <details>
27
39
  <summary>Claude Code (~/.claude.json)</summary>
@@ -87,38 +99,59 @@ Returns: `{ count, tools: [{ id, name, slug, category, description }] }`
87
99
 
88
100
  Publish a design to Vibedsgn. Vibes go live immediately — no draft step.
89
101
 
90
- **Workflow:**
91
- 1. Call `whoami` to confirm auth
92
- 2. Call `list_design_tools` (with `q: "cursor"` or similar) to pick `primaryToolId`
93
- 3. **(Optional)** Call `post_vibe` with `dryRun: true` to preview the predicted slug + tool name without uploading or publishing — useful for "show the user, then commit" flows
94
- 4. Call `post_vibe` with the title, primaryToolId, and **either** `desktopImageUrl` (a public URL — preferred) **or** `desktopImage` (base64 PNG, max 4MB)
102
+ **Minimal call:**
103
+
104
+ ```json
105
+ {
106
+ "title": "My App",
107
+ "primaryTool": "claude-code",
108
+ "liveUrl": "https://my-app.com"
109
+ }
110
+ ```
95
111
 
96
- **Required fields:**
97
- - `title` — Project name
98
- - `primaryToolId`Tool ID from `list_design_tools`
99
- - `desktopImageUrl` *or* `desktopImage` — at least one
112
+ That's it. The server auto-renders desktop + mobile screenshots of `liveUrl` (no third-party services), uploads them, and publishes. The MCP resolves `primaryTool` ("claude-code") to its id automatically.
113
+
114
+ **Image inputpick ONE (or none if `liveUrl` is set):**
115
+
116
+ | Field | Type | Notes |
117
+ |-------|------|-------|
118
+ | *(none)* | — | If you set `liveUrl`, the server screenshots it. Easiest. |
119
+ | `imagePath` | string | Local PNG/JPG/WebP file. The MCP reads it and uploads. |
120
+ | `desktopImageUrl` | url | Public image URL. The server fetches it and re-uploads. |
121
+ | `desktopImage` | base64 | Last resort — slow over stdio, but works without files or URLs. |
122
+
123
+ **Tool selection — pick ONE:**
124
+
125
+ | Field | Type | Notes |
126
+ |-------|------|-------|
127
+ | `primaryTool` | string | Slug, name, or id (e.g. `"claude-code"`, `"Cursor"`). Resolved automatically — no extra `list_design_tools` call. |
128
+ | `primaryToolId` | string | Exact id, if you already have one. |
100
129
 
101
130
  **Optional fields:**
102
131
 
103
132
  | Field | Type | Notes |
104
133
  |-------|------|-------|
105
134
  | `description` | string | 1-2 sentences |
106
- | `desktopImageUrl` | url | Preferred. Server fetches and uploads. |
107
- | `desktopImage` | base64 | Fallback. Slower because base64 doubles payload. |
108
- | `mobileImageUrl` / `mobileImage` | url / base64 | Optional mobile screenshot |
135
+ | `mobileImagePath` / `mobileImageUrl` / `mobileImage` | string / url / base64 | Manual mobile screenshot. Skip if using auto-screenshot. |
109
136
  | `tags` | string[] | Free-form curation tags |
110
137
  | `systemPrompt` | string | Generation prompt used |
111
138
  | `processNotes` | string | Notes about the build process |
112
139
  | `aiStack` | object | `{ codingAgents?, imageGen?, videoGen?, other? }` — all inner arrays optional |
113
140
  | `designSystem` | object | `{ colors?, typography? }` |
114
- | `liveUrl` | url | Live project URL |
141
+ | `liveUrl` | url | Live project URL — also doubles as the screenshot source |
115
142
  | `githubUrl` | url | GitHub repo URL |
116
- | `dryRun` | boolean | When `true`, validate inputs and return the predicted slug + tool without uploading or publishing. No DB write, no Vercel Blob call. Default `false`. |
143
+ | `dryRun` | boolean | Validate inputs and return the predicted slug + tool without uploading or publishing. Default `false`. |
117
144
 
118
145
  Returns: `{ id, slug, url, message }` — `url` is the absolute https URL of the published vibe.
119
146
 
120
147
  When `dryRun: true`, returns: `{ dryRun: true, wouldCreate: { slug, url, title, primaryTool: { id, name, slug } }, message }` instead. No `id` because no row is created.
121
148
 
149
+ **Notes on auto-screenshot:**
150
+
151
+ - The `liveUrl` must be **publicly reachable** — `localhost`, `127.0.0.1`, and private IPs (10/8, 172.16/12, 192.168/16) are rejected. Expose your app via `ngrok` / `cloudflared` if testing locally.
152
+ - Server-side rendering uses headless Chromium. First request can take a few seconds (cold start).
153
+ - If you already have a screenshot, prefer `imagePath` (fastest) or `desktopImageUrl`.
154
+
122
155
  ### `delete_vibe`
123
156
 
124
157
  Permanently delete a vibe you own. Cascades to likes, bookmarks, comments, and notifications. **Irreversible.**