Transports
Client cases, part 1 of 2 MCP tools
The 12 tools /mcp offers for Client cases, part 1 of 2, what each needs and an example call.
Client cases, studies, their versions and lessons, and sharing them. These are 12 tools of the 24 tools of the cases backend (part 1 of 2; the others are part 2); all MCP tools lists the other backends.
cases_create_client_case
Create a client case. Cut a client case from a study. Text marked Draft, not approved is refused.
Scopes: mcp:write, cases:write · changes something
| Argument | Type | What it is |
|---|---|---|
study_id | string | |
text | object |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "cases_create_client_case",
"arguments": {}
}
}cases_create_share
Share a client case. Share a client case with a customer organisation or named people. It expires: 30 days unless asked, 365 at most. Customers sign in; there are no anonymous links.
Scopes: mcp:write, cases:share · changes something
| Argument | Type | What it is |
|---|---|---|
case_id | string | |
expires_at | string | RFC 3339, in the future. Optional: empty is 30 days from now (the configured default); later than 365 days (the configured maximum) is INVALID_ARGUMENT. Shares are signed-in only: no anonymous link exists. |
grantee | string | An account id for org; an email address for person. |
grantee_kind | string | org or person. |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "cases_create_share",
"arguments": {}
}
}cases_create_study
Create a case study. Create a study and its plan: either a new coordinator parent job is created, or an existing parent job of the same account with no parent of its own is attached. If the plan cannot be made, nothing is stored.
Scopes: mcp:write, cases:write · changes something
| Argument | Type | What it is |
|---|---|---|
company | string | |
date | string | |
plan_id | string | Attach an existing plan (a coordinator parent job of this account that has no parent of its own) instead of making one. Empty: CreateStudy files a new parent job through the coordinator. No plan, no study: if the coordinator cannot make or confirm the job, nothing is stored. |
slug | string | |
status | string | |
text | object | |
website | string |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "cases_create_study",
"arguments": {}
}
}cases_draft_lessons
Draft a study's lessons. Draft lessons from the corrections linked to the plan and its items. The result is labelled Draft, not approved; a person approves it.
Scopes: mcp:write, cases:write · changes something
| Argument | Type | What it is |
|---|---|---|
study_id | string |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "cases_draft_lessons",
"arguments": {}
}
}cases_extend_share
Extend a share. Move a live share's expiry later, never past 365 days from now.
Scopes: mcp:write, cases:share · changes something · safe to repeat
| Argument | Type | What it is |
|---|---|---|
expires_at | string | RFC 3339, later than the current expiry and within the maximum from now. |
share_id | string |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "cases_extend_share",
"arguments": {}
}
}cases_get_case_plan
Get a case's plan. The Planner plan behind a study or client case: its items with their status and the merged timeline of the plan and each item. A status resting on a stub reads unconfirmed. When the Planner cannot be read the answer says plan_unavailable and the case text is still returned.
Scopes: mcp:read, cases:read · reads only
| Argument | Type | What it is |
|---|---|---|
case_id | string | |
study_id | string | One of the two. |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "cases_get_case_plan",
"arguments": {}
}
}cases_get_client_case
Get a client case. One client case by id with its current text, published version and the plan it runs through.
Scopes: mcp:read, cases:read · reads only
| Argument | Type | What it is |
|---|---|---|
case_id | string |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "cases_get_client_case",
"arguments": {}
}
}cases_get_client_case_version
Get a client case version. One saved version of a client case with its text.
Scopes: mcp:read, cases:read · reads only
| Argument | Type | What it is |
|---|---|---|
case_id | string | |
version | integer |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "cases_get_client_case_version",
"arguments": {}
}
}cases_get_lessons
Get a study's lessons. The lessons drafted from the plan's corrections, labelled Draft, not approved until a person approves them.
Scopes: mcp:read, cases:read · reads only
| Argument | Type | What it is |
|---|---|---|
study_id | string |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "cases_get_lessons",
"arguments": {}
}
}cases_get_study
Get a case study. One study by id with its current text, its plan id and its version. Internal; never shown to a customer.
Scopes: mcp:read, cases:read · reads only
| Argument | Type | What it is |
|---|---|---|
study_id | string |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "cases_get_study",
"arguments": {}
}
}cases_get_study_version
Get a study version. One saved version of a study with its text.
Scopes: mcp:read, cases:read · reads only
| Argument | Type | What it is |
|---|---|---|
study_id | string | |
version | integer |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "cases_get_study_version",
"arguments": {}
}
}cases_list_client_case_versions
List a client case's versions. Every saved version of a client case, newest first.
Scopes: mcp:read, cases:read · reads only
| Argument | Type | What it is |
|---|---|---|
case_id | string | |
page_size | integer | |
page_token | string | The next_page_token of the page before. |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "cases_list_client_case_versions",
"arguments": {}
}
}