A client asks for a sensitivity level, but the response is the intersection of that request and what you ticked in the tray — so a model that asks for everything still sees only what you allowed. The policy tool exists so it can say why a field is missing instead of retrying, and the event catalogue lets it learn the shape of the data without seeing any of yours.
A Windows tray application that publishes local ambient context — presence, foreground app category, battery, power events, system load, long-session detection — as four MCP tools. It listens on 127.0.0.1 only and sends nothing outward.
- ambient_context_get_states — the current state, filtered to what you have allowed
- ambient_context_poll_events — unread events since this client's cursor, or a time range when you pass one
- ambient_context_describe_events — the schema catalogue for every event the server can fire, with no real data in it
- ambient_context_get_policy — which fields are classified how, and why a value you expected is not appearing
- Every field classified by sensitivity, with medium and high off until you opt in from the tray dialog
- A tray menu that copies a ready-made Claude Code registration command, token included
Windows 10 version 2004 or newer, the .NET 8 and ASP.NET Core 8 runtimes, and Windows App Runtime 1.8 — the app points you at the installer on first run if it is missing. Claude Desktop can install the packaged bundle from the releases page instead. Clients connect over Streamable HTTP to the local endpoint with a bearer token; requests carrying an Origin header are accepted only from localhost.
One command plus a key — claude mcp add ambient-context \ --transport http http://127.0.0.1:37690/mcp \ --header "Authorization: Bearer <TOKEN>", then supply credentials
