Skip to main content
Every Relay MCP tool returns its payload in two channels at once: as validated structuredContent and as JSON text inside content. List tools also include pagination metadata.

Dual-channel results

A successful tool call returns the same data twice:
  • structuredContent: the JSON payload validated against the tool’s outputSchema.
  • content: an array containing a text item with the same payload serialized as JSON text.
This lets agents read structured data directly or parse the text representation depending on their client implementation.

Example ToolCallResult

Money

Every monetary value is returned as a Money object:
Use cents for arithmetic and display when showing an amount to a user. Transaction amounts are unsigned; read direction for the sign. A missing value, such as an omitted balances object, means the value is unavailable, never zero.

Pagination

List tools return a pagination object with these fields: Follow nextCursor until hasNextPage is false. Keep the same filters and pageSize on every page.
Cursors are opaque and bound to the exact filter set. Never parse them, edit them, or reuse a cursor across different filters.

Paginated result example

Errors

Learn how MCP tool errors and invalid cursors are surfaced.

Transport

Review how stateless requests carry results over Streamable HTTP.