For AI agents: a documentation index is available at https://docs.coverbase.com/llms.txt — this page is also available in markdown by appending .md to the URL.
The Coverbase MCP server does not have its own permission system. Every tool call runs as the person who authorized the connection, with exactly the access that user already has in Coverbase — no more. There are no separate MCP credentials, no service identity that sees more than the user, and no way for the assistant to escalate beyond what the user could do in the dashboard.
This page explains how that works end to end: how a request is authenticated, how a role is resolved, and how read-only versus read/write access is decided and enforced.
The short version. Access is tied to each user’s role in Coverbase. Admins and Members get read and write. Guests and Siloed Members are read-only. Change someone’s role in Coverbase and it takes effect on their next request — there is nothing separate to re-issue.
Permission inheritance
When a client connects, the user signs in to Coverbase through OAuth 2.0 and authorizes the connection. From that point on, every tool the assistant calls is evaluated against that user’s live organization membership. The connector is a delegate, not a privileged service account. Three properties follow from this design:No privilege escalation
The assistant can never see or do more than the connected user could do by logging into the dashboard themselves.
Single source of truth
Permissions are read from the user’s organization membership, not from a static config baked into the connector or copied at install time.
Org isolation
Every call is scoped to the user’s organization. The client never supplies an organization ID — the server derives it from the authenticated session.
Role-to-access matrix
Coverbase organization roles map to MCP access as follows.| Role | Can connect to MCP? | Read tools | Write tools |
|---|---|---|---|
| Admin | Yes | Yes | Yes |
| Member | Yes | Yes | Yes |
| Siloed Member | Yes | Yes | No (read-only) |
| Guest | Yes | Yes | No (read-only) |
| Auxiliary Member | No | — | — |
| Service Account | No | — | — |
- Read access (search vendors, pull assessment detail, list findings, run portfolio reports, and so on) is available to every role that can connect.
- Write access (creating or updating vendors, assessments, findings, obligations, notes, tags, and other records) is reserved for Members and Admins.
- Auxiliary Members and Service Accounts cannot use the MCP server at all. These are non-interactive identities, so they are excluded from the connectable set entirely and receive a
403if a token for one is ever presented.
The MCP write boundary is deliberately conservative. Write access through the connector is limited to Members and Admins, so it is never broader than what the same user could do in the dashboard — and for some roles it is intentionally tighter. If you need a user to make changes through an assistant, give them the Member or Admin role.
How a request is authorized
Every request flows through the same gate, regardless of which client or token type it uses. There is no path that skips role resolution.Authenticate the token
The server accepts three token formats on the
Authorization: Bearer header — an OAuth 2.0 access token issued to a remote MCP client, a dashboard SSO session token, or a long-lived Coverbase-issued MCP API key. Anything else is rejected with 401.Resolve the live role
The user’s organization role is resolved from their current membership record, not from anything cached in the client. For API-key and session tokens, the membership is looked up on every request. For OAuth tokens, the role is bound to the token from live membership at authorization time and re-validated every time the token is refreshed (see Live revalidation).
Enforce the connect allowlist
If the resolved role is not one of the connectable roles (Guest, Siloed Member, Member, Admin), the request is rejected with
403 before any tool runs.Enforce per-tool access
Read tools proceed for any connectable role. Write tools pass through an additional guard described in Write protection before they touch any data.
Write protection
Read-only versus read/write is not a single switch — a write tool only executes when three independent conditions are all satisfied. Any one of them failing returns a clear, non-destructive error instead of performing the change.Role check (least privilege)
The connected user’s role must be Member or Admin. Guests and Siloed Members receive a message explaining that their role cannot run write tools, and are pointed to ask a Member or Admin.
Scope check
The access token must carry the
mcp:write scope. Tokens can be issued without it to produce a strictly read-only connection, even for a user whose role would otherwise allow writes. (See OAuth scopes.)OAuth scopes
The server defines two scopes:| Scope | Grants |
|---|---|
mcp:read | Access to all read tools (search, detail, reports). |
mcp:write | Access to write tools, in combination with a Member/Admin role and explicit confirmation. |
scope request, which makes it possible to mint a deliberately read-only token even for a user who could otherwise write.
Want a guaranteed read-only connection? Two levers give you that:
- Connect with a Guest or Siloed Member account — their role blocks writes regardless of scope.
- Or issue a token without the
mcp:writescope — writes are blocked regardless of role.
Live revalidation
Because permissions are resolved from live membership, changes you make in Coverbase propagate without any re-install or token re-issuance on the user’s side.- API-key and session tokens look up the user’s membership on every request. If the user has been removed from the organization, the request is rejected with
403— even if the token itself is still otherwise valid. - OAuth tokens bind the role at authorization time and re-check live membership on every refresh. A user who is demoted (for example, Member → Guest) or removed from the organization cannot keep using a previously elevated token: the next refresh either downgrades the role baked into the new token or fails outright. Access tokens are short-lived and clients refresh silently, so a role change converges quickly.
This means a demotion is also a downgrade of MCP access, and a removal is a revocation — without anyone needing to touch the connector. Revoking the connection from Coverbase account settings or the client invalidates the token immediately.
What this means in practice
A Guest connects and asks the assistant to update a vendor
A Guest connects and asks the assistant to update a vendor
The assistant can search vendors, pull the vendor’s full profile, list findings and assessments, and run reports — all read operations succeed. The update is blocked by the role check and the assistant is told the user’s role cannot perform writes. No data is changed.
A Member connects and asks the assistant to create a finding
A Member connects and asks the assistant to create a finding
The role check passes (Member is write-capable) and the default token carries
mcp:write. The assistant proposes the new finding and waits. Once you confirm, it re-runs the tool with confirm=true and the finding is created — and the action is recorded in the audit trail.An admin demotes a user to Guest while their session is live
An admin demotes a user to Guest while their session is live
On the user’s next request (API key/session) or next token refresh (OAuth), the new Guest role takes effect. Subsequent write attempts are rejected. There is nothing to reconfigure on the user’s machine.
A user is removed from the organization
A user is removed from the organization
The next request or refresh fails with a
403 because there is no active membership to resolve a role from. The connection effectively stops working immediately.Auditability
Every tool call — read or write — is logged with the OAuth user identity, the tool name, the parameters, a timestamp, and the outcome. Write actions taken through the MCP server land in the same Coverbase audit trail as actions taken in the dashboard, so administrators have one consolidated record of who did what, regardless of whether it happened through the UI or an assistant.Security and privacy
Authentication, transport security, what we log, what we don’t retain, and how to revoke access.