Skip to content

feat(client): list_orders id[] batch fetch #32

@dougborg

Description

@dougborg

Problem

After list_orders returns N order ids, fetching full detail today requires N separate get_order calls. For a 30-order reconciliation pass, that's 30 round-trips where one batch call should suffice.

Reconciliation against external systems (e.g. Katana) is the driving workflow — see epic #31.

Proposed shape

GET /orders?id[]=1&id[]=2&id[]=3

Returns the wrapped list response (same shape as a normal list_orders page), but containing exactly the requested orders.

The actual parameter shape (id[]=, ids=1,2,3, etc.) depends on what the server supports — see #30.

Acceptance

  • OpenAPI spec adds the id[] query parameter to GET /orders (or whichever shape the server accepts)
  • Generated client list_orders.asyncio_detailed accepts the new parameter
  • Orders.list(id_in=[1, 2, 3]) helper added (kwarg name negotiable)
  • MCP list_orders tool surfaces the new filter
  • Test verifying batch fetch returns exactly the requested orders, in any order
  • Help resource (statuspro_mcp_server/.../resources/help.py) updated

Depends on

Tracking

Part of epic #31, Tier 1.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/clientTouches statuspro_public_api_client/area/mcpTouches statuspro_mcp_server/ onlyarea/specTouches docs/statuspro-openapi.yamlpriority/p0Blocks reconciliation workflow todaytheme/tool-surface-redesignMCP tool surface redesign initiative

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions