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
| Arg | Type | Default | Description |
|---|---|---|---|
orchestratorId | string | — | Filter by lead orchestrator (e.g. "sigma"). |
status | "idea" | "building" | "live" | "revenue" | — | Filter by lifecycle status. |
limit | number 1-200 | 20 | Page size. Default 20, capped at 200. |
cursor | string | — | Opaque 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 withlimit > 200are 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.