MCP

Asking for more access

The permission modes, and the one link an assistant hands you when it needs more.

Modes. A connection's permissions per company read as one of three modes, shown on it under Dev Tools → MCP and editable there:

ModeWhat it can do
Read-onlyEvery view permission you hold at that company. It can't change anything.
Can make changesThose, plus every edit permission you hold — create, update, send. Not admin-level permissions, refunds, wholesale costs, permissions and invitations, SSO and security, billing, payouts, domains, mailboxes, AI agents or data migration, and nothing from Builder or Pixelbase's own tiers.
CustomAnything else: permissions chosen one by one. A connection made before modes existed keeps what it had and shows as Custom if it matches neither.

A mode is never stored — it's read off the permissions, so what you see is what is enforced. And it never exceeds your own role: it is drawn from what you hold at that company, today.

The permission wall. When an assistant asks for something its permissions don't cover, it doesn't hit a dead end. The call fails with permission_required and, in the text and in structuredContent:

  • what it was attempting and at which company,
  • the exact permissions it is missing (missingScopes, each with a readable label and whether it can make changes), and
  • approvalUrl — one link, https://www.pxb.app/connect/approve/<token>.

A tool the connection can't use is never listed, so an assistant can also ask outright: request_permissions takes a tool name (or permission names) and returns the same link, and search_tools and describe_tool say that a tool exists but isn't granted.

The link is for one decision. It lasts about twenty minutes (an operator can set it between five and sixty), works once, and belongs to this connection, this company and exactly those permissions. It carries no access of its own: opening it only shows the request, and approving takes you, signed in as the person who connected the assistant, and the same code from your phone that connecting one takes. Anyone else who opens it learns nothing and can change nothing.

The approval page says in plain words which assistant is asking, for which company, what it was trying to do and exactly what it wants — marking anything that can make changes. Approve adds just those permissions to that company; Deny closes the request; Review all permissions opens the connection for the full list. If you don't hold a permission yourself it can't be granted, and the page says to ask an admin. Expired, used, declined and disconnected links say so and tell the assistant's person what to do next.

It takes effect on the next call. Permissions are read live, so the assistant simply retries — no reconnecting. The server also tells a listening client its tool list changed. Each request and each decision is recorded in the connection's History in Dev Tools.