post_support

Changes data · you confirm first

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

ArgumentTypeDescription
bodyJSONobjectrequiredThe request body, as a JSON object. Its fields are listed below.

Fields of body

FieldTypeDescription
categorystringrequiredFree text - no enumeration is enforced.
descriptionstringrequired
metadataobject
priority"LOW" | "MEDIUM" | "HIGH" | "CRITICAL"
relatedEntitystring
relatedEntityIdstring
titlestringrequired

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.

json
{
  "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"
      }
    }
  }
}
Confirmation
The client shows the person the exact request and waits. Nothing runs until they tick Make this change. See Reading and changing.

Result

On success (HTTP 201) the tool returns one text item holding the API's JSON, pretty-printed.

The created support case.

json
{
  "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

FieldTypeDescription
assignedTostring
assignedToNamestring
caseNumberstring
createdAtstring (date-time)
createdByNamestring
descriptionstring
idstring (uuid)
metadataobject
priority"LOW" | "MEDIUM" | "HIGH" | "CRITICAL"
relatedEntitystring
relatedEntityIdstring
resolvedAtstring (date-time)
status"OPEN" | "IN_PROGRESS" | "RESOLVED" | "CLOSED" | "PENDING" | "REOPENED"
submittedBystring
titlestring
typestring
updatedAtstring (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.

400

title, 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.

json
{
  "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
  }
}