get_groups_by_id
Calls GET /api/groups/{id} as the signed-in person · REST reference
Get one group
Requires query:ListGroupsQuery — the same READ permission as the list route, there is no per-group permission — and admin.groups.view in some org (403 otherwise), platform staff included. After the group is loaded, its organization must be in the caller's org tree, so that check happens AFTER the 404: a caller holding it elsewhere can distinguish "no such group" from "group I may not see". The member roster is NOT included; fetch it from GET /api/groups/{id}/members.
Arguments
| Argument | Type | Description | |
|---|---|---|---|
idpath | 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": "get_groups_by_id",
"arguments": {
"id": "11111111-1111-4111-8111-111111111111"
}
}
}Result
On success (HTTP 200) the tool returns one text item holding the API's JSON, pretty-printed.
The group, wrapped in the success envelope. ISO-8601 timestamps.
{
"data": {
"createdAt": "2026-01-15T12:00:00Z",
"id": "11111111-1111-4111-8111-111111111111",
"memberCount": 1,
"name": "string",
"status": "ACTIVE",
"type": "FUNCTIONAL",
"description": "string",
"orgId": "11111111-1111-4111-8111-111111111111",
"updatedAt": "2026-01-15T12:00:00Z"
},
"success": true
}Fields
| Field | Type | Description |
|---|---|---|
data | object | Group model projection — same shape as a row of GET /api/groups. |
data.createdAt | string (date-time) | |
data.description | string | null | |
data.id | string (uuid) | |
data.memberCount | integer | |
data.name | string | |
data.orgId | string (uuid) | null | |
data.status | "ACTIVE" | "INACTIVE" | "ARCHIVED" | |
data.type | "FUNCTIONAL" | "DEPARTMENTAL" | "ROLE_BASED" | "PROJECT" | "ADMIN" | "OWNER" | … (7 values) | |
data.updatedAt | string (date-time) | |
success | true |
When it fails
A failed call returns isError: true with the API's message as text.
400idis not a UUID.detailsis an express-validator ARRAY.403Missing
query:ListGroupsQuery, noadmin.groups.viewin any org, or none in the group's org — the last carriescode: GROUP_ACCESS_DENIED.404No such group. Carries
code: GROUP_NOT_FOUND.
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": "get_groups_by_id",
"description": "GET /api/groups/{id} — Requires `query:ListGroupsQuery` — the same READ permission as the list route, there is no per-group permission — and `admin.groups.view` in some org (403 otherwise), platform staff included. After the group is loaded, its organization must be in the caller's org tree, so that check happens AFTER the 404: a caller holding it elsewhere can distinguish \"no such group\" from \"group I may not see\". The member roster is NOT included; fetch it from `GET /api/groups/{id}/members`.",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string"
}
},
"required": [
"id"
]
},
"annotations": {
"readOnlyHint": true,
"openWorldHint": false
}
}