Pluggy Finance MCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Pluggy Finance MCPshow me my total balance across all accounts"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Pluggy Finance MCP
Servidor MCP pessoal em Python, somente leitura e restrito a um único Item MeuPluggy. Implementa 12 consultas básicas e 6 agregações financeiras, com isolamento de recursos, paginação explícita e proteção de credenciais.
Implementação independente voltada a consultas financeiras pessoais no Hermes; não é um produto oficial da Pluggy. Existem também o MCP da Pluggy e o mcp-pluggy comunitário.
O uso local não precisa de Docker. O Hermes inicia diretamente o processo Python por
stdio. O container é opcional e serve para uma futura implantação no Cloud Run.
Execução local
Requisitos: Python 3.12+ e uv.
uv sync --frozen
cp .env.example .envPreencha PLUGGY_CLIENT_ID, PLUGGY_CLIENT_SECRET e PLUGGY_ITEM_ID em .env.
A autorização inicial no MeuPluggy deve ter sido feita previamente. O servidor não cria Items.
uv run --env-file .env python -m pluggy_finance_mcpO processo aguarda mensagens MCP em stdin; não abre interface gráfica ou porta de rede.
.env só é carregado quando solicitado explicitamente ao uv. A aplicação lê o ambiente.
Depois da instalação, .venv/bin/python -m pluggy_finance_mcp também funciona com as variáveis
já exportadas. Veja a configuração do Hermes.
Related MCP server: C6 Bank MCP
Tools
Consultas básicas | Parâmetros |
| nenhum |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Agregações | Parâmetros |
|
|
|
|
| mesmos parâmetros de gastos mensais |
|
|
|
|
|
|
Nenhuma tool aceita item_id, credenciais, URL ou método HTTP. Identity não está implementada.
Datas de intervalo usam YYYY-MM-DD; mês usa YYYY-MM. O padrão das agregações de gastos é
mês atual em America/Sao_Paulo, pelo lançamento de cada transação.
As respostas têm ok, tool, data, pagination, meta, warnings e error.
Totais calculados com Decimal são strings decimais; campos brutos mantêm seus nomes e valores
numéricos JSON. Verifique meta.complete e warnings antes de interpretar uma agregação.
As regras de cálculo descrevem cobertura, ambiguidades e limites.
Validação e desenvolvimento
make check # lint, formato, tipos, contratos e testes; não precisa de Docker
make audit # auditoria de dependências
make openapi-check # compara o snapshot com a API pública, sem credenciaisOs testes usam dados sintéticos e HTTP simulado para a Pluggy. Testes MCP exercitam subprocessos
stdio e HTTP real em loopback; não consultam dados financeiros reais.
HTTP e Cloud Run opcionais
O mesmo registro de tools atende /mcp por Streamable HTTP. Para testar fora de Docker,
configure MCP_TRANSPORT=streamable-http, MCP_AUTH_MODE=bearer e MCP_BEARER_TOKEN aleatório
com pelo menos 32 caracteres. /healthz e /readyz não consultam a Pluggy.
O guia Cloud Run explica o container, Secret Manager e hosts permitidos. Não há deploy automático ou infraestrutura criada. OAuth e conexão com ChatGPT ficam para uma versão futura; esta versão remota usa bearer token estático.
Documentação
O SDK oficial MCP está fixado na linha 1.x mantida (mcp>=1.28,<2, lock em 1.30.0).
A atualização para 2.x requer migração explícita e os mesmos testes de transporte.
Available Tools
18 toolsget_accountCRead-only
Detalhe de uma conta pertencente ao Item configurado.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| meta | Yes | |
| tool | Yes | |
| error | No | |
| warnings | Yes | |
| pagination | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and destructiveHint=false, so the description does not need to restate safety, but it must add behavioral context. The description only notes 'pertencente ao Item configurado' (belonging to configured item), which is a minor scoping detail. It fails to disclose what fields the detail includes, whether it returns errors for invalid IDs, or any system-specific behavior. The openWorldHint=true is also not explained in the description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (one sentence, 11 words), which is concise and front-loaded, but it borders on under-specification. It earns a 4 because it does not waste words, but it could be slightly more descriptive without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 param) and presence of an output schema, the description does not need to detail the return format. However, it lacks context on what constitutes 'detail' (e.g., basic info vs. full profile), how it differs from get_account_balance, and any prerequisites or error conditions. The description is minimally adequate but incomplete for an agent to confidently select this tool over similar ones.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 for the undocumented 'account_id' parameter. It does not add any meaning beyond the schema's field name and UUID format—it only says the account belongs to the configured item, which is insufficient. With only one parameter, a baseline of 4 would apply if the description were rich, but here it adds almost no semantic value, so a 3 is generous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Detalhe' or 'detailing') and resource ('uma conta' or 'an account'), but it does not clarify what 'detalhe' means in this context—whether it returns balance, transactions, or full account information. It also does not distinguish this tool from closely related siblings like get_account_balance or list_accounts, making it ambiguous for an agent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use: when you need details of an account belonging to the configured item. It distinguishes from list_accounts (list vs. detail) but does not explicitly name alternatives or provide exclusion criteria. The agent must infer usage from the phrase 'pertencente ao Item configurado' and sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_account_balanceBRead-only
Saldo em tempo real, sujeito ao suporte e limites da instituição.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| meta | Yes | |
| tool | Yes | |
| error | No | |
| warnings | Yes | |
| pagination | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds the useful caveat that the real-time balance depends on institution support and limits, and that the value may vary in freshness. However, it does not disclose error behavior, fallback behavior, or what happens when the institution does not support real-time balance.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence and the core value ('real-time balance') is front-loaded. It is concise, though the institutional-support caveat is a bit vague and could have been expressed more directly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple one-parameter read-only tool, and the output schema exists, so the description does not need to explain return values. Still, the description provides no usage guidance and leaves ambiguity about how this differs from get_total_balance, making it minimally viable but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description should compensate. It does not explain account_id, its ownership, or any constraints beyond the schema's uuid format. The parameter name is self-explanatory, but no additional meaning or usage context is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource ('Saldo em tempo real' – real-time balance) and the operation is clearly implied by the tool name get_account_balance. It is distinguishable from sibling tools like get_total_balance, but it lacks an explicit verb and does not state the scope precisely.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives such as get_total_balance or get_account. The caveat 'sujeito ao suporte e limites da instituição' hints at limitations but does not provide conditions, exclusions, or alternative tool references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_connection_statusARead-only
Estado e data de atualização do Item configurado.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| meta | Yes | |
| tool | Yes | |
| error | No | |
| warnings | Yes | |
| pagination | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false. The description adds that it returns status and update date, which is useful context but does not disclose anything beyond that, such as rate limits or error behavior. The description is consistent with annotations and adds minimal value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, a single phrase, and directly states the purpose. It is front-loaded and contains no unnecessary words. This is an example of appropriate minimalism for a simple read-only tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with no parameters and has an output schema. The description explains what it returns (status and update date), which is sufficient for an agent to understand its purpose. It does not over-explain or miss critical details for this level of complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so schema coverage is 100% by default. The description does not need to explain parameters, and it correctly omits any. The baseline for zero parameters is 4, which is appropriate here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns the status and update date of a configured item, which matches the tool name. It is specific enough to distinguish from sibling tools focused on accounts, transactions, and investments, though it does not explicitly mention 'connection' in the description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is given on when to use this tool versus alternatives. Given the sibling set, there is no obvious similar tool, so the usage context is implied but not stated. It would be stronger if it clarified that this is for checking the status of a configured connection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_credit_card_billBRead-only
Detalhe de fatura após comprovação pela listagem de cartão autorizado.
| Name | Required | Description | Default |
|---|---|---|---|
| bill_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| meta | Yes | |
| tool | Yes | |
| error | No | |
| warnings | Yes | |
| pagination | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds the contextual constraint that the bill detail is obtained after verification through an authorized card listing, which goes beyond the annotations. However, it does not clarify open-world behavior or what happens if the bill is not found, so the contribution is modest.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no redundant padding. The core object 'Detalhe de fatura' appears first, and the qualifier adds contextual information, even if its phrasing is somewhat cryptic.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only tool with annotations and an output schema, this is close to minimally viable. The main gap is that the prerequisite 'comprovação pela listagem de cartão autorizado' is ambiguous, and the description does not clarify how bill_id is obtained or validated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain bill_id beyond the schema's title and uuid format. The indirect reference to 'fatura' and 'cartão autorizado' hints that bill_id relates to a verified card's bill, but the description fails to compensate for the complete lack of schema-level parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The phrase 'Detalhe de fatura' clearly indicates a credit-card bill-detail retrieval, and this is distinguishable from sibling tools like list_credit_card_bills and get_credit_card_summary. However, it lacks an explicit verb like 'get' or 'retrieve' and includes an unusual qualifier about 'comprovação pela listagem de cartão autorizado' that slightly obscures the core purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description hints at a workflow ('após comprovação pela listagem de cartão autorizado') but never explicitly says when to use this tool versus alternatives. It does not name list_credit_card_bills or explain what scenario should lead an agent to this tool, leaving usage largely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_credit_card_summaryARead-only
Faturas, vencimentos e pagamentos disponíveis; sem somar faturas históricas como dívida.
| Name | Required | Description | Default |
|---|---|---|---|
| account_ids | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| meta | Yes | |
| tool | Yes | |
| error | No | |
| warnings | Yes | |
| pagination | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint, openWorldHint, and destructiveHint=false. The description adds meaningful behavioral context beyond annotations by clarifying that available invoices, due dates, and payments are returned, and that historical invoices are not summed as debt. This is useful and non-contradictory.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact sentence with no filler. It front-loads the main content and includes a key behavioral caveat without waste. It could be more structured, but it earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with one optional parameter and an output schema, the core behavior is stated. However, the description lacks routing guidance relative to sibling tools and provides no parameter context. It is adequate but leaves clear gaps for an agent deciding when and how to invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not mention the account_ids parameter at all. While the parameter is optional and its name is self-explanatory, the description fails to compensate for the low schema coverage or clarify how account filtering affects the summary.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource (credit card summary) and its contents: invoices, due dates, and payments. It also adds a distinguishing caveat about not summing historical invoices as debt, which separates it somewhat from siblings like list_credit_card_bills. However, it lacks an explicit verb and relies on the tool name for the action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by stating what is returned, but it never explicitly says when to choose this tool over siblings such as get_credit_card_bill or list_credit_card_bills. No exclusions or alternative conditions are provided, so the agent must infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_expenses_by_categoryCRead-only
Gastos por categoria original e moeda; mesmas regras dos gastos mensais.
| Name | Required | Description | Default |
|---|---|---|---|
| month | No | ||
| date_to | No | ||
| date_from | No | ||
| account_ids | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| meta | Yes | |
| tool | Yes | |
| error | No | |
| warnings | Yes | |
| pagination | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds useful context by specifying grouping by original category and currency and referencing monthly expense rules, but it does not disclose output formatting, pagination, or currency conversion behavior beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler, and the core output dimension (original category and currency) is stated first. It is efficient but arguably too terse, sacrificing helpful detail for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with four optional parameters, 0% parameter documentation, and no explicit usage guidance, the description is underspecified. The output schema exists, but it does not compensate for missing parameter semantics or the lack of a clear pointer to get_monthly_expenses as the source of the shared rules.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain month, date_from, date_to, or account_ids. The 'same rules as monthly expenses' reference may indirectly hint at parameter behavior, but it does not provide concrete semantics for any of the four parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the resource as expenses grouped by original category and currency, and references 'mesmas regras dos gastos mensais' to anchor its behavior to the sibling monthly expenses tool. It is clear enough to identify the tool's output, though it lacks an explicit verb and does not name the sibling tool directly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool instead of get_monthly_expenses or any other sibling. The phrase 'mesmas regras dos gastos mensais' implies shared behavior but does not explain selection criteria, exclusions, or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_investmentCRead-only
Detalhe de investimento autorizado.
| Name | Required | Description | Default |
|---|---|---|---|
| investment_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| meta | Yes | |
| tool | Yes | |
| error | No | |
| warnings | Yes | |
| pagination | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is clear. The description adds little beyond the annotations: 'Detalhe de investimento autorizado' suggests a read operation but does not disclose any additional behavioral traits such as whether the investment must be authorized/approved, what happens if the ID is not found, or any access restrictions. With annotations covering the read-only nature, a 3 is appropriate—no contradiction, but no added behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short phrase, which is concise, but it is under-specified. It is not front-loaded with the most useful information (e.g., 'Fetch a single investment by its ID'). The phrase 'investimento autorizado' may confuse rather than clarify. It earns a 3 for brevity but loses points for ambiguity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one parameter, an output schema, and read-only annotations, the description is nearly adequate. However, the ambiguous 'autorizado' and lack of any usage context (e.g., 'use this to get details of a specific investment from list_investments') leave room for misinterpretation. The output schema exists, so return values need not be described, but the description should clarify what 'autorizado' means and how this differs from get_investment_portfolio.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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. The description does not explain the investment_id parameter beyond what the schema already provides (type string, format uuid). The word 'detalhe' implies the parameter identifies which investment to fetch, but this is minimal. With only one parameter and a clear name, the gap is small, but the description adds no explicit semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Detalhe de investimento autorizado' translates to 'Authorized investment detail' or 'Detail of authorized investment'. It identifies the resource (investment) and the action (get/detail), but the word 'autorizado' is ambiguous—it could mean 'authorized' as in permitted, or it could be a mistranslation of 'available' or 'registered'. It does not clearly distinguish from sibling tools like get_investment_portfolio or list_investments, though the singular 'investment' and 'detail' hint at a single-item fetch.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description does not mention that this is for fetching a single investment by ID, nor does it contrast with list_investments or get_investment_portfolio. An agent would have to infer usage from the parameter name and sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_investment_portfolioBRead-only
Carteira ativa por instituição, tipo e moeda; posições excluídas ficam explícitas.
| Name | Required | Description | Default |
|---|---|---|---|
| investment_ids | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| meta | Yes | |
| tool | Yes | |
| error | No | |
| warnings | Yes | |
| pagination | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral traits beyond that: the portfolio is active and positions are grouped by institution/type/currency, and excluded positions are explicitly surfaced rather than silently omitted. This helps an agent anticipate the returned composition without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact sentence with no filler, and the main grouping dimensions are front-loaded. The clause about excluded positions is slightly ambiguous but still adds unique value. It is concise without being empty, though the sentence structure could be clearer for a top score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity, one optional parameter, and existing output schema, the core purpose and excluded-positions behavior are covered. The main gaps are the completely undocumented investment_ids parameter and the lack of guidance for choosing this tool over sibling investment tools. It is minimally viable but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the only parameter, investment_ids, has no property-level description. The tool description does not mention this parameter or explain whether null means 'all portfolios' or something else. Because the description must compensate for the missing schema detail and does not, an agent cannot infer correct argument semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific resource, the investment portfolio, and its aggregation dimensions: institution, type, and currency. It also adds a distinguishing trait by noting that excluded positions are made explicit. It lacks an explicit verb and does not directly contrast with siblings like list_investments or get_investment, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: this tool should be used when an active portfolio grouped by institution, type, and currency is needed, including visibility into excluded positions. However, it gives no explicit when-to-use guidance, exclusions, or alternatives among the many sibling tools, leaving the agent to infer the right context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_monthly_expensesARead-only
Gastos lançados no mês YYYY-MM ou intervalo YYYY-MM-DD, em São Paulo; mês atual por padrão. Totais decimais em strings, pendências e ambiguidades separadas.
| Name | Required | Description | Default |
|---|---|---|---|
| month | No | ||
| date_to | No | ||
| date_from | No | ||
| account_ids | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| meta | Yes | |
| tool | Yes | |
| error | No | |
| warnings | Yes | |
| pagination | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, and destructiveHint. The description adds valuable behavioral context beyond those: data is scoped to São Paulo, decimal totals are returned as strings, and pending/ambiguous items are separated. This helps the agent interpret results correctly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: it states the core operation and date scope first, then adds two important output-behavior notes in a single extra sentence. Every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with an output schema, the description covers key invocation details: default month, date range usage, and output formatting. Still, it lacks sibling differentiation and leaves account_ids semantics unexplained, which is a noticeable gap for a tool with 4 parameters and 0% schema coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 explains the month and date range formats, which covers three of the four parameters conceptually, but it does not clarify the meaning or filtering behavior of account_ids.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb and resource: returns monthly expenses. Adds useful scope details such as São Paulo, date format (YYYY-MM or range YYYY-MM-DD), and defaulting to the current month. However, it does not explicitly distinguish this tool from the sibling get_expenses_by_category.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides practical usage guidance: month format, range format, and default behavior when no date is supplied. It does not name alternatives or exclusions, so the when-to-use vs sibling tools guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_net_worthBRead-only
Estimativa patrimonial parcial por moeda, com possíveis sobreposições e lacunas explícitas.
| Name | Required | Description | Default |
|---|---|---|---|
| account_ids | No | ||
| investment_ids | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| meta | Yes | |
| tool | Yes | |
| error | No | |
| warnings | Yes | |
| pagination | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value beyond the annotations by disclosing that the result is partial, may contain overlaps, and has explicit gaps. This is useful honesty about data quality and scope. It does not contradict the readOnlyHint or openWorldHint annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and front-loaded with the core purpose. However, phrases like 'possíveis sobreposições e lacunas explícitas' are compact but slightly vague, and the sentence could have used the saved space to mention parameter roles.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with optional parameters and an output schema, the description is minimally viable: it states the estimate's nature and caveats. But it omits any indication of how the optional IDs shape the result or when this tool should be invoked, leaving an agent to infer too much.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain account_ids or investment_ids, nor how they affect the estimate. The parameter names are somewhat self-explanatory, but no meaning is added about filtering, combination, or omission behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description communicates a partial net worth estimate per currency, identifying the resource and key distinguishing traits. It does not use a verb, but 'Estimativa patrimonial parcial' clearly conveys the operation and the 'por moeda' and 'parcial' aspects help separate it from total-balance siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to prefer this tool over get_total_balance, get_account_balance, or get_investment_portfolio. The 'partial estimate' wording implies approximate use, but there is no explicit context, prerequisite, or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_total_balanceBRead-only
Saldos bancários por moeda e tipo; cartões separados. Instituição pode estar indisponível.
| Name | Required | Description | Default |
|---|---|---|---|
| account_ids | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| meta | Yes | |
| tool | Yes | |
| error | No | |
| warnings | Yes | |
| pagination | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds meaningful behavioral context: it warns that the institution may be unavailable and clarifies that cards are reported separately, which is beyond what the annotations express.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. The core result semantics are front-loaded, and the availability caveat earns its place as a distinct behavioral warning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with an output schema and safety annotations, the description covers the main output organization and a relevant failure condition. However, it omits any account_ids semantics and provides no guidance on how this tool relates to sibling balance tools, leaving a meaningful gap in the agent's ability to decide when to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden for explaining the single parameter, account_ids. The parameter is optional and self-explanatory by name, but the description never states whether it filters the balances, restricts aggregation, or changes the output grouping. The schema provides type and default but not semantic intent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states that the tool returns bank balances grouped by currency and type, with credit cards separated. This is a specific resource and output organization, and it helps distinguish the tool from siblings like get_account_balance or get_net_worth, though it uses a noun phrase rather than an explicit verb.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool instead of alternatives such as get_account_balance or get_credit_card_summary. The word 'total' and the grouping semantics imply an aggregate view, but no when-to-use, exclusions, or alternative routing are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_transactionDRead-only
Transação com vínculo à conta autorizado antes de retornar seus dados.
| Name | Required | Description | Default |
|---|---|---|---|
| transaction_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| meta | Yes | |
| tool | Yes | |
| error | No | |
| warnings | Yes | |
| pagination | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the read-only nature is covered. The description adds a vague mention of authorization ('autorizado antes de retornar seus dados'), but it's unclear whether this is a prerequisite or a runtime behavior, and it doesn't clarify what happens when authorization fails. This adds minimal value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, but it is poorly structured and ambiguous. Brevity without clarity is not conciseness; it reads as an incomplete thought.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get-by-ID tool with an output schema present, the description fails to explain what the transaction object contains, how to handle authorization, or any behavioral nuances. The agent is left without essential context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description never mentions transaction_id or any parameter details. The agent gets no clue about what the UUID represents or how it is used beyond its name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description mentions 'transação' (transaction) and 'retornar seus dados' (return its data), which suggests it retrieves transaction data, but the phrasing is convoluted and fails to clearly state the operation. It doesn't explicitly say 'get a transaction by ID' or distinguish from siblings like list_transactions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as list_transactions or get_account. No context, prerequisites, or conditions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_accountsCRead-only
Contas e cartões autorizados. Subtype é filtrado localmente.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | ||
| subtype | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| meta | Yes | |
| tool | Yes | |
| error | No | |
| warnings | Yes | |
| pagination | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only and non-destructive. The description adds one useful behavioral detail: subtype filtering happens locally rather than server-side. Beyond that, it does not disclose other significant behaviors, but for a read-only list this is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short, with no filler and the most important noun phrase first. It is appropriately compact for a simple listing tool, though the extreme brevity leaves semantic gaps.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there is an output schema and read-only annotations, the description does not need to describe return format. However, it omits usage guidance and parametric semantics, so an agent is left to infer when to use this tool and how to interpret the BANK/CREDIT and subtype values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description should compensate for missing parameter explanations disciplines. It only mentions that subtype is filtered locally, but does not explain the meaning or combination of the type and subtype enums, nor how they affect the returned accounts.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name 'list_accounts' supplies the verb, and the description's 'Contas e cartões autorizados' identifies the resource as authorized accounts and cards. It is reasonably clear, though it does not explicitly differentiate itself from sibling tools like get_account or get_account_balance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as get_account or list_transactions. The 'Subtype é filtrado localmente' note hints at behavior, but does not help an agent decide between this and sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_account_statementsCRead-only
Extratos disponíveis; URLs assinadas expiram e não são acessadas pelo servidor.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| meta | Yes | |
| tool | Yes | |
| error | No | |
| warnings | Yes | |
| pagination | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true, openWorldHint=true, and destructiveHint=false. The description adds meaningful behavior beyond that: signed URLs expire and are not accessed by the server, which tells the agent that returned URLs must be used client-side and promptly. This is useful and does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and front-loaded with the core resource ('available statements'), followed by a relevant behavioral caveat about signed URLs. Both clauses earn their place, though the fragment-like phrasing limits clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although an output schema exists, the description omits essential context such as the account relationship, the nature of the returned statements, expiration details, and any usage caveats beyond URL expiration. It is minimally adequate but leaves an agent to infer most of the tool's purpose and behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not mention account_id at all, and schema description coverage is 0%. The parameter is self-explanatory from its name and UUID format, but the description fails to connect it to the statements being listed, so it does not compensate for the lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource ('extratos' / statements) but never states the action explicitly — it says 'available statements' rather than 'lists account statements.' It also does not distinguish this tool from sibling list tools such as list_credit_card_bills or list_transactions, relying on the tool name for that differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus alternatives. The description provides no context about selecting an account, filtering statements, or how this relates to sibling tools like list_transactions or get_account.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_credit_card_billsARead-only
Faturas coletadas de um cartão autorizado; não representam todas dívida atual.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| meta | Yes | |
| tool | Yes | |
| error | No | |
| warnings | Yes | |
| pagination | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint, openWorldHint), the description adds a meaningful behavioral nuance: the returned bills do not represent all current debt. This helps the agent interpret the limited scope of results. It doesn't cover other behaviors like pagination, but annotations already signal read-only and open-world characteristics, so the added context is valuable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no filler. It front-loads the main concept ('bills from an authorized card') and then attaches a clarifying caveat. Every word contributes to the meaning, exemplifying efficient structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with only one parameter, annotations covering read-only and open-world, and an output schema, the description is adequate but not rich. It conveys the core function and a key caveat, but lacks details on what constitutes a 'bill' (e.g., period, status) or how to obtain comprehensive debt information. The caveat is helpful, but the description could be more complete about the exact return content and edge cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter is account_id (uuid), and schema description coverage is 0%, so the description should compensate. The description does not explicitly describe the parameter, but the phrase 'cartão autorizado' implies the account must be an authorized credit card, giving some semantic hint. Since the parameter's name is self-explanatory and it's a single UUID, the description adds marginal but not strong value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (credit card bills) and a scope (authorized card), which combined with the verb 'list' in the tool name makes the purpose reasonably clear. However, it lacks an explicit verb like 'retrieve' or 'return', and the phrasing is more of a noun phrase. It does distinguish from the singular sibling get_credit_card_bill by implying a collection, so purpose is understandable but not perfectly explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a cautionary note that these bills do not represent all current debt, which implies the tool should not be used to get a total debt figure. However, it does not explicitly mention alternatives (e.g., get_total_balance) or provide clear when-to-use/when-not-to-use conditions. The guidance is implicit rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_investmentsCRead-only
Investimentos do Item; página numerada, tamanho entre 1 e 500.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| type | No | ||
| page_size | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| meta | Yes | |
| tool | Yes | |
| error | No | |
| warnings | Yes | |
| pagination | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal readOnly and non-destructive behavior. The description adds only the pagination traits (numbered page, page size between 1 and 500), which is useful but sparse. It does not disclose behavior like default ordering, result size limits beyond 500, or how the optional type filter affects results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely compact and has no filler, with the core resource named first. It sacrifices substance for brevity, but as a concise statement it is well-structured and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description is not complete enough for correct invocation: it leaves the `type` parameter unexplained, the identity of 'Item' unclear, and the relationship to sibling investment tools unstated. An agent would need to infer too much from the schema alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate for the schema's lack of documentation. It adds a page_size constraint (1-500) not present in the schema, but it completely ignores the `type` filter parameter and its enum values, and only vaguely maps 'página numerada' to `page`.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource as investments and implies a listing operation via the tool name, but the phrase 'Investimentos do Item' is ambiguous about what 'Item' refers to. It also does not differentiate this from close siblings like list_investment_transactions or get_investment_portfolio.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus list_investment_transactions, get_investment_portfolio, or get_investment. The optional type filter is not mentioned as a way to narrow results, and no exclusions or alternative conditions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_investment_transactionsCRead-only
Movimentações do investimento com paginação numerada.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| page_size | No | ||
| investment_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| meta | Yes | |
| tool | Yes | |
| error | No | |
| warnings | Yes | |
| pagination | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds the specific detail 'paginação numerada' (numbered pagination), which goes slightly beyond the schema's generic page/page_size parameters, but no other behavioral traits are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely brief, with no wasted words, and the core resource is front-loaded. However, it is a fragment rather than a full sentence, and the brevity borders on under-specification, so it does not merit a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one required parameter plus pagination parameters and several closely related sibling tools, the description is incomplete. It does not explain how to obtain the investment_id, what differentiates this from list_transactions, or what the paging scheme implies for callers. The output schema exists, but that does not compensate for missing selection and parameter guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 implies investment_id through 'do investimento' and pagination through 'paginação numerada', but it does not explain parameter formats, semantics, or how page/page_size interact. The parameter names and defaults provide some structure, but the description leaves too much for the agent to infer.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource (investment transactions) and a key behavior (numbered pagination). It is clear but phrased as a noun fragment rather than an explicit verb+resource, and it does not differentiate from sibling tools like list_transactions or list_investments.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The sibling list includes similar tools such as list_transactions and list_investments, but the description gives no selection criteria, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_transactionsARead-only
Uma página de até 500 transações v2. Datas YYYY-MM-DD; cursor opaco da resposta anterior.
| Name | Required | Description | Default |
|---|---|---|---|
| cursor | No | ||
| date_to | No | ||
| date_from | No | ||
| account_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| meta | Yes | |
| tool | Yes | |
| error | No | |
| warnings | Yes | |
| pagination | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds useful behavioral context beyond that: the page cap of 500, the opaque cursor mechanism, and the YYYY-MM-DD date format. These details help the agent understand pagination and input expectations without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely compact and front-loaded: it states the core behavior first (page of up to 500 transactions), then adds the essential date and cursor constraints. Every clause contributes useful information with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema and read-only annotations, the description covers the most important invocation details: page size, cursor handling, and date format. The main gap is that account_id is not mentioned in the description, though it is required in the schema and identifiable by title/format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 does explain the cursor's provenance ('da resposta anterior') and the date format, but account_id and the exact semantics/relationship of date_from and date_to are left implicit. This is partial compensation, not complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource ('transações') and the paginated nature ('uma página de até 500 transações'), making it clear this is a list-oriented tool. It does not explicitly distinguish itself from sibling list tools, but the resource name and page-cap framing provide enough clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or alternative routing guidance. The cursor instruction ('cursor opaco da resposta anterior') implies this tool is used for paginated traversal, but it does not explain when to choose it over get_transaction, list_account_statements, or other siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
18 tool updates
v0.1.0- First observed
get_account - First observed
get_account_balance - First observed
get_connection_status - First observed
get_credit_card_bill - First observed
get_credit_card_summary - First observed
get_expenses_by_category - First observed
get_investment - First observed
get_investment_portfolio - First observed
get_monthly_expenses - First observed
get_net_worth - First observed
get_total_balance - First observed
get_transaction - First observed
list_account_statements - First observed
list_accounts - First observed
list_credit_card_bills - First observed
list_investment_transactions - First observed
list_investments - First observed
list_transactions
TDQS
Scored across 18 tools
Most tools target a distinct resource and action, with clear list/get and detail/aggregation distinctions. However, a few pairs like get_account_balance vs get_total_balance and get_credit_card_summary vs list_credit_card_bills could be glossed over by an agent, though the descriptions reduce real ambiguity.
Every tool follows a consistent verb_noun pattern: list_ for collections and get_ for single items or aggregated reports. The naming convention is uniform across all 18 tools, making the interface predictable and easy to navigate.
At 18 tools, this server sits in the 16-25 range that feels heavy for a typical MCP surface. The broad finance domain justifies each tool to some degree, but the number is still above the ideal 3-15 range and could overwhelm agents selecting among many similar-looking endpoints.
The tool set provides broad read-only coverage of the finance data domain, including accounts, transactions, credit cards, investments, expenses, and net worth. Minor gaps exist, such as no explicit filtering of transactions by account or a dedicated tool for individual account statements, but agents can work around these using existing list and get endpoints.
Maintenance
Related MCP Connectors
Read-only access to your bank, investment, and crypto accounts: balances, transactions, holdings.
Read-only bank & investment accounts via Plaid: balances, holdings, transactions, SQL analytics.
Read-only access to your net worth, wealth percentile, projections, splits and budget.
- BankSyncOAuthio.banksync
Connect AI agents to bank accounts, transactions, balances, and investments.
Related MCP Servers
- AlicenseBqualityBmaintenanceEnables read-only access to personal bank accounts via the TrueLayer API, allowing querying of accounts, balances, transactions, and generating financial analytics such as spending by category, subscriptions, and monthly summaries.9MIT
- AlicenseNot gradedqualityDmaintenanceEnables reading C6 Bank account balances, statements, credit card bills, and investments via Open Finance Brasil. It is read-only and regulated by the Central Bank of Brazil.MIT
- AlicenseNot gradedqualityDmaintenanceConnects RecargaPay accounts to AI agents via Open Finance Brasil, enabling read-only queries about balances, statements, credit card bills, and investments in natural language.MIT
- AlicenseNot gradedqualityBmaintenanceA read-only MCP server exposing Brazilian Open Finance personal financial data from Pluggy to MCP clients, enabling listing of connections, accounts, transactions, credit card bills, investments, and loans without moving money.MIT