Skip to main content
Glama

openfinance_list_investments

Read-onlyIdempotent

Returns the investment portfolio for a connection (broker or bank with INVESTMENTS product enabled): FIIs, stocks, ETFs, fixed income (CDB/LCI/LCA/Tesouro), mutual funds, retirement (previdência) and COE. Each row carries balance, amount, amountOriginal, amountProfit, lastMonthRate / annualRate / lastTwelveMonthsRate (when available), dueDate, issuer, ISIN, etc. Returns { total:0, results:[], warning } instead of throwing when INVESTMENTS isn't enabled (403) or other upstream errors. DATA INTEGRITY: when MULTIPLE positions come back as TOTAL_WITHDRAWAL with balance/quantity 0 at once (mass zeroing), the tool cross-checks each position's own transaction history upstream; if the zeroing is contradicted (BUY with no sale/redemption/transfer) the response carries data_integrity_warning and the affected rows are flagged integrity:'suspect_zeroed' — treat those balances as UNAVAILABLE (likely a temporary connector failure publishing zeros), never as real R$0, and do NOT sum them into the portfolio.

Bulk support: accepts item_ids for batched execution.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
itemNo
pageNo
typeNo
item_idNo
item_idsNo
page_sizeNo

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Added
  2. Removed
  3. Added
  4. Removed
  5. Added
  6. Removed
  7. Added
  8. Removed
  9. Added
  10. Removed
  11. Added
  12. Removed
  13. Changed2 schema fields changed
    • addedInput schema / properties / item_id
      Added value: +{
      +  "type": "string"
      +}
    • addedInput schema / properties / item_ids
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
  14. Added
  15. Removed
  16. First observed

TDQS

A4.1/5.0
Behavior5/5

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

The description thoroughly discloses critical behaviors: data integrity checks for mass zeroing (with cross-referencing), structured error responses instead of exceptions, and flags like `integrity:'suspect_zeroed'`. Annotations already mark it as read-only/idempotent, and the description adds significant operational context.

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

Conciseness4/5

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

The description is lengthy but highly informative, with key information front-loaded (purpose, return types) and edge cases well detailed. Some redundancy could be trimmed, but it efficiently conveys complex behavior without unnecessary fluff.

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?

Given the tool's complexity (multiple asset types, pagination, bulk, data integrity) and no output schema, the description covers the return format, error handling, and integrity warnings. It could be improved by detailing the structure of each position object, but overall it provides a robust understanding of the tool's behavior.

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

Parameters2/5

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

With 6 parameters and 0% schema description coverage, the description fails to explain each parameter individually. It mentions `item_ids` for bulk support and implies pagination (`page`, `page_size`) and filtering (`type`), but does not define `item`, `page`, `item_id`, or provide complete semantics. The description adds some value but is insufficient for full parameter understanding.

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?

The description explicitly states it returns the investment portfolio for a connection, listing specific asset types (FIIs, stocks, ETFs, etc.). It distinguishes from sibling tools like openfinance_list_investment_transactions by focusing on portfolio positions, not transactions.

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?

The description clearly indicates the tool is for retrieving investment portfolios and mentions behavior when INVESTMENTS is not enabled. However, it does not explicitly contrast with alternatives like openfinance_list_investment_transactions for when to use which, but the context is clear enough.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A3.9/5.0
Disambiguation3/5

Most openfinance_* tools target distinct resources and actions, but several overlap in purpose: list_transactions vs list_transactions_by_item, get_credit_card_bill vs list_credit_card_bills, and multiple connection/status tools expose reconnect URLs. The long descriptions help, but the boundaries are not always immediately obvious.

Naming Consistency4/5

The openfinance_* tools follow a consistent list_/get_ verb_noun pattern and share a clear prefix. The smaller platform cluster is less consistent — marketplace, connect, authenticate, show_version, toolkit_info — mixing nouns, bare verbs, and snake_case, but it is a minor deviation overall.

Tool Count3/5

At 25 tools, this sits at the heavy end of acceptable. The Open Finance surface is broad enough to justify many of them, but there is redundancy (e.g. list_transactions_by_item largely wraps list_transactions plus account resolution) and a separate platform-management cluster that makes the set feel sprawling.

Completeness4/5

The Open Finance domain is well covered: connection lifecycle, accounts, balances, transactions, credit-card bills, loans, investments, categories, and provider status are all present, and data flows connect properly between tools. Minor gaps exist, such as no single-transaction fetch or dedicated prompt-management tools, but the marketplace tool fills those roles.