An MCP server provides a stream of tasks, in your kernel as the skill `shogym_stream`.
Nothing external loops for you - drive yourself:

1. `json.loads(await shogym_stream.get_task())` pulls the next task.
   If it returns {done: true}, the stream is exhausted, stop.
2. The task can be completed using the tools it lists, as `await shogym_stream.<tool>(...)`.
   Every call answers with a JSON string, so parse each one before you read it.
   One of them ends the task; call it before pulling the next.
3. Continue until the stream is exhausted.
