mcp-vibepowerpack 1.2.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/LICENSE +21 -0
- package/README.md +406 -0
- package/dist/frontend/assets/index-0ATVWwez.js +9 -0
- package/dist/frontend/assets/style-DiRG0zBH.css +1 -0
- package/dist/frontend/index.html +14 -0
- package/dist/http/index.d.ts +5 -0
- package/dist/http/index.d.ts.map +1 -0
- package/dist/http/index.js +5 -0
- package/dist/http/index.js.map +1 -0
- package/dist/http/server.d.ts +15 -0
- package/dist/http/server.d.ts.map +1 -0
- package/dist/http/server.js +379 -0
- package/dist/http/server.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/dist/server/index.d.ts +13 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +214 -0
- package/dist/server/index.js.map +1 -0
- package/dist/tools/index.d.ts +6 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +6 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/selectMultiple.d.ts +94 -0
- package/dist/tools/selectMultiple.d.ts.map +1 -0
- package/dist/tools/selectMultiple.js +159 -0
- package/dist/tools/selectMultiple.js.map +1 -0
- package/dist/tools/selectSingle.d.ts +91 -0
- package/dist/tools/selectSingle.d.ts.map +1 -0
- package/dist/tools/selectSingle.js +156 -0
- package/dist/tools/selectSingle.js.map +1 -0
- package/dist/types/index.d.ts +81 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +5 -0
- package/dist/types/index.js.map +1 -0
- package/package.json +69 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Jens Duttke
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,406 @@
|
|
|
1
|
+
<h1 align="center">๐จ Vibe Powerpack MCP ๐จ</h1>
|
|
2
|
+
<h3 align="center">Stop typing choices into chat. Start clicking them in a real UI.</h3>
|
|
3
|
+
|
|
4
|
+
<p align="center">
|
|
5
|
+
<strong>
|
|
6
|
+
<em>Beautiful browser-based popup forms for your AI coding assistant. When your LLM needs user input, it opens a real UI โ radio buttons, checkboxes, comments โ instead of dumping numbered lists into the chat.</em>
|
|
7
|
+
</strong>
|
|
8
|
+
</p>
|
|
9
|
+
|
|
10
|
+
<p align="center">
|
|
11
|
+
<!-- Package Info -->
|
|
12
|
+
<a href="https://www.npmjs.com/package/mcp-vibepowerpack"><img alt="npm" src="https://img.shields.io/npm/v/mcp-vibepowerpack.svg?style=flat-square&color=4D87E6"></a>
|
|
13
|
+
<a href="#"><img alt="node" src="https://img.shields.io/badge/node-18+-4D87E6.svg?style=flat-square"></a>
|
|
14
|
+
โข
|
|
15
|
+
<!-- Features -->
|
|
16
|
+
<a href="https://opensource.org/licenses/MIT"><img alt="license" src="https://img.shields.io/badge/License-MIT-F9A825.svg?style=flat-square"></a>
|
|
17
|
+
<a href="#"><img alt="platform" src="https://img.shields.io/badge/platform-macOS_|_Linux_|_Windows-2ED573.svg?style=flat-square"></a>
|
|
18
|
+
<a href="#-tool-reference"><img alt="tools" src="https://img.shields.io/badge/tools-2-2ED573.svg?style=flat-square"></a>
|
|
19
|
+
</p>
|
|
20
|
+
|
|
21
|
+
<p align="center">
|
|
22
|
+
<img alt="zero config" src="https://img.shields.io/badge/๐ง_zero_config-no_API_keys_needed-2ED573.svg?style=for-the-badge">
|
|
23
|
+
<img alt="ephemeral" src="https://img.shields.io/badge/๐_ephemeral-popup_closes_after_use-2ED573.svg?style=for-the-badge">
|
|
24
|
+
</p>
|
|
25
|
+
|
|
26
|
+
<div align="center">
|
|
27
|
+
|
|
28
|
+
### ๐งญ Quick Navigation
|
|
29
|
+
|
|
30
|
+
[**โก Get Started**](#-get-started-in-60-seconds) โข
|
|
31
|
+
[**๐ฏ Why Vibe Powerpack**](#-why-vibe-powerpack) โข
|
|
32
|
+
[**๐ฎ Tools**](#-tool-reference) โข
|
|
33
|
+
[**โ๏ธ Configuration**](#%EF%B8%8F-environment-variables) โข
|
|
34
|
+
[**๐ Workflows**](#-recommended-workflows) โข
|
|
35
|
+
[**๐ ๏ธ Development**](#%EF%B8%8F-development)
|
|
36
|
+
|
|
37
|
+
</div>
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
**`mcp-vibepowerpack`** replaces the clunky "type a number" workflow with a polished browser popup. When your AI needs a decision, it opens a real form โ radio buttons for single-select, checkboxes for multi-select โ and waits for your click. No more miscounted options. No more "I said option 3, not 4."
|
|
42
|
+
|
|
43
|
+
<div align="center">
|
|
44
|
+
<table>
|
|
45
|
+
<tr>
|
|
46
|
+
<td align="center">
|
|
47
|
+
<h3>๐</h3>
|
|
48
|
+
<b>Single-Select</b><br/>
|
|
49
|
+
<sub>Radio buttons with descriptions</sub>
|
|
50
|
+
</td>
|
|
51
|
+
<td align="center">
|
|
52
|
+
<h3>โ๏ธ</h3>
|
|
53
|
+
<b>Multi-Select</b><br/>
|
|
54
|
+
<sub>Checkboxes for multiple picks</sub>
|
|
55
|
+
</td>
|
|
56
|
+
<td align="center">
|
|
57
|
+
<h3>๐ฌ</h3>
|
|
58
|
+
<b>Comments</b><br/>
|
|
59
|
+
<sub>Add context to your choices</sub>
|
|
60
|
+
</td>
|
|
61
|
+
<td align="center">
|
|
62
|
+
<h3>โ</h3>
|
|
63
|
+
<b>Explain First</b><br/>
|
|
64
|
+
<sub>Ask for details before deciding</sub>
|
|
65
|
+
</td>
|
|
66
|
+
</tr>
|
|
67
|
+
</table>
|
|
68
|
+
</div>
|
|
69
|
+
|
|
70
|
+
Here's how it works:
|
|
71
|
+
- **AI:** "Which database should I use?" โ Opens a popup with your options
|
|
72
|
+
- **You:** Click your choice, optionally add a comment, hit Submit
|
|
73
|
+
- **AI:** Gets structured JSON back โ no parsing, no ambiguity
|
|
74
|
+
- **Result:** Faster decisions, zero miscommunication. โ
|
|
75
|
+
|
|
76
|
+
> **Fork note:** This is a fork of [mcp-popup-ui](https://github.com/nicobailon/mcp-popup-ui) by Jens Duttke, enhanced with additional features like "Other" input, explanation requests, and Markdown descriptions.
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## ๐ฏ Why Vibe Powerpack
|
|
81
|
+
|
|
82
|
+
Text-based option selection is error-prone and slow. `mcp-vibepowerpack` replaces it with a real UI.
|
|
83
|
+
|
|
84
|
+
<table align="center">
|
|
85
|
+
<tr>
|
|
86
|
+
<td align="center"><b>โ Old Way (Text Chat)</b></td>
|
|
87
|
+
<td align="center"><b>โ
New Way (Vibe Powerpack)</b></td>
|
|
88
|
+
</tr>
|
|
89
|
+
<tr>
|
|
90
|
+
<td>
|
|
91
|
+
<ol>
|
|
92
|
+
<li>AI dumps a numbered list into chat.</li>
|
|
93
|
+
<li>You squint at 8 options with no descriptions.</li>
|
|
94
|
+
<li>You type "3" โ wait, was PostgreSQL 3 or 4?</li>
|
|
95
|
+
<li>AI misparses your response half the time.</li>
|
|
96
|
+
<li>Repeat until frustrated.</li>
|
|
97
|
+
</ol>
|
|
98
|
+
</td>
|
|
99
|
+
<td>
|
|
100
|
+
<ol>
|
|
101
|
+
<li>AI calls <code>ask_user</code> with labeled options.</li>
|
|
102
|
+
<li>A popup opens with clear descriptions.</li>
|
|
103
|
+
<li>You click the one you want.</li>
|
|
104
|
+
<li>AI gets structured data โ zero ambiguity.</li>
|
|
105
|
+
<li>Move on with your life. โ</li>
|
|
106
|
+
</ol>
|
|
107
|
+
</td>
|
|
108
|
+
</tr>
|
|
109
|
+
</table>
|
|
110
|
+
|
|
111
|
+
**Key advantages:**
|
|
112
|
+
- **Markdown descriptions** โ options can include code snippets, pros/cons, links
|
|
113
|
+
- **Recommended highlights** โ flag the best option so users see it immediately
|
|
114
|
+
- **Skip button** โ user can opt out without breaking the flow
|
|
115
|
+
- **Explanation requests** โ ask the AI to elaborate before committing
|
|
116
|
+
- **"Other" input** โ let users type a custom answer if nothing fits
|
|
117
|
+
- **Ephemeral server** โ popup opens on `127.0.0.1`, auto-closes after submit, zero cleanup
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## ๐ Get Started in 60 Seconds
|
|
122
|
+
|
|
123
|
+
### 1. Install
|
|
124
|
+
|
|
125
|
+
<div align="center">
|
|
126
|
+
|
|
127
|
+
| Client | One-Line Install | Manual Config |
|
|
128
|
+
|:------:|:----------------:|:-------------:|
|
|
129
|
+
| ๐ฅ๏ธ **Claude Desktop** | `npx install-mcp mcp-vibepowerpack --client claude-desktop` | [Config](#claude-desktop) |
|
|
130
|
+
| โจ๏ธ **Claude Code** | `npx install-mcp mcp-vibepowerpack --client claude-code` | [Config](#claude-code-cli) |
|
|
131
|
+
| ๐ฏ **Cursor / ๐ Windsurf** | `npx install-mcp mcp-vibepowerpack --client cursor` | [Config](#cursorwindsurf) |
|
|
132
|
+
|
|
133
|
+
</div>
|
|
134
|
+
|
|
135
|
+
That's it. No API keys. No environment variables. Just install and go.
|
|
136
|
+
|
|
137
|
+
### 2. Manual Configuration
|
|
138
|
+
|
|
139
|
+
#### Claude Desktop
|
|
140
|
+
|
|
141
|
+
Add to your `claude_desktop_config.json`:
|
|
142
|
+
|
|
143
|
+
```json
|
|
144
|
+
{
|
|
145
|
+
"mcpServers": {
|
|
146
|
+
"vibepowerpack": {
|
|
147
|
+
"command": "npx",
|
|
148
|
+
"args": ["-y", "mcp-vibepowerpack"]
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
#### Claude Code (CLI)
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
claude mcp add vibepowerpack npx --scope user -- -y mcp-vibepowerpack
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
Or manually add to `~/.claude.json`:
|
|
161
|
+
|
|
162
|
+
```json
|
|
163
|
+
{
|
|
164
|
+
"mcpServers": {
|
|
165
|
+
"vibepowerpack": {
|
|
166
|
+
"command": "npx",
|
|
167
|
+
"args": ["-y", "mcp-vibepowerpack"]
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
#### Cursor/Windsurf
|
|
174
|
+
|
|
175
|
+
Add to `.cursor/mcp.json` or equivalent:
|
|
176
|
+
|
|
177
|
+
```json
|
|
178
|
+
{
|
|
179
|
+
"mcpServers": {
|
|
180
|
+
"vibepowerpack": {
|
|
181
|
+
"command": "npx",
|
|
182
|
+
"args": ["-y", "mcp-vibepowerpack"]
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
> **Backward compatibility:** The old binary name `vibe-powerpack` still works if you have existing configs using it.
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## ๐ฎ Tool Reference
|
|
193
|
+
|
|
194
|
+
<div align="center">
|
|
195
|
+
<table>
|
|
196
|
+
<tr>
|
|
197
|
+
<td align="center">
|
|
198
|
+
<h3>๐</h3>
|
|
199
|
+
<b><code>ask_user</code></b><br/>
|
|
200
|
+
<sub>Single-select (radio buttons)</sub>
|
|
201
|
+
</td>
|
|
202
|
+
<td align="center">
|
|
203
|
+
<h3>โ๏ธ</h3>
|
|
204
|
+
<b><code>ask_user_multiple</code></b><br/>
|
|
205
|
+
<sub>Multi-select (checkboxes)</sub>
|
|
206
|
+
</td>
|
|
207
|
+
</tr>
|
|
208
|
+
</table>
|
|
209
|
+
</div>
|
|
210
|
+
|
|
211
|
+
### `ask_user`
|
|
212
|
+
|
|
213
|
+
**Single-select popup** โ presents radio buttons and returns exactly one selection.
|
|
214
|
+
|
|
215
|
+
Use this whenever your AI is about to list numbered options and ask "which do you prefer?"
|
|
216
|
+
|
|
217
|
+
| Parameter | Type | Required | Default | Description |
|
|
218
|
+
|-----------|------|:--------:|:-------:|-------------|
|
|
219
|
+
| `options` | `object[]` | โ
| โ | Options to display (min 2). Each: `{ label, description?, recommended? }` |
|
|
220
|
+
| `title` | `string` | โ | โ | Heading displayed above the options |
|
|
221
|
+
| `description` | `string` | โ | โ | Subheading below the title |
|
|
222
|
+
| `allow_other` | `boolean` | โ | `false` | Show an "Other" free-text input |
|
|
223
|
+
| `other_label` | `string` | โ | `"Other"` | Custom label for the Other option |
|
|
224
|
+
|
|
225
|
+
**Example call:**
|
|
226
|
+
|
|
227
|
+
```json
|
|
228
|
+
{
|
|
229
|
+
"options": [
|
|
230
|
+
{ "label": "PostgreSQL", "description": "Battle-tested RDBMS with JSON support", "recommended": true },
|
|
231
|
+
{ "label": "SQLite", "description": "Zero-config, embedded, perfect for prototyping" },
|
|
232
|
+
{ "label": "MongoDB", "description": "Document store, flexible schema" }
|
|
233
|
+
],
|
|
234
|
+
"title": "Which database?",
|
|
235
|
+
"description": "Choose the database for your new project.",
|
|
236
|
+
"allow_other": true
|
|
237
|
+
}
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
**Response format:**
|
|
241
|
+
|
|
242
|
+
```json
|
|
243
|
+
{
|
|
244
|
+
"action": "submit",
|
|
245
|
+
"selection": "PostgreSQL",
|
|
246
|
+
"comments": "Let's use the latest v17"
|
|
247
|
+
}
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
Possible `action` values: `"submit"` | `"skip"` | `"request_explanation"`
|
|
251
|
+
|
|
252
|
+
---
|
|
253
|
+
|
|
254
|
+
### `ask_user_multiple`
|
|
255
|
+
|
|
256
|
+
**Multi-select popup** โ presents checkboxes and returns one or more selections.
|
|
257
|
+
|
|
258
|
+
Use this when the user can pick multiple non-exclusive options (e.g., "Which features to include?").
|
|
259
|
+
|
|
260
|
+
| Parameter | Type | Required | Default | Description |
|
|
261
|
+
|-----------|------|:--------:|:-------:|-------------|
|
|
262
|
+
| `options` | `object[]` | โ
| โ | Options to display (min 2). Each: `{ label, description?, recommended? }` |
|
|
263
|
+
| `title` | `string` | โ | โ | Heading displayed above the options |
|
|
264
|
+
| `description` | `string` | โ | โ | Subheading below the title |
|
|
265
|
+
| `allow_other` | `boolean` | โ | `false` | Show an "Other" free-text input |
|
|
266
|
+
| `other_label` | `string` | โ | `"Other"` | Custom label for the Other option |
|
|
267
|
+
|
|
268
|
+
**Example call:**
|
|
269
|
+
|
|
270
|
+
```json
|
|
271
|
+
{
|
|
272
|
+
"options": [
|
|
273
|
+
{ "label": "Authentication", "description": "JWT + OAuth2 login flow", "recommended": true },
|
|
274
|
+
{ "label": "Rate Limiting", "description": "Token bucket per API key" },
|
|
275
|
+
{ "label": "Caching", "description": "Redis-backed response cache" },
|
|
276
|
+
{ "label": "Logging", "description": "Structured JSON logs with correlation IDs" }
|
|
277
|
+
],
|
|
278
|
+
"title": "Select features to scaffold",
|
|
279
|
+
"description": "Pick all that apply. You can add more later."
|
|
280
|
+
}
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
**Response format:**
|
|
284
|
+
|
|
285
|
+
```json
|
|
286
|
+
{
|
|
287
|
+
"action": "submit",
|
|
288
|
+
"selections": ["Authentication", "Rate Limiting", "Logging"],
|
|
289
|
+
"comments": "Skip caching for now, we'll add it in v2"
|
|
290
|
+
}
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
---
|
|
294
|
+
|
|
295
|
+
## โ๏ธ Environment Variables
|
|
296
|
+
|
|
297
|
+
**None required.** Vibe Powerpack works out of the box with zero configuration.
|
|
298
|
+
|
|
299
|
+
The server spins up an ephemeral HTTP server on `127.0.0.1` (random port), opens the user's browser, and tears everything down after the response. No API keys, no tokens, no secrets.
|
|
300
|
+
|
|
301
|
+
---
|
|
302
|
+
|
|
303
|
+
## ๐ Recommended Workflows
|
|
304
|
+
|
|
305
|
+
### Architecture Decisions
|
|
306
|
+
|
|
307
|
+
```
|
|
308
|
+
AI: "I can implement this three ways..."
|
|
309
|
+
โ Calls ask_user with pros/cons in descriptions
|
|
310
|
+
โ User clicks their choice in the popup
|
|
311
|
+
โ AI proceeds with the selected approach
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
### Feature Selection
|
|
315
|
+
|
|
316
|
+
```
|
|
317
|
+
AI: "Here are the available modules for your project..."
|
|
318
|
+
โ Calls ask_user_multiple with feature list
|
|
319
|
+
โ User checks the ones they want
|
|
320
|
+
โ AI scaffolds only the selected features
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
### Clarification Before Proceeding
|
|
324
|
+
|
|
325
|
+
```
|
|
326
|
+
AI: "Which testing framework?"
|
|
327
|
+
โ Calls ask_user with allow_other: true
|
|
328
|
+
โ User picks "Other" and types "Bun test"
|
|
329
|
+
โ AI uses the custom answer
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
### Explain-Then-Decide
|
|
333
|
+
|
|
334
|
+
```
|
|
335
|
+
AI: "Which caching strategy?"
|
|
336
|
+
โ Calls ask_user with options
|
|
337
|
+
โ User clicks "Explain" on an unfamiliar option
|
|
338
|
+
โ AI gets request_explanation action, explains that option
|
|
339
|
+
โ AI re-opens the popup for the final decision
|
|
340
|
+
```
|
|
341
|
+
|
|
342
|
+
---
|
|
343
|
+
|
|
344
|
+
## ๐ ๏ธ Development
|
|
345
|
+
|
|
346
|
+
```bash
|
|
347
|
+
git clone https://github.com/yigitkonur/mcp-vibepowerpack.git
|
|
348
|
+
cd mcp-vibepowerpack
|
|
349
|
+
npm install
|
|
350
|
+
npm run dev # Start Vite dev server with hot reload
|
|
351
|
+
npm run build # Build for production
|
|
352
|
+
npm run lint # Run linters
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
### How It Works Under the Hood
|
|
356
|
+
|
|
357
|
+
1. MCP client calls `ask_user` or `ask_user_multiple`
|
|
358
|
+
2. Server creates an **ephemeral HTTP server** on `127.0.0.1` (random available port)
|
|
359
|
+
3. Server opens the user's **browser in app mode** (no address bar) โ prefers Edge/Chrome, falls back to system default
|
|
360
|
+
4. The React frontend loads the form config from `/api/config`
|
|
361
|
+
5. An **SSE connection** at `/api/connection` detects if the browser closes (auto-skips)
|
|
362
|
+
6. User submits โ frontend POSTs to `/api/submit` โ server returns structured JSON to the MCP client
|
|
363
|
+
7. Ephemeral server shuts down โ nothing left running
|
|
364
|
+
|
|
365
|
+
### Project Structure
|
|
366
|
+
|
|
367
|
+
```
|
|
368
|
+
mcp-vibepowerpack/
|
|
369
|
+
โโโ mcp/ # MCP server (TypeScript)
|
|
370
|
+
โ โโโ server/ # Server setup & tool routing
|
|
371
|
+
โ โโโ tools/ # Tool definitions & handlers
|
|
372
|
+
โ โโโ http/ # Ephemeral HTTP server & static serving
|
|
373
|
+
โ โโโ types/ # Shared TypeScript types
|
|
374
|
+
โโโ frontend/ # React popup UI (Vite + React 19)
|
|
375
|
+
โโโ dist/ # Built output (published to npm)
|
|
376
|
+
โโโ assets/ # Screenshots
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
---
|
|
380
|
+
|
|
381
|
+
## ๐ง Troubleshooting
|
|
382
|
+
|
|
383
|
+
<details>
|
|
384
|
+
<summary><b>Expand for troubleshooting tips</b></summary>
|
|
385
|
+
|
|
386
|
+
| Problem | Solution |
|
|
387
|
+
| :--- | :--- |
|
|
388
|
+
| **Popup doesn't open** | Make sure you have Chrome or Edge installed. The server tries to open a chromium-based browser in app mode first. If none is found, it falls back to your system default browser. |
|
|
389
|
+
| **Popup opens but shows blank page** | The built frontend assets may be missing. Run `npm run build` if running from source, or reinstall the package with `npx -y mcp-vibepowerpack`. |
|
|
390
|
+
| **Tool not appearing in Claude** | Restart Claude Desktop / Claude Code after adding the MCP config. Check that the config JSON is valid (no trailing commas). |
|
|
391
|
+
| **"Unknown tool" error** | Make sure you're using `ask_user` or `ask_user_multiple` (exact names). Tool names are case-sensitive. |
|
|
392
|
+
| **Browser closes = response lost?** | No โ if the browser closes before submission, the server detects it via SSE and returns a `"skip"` action automatically. |
|
|
393
|
+
| **Port conflicts** | The server uses a random available port each time. If you're seeing port issues, another instance may still be running. Check for stale `node` processes. |
|
|
394
|
+
| **Windows: popup blocked by firewall** | The server only binds to `127.0.0.1` (localhost). No firewall rule should be needed. If prompted, allow the connection โ it never leaves your machine. |
|
|
395
|
+
|
|
396
|
+
</details>
|
|
397
|
+
|
|
398
|
+
---
|
|
399
|
+
|
|
400
|
+
<div align="center">
|
|
401
|
+
|
|
402
|
+
MIT ยฉ [Yiฤit Konur](https://github.com/yigitkonur)
|
|
403
|
+
|
|
404
|
+
Based on [mcp-popup-ui](https://github.com/nicobailon/mcp-popup-ui) by [Jens Duttke](https://github.com/nicobailon) โ original MIT license preserved.
|
|
405
|
+
|
|
406
|
+
</div>
|