@vibevibes/mcp 0.9.5 → 0.10.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/dist/index.d.ts +1 -1
- package/dist/index.js +1 -30
- package/hooks/stop-hook.js +8 -8
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
* vibevibes MCP server — connects Claude to a running vibevibes experience.
|
|
3
3
|
*
|
|
4
4
|
* The dev server (vibevibes-dev from @vibevibes/sdk) must be running first.
|
|
5
|
-
*
|
|
5
|
+
* 4 tools: connect, act, look, disconnect
|
|
6
6
|
*/
|
|
7
7
|
export {};
|
package/dist/index.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* vibevibes MCP server — connects Claude to a running vibevibes experience.
|
|
3
3
|
*
|
|
4
4
|
* The dev server (vibevibes-dev from @vibevibes/sdk) must be running first.
|
|
5
|
-
*
|
|
5
|
+
* 4 tools: connect, act, look, disconnect
|
|
6
6
|
*/
|
|
7
7
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
8
8
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
@@ -583,35 +583,6 @@ Use this to orient yourself before deciding whether to act.`, {
|
|
|
583
583
|
return { content: [{ type: "text", text: `Look failed: ${toErrorMessage(err)}` }] };
|
|
584
584
|
}
|
|
585
585
|
});
|
|
586
|
-
// ── Tool: screenshot ───────────────────────────────────────
|
|
587
|
-
server.tool("screenshot", `Capture a screenshot of the experience as seen in the browser.
|
|
588
|
-
|
|
589
|
-
Returns the current visual state as a PNG image. Use this to:
|
|
590
|
-
- See what the UI looks like
|
|
591
|
-
- Debug visual/layout issues
|
|
592
|
-
- Verify your changes rendered correctly
|
|
593
|
-
|
|
594
|
-
Requires at least one browser viewer to be connected.`, {}, async () => {
|
|
595
|
-
try {
|
|
596
|
-
const res = await fetchJSON("/screenshot", { timeoutMs: 15000 });
|
|
597
|
-
if (res.error) {
|
|
598
|
-
return { content: [{ type: "text", text: `Screenshot failed: ${res.error}` }] };
|
|
599
|
-
}
|
|
600
|
-
if (!res.dataUrl) {
|
|
601
|
-
return { content: [{ type: "text", text: "Screenshot returned empty" }] };
|
|
602
|
-
}
|
|
603
|
-
// dataUrl is "data:image/png;base64,..."
|
|
604
|
-
const base64 = res.dataUrl.replace(/^data:image\/\w+;base64,/, "");
|
|
605
|
-
return {
|
|
606
|
-
content: [
|
|
607
|
-
{ type: "image", data: base64, mimeType: "image/png" },
|
|
608
|
-
],
|
|
609
|
-
};
|
|
610
|
-
}
|
|
611
|
-
catch (err) {
|
|
612
|
-
return { content: [{ type: "text", text: `Screenshot failed: ${toErrorMessage(err)}` }] };
|
|
613
|
-
}
|
|
614
|
-
});
|
|
615
586
|
// ── Tool: disconnect ────────────────────────────────────────
|
|
616
587
|
server.tool("disconnect", `Disconnect from the current experience.
|
|
617
588
|
|
package/hooks/stop-hook.js
CHANGED
|
@@ -117,8 +117,8 @@ async function main() {
|
|
|
117
117
|
// Check for events ONCE — no polling, no timeout, instant return
|
|
118
118
|
const agent = agents[0];
|
|
119
119
|
if (!agent.actorId) {
|
|
120
|
-
// Connected but no actorId — block exit
|
|
121
|
-
process.stdout.write(JSON.stringify({ decision: "block"
|
|
120
|
+
// Connected but no actorId — block exit silently
|
|
121
|
+
process.stdout.write(JSON.stringify({ decision: "block" }));
|
|
122
122
|
process.exit(0);
|
|
123
123
|
}
|
|
124
124
|
try {
|
|
@@ -128,8 +128,8 @@ async function main() {
|
|
|
128
128
|
const url = `${agent.serverUrl}/agent-context?since=0&actorId=${encodeURIComponent(agent.actorId)}&timeout=0${ownerParam}${roomP}`;
|
|
129
129
|
const res = await fetch(url, { signal: AbortSignal.timeout(3000) });
|
|
130
130
|
if (!res.ok) {
|
|
131
|
-
// Server error — block exit
|
|
132
|
-
process.stdout.write(JSON.stringify({ decision: "block"
|
|
131
|
+
// Server error — block exit silently
|
|
132
|
+
process.stdout.write(JSON.stringify({ decision: "block" }));
|
|
133
133
|
process.exit(0);
|
|
134
134
|
}
|
|
135
135
|
const ctx = await res.json();
|
|
@@ -151,13 +151,13 @@ async function main() {
|
|
|
151
151
|
}
|
|
152
152
|
process.exit(0);
|
|
153
153
|
}
|
|
154
|
-
// No events — still connected, block exit
|
|
155
|
-
process.stdout.write(JSON.stringify({ decision: "block"
|
|
154
|
+
// No events — still connected, block exit silently
|
|
155
|
+
process.stdout.write(JSON.stringify({ decision: "block" }));
|
|
156
156
|
process.exit(0);
|
|
157
157
|
}
|
|
158
158
|
catch {
|
|
159
|
-
// Network error — block exit
|
|
160
|
-
process.stdout.write(JSON.stringify({ decision: "block"
|
|
159
|
+
// Network error — block exit silently
|
|
160
|
+
process.stdout.write(JSON.stringify({ decision: "block" }));
|
|
161
161
|
process.exit(0);
|
|
162
162
|
}
|
|
163
163
|
}
|