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. 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"
      +}
  12. Added
  13. Removed
  14. First observed

TDQS

A4.3/5.0
Behavior5/5

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

The description adds significant behavioral context beyond annotations: it explains the return structure, error handling for disabled products, and the data integrity check for mass zeroing. This complements the readOnlyHint and idempotentHint annotations without contradiction.

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 well-structured, with a clear first sentence stating the purpose, followed by details on return fields and a separate paragraph for data integrity. While it is lengthy, every sentence adds value, and the most important information is front-loaded.

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?

Despite having no output schema, the description explains the return structure (fields like balance, amount, etc.) and error handling. It also details edge cases (data integrity warning). However, it could be more complete by describing parameter semantics more thoroughly.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It mentions 'item_ids' for bulk support and implies filtering by 'type' from the enum, but does not explain other parameters like 'item', 'page', 'page_size'. The description adds some meaning but not enough to fully cover the 6 parameters.

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 clearly states the tool returns the investment portfolio for a connection, listing specific investment types. It distinguishes itself from sibling tools that focus on accounts, transactions, or balances by specifying the scope (FIIs, stocks, ETFs, etc.) and the connection requirement.

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 provides guidance on when the tool is appropriate (for connections with INVESTMENTS enabled) and how to interpret results, including error handling (returns a structure instead of throwing 403) and data integrity warnings. However, it does not explicitly compare to sibling tools.

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
Disambiguation4/5

The openfinance_* tools are mostly separated by resource (accounts, bills, loans, investments, connections), and the meta tools are distinct. The main ambiguities are openfinance_list_transactions vs openfinance_list_transactions_by_item, and openfinance_get_credit_card_bill vs openfinance_list_credit_card_bills, though their descriptions do clarify different intents.

Naming Consistency3/5

The openfinance_* family follows a consistent verb_noun pattern, and the generic platform tools use bare lowercase names like connect, authenticate, and marketplace. The mixed prefixes and the occasional singular/plural variation (get_credit_card_bill vs list_credit_card_bills) make the overall namespace readable but not fully uniform.

Tool Count3/5

25 tools is at the heavy end and combines two distinct areas: platform/meta tooling and a deep Open Finance adapter. Most openfinance tools are justifed by real endpoints, but the count feels bulky for an agent to browse, and the marketplace tool packs an unusually large number of capabilities into a single entry.

Completeness4/5

The Open Finance surface is unusually complete: accounts, balances, transactions, credit-card bills, loans, investments, connection status, force sync, provider status, category correction, and disconnect are all present. The platform side is also broad via marketplace and toolkit_info, with only minor granularity gaps such as no dedicated get-single-transaction tool or separate marketplace sub-tools.