post_support
Calls POST /api/support as the signed-in person · REST reference
Create a support case
Any authenticated user may file a case (this is the customer-facing intake path, not a platform-staff one). Backed by Mutation.createSupportCase. relatedEntity/ relatedEntityId, when given, round-trip through metadata — SupportCase has no dedicated columns for them.
Arguments
| Argument | Type | Description | |
|---|---|---|---|
bodyJSON | object | required | The request body, as a JSON object. Its fields are listed below. |
Fields of body
| Field | Type | Description | |
|---|---|---|---|
category | string | required | Free text - no enumeration is enforced. |
description | string | required | |
metadata | object | ||
priority | "LOW" | "MEDIUM" | "HIGH" | "CRITICAL" | ||
relatedEntity | string | ||
relatedEntityId | string | ||
title | string | 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_support",
"arguments": {
"body": {
"category": "string",
"description": "string",
"title": "string",
"metadata": {},
"priority": "LOW",
"relatedEntity": "string",
"relatedEntityId": "string"
}
}
}
}Result
On success (HTTP 201) the tool returns one text item holding the API's JSON, pretty-printed.
The created support case.
{
"caseNumber": "string",
"createdAt": "2026-01-15T12:00:00Z",
"description": "string",
"id": "11111111-1111-4111-8111-111111111111",
"metadata": {},
"priority": "LOW",
"status": "OPEN",
"submittedBy": "string",
"title": "string",
"type": "string",
"updatedAt": "2026-01-15T12:00:00Z",
"assignedTo": "string",
"assignedToName": "string",
"createdByName": "string"
}Fields
| Field | Type | Description |
|---|---|---|
assignedTo | string | |
assignedToName | string | |
caseNumber | string | |
createdAt | string (date-time) | |
createdByName | string | |
description | string | |
id | string (uuid) | |
metadata | object | |
priority | "LOW" | "MEDIUM" | "HIGH" | "CRITICAL" | |
relatedEntity | string | |
relatedEntityId | string | |
resolvedAt | string (date-time) | |
status | "OPEN" | "IN_PROGRESS" | "RESOLVED" | "CLOSED" | "PENDING" | "REOPENED" | |
submittedBy | string | |
title | string | |
type | string | |
updatedAt | string (date-time) |
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.
400title, description or category missing, or the DAL's own validation refused the case (its sentence).
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_support",
"description": "POST /api/support — Any authenticated user may file a case (this is the customer-facing intake path, not a platform-staff one). Backed by `Mutation.createSupportCase`. `relatedEntity`/ `relatedEntityId`, when given, round-trip through `metadata` — SupportCase has no dedicated columns for them.\n\nThis changes data. The person is asked to confirm it before it runs, and nothing happens if they decline.",
"inputSchema": {
"type": "object",
"properties": {
"body": {
"type": "string",
"description": "The JSON request body: { category*: string (Free text - no enumeration is enforced.); description*: string; metadata: object; priority: one of \"LOW\" | \"MEDIUM\" | \"HIGH\" | \"CRITICAL\"; relatedEntity: string; relatedEntityId: string; title*: string }"
}
},
"required": [
"body"
]
},
"annotations": {
"readOnlyHint": false,
"destructiveHint": true,
"idempotentHint": false,
"openWorldHint": false
}
}