read method

Future<void> read({
  1. required Client client,
  2. required MCPUIRuntime runtime,
  3. required String uri,
  4. required String binding,
})

A one-shot read (spec §4.5 resource read): fetch and store at binding. No subscription, no reference count — a document that reads on every page open must not be holding one more wire subscription per open. Failures propagate: the action reports them.

Implementation

Future<void> read({
  required Client client,
  required MCPUIRuntime runtime,
  required String uri,
  required String binding,
}) async {
  _logger.debug('Reading resource', {'uri': uri, 'binding': binding});
  final resource = await client.readResource(uri);
  _apply(runtime, binding, resource);
}