diff options
| author | Igor Soarez <igor@soarez.org> | 2026-09-25 16:42:26 +0300 |
|---|---|---|
| committer | Igor Soarez <igor@soarez.org> | 2026-09-25 16:42:26 +0300 |
| commit | 66dcc84d51bed88cbfb608b9dc6800a8edd32b3c (patch) | |
| tree | f4a49b8182c7160ec8d850bd39e595fdcf59afd7 /scripts | |
| parent | fd06303bec47430f4644896d587f8f677245c9ac (diff) | |
ship the pi side we actually run, not a different arrangement
The README told pi users to install pi-chrome directly and run /chrome
authorize every session. That is not how this is used: pi reaches the same MCP
server through pi-mcp-adapter, with pi's own pi-chrome switched off, which is
why nobody types /chrome authorize.
pi/browser-gate.ts is that setup's missing piece, generalised from the one in
use: it answers pi-mcp-adapter's approval broker for one server, asking once per
session instead of once per call (the adapter's own grant only covers identical
arguments, so for a browser it asks nearly every time). /browser authorize,
/browser revoke, and PI_BROWSER_AUTHORIZE for headless runs. approveTools stays
on in mcp.json as the backstop if the gate does not load.
The README now leads with that: install the adapter, register the server in
mcp.json, copy the gate. Installing pi-chrome in pi is kept as the alternative,
with what it costs - two definitions of the browser, /chrome authorize per
session, and the trap of loading the extension twice.
Tested on an isolated pi config against a stand-in browser: with
PI_BROWSER_AUTHORIZE the call reaches the browser, without it the gate denies it.
Diffstat (limited to 'scripts')
0 files changed, 0 insertions, 0 deletions
