# `ExMCP.Client.Operations.Tasks`
[🔗](https://github.com/azmaveth/ex_mcp/blob/v1.4.0/lib/ex_mcp/client/operations/tasks.ex#L1)

Client operations for legacy tasks and the modern Tasks extension.

`tasks/get` and `tasks/cancel` are available in both task eras. The modern
`tasks/update` method is used to satisfy outstanding `inputRequests`. Modern
requests are accepted only when the client configured the
`io.modelcontextprotocol/tasks` extension capability.

# `cancel`

```elixir
@spec cancel(
  ExMCP.Client.Types.client(),
  String.t(),
  ExMCP.Client.Types.request_opts()
) ::
  ExMCP.Client.Types.mcp_response()
```

Requests cooperative cancellation of one task.

# `get`

```elixir
@spec get(ExMCP.Client.Types.client(), String.t(), ExMCP.Client.Types.request_opts()) ::
  ExMCP.Client.Types.mcp_response()
```

Reads the full current state of one task.

# `update`

```elixir
@spec update(
  ExMCP.Client.Types.client(),
  String.t(),
  map(),
  ExMCP.Client.Types.request_opts()
) ::
  ExMCP.Client.Types.mcp_response()
```

Submits responses to a modern task's outstanding input requests.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
