Skip to main content
Glama

Ágora MCP

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. When INVESTMENTS isn't enabled (403) returns available:false + reason + warning (no results: it does not mean the portfolio is empty). Temporary provider failures fail with an error saying when to retry; with several connections, the ones that failed are listed in errors and the response is flagged complete:false. 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

NameRequiredDescriptionDefault
itemNo
pageNo
typeNo
item_idNo
item_idsNo
page_sizeNo

Schema Changelog

Changes observed during successful MCP inspections.

  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. Added
  14. Removed
  15. Added
  16. Removed
  17. Added
  18. Removed
  19. 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"
      +}
  20. Added
  21. Removed
  22. First observed

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, and the description adds substantial beyond that: the 403 shape (available:false, reason, warning, no results), provider failure retry semantics, per-connection errors with complete:false, and the mass-zeroing integrity cross-check with suspect_zeroed rows. This is unusually rich behavioral disclosure, though it stops short of describing pagination behavior.

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?

Dense but front-loaded: core purpose first, exception/integrity semantics after. The DATA INTEGRITY block is long yet operationally important. Minor redundancy in the rate-field enumeration and the standalone 'Bulk support' line that repeats item_ids already implied.

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 carries the return-shape burden well, naming the key fields (balance, amount, amountProfit, rate variants, dueDate, issuer, ISIN) and the error/integrity envelopes. The gap is pagination: page/page_size behavior and whether results are paginated is never stated for a list operation.

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?

Schema description coverage is 0% across six parameters. The description compensates only for item_ids (batched execution) and never explains item, item_id, page, page_size, or the type enum values, leaving most parameters undocumented in both schema and description.

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?

Opens with a specific verb and resource ('Returns the investment portfolio for a connection') and enumerates exactly which asset classes are covered (FIIs, stocks, ETFs, fixed income, funds, previdência, COE). It is clearly distinguishable from sibling openfinance_list_investment_transactions, which lists transactions rather than the portfolio itself.

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?

It gives real usage context: requires the INVESTMENTS product to be enabled, explains the 403 path, and notes item_ids enables batched execution. However, it never routes the agent explicitly between item vs item_id vs item_ids, nor does it name an alternative sibling for related needs, so the when-to-use guidance remains implicit.

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.