Class RemoteOrderStatusTool

All Implemented Interfaces:
GuardedExecution, Identifiable, Job<OrderStatus>, Tool<OrderNumber, OrderStatus>

public class RemoteOrderStatusTool extends AbstractTool<OrderNumber, OrderStatus>
One tool of the orders MCP server wrapped as a tool of this application's own, with the input and output classes fixed here: the same OrderNumber in and OrderStatus out as the local tool. Only the body reaches over the wire.

For a remote tool your workflows depend on, this is the right way, and the generic call is for browsing. The contract is yours: rename a field on the server and agents on the generic path quietly start seeing a different tool, while here the parse fails loudly, in one place, with a typed seam to fix. Scopes and guardrails can judge typed fields, where a claim inside a generic JSON blob is invisible to them. The readOnly declaration is yours to assert, so a read-only agent may keep the tool - a generic MCP tool is never read-only, because nothing can vouch for it. And a test hands OrdersServer a fake and runs this without a network.

Since:
0.1 (2026-09-28)
Author:
Andrey Santrosyan