@buoy-gg/mcp 7.0.36 → 7.0.39

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
@@ -3,7 +3,15 @@
3
3
  [![npm version](https://img.shields.io/npm/v/@buoy-gg/mcp?style=flat-square&labelColor=1c1c1c&color=10B981)](https://www.npmjs.com/package/@buoy-gg/mcp)
4
4
  [![npm downloads](https://img.shields.io/npm/dm/@buoy-gg/mcp?style=flat-square&labelColor=1c1c1c&color=10B981&label=downloads%2Fmonth)](https://www.npmjs.com/package/@buoy-gg/mcp)
5
5
 
6
- **Your agent gets hands.** The MCP server that connects Claude Code, Cursor, or any MCP editor to the [Buoy devtools](https://www.npmjs.com/package/@buoy-gg/core) running inside your React Native app — so your agent can read live runtime state, drive the UI, and benchmark on a real device instead of debugging blind.
6
+ Connect an MCP client to supported Buoy tools in a running app. Read captured state, invoke tool actions, and run configured benchmarks.
7
+
8
+ ## Before you start
9
+
10
+ Use Node.js 18 or later. For React Native, complete the [Quick Start](https://buoy.gg/buoy/latest/docs/quick-start), install `@buoy-gg/external-sync`, and restart the app. Flutter uses its [debug-build connection setup](https://buoy.gg/buoy/latest/docs/flutter/quick-start).
11
+
12
+ Configure the MCP process account as well as the device account. The process accepts `BUOY_LICENSE_KEY` or supported project keys such as `BUOY_KEY` and `EXPO_PUBLIC_BUOY_KEY`. It checks the project’s `.env.local` and `.env` when no supported process environment key is set. Set `BUOY_PROJECT_DIR` if the editor launches the process outside your app directory. A connected device’s key does not sign the process in.
13
+
14
+ Data and action tools require Pro. Device discovery is still subject to broker account admission.
7
15
 
8
16
  ## Install
9
17
 
@@ -11,35 +19,37 @@
11
19
  npx -y @buoy-gg/mcp@latest init
12
20
  ```
13
21
 
14
- One command, non-destructive:
22
+ Run setup from your app’s directory. Review its changes:
15
23
 
16
- - Registers a `buoy` server in your MCP configs — `.mcp.json` (Claude Code, always), plus `.cursor/mcp.json` and `.vscode/mcp.json` when those folders exist. Existing servers are preserved; re-running just refreshes the Buoy entry.
17
- - Installs the **buoy-optimize** skill into `.claude/skills/`.
24
+ - Registers a `buoy` server in your MCP configs — `.mcp.json` and `.cursor/mcp.json` (created when needed), plus `.vscode/mcp.json` when `.vscode` exists. Existing servers are preserved; re-running replaces the Buoy entry, including customizations to that entry.
25
+ - Copies the bundled `buoy-optimize` skill into `.claude/skills/`. Rerunning setup overwrites matching skill files, so save any customizations before updating.
26
+ - Appends debugging guidance to `CLAUDE.md` and `AGENTS.md` when the guide heading is absent. Existing blocks are preserved and may need manual updating.
18
27
 
19
- The config it writes launches the server via `npx -y @buoy-gg/mcp@latest`, so every editor restart re-resolves the newest published version — you never get pinned to a stale copy. Restart your editor, open your app with Buoy running, and start with `list_devices`.
28
+ The config it writes launches the server via `npx -y @buoy-gg/mcp@latest`, which may require registry access at launch. Review package updates as part of your development workflow. Restart your editor, open your app with Buoy running, and start with `list_devices`.
20
29
 
21
30
  ### Corporate / private npm registries
22
31
 
23
- If your machine's `.npmrc` points npm at a private registry that isn't reachable (a common setup on work laptops, e.g. off-VPN), `npx @latest` would hang trying to download the package on every editor launch — so `init` probes that registry first and, when it's unreachable, automatically installs a **pinned local copy** (from public npm) and writes a `node <path>` config instead. That takes the network off the startup path entirely.
32
+ If your machine's `.npmrc` points npm at a private registry that isn't reachable (a common setup on work laptops, e.g. off-VPN), `npx @latest` would hang trying to download the package on every editor launch — so `init` probes that registry first and, when it's unreachable, automatically installs a **pinned local copy** (from public npm) and writes a `node <path>` config instead. This removes package download from the local server launch path. Account validation and broker connections can still use the network.
24
33
 
25
34
  You can also force it:
26
35
 
27
36
  ```bash
28
- npx -y @buoy-gg/mcp@latest init --local # always install locally, no network on startup
29
- npx -y @buoy-gg/mcp@latest init --npx # always use the auto-updating npx entry
37
+ npx -y @buoy-gg/mcp@latest init --local # install a pinned local server
38
+ npx -y @buoy-gg/mcp@latest init --npx # launch through npx @latest
30
39
  npx -y @buoy-gg/mcp@latest init --registry <url> # registry the local install pulls from
31
40
  ```
32
41
 
33
- To update a local install later, just re-run `init`.
42
+ To update a local server install, run `npx -y @buoy-gg/mcp@latest init --local`. Review skill customizations before rerunning setup. Existing debugging-guide blocks are preserved and need separate review.
34
43
 
35
44
  ## What your agent can do
36
45
 
37
46
  **Read the runtime**
38
47
 
39
48
  - `get_events` — one timeline across every tool: network, state changes, renders, routes, storage writes — in token-friendly summaries
40
- - `get_console` — read the app's console logs, even from a release build
49
+ - `get_console` — read the app's console logs, including release logs when console calls are retained and capture is enabled
41
50
  - `get_network_requests` — HTTP requests *with their ids* (which `get_events` omits), marked 📌 pinned / 🔖 saved; `flagged:"any"` reads the requests you kept
42
51
  - `network_action` — pin or save a request. Pinned requests survive Clear, the history cap and restarts, so it doubles as a handoff: pin the broken call and ask your agent about "the pinned request", or let it pin what it wants you to see
52
+ - `network_conditions` — read or set the device's network conditions: offline, +500 ms, +2000 ms, or normal. Offline rejects new intercepted requests before they leave the device, so an agent can check an error path without touching the server. Development builds only, and the profile resets on a JS reload
43
53
 
44
54
  **Drive the UI**
45
55
 
@@ -49,8 +59,8 @@ To update a local install later, just re-run `init`.
49
59
 
50
60
  **Change state**
51
61
 
52
- - `redux_dispatch`, `react_query_action`, `storage_action`, `navigate` — dispatch actions, invalidate caches, edit storage, jump to any screen
53
- - `get_redux_state`, `get_zustand_state`, `get_jotai_state`, `get_react_query`, `get_storage`, `get_routes` — read any store first
62
+ - `redux_dispatch`, `react_query_action`, `storage_action`, `navigate` — dispatch actions, invalidate caches, edit storage, navigate to supported routes
63
+ - `get_redux_state`, `get_zustand_state`, `get_jotai_state`, `get_react_query`, `get_storage`, `get_routes` — read connected stores first
54
64
 
55
65
  **Measure**
56
66
 
@@ -66,26 +76,26 @@ To update a local install later, just re-run `init`.
66
76
  - `camera_stop` — turn the camera off
67
77
  - `camera_diagnose` — why the camera is not working, including whether the app is reading it
68
78
 
69
- The `camera_*` tools need Buoy Pro, read from Buoy Desktop's entitlement — `camera_diagnose` is ungated so it can report the tier. The camera itself is free to use by hand in the desktop panel.
79
+ The `camera_*` tools need Buoy Pro, read from Buoy Desktop's entitlement — `camera_diagnose` is ungated so it can report the tier. The Desktop panel requires an account. Its webcam, image, video, pattern and QR-generation sources are available at Free limits; screen-region capture and non-QR generation require Pro access.
70
80
  - `list_devices` — see connected devices and the tools each exposes
71
81
 
72
82
  ## The buoy-optimize skill
73
83
 
74
- `init` also installs a guided performance wizard. Your assistant benchmarks implementation variants on the **real device**, reads the ranked results, applies the winning change, and repeats until the metrics plateau. Measuring instead of guessing is what makes it fast: one real run took a Skia LED display from 28 stuttering lights to over 12,000 with no lag. Kick it off with **"buoy optimize"**.
84
+ `init` installs a performance workflow for comparing implementation variants on a device. Ask your assistant for "buoy optimize", review the proposed benchmark, and compare repeated runs under the same conditions. Results depend on the app and workload.
75
85
 
76
86
  ## Requirements
77
87
 
78
88
  - **Node.js 18+** on the machine running your editor.
79
89
  - **A running app** with [`@buoy-gg/core`](https://www.npmjs.com/package/@buoy-gg/core) and the tool packages you want to drive.
80
90
  - The server connects to the local Buoy broker — or spawns its own in-process — so it works standalone, no Buoy Desktop required.
81
- - **macOS + Xcode** only for `screenshot_component` and the `camera_*` tools (they drive the iOS Simulator); everything else is platform-agnostic.
82
- - The `camera_*` tools need **no connected device** — the simulator camera is host-side and works on any booted simulator app, including ones with no Buoy integration.
91
+ - **macOS + Xcode** only for `screenshot_component` and the `camera_*` tools (they drive the iOS Simulator); other tools depend on the connected app and its platform integrations.
92
+ - The `camera_*` tools need **no connected device** — the simulator camera is host-side and supports compatible simulator apps without an in-app Buoy integration. Host, simulator and account requirements still apply.
83
93
 
84
- ## Pro
94
+ ## Plans and connections
85
95
 
86
- The MCP data and action tools require [Buoy Pro](https://buoy.gg/pricing); `list_devices` always works free. And every Saturday and Sunday, Pro unlocks free for anyone holding a key, including a free one (`npx buoy login`) — built into the product, so you can try the whole thing for real before deciding.
96
+ [MCP data and action tools require Pro](https://buoy.gg/pricing). Account admission also applies to discovery. Check current pricing for Weekend Pass terms.
87
97
 
88
- Everything runs over a localhost-only broker — nothing ever leaves your machine.
98
+ The broker can accept connections over your LAN; it is not necessarily localhost-only. Use a trusted development network. Account and license validation make external requests. See [Telemetry](https://buoy.gg/buoy/latest/docs/telemetry) for additional data flows.
89
99
 
90
100
  ## Links
91
101