VantagePeers Docs

list_bus

List business units with pagination, projection, and filters.

list_bus

List business units (BUs) registered in VantagePeers, with pagination, projection (lite|full), and optional filters.

Args

ArgTypeDefaultDescription
orchestratorIdstringFilter by lead orchestrator (e.g. "sigma").
status"idea" | "building" | "live" | "revenue"Filter by lifecycle status.
limitnumber 1-20020Page size. Default 20, capped at 200.
cursorstringOpaque pagination token returned as nextCursor from prior call.
fields"lite" | "full""full""lite" returns compact projection (5 keys). "full" returns complete BU object (18+ keys).

Returns

{
  items: BusinessUnit[] | BusinessUnitLite[],
  nextCursor: string | null
}

nextCursor is null when the current page is the last one; non-null when more rows exist.

Examples

Compact list (fields=lite)

// call
{ "limit": 20, "fields": "lite" }

// response (~5KB for 100 BUs)
{
  "items": [
    {
      "_id": "j5xxx...",
      "_creationTime": 1782050000000,
      "name": "VantagePeers",
      "status": "live",
      "orchestratorId": "sigma"
    }
  ],
  "nextCursor": "eyJjcmVhdGlvblRpbWUiOjE3ODIwNDk5MDAwMDAsImlkIjoiajV5eXkifQ=="
}

Detailed single BU (fields=full + limit=1)

{ "orchestratorId": "sigma", "limit": 1, "fields": "full" }

Returns the full BU record (name, description, purpose, businessModel, targetCustomers, services, pricing, revenueProjections, coreTeam, etc.).

Paginate through all live BUs

// page 1
{ "status": "live", "limit": 20 }
// → { items: [...], nextCursor: "..." }

// page 2 (use nextCursor)
{ "status": "live", "limit": 20, "cursor": "<nextCursor from page 1>" }

Pagination + envelope safety

list_bus follows the standard VantagePeers envelope safety pattern (PR-A):

  • Default limit: 20. Keeps payloads small (~2-5KB) for typical interactive calls.
  • Cap: 200. Requests with limit > 200 are clamped server-side.
  • fields=lite: projects to 5 stable keys (_id, _creationTime, name, status, orchestratorId). Payload stays under 25KB even for 100 BUs.
  • Cursor: opaque token encoding {creationTime, id} to survive same-millisecond inserts. Treat as opaque — do not parse client-side.

Same pattern applies to list_components (PR-B) and list_repo_mappings (PR-C).

Why this matters

Before PR-A: list_bus had no cap, fields=lite was a no-op (returned full rows), and default limit was 50. A fleet with many BUs could return a 64KB+ payload, overflowing the MCP envelope (25K-token cap) in client sessions.

PR-A enforces strict defaults and an actual lite projection, eliminating envelope overflow as a failure mode. Audit ref: analysis/mcp-crud-baseline-vp-audit-2026-06-14.md section 9.

On this page