Statio

Documentation
API Reference
Changelog
concepts/Permissions

Permissions

Two questions get asked about every request, and they are genuinely different:

  1. Tenancy — does this server belong to the caller's organization?
  2. Authority — may this caller use this tool on it?

Passing the first says nothing about the second. A member of the owning organization can see a server exists and still be refused the right to deploy it.

Nothing is granted by default

A freshly installed server is reachable by nobody, including the person who installed it. That is deliberate: a default that grants access is a default nobody reviews.

Grants are per tool

An MCP server exposing twelve tools is twelve separate decisions. You can grant search_issues to everyone in engineering and create_release to two people, on the same server.

The gateway checks the specific tool named in the request. Reaching the server is not permission to call everything on it.

Who a grant is for

GranteeUse it when
A personOne individual needs one tool
A teamThe grant should follow team membership
An access groupA named bundle of grants you reuse

Grants resolve through the platform's roles, so removing someone from a team removes their access at the same moment — there is no second list to remember.

Organization access levels

Above per-tool grants sit the levels that decide administrative authority:

LevelCan
MemberUse tools they have been granted
DeveloperInstall servers, deploy, roll back
AdminManage members, credentials, billing
OwnerEverything, including deleting the organization

Some actions require a capability as well as a level. Promoting a build to a protected environment needs an approval capability that a developer with full deploy rights does not hold — the separation exists so shipping to production is a second person's decision.

API keys inherit, never exceed

A key acts with the authority of the person who created it. It cannot be granted anything that person does not have, and revoking their grants revokes the key's reach at the same time.

Warning

This is why a key is not a service account. If you need access to outlive an individual, create the key under an account intended for that purpose — a key whose creator leaves the organization stops working.

When a check cannot be resolved

If the gateway cannot determine whether a caller holds a permission — the platform is unreachable, the principal does not resolve — the request is refused. Failing closed is the only safe direction: refusing a legitimate call is a retryable inconvenience, allowing an illegitimate one is not.

See also
Was this page helpful?
© Statio