post_org_admin_members_by_userid_permissions
Calls POST /api/org-admin/members/{userId}/permissions as the signed-in person · REST reference
Grant one of the organization's permissions to one member directly
With the caller's own token. Requires admin.roles.assign in the PERMISSION's organization (read from the permission), and the caller must hold the permission there themselves. The member must be a current member of that organization; an invited member's grant confers nothing until they join.
Arguments
| Argument | Type | Description | |
|---|---|---|---|
userIdpath | string (uuid) | required | |
bodyJSON | object | required | The request body, as a JSON object. Its fields are listed below. |
Fields of body
| Field | Type | Description | |
|---|---|---|---|
orgPermissionId | string (uuid) | required |
Example call
A client sends this over the MCP session; Claude and other agents build it for you. The values are placeholders — the shape is real.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "post_org_admin_members_by_userid_permissions",
"arguments": {
"userId": "11111111-1111-4111-8111-111111111111",
"body": {
"orgPermissionId": "11111111-1111-4111-8111-111111111111"
}
}
}
}Result
On success (HTTP 200) the tool returns one text item holding the API's JSON, pretty-printed.
The member holds the grant (changed false when they already did).
{
"data": {
"changed": true,
"feature": "string",
"orgPermissionId": "11111111-1111-4111-8111-111111111111"
},
"success": true
}Fields
| Field | Type | Description |
|---|---|---|
data | object | |
data.changed | boolean | |
data.feature | string | |
data.orgPermissionId | string (uuid) | |
success | true |
When it fails
A failed call returns isError: true with the API's message as text. A change the person declines, or lets time out, also comes back this way and nothing changes.
400The request was malformed or failed a guard.
403No
admin.roles.assignin the permission's organization, or the caller does not hold the permission there (the message names it).404No such resource — or none this caller may see.
409The resource is not in a state that allows this operation.
What the model is shown
This is the tool exactly as the server lists it in tools/list. The description starts with the REST call it makes.
{
"name": "post_org_admin_members_by_userid_permissions",
"description": "POST /api/org-admin/members/{userId}/permissions — With the caller's own token. Requires `admin.roles.assign` in the PERMISSION's organization (read from the permission), and the caller must hold the permission there themselves. The member must be a current member of that organization; an invited member's grant confers nothing until they join.\n\nThis changes data. The person is asked to confirm it before it runs, and nothing happens if they decline.",
"inputSchema": {
"type": "object",
"properties": {
"userId": {
"type": "string"
},
"body": {
"type": "string",
"description": "The JSON request body: { orgPermissionId*: string }"
}
},
"required": [
"userId",
"body"
]
},
"annotations": {
"readOnlyHint": false,
"destructiveHint": true,
"idempotentHint": false,
"openWorldHint": false
}
}