Skip to main content
PATCH
Update an MCP token
Editing is how you widen a scoped token: its selection does not grow when its creator gains access, so adding a table or a tool is an explicit edit. Narrowing happens on its own — access the creator loses is dropped from the token on its next call.
The expiration cannot be changed here — it is set when the token is created.
Each edit is recorded in the workspace activity, naming both the person behind the key and the key itself, so an unattended change is not attributed to someone who was asleep.

Authorizations

x-api-key
string
header
required

API Key authentication. Format: 'x-api-key: api_key'

Path Parameters

id
string
required

Body

description
string
Maximum string length: 80
expires_at
string<date-time>

When the token stops working. Optional and create-only — omit it for the default 1-year lifetime. Must be in the future and at most 1 year from now. Requires the mcp_token_custom_expiration feature flag.

use_created_by_permissions
boolean
tool_scope
any | null

Names of the native Nekt MCP tools this token may use. NULL = every tool available to the token's creator, future ones included; [] = none. Restricted tokens only — a full-access token always exposes its creator's whole surface.

live_connection_scopes
object[]
write-only
secret_scopes
string<uuid>[] | null
write-only

Ids of the secrets this restricted token may reference. Omit to inherit the creator's; [] for none.

semantic_layer_scopes
object | null
write-only

Semantic Layer surface of this restricted token: {"folders": [...], "documents": [...]}. A folder covers its whole subtree, resolved at read time. Omit to inherit the creator's.

table_scopes
object | null
write-only

Catalog links for the TABLES axis: {"layers": [...], "folders": [...], "tables": [...]}. A layer or folder link means everything inside it, now and in the future — tables only.

volume_scopes
object | null
write-only

Catalog links for the VOLUMES axis: {"layers": [...], "folders": [...], "volumes": [...]}. The same layer linked here brings volumes only, never tables.

all_tables
boolean
all_volumes
boolean
all_secrets
boolean
all_semantic_layer
boolean
all_live_connections
boolean
tables
string[]

Tables (Expandable)

Response

200 - application/json
id
string<uuid>
required
read-only
description
string
required
Maximum string length: 80
bearer_token
string
required
read-only
last_used_at
string<date-time> | null
required
read-only
created_at
string<date-time>
required
read-only
updated_at
string<date-time>
required
read-only
mcp_config
string
required
read-only

MCP Configuration (Field only visible on expanded view. Expandable)

created_by
integer
required
read-only

Created by (Expandable)

expires_at
string<date-time>

When the token stops working. Optional and create-only — omit it for the default 1-year lifetime. Must be in the future and at most 1 year from now. Requires the mcp_token_custom_expiration feature flag.

use_created_by_permissions
boolean
tool_scope
any | null

Names of the native Nekt MCP tools this token may use. NULL = every tool available to the token's creator, future ones included; [] = none. Restricted tokens only — a full-access token always exposes its creator's whole surface.

all_tables
boolean
all_volumes
boolean
all_secrets
boolean
all_semantic_layer
boolean
all_live_connections
boolean
tables
string[]

Tables (Expandable)