manage_api_key_grants
Rename one of the caller's personal API keys or replace its access: full account, or a restriction to chosen Organizations with Organization permissions plus selected-Workspace or all-Workspaces permissions.
# MCP tool reference
1 callable tools.
Use tools/call at https://mcp.schedulerzero.com/mcp with the exact tool name and arguments below. The /tools/ paths in this view are documentation identifiers, not HTTP endpoints. Request execution is disabled for this reference.
Inputs are shown for personal API keys (bound) and for OAuth/delegated agents. Output schemas describe MCP structuredContent: native objects pass through; arrays, scalars and null use a data wrapper. Text content retains the native JSON result.
[Connect a client](/mcp/connect) · [Authentication and authorization](/authentication) · [Generated auth guide](/auth.md) · [Download tool catalog](/mcp-catalog.json) · [Agent documentation](/llms.txt)
## manage_api_key_grants
Rename one of the caller's personal API keys or replace its access: full account, or a restriction to chosen Organizations with Organization permissions plus selected-Workspace or all-Workspaces permissions.
Use after `read_api_key_issuance` when the person asks to narrow or change what a key can reach. A key never exceeds its owner's current permissions.
Does not return or rotate the secret. Agents and API keys may only narrow access; widening a key (or making it full-account) needs the person in the web app.
Obtain the user's explicit authorization before invoking a write or destructive action. This is a client interaction requirement, not a server-issued approval token.
Scopes: apiKey:update
Risk: security_admin; confirmation: explicit; idempotency: supported.
### Input schema (personal API key)
```json
{
"type": "object",
"properties": {
"apiKeyId": {
"type": "string",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$",
"format": "uuid"
},
"name": {
"$ref": "#/$defs/ShortText"
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"access": {
"anyOf": [
{
"type": "object",
"properties": {
"type": {
"anyOf": [
{
"type": "string",
"enum": [
"full"
]
}
]
}
},
"required": [
"type"
],
"patternProperties": {
"^(?!(?:type)$)[\\s\\S]*$": false
},
"additionalProperties": true,
"propertyNames": {
"anyOf": [
{
"type": "string",
"enum": [
"type"
]
}
]
}
},
{
"type": "object",
"properties": {
"type": {
"anyOf": [
{
"type": "string",
"enum": [
"restricted"
]
}
]
},
"organizations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"organizationId": {
"type": "string",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$",
"format": "uuid"
},
"organizationPermissions": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"maxItems": 100
},
"workspaces": {
"type": "array",
"items": {
"type": "object",
"properties": {
"workspaceId": {
"type": "string",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$",
"format": "uuid"
},
"roles": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 512
},
"maxItems": 20
},
"permissions": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"maxItems": 400
}
},
"required": [
"workspaceId",
"permissions"
],
"patternProperties": {
"^(?!(?:workspaceId|roles|permissions)$)[\\s\\S]*$": false
},
"additionalProperties": true,
"propertyNames": {
"type": "string",
"enum": [
"workspaceId",
"roles",
"permissions"
]
}
},
"maxItems": 500
},
"allWorkspaces": {
"type": "object",
"properties": {
"roles": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 512
},
"maxItems": 20
},
"permissions": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"maxItems": 400
}
},
"required": [
"permissions"
],
"patternProperties": {
"^(?!(?:roles|permissions)$)[\\s\\S]*$": false
},
"additionalProperties": true,
"propertyNames": {
"type": "string",
"enum": [
"roles",
"permissions"
]
}
}
},
"required": [
"organizationId"
],
"patternProperties": {
"^(?!(?:organizationId|organizationPermissions|workspaces|allWorkspaces)$)[\\s\\S]*$": false
},
"additionalProperties": true,
"propertyNames": {
"type": "string",
"enum": [
"organizationId",
"organizationPermissions",
"workspaces",
"allWorkspaces"
]
}
},
"minItems": 1,
"maxItems": 100
}
},
"required": [
"type",
"organizations"
],
"patternProperties": {
"^(?!(?:type|organizations)$)[\\s\\S]*$": false
},
"additionalProperties": true,
"propertyNames": {
"type": "string",
"enum": [
"type",
"organizations"
]
}
}
]
}
},
"required": [
"apiKeyId"
],
"patternProperties": {
"^(?!(?:apiKeyId|name|description|access)$)[\\s\\S]*$": false
},
"additionalProperties": true,
"propertyNames": {
"type": "string",
"enum": [
"apiKeyId",
"name",
"description",
"access"
]
},
"$defs": {
"ShortText": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
}
```
### Input schema (OAuth / delegated agent)
```json
{
"type": "object",
"properties": {
"apiKeyId": {
"type": "string",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$",
"format": "uuid"
},
"name": {
"$ref": "#/$defs/ShortText"
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"access": {
"anyOf": [
{
"type": "object",
"properties": {
"type": {
"anyOf": [
{
"type": "string",
"enum": [
"full"
]
}
]
}
},
"required": [
"type"
],
"patternProperties": {
"^(?!(?:type)$)[\\s\\S]*$": false
},
"additionalProperties": true,
"propertyNames": {
"anyOf": [
{
"type": "string",
"enum": [
"type"
]
}
]
}
},
{
"type": "object",
"properties": {
"type": {
"anyOf": [
{
"type": "string",
"enum": [
"restricted"
]
}
]
},
"organizations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"organizationId": {
"type": "string",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$",
"format": "uuid"
},
"organizationPermissions": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"maxItems": 100
},
"workspaces": {
"type": "array",
"items": {
"type": "object",
"properties": {
"workspaceId": {
"type": "string",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$",
"format": "uuid"
},
"roles": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 512
},
"maxItems": 20
},
"permissions": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"maxItems": 400
}
},
"required": [
"workspaceId",
"permissions"
],
"patternProperties": {
"^(?!(?:workspaceId|roles|permissions)$)[\\s\\S]*$": false
},
"additionalProperties": true,
"propertyNames": {
"type": "string",
"enum": [
"workspaceId",
"roles",
"permissions"
]
}
},
"maxItems": 500
},
"allWorkspaces": {
"type": "object",
"properties": {
"roles": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 512
},
"maxItems": 20
},
"permissions": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"maxItems": 400
}
},
"required": [
"permissions"
],
"patternProperties": {
"^(?!(?:roles|permissions)$)[\\s\\S]*$": false
},
"additionalProperties": true,
"propertyNames": {
"type": "string",
"enum": [
"roles",
"permissions"
]
}
}
},
"required": [
"organizationId"
],
"patternProperties": {
"^(?!(?:organizationId|organizationPermissions|workspaces|allWorkspaces)$)[\\s\\S]*$": false
},
"additionalProperties": true,
"propertyNames": {
"type": "string",
"enum": [
"organizationId",
"organizationPermissions",
"workspaces",
"allWorkspaces"
]
}
},
"minItems": 1,
"maxItems": 100
}
},
"required": [
"type",
"organizations"
],
"patternProperties": {
"^(?!(?:type|organizations)$)[\\s\\S]*$": false
},
"additionalProperties": true,
"propertyNames": {
"type": "string",
"enum": [
"type",
"organizations"
]
}
}
]
}
},
"required": [
"apiKeyId"
],
"patternProperties": {
"^(?!(?:apiKeyId|name|description|access)$)[\\s\\S]*$": false
},
"additionalProperties": true,
"propertyNames": {
"type": "string",
"enum": [
"apiKeyId",
"name",
"description",
"access"
]
},
"$defs": {
"ShortText": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
}
```
### Output schema (structuredContent)
```json
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$",
"format": "uuid"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"description": {
"anyOf": [
{
"type": "string",
"maxLength": 1000
},
{
"type": "null"
}
]
},
"access": {
"anyOf": [
{
"type": "object",
"properties": {
"type": {
"anyOf": [
{
"type": "string",
"enum": [
"full"
]
}
]
}
},
"required": [
"type"
],
"patternProperties": {
"^(?!(?:type)$)[\\s\\S]*$": false
},
"additionalProperties": true,
"propertyNames": {
"anyOf": [
{
"type": "string",
"enum": [
"type"
]
}
]
}
},
{
"type": "object",
"properties": {
"type": {
"anyOf": [
{
"type": "string",
"enum": [
"restricted"
]
}
]
},
"organizations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"organizationId": {
"type": "string",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$",
"format": "uuid"
},
"organizationName": {
"anyOf": [
{
"$ref": "#/$defs/LeadStoredText"
},
{
"type": "null"
}
]
},
"organizationPermissions": {
"type": "array",
"items": {
"type": "string"
}
},
"allWorkspaces": {
"anyOf": [
{
"type": "object",
"properties": {
"roles": {
"type": "array",
"items": {
"type": "string"
}
},
"permissions": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"roles",
"permissions"
],
"patternProperties": {
"^(?!(?:roles|permissions)$)[\\s\\S]*$": false
},
"additionalProperties": true,
"propertyNames": {
"type": "string",
"enum": [
"roles",
"permissions"
]
}
},
{
"type": "null"
}
]
},
"workspaces": {
"type": "array",
"items": {
"type": "object",
"properties": {
"workspaceId": {
"type": "string",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$",
"format": "uuid"
},
"workspaceName": {
"anyOf": [
{
"$ref": "#/$defs/LeadStoredText"
},
{
"type": "null"
}
]
},
"roles": {
"type": "array",
"items": {
"type": "string"
}
},
"permissions": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"workspaceId",
"workspaceName",
"roles",
"permissions"
],
"patternProperties": {
"^(?!(?:workspaceId|workspaceName|roles|permissions)$)[\\s\\S]*$": false
},
"additionalProperties": true,
"propertyNames": {
"type": "string",
"enum": [
"workspaceId",
"workspaceName",
"roles",
"permissions"
]
}
}
}
},
"required": [
"organizationId",
"organizationName",
"organizationPermissions",
"allWorkspaces",
"workspaces"
],
"patternProperties": {
"^(?!(?:organizationId|organizationName|organizationPermissions|allWorkspaces|workspaces)$)[\\s\\S]*$": false
},
"additionalProperties": true,
"propertyNames": {
"type": "string",
"enum": [
"organizationId",
"organizationName",
"organizationPermissions",
"allWorkspaces",
"workspaces"
]
}
}
}
},
"required": [
"type",
"organizations"
],
"patternProperties": {
"^(?!(?:type|organizations)$)[\\s\\S]*$": false
},
"additionalProperties": true,
"propertyNames": {
"type": "string",
"enum": [
"type",
"organizations"
]
}
}
]
},
"prefix": {
"anyOf": [
{
"$ref": "#/$defs/LeadStoredText"
},
{
"type": "null"
}
]
},
"blockedOrganizations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"organizationId": {
"type": "string",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$",
"format": "uuid"
},
"organizationName": {
"anyOf": [
{
"$ref": "#/$defs/LeadStoredText"
},
{
"type": "null"
}
]
},
"blockedAt": {
"$ref": "#/$defs/UtcDateTimeEncoded"
}
},
"required": [
"organizationId",
"organizationName",
"blockedAt"
],
"patternProperties": {
"^(?!(?:organizationId|organizationName|blockedAt)$)[\\s\\S]*$": false
},
"additionalProperties": true,
"propertyNames": {
"type": "string",
"enum": [
"organizationId",
"organizationName",
"blockedAt"
]
}
}
},
"expiresAt": {
"anyOf": [
{
"$ref": "#/$defs/UtcDateTimeEncoded"
},
{
"type": "null"
}
]
},
"lastUsedAt": {
"anyOf": [
{
"$ref": "#/$defs/UtcDateTimeEncoded"
},
{
"type": "null"
}
]
},
"lastRotatedAt": {
"anyOf": [
{
"$ref": "#/$defs/UtcDateTimeEncoded"
},
{
"type": "null"
}
]
},
"createdAt": {
"$ref": "#/$defs/UtcDateTimeEncoded"
}
},
"required": [
"id",
"name",
"description",
"access",
"prefix",
"blockedOrganizations",
"expiresAt",
"lastUsedAt",
"lastRotatedAt",
"createdAt"
],
"patternProperties": {
"^(?!(?:id|name|description|access|prefix|blockedOrganizations|expiresAt|lastUsedAt|lastRotatedAt|createdAt)$)[\\s\\S]*$": false
},
"additionalProperties": true,
"propertyNames": {
"type": "string",
"enum": [
"id",
"name",
"description",
"access",
"prefix",
"blockedOrganizations",
"expiresAt",
"lastUsedAt",
"lastRotatedAt",
"createdAt"
]
},
"$defs": {
"LeadStoredText": {
"type": "string",
"maxLength": 65536
},
"UtcDateTimeEncoded": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
}
}
}
```
### Underlying API operations
- `personalApiKeys.update`: `PATCH /v1/me/api-keys/:apiKeyId`