> For the complete documentation index, see [llms.txt](https://mcp-test-kitchen-docs.cakewalk.security/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mcp-test-kitchen-docs.cakewalk.security/reference/tools.md).

# Tools

Every tool the server can advertise, its arguments and which scenario registers it.

Which tools a session advertises depends on the active scenario. Four exist across all six scenarios.

***

## run\_configured\_test\_scenario

Advertised by every scenario. What it does is decided entirely by your saved selection, not by its arguments.

| Argument  | Type   | Required | Description                                   |
| --------- | ------ | -------- | --------------------------------------------- |
| `message` | string | No       | Label echoed back in the result for debugging |

`message` never changes behavior. It is returned inside the result payload, which makes it useful for correlating calls by hand when several are in flight.

Every result carries `scenarioId` and `invocation` as a JSON string inside a text content block. Individual scenarios add their own keys on top. Each [scenario page](/scenarios/scenarios.md) documents its own shape.

***

## The compat.sdk\_v2 Tools

Three additional tools, advertised only while `compat.sdk_v2` is the active scenario.

### simulate\_ticket\_close\_mrtr

| Argument      | Type    | Required | Description                           |
| ------------- | ------- | -------- | ------------------------------------- |
| `ticketId`    | integer | Yes      | The ticket to close                   |
| `closeReason` | string  | No       | Supply it to skip the prompt entirely |

Returns a `path` of `upfront`, `mrtr`, `cancelled` or `guidance`, depending on whether you supplied a reason and whether your client supports multi round trip requests.

### show\_negotiated\_mcp\_protocol

No arguments. Returns the negotiated protocol revision, whether round trips are supported, the session id, the transport mode, a `compatCell` summary and four MCP headers as the server received them.

### verify\_order\_region\_param\_header

| Argument  | Type   | Required | Description                                                                                |
| --------- | ------ | -------- | ------------------------------------------------------------------------------------------ |
| `region`  | string | Yes      | Declared as a header parameter, so a conforming client also sends it as `Mcp-Param-Region` |
| `orderId` | string | Yes      | The order to look up                                                                       |

Returns `receivedParamHeader` and `headerMatchesBody`, which is how you confirm your client promotes declared header parameters.

See [C# SDK v2 Compatibility](/scenarios/scenarios/sdk-v2-compat.md) for how to use these together.

***

## Result Shape

Every tool on this server returns its payload the same way: a single text content block holding a JSON string.

```json
{
  "content": [{ "type": "text", "text": "{\"scenarioId\":\"baseline\",\"invocation\":1}" }]
}
```

The text is a string, not a nested object. Parse it before reading keys out of it.
