#2702·BrowserOS

neo MCP: the session handle lives only in `_meta` — clients that cannot see it get a new session per call and lose tab ownership

Author: gboz17Created Sep 17, 2026Updated Sep 17, 2026

Context: the docs say the handle is in every result's _meta under com.browseros.neo/session. Some MCP clients / bridges do not surface _meta to the model (ours does not), so the model can never echo it back. Part of this is a client-side gap, not neo's — the two asks below would make neo robust to it.

What happens: every call without session starts a fresh neo session. After name_session set a label, a later tabs new landed in a new tab group under a new random label (rapid-orcatidy-lemurplucky-lynxwitty-koala in one sitting). Four agent-owned tabs were re-owned to user mid-task with nobody touching them — each right after a 60 s tool timeout or a multi-minute gap.

Ask: (a) accept the name_session label as an alias for the handle, or print the handle in the text result, not only _meta; (b) let a re-created session reclaim tabs it labelled.

Workaround today: keep state in same-origin localStorage, open a fresh tab, re-evaluate, read the stash.

Environment: BrowserOS neo 0.49.5.0 · Chromium 148.0.7988.97 (arm64) · macOS · client = Claude over MCP.