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

A3.8/5.0
Behavior4/5

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

Beyond annotations (readOnlyHint, idempotentHint), the description adds significant behavioral context: graceful handling of 403 errors, returning a structured response with total/results/warning, and the data integrity cross-checking mechanism that flags suspect_zeroed rows. This informs the agent about important safety-limit behavior not captured in annotations.

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 relatively long but well-structured: main purpose first, then field details, error handling, data integrity warning. It is front-loaded and each section adds value. However, some redundancy or excessive detail could be trimmed without losing meaning, so it is not maximally concise.

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 complexity of the tool (multiple investment types, data integrity issues) and the lack of output schema, the description covers the return format, error handling, and special case handling (suspect_zeroed). It also mentions bulk support. However, it omits details about pagination (page, page_size) and filtering by type, leaving some gaps for an agent.

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 0% schema description coverage, the description must compensate. It only adds meaning for item_ids ('Bulk support: accepts item_ids for batched execution'). The other five parameters (item, page, type, item_id, page_size) are not explained. The type parameter's enum values are present in the schema but no further semantics are provided. The description fails to adequately clarify the purpose of most 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 explicitly states 'Returns the investment portfolio for a connection' and lists specific asset types (FIIs, stocks, ETFs, fixed income, etc.), clearly distinguishing it from sibling tools like openfinance_list_investment_transactions which deal with transactions. The verb 'returns' and resource 'investment portfolio' are specific and unambiguous.

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

Usage Guidelines3/5

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

The description does not explicitly state when to use this tool versus siblings (e.g., openfinance_list_investment_transactions) or when not to use it. While it implies use when portfolio data is needed, there are no exclusion criteria or alternative recommendations. The data integrity warning provides handling guidance but not usage selection.

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

A4.2/5.0
Disambiguation4/5

Most tools are highly distinct, targeting different resources (accounts, transactions, bills, loans, investments, connections). However, openfinance_list_transactions and openfinance_list_transactions_by_item both return transaction data with different scopes, which could cause misselection. Also openfinance_get_item_status vs openfinance_provider_status are distinct but similar in name.

Naming Consistency5/5

The openfinance_* tools follow a consistent verb_noun pattern (list_accounts, get_credit_card_bill, force_sync). Generic tools (authenticate, connect, marketplace) are also clearly named and consistent within their own domain. No mixed conventions or chaotic naming.

Tool Count4/5

At 25 tools, the server is on the heavier side (borderline of the 16-25 range) but each tool serves a clear purpose in the open finance domain, covering multiple resource types and auxiliary functions like marketplace and status. A slight trim could be made (e.g., merging some list/get pairs), but it's not excessive.

Completeness4/5

The server covers the full read lifecycle for accounts, transactions, bills, loans, and investments, plus connection management (list, disconnect, force sync) and category updates. Minor gaps like lack of direct deletion for financial records are acceptable since those are not typical operations. The generic tools (marketplace, auth, version) round out the toolkit.