> ## Documentation Index
> Fetch the complete documentation index at: https://docs.narrative.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Not A Client Tool Call

> A tool_outputs entry references a tool_use_id whose name has the MCP {alias}-{tool} shape.

**HTTP status:** 400

## Error message

```
tool_use_id(s) refer to server-resolved calls (no caller output expected): {ids}
```

## When this error occurs

Each tool call the model emits is routed by the shape of its wire name:

* Dash-prefixed (`{alias}-{tool}`) → MCP-resolved. The platform calls the MCP server inline
  and persists the result. These calls never appear in `pending_tool_calls`.
* Dash-free (`{tool}`) → caller-declared. The run pauses at `requires_action` and the
  caller posts the output as `tool_outputs` on the next run.

This error means a `tool_outputs[].tool_use_id` references an assistant turn block whose
`name` contains a dash — an MCP call the platform already settled. There's nothing for the
caller to contribute.

## How to fix

Filter your `tool_outputs` to only the ids whose corresponding `name` in the prior
`requires_action` response is dash-free. The `pending_tool_calls` list from
`GET /agents/runs/{id}` already excludes MCP-resolved ids — copy from there rather than
re-deriving from the message stream.
