Turn access on or off, or change which tools are allowed
const url = 'https://api.flotera.com/api/v1/mcp/access';const options = { method: 'PUT', headers: { cookie: '__Host-erm_session=<__Host-erm_session>', 'Content-Type': 'application/json' }, body: '{"enabled":true,"reissue":true,"allowed_tools":["example"]}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request PUT \ --url https://api.flotera.com/api/v1/mcp/access \ --header 'Content-Type: application/json' \ --cookie __Host-erm_session=<__Host-erm_session> \ --data '{ "enabled": true, "reissue": true, "allowed_tools": [ "example" ] }'enabled: false revokes the token. enabled: true issues one if there
is none, and otherwise rewrites the scopes of the existing token —
the secret survives, so changing permissions never forces the client
config to be rewritten.
The plaintext token is returned once, on issue, and never again: the database holds a SHA-256, not the secret.
Omitting allowed_tools on first enable grants read tools only. A
default of “everything” would hand the model the ability to change
prices before anyone decided it should.
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”object
Issue a new secret for the same token. Permissions and connected OAuth clients are untouched — they hang off the token row, not its secret. Needed because the plaintext is shown exactly once.
Tools to allow. Omitted on first enable means read tools only; an empty array means enabled with nothing allowed. These are different intentions and the contract keeps them apart.
Examplegenerated
{ "enabled": true, "reissue": true, "allowed_tools": [ "example" ]}Responses
Section titled “Responses”Access state; token present only when just issued.
object
Subject areas in catalog order, with their descriptions. The panel renders one block per area; a list of its own would fall behind the catalog the first time a tool is added.
object
First characters of the token. The token itself is shown once, at issue.
Public MCP address; empty when the gateway is not published.
Clients connected over OAuth. Empty means nobody connected, or all were removed.
object
object
Subject area the tool belongs to; the panel groups by it.
Whether the tool reads or changes things.
The token’s scopes cover this tool.
The plan permits this tool. False cannot be fixed by a checkbox.
Plaintext token. Present only in the response that issued it.
Example
{ "tools": [ { "mode": "read" } ]}Request failed validation (code=validation_failed), with per-field errors.
RFC 9457 problem document with a stable machine code.
object
Stable machine-readable error code (03 §2.4).
UUID (v7 for new entities; v4 accepted during migration).
object
JSON Pointer to the offending field.
Example
{ "type": "https://ermeon.com/problems/validation", "code": "unauthorized"}Missing/invalid credentials (code=unauthorized).
RFC 9457 problem document with a stable machine code.
object
Stable machine-readable error code (03 §2.4).
UUID (v7 for new entities; v4 accepted during migration).
object
JSON Pointer to the offending field.
Example
{ "type": "https://ermeon.com/problems/validation", "code": "unauthorized"}Authenticated but not permitted. code=forbidden — role/scope mismatch; code=feature_not_entitled — the plan does not include the capability; code=account_frozen — the account is frozen and this operation is declared x-ermeon-frozen: deny. The three are deliberately distinct: only the last one is fixed by a top-up (13 §5.6).
RFC 9457 problem document with a stable machine code.
object
Stable machine-readable error code (03 §2.4).
UUID (v7 for new entities; v4 accepted during migration).
object
JSON Pointer to the offending field.
Example
{ "type": "https://ermeon.com/problems/validation", "code": "unauthorized"}A dependency the endpoint needs is not configured or is temporarily unavailable (code=unavailable). The rest of the API keeps working — an absent external integration must not take the service down.
RFC 9457 problem document with a stable machine code.
object
Stable machine-readable error code (03 §2.4).
UUID (v7 for new entities; v4 accepted during migration).
object
JSON Pointer to the offending field.
Example
{ "type": "https://ermeon.com/problems/validation", "code": "unauthorized"}