Skip to main content
Glama
Octav-Labs

Octav API MCP Server

Official
by Octav-Labs

Get Virtual Users Portfolio

octav_get_virtual_users_portfolio
Read-only

Retrieves portfolios for virtual users using virtual: addresses, returning each portfolio separately or one combined result. Use it to inspect and aggregate virtual user holdings.

Instructions

Get portfolios for virtual users, using the virtual: addresses from octav_list_virtual_users. Same shape as octav_get_portfolio; set aggregated for one combined portfolio. Waits for a fresh sync by default. Requires Pro. Costs 1 credit per address.

Input Schema

NameRequiredDescriptionDefault
addressesYesVirtual user addresses (virtual:<id>). Max 10 addresses.
aggregatedNoReturn one portfolio aggregated across all the virtual users (default: false)
waitForSyncNoWait for a fresh sync when cached data is stale (default: true). Set false to return cached data immediately.
includeExplorerUrlsNoInclude blockchain explorer URLs for assets and transactions (default: false)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.2.1

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/openWorld annotations, it discloses three behaviors an agent can't infer: a Pro plan is required, each address costs 1 credit, and the call blocks on a fresh sync by default. Cost, entitlement, and latency are exactly the traits that drive tool selection and batching decisions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences, each carrying distinct information (input source, output shape, usage flag, cost/latency), front-loaded with the core purpose. Nothing is redundant with itself.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description covers returns by deferring to octav_get_portfolio's shape, and it covers cost, entitlement, and sync behavior. It does not describe error/partial-failure behavior when one virtual address fails, which leaves a small gap for a batched-address call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real semantics the schema lacks: cost scales per address ('1 credit per address'), which interacts meaningfully with the max-10 limit, and it frames addresses as coming from a specific sibling. The aggregated/waitForSync notes largely restate schema defaults, keeping it below 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb + resource (get portfolios) scoped to virtual users, and it explicitly separates itself from siblings by pointing at octav_list_virtual_users for the input and octav_get_portfolio for the output shape. An agent can distinguish this from octav_get_portfolio without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear precondition (obtain virtual:<id> addresses from octav_list_virtual_users) and a usage branch ('set aggregated for one combined portfolio'), plus the default wait-for-sync behavior. It stops short of naming an explicit when-not alternative (e.g. use octav_get_portfolio for real wallets), so 4 rather than 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.