AI connection access and privacy
How Budgee limits an external AI connection to the user, boards, and permissions you approve.
For Budgee users
An external AI connection can see only the boards you select and only while acting as you. Board membership alone does not share a board externally.
During connection, you choose the external service, one or more boards, and the requested permissions. No board is preselected. Boards added to your account later are not added to an existing connection, and each Budgee user must create and approve their own connection.
Scopes and board roles
If a client omits scopes, Budgee presents a read-only set for board details, transactions, reports, diagnostics, scenarios, and forecasts. Write, apply, and import permissions are never added by default.
The client must explicitly request matching change permissions, preview:apply to apply a separately approved preview, or imports:update for supported accounting-source updates.
External scope reference
| Access | Exact scopes |
|---|---|
| Read | board:read, transactions:read, reports:read, diagnostics:read, scenarios:read, forecasts:read |
| Prepare changes | board:setup, transactions:write, scenarios:write, forecasts:write, reconciliation:write |
| Apply or import | preview:apply, imports:update |
A scope never overrides Budgee. Every operation rechecks your current board role. Owner-only actions, read-only boards, archived or lapsed boards, and active import safeguards keep their normal restrictions.
Security terms in plain language
- Short-lived access token: the client receives a bearer token for no more than 15 minutes.
- Rotating refresh token: every refresh token is single-use and replaced when used. Reuse is treated as a security problem and disconnects the connection.
- PKCE (S256): the client proves that the same client that started sign-in is finishing it.
- Resource binding: an MCP token is tied to the exact Budgee MCP server and cannot be replayed against the direct HTTP API or another MCP resource.
You do not manage these tokens yourself during the normal one-URL MCP flow.
View and disconnect access
Open User settings → AI connections to see active services, selected boards, and whether access is read-only or can apply approved changes. Disconnecting immediately invalidates the durable connection and its current access and refresh tokens.
External access is separate from Ask Budgee AI inside Budgee. External consent is not a master privacy switch for the built-in feature.
For OAuth client developers
Budgee's MCP OAuth flow advertises protected-resource and authorization-server metadata. It supports authorization code with S256 PKCE, dynamic registration of public clients, and rotating refresh tokens. Public clients use token endpoint authentication method none and receive no client secret.
- Preserve the exact
state, registeredredirect_uri, PKCE verifier, requestedresource, and scopes. - Authorization codes are single-use and expire after 10 minutes.
- Access tokens last no more than 900 seconds; refresh tokens expire after 30 days and rotate on use.
- The grant is bound to one user, client, board set, scope set, MCP resource, and durable connection.
- Unsupported scopes fail. Omitted scopes produce the documented read-only defaults.
- Do not send Budgee Firebase ID tokens to your callback or use them as Board Tool bearer tokens.
Discover endpoints from the MCP URL. Do not hard-code undocumented environment URLs.