Claude Code
A static bearer, one command, and the terminal opens your browser when a call needs you.
Claude Code takes a static header, so connecting it is one command and no browser dance. From that moment the agent sees every binding in its workspace as a tool with a plain-words description, and the keys stay where they are.
Connect it
claude mcp add --transport http sallyport https://mcp.sallyport.cloud/mcp \
--header "Authorization: Bearer sp_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"The token comes from the console when you create the agent. It opens nothing on its own: it names an agent identity, and the bindings on that identity decide what the agent may ask for.
How an approval reaches you
Claude Code documents a five-minute idle timeout on an HTTP request and moves a tool call to the background after about two minutes. So the gateway does not sit on the connection. It answers with a link, and Claude Code opens your browser on the approval card. The call stays in the foreground while the card is open. Answer on your phone instead and the agent picks the same call up on its next poll.
What the agent sees
stripe.request Stripe (key: stripe-live). GET runs. POST asks you.
github.request GitHub (key: gh-bot). Reads run. Writes ask you.
web-01.exec SSH web-01.example.com as deploy. Every command asks you.Keep the header out of your dotfiles in a shared repository. `sp init` writes it into the local Claude Code config and adds a short block to CLAUDE.md telling the agent which services it has.