Despezzas MCP
Click on "Install 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., "@Despezzas MCPlist my 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.
📍 Visão geral
Servidor MCP para dados financeiros do Despezzas. Expõe ferramentas para clientes MCP (como ChatGPT) listarem contas, cartões e categorias, pesquisarem transações, consultarem resumos de gastos e fazerem operações de escrita com proteções.
Projeto open-source (MIT), construído analisando as requisições de rede e o código do frontend do Despezzas. O Despezzas não publica uma API oficial — trate isto como integração não oficial. Endpoints e campos podem mudar sem aviso.
Integração não oficial. Endpoints e fluxos de login podem mudar sem aviso.
Este MCP pode ler e alterar dados financeiros pessoais. Nunca faça commit de.env, tokens, senhas, sessões, HARs não mascarados ou respostas reais da API.
Related MCP server: Lunch Money MCP Server
Desenvolvimento com IA e agentes
Este projeto foi desenvolvido de forma majoritariamente assistida por IA ("vibecoded"): grande parte da implementação foi gerada, refatorada ou iterada com agentes de IA, com direção técnica, conhecimento de programação e revisão manual de Guilherme Milek.
Para agentes de IA trabalhando neste repositório, use llms.txt como contexto inicial. Ele resume a arquitetura, arquivos principais, comandos, ferramentas MCP, regras de segurança e notas de deploy.
Item | Valor |
Status | MVP funcional para uso pessoal |
API | Integração não oficial com endpoints do Despezzas |
Runtime | Node.js |
Transportes |
|
Autenticação | Bearer token, e-mail/senha, OAuth MCP |
Deploy recomendado | Cloudflare Workers |
⚡ Início rápido
npm install
npm run build
Copy-Item .env.example .env
npm run devDepois configure a autenticação no .env com DESPEZZAS_TOKEN ou DESPEZZAS_EMAIL + DESPEZZAS_PASSWORD + DESPEZZAS_FIREBASE_API_KEY.
✨ Funcionalidades
📖 Ferramentas de leitura: perfil, acessos de perfil, configuração pessoal, contas, bancos, cartões de crédito, categorias, subcategorias, busca compacta de transações, visão geral, resumo financeiro e diagnóstico de exportação/campos.
🧾 Pré-visualização de transações: prepara payloads de criação/edição/exclusão sem chamar o Despezzas.
✍️ Ferramentas de escrita: trocar/criar/editar/excluir/sair de perfil, criar/editar/excluir conta, cartão de crédito, transação, transferência, duplicar transação e alternar pago.
🔐 Autenticação: token bearer copiado, login por e-mail/senha via variáveis de ambiente ou página HTTP de autorização MCP.
🔄 Renovação de token: sessões Firebase salvas são reutilizadas e renovadas automaticamente.
🛡 Trava de segurança: toda ferramenta de escrita/destrutiva exige confirm: true.
🔌 Transportes: stdio local e Streamable HTTP (Node ou Cloudflare Workers).
🔎 Depuração: inspetor de HAR e monitor de requisições no DevTools para capturar endpoints futuros.
Valores usam centavos inteiros no formato nativo do Despezzas. Exemplo: 12345 significa R$123.45.
Para escritas de transação, use primeiro as ferramentas de preparo:
Pesquise/liste a conta, cartão, categoria, subcategoria ou transação alvo.
Chame
despezzas_prepare_create_transaction,despezzas_prepare_update_transactionoudespezzas_prepare_delete_transaction.Revise o payload retornado e os IDs de destino.
Chame a ferramenta real de escrita com os mesmos campos e
confirm: true.
despezzas_create_transaction recusa intencionalmente payloads sem destino de conta/cartão, com conta e cartão ao mesmo tempo, ou sem category_id, a menos que allow_uncategorized seja explicitamente true.
🧰 Catálogo de ferramentas
Grupo | Exemplos | Escrita? | Observação |
Status e perfil |
| Parcial | Trocar/criar/excluir perfil exige |
Contas e cartões |
| Parcial | Escritas validam IDs e confirmação. |
Categorias |
| Não | Use antes de criar/editar transações. |
Transações |
| Parcial | Criação exige destino, categoria ou |
Pré-visualização |
| Não | Caminho recomendado antes de qualquer escrita. |
Diagnóstico |
| Parcial | Use com cuidado; respostas são mascaradas quando possível. |
🛠 Tecnologias
As principais ferramentas usadas neste projeto:
Servidor MCP
Deploy
Ferramentas
* Veja o arquivo package.json para a lista completa de dependências.
🚀 Primeiros passos
📦 Configuração
npm install
npm run build
Copy-Item .env.example .env✔️ Verificação
npm run verify
npm run smoke:readonlynpm run verify executa checagem de segurança do repositório, sincronização do catálogo MCP, Prettier, ESLint, TypeScript e testes. npm run smoke:readonly compila o projeto e chama apenas endpoints somente leitura do Despezzas usando o token/sessão configurado.
Checagens individuais úteis:
npm run check:repo-safety
npm run check:mcp-tools
npm run format:check
npm run lint
npm run typecheck
npm test📋 Variáveis de ambiente
Variável | Obrigatória? | Uso |
| Opcional | Token bearer manual copiado de uma sessão web. |
| Opcional | Login por e-mail/senha. |
| Opcional | Login por e-mail/senha. |
| Para e-mail/senha | Chave pública do Firebase Web usada para troca e refresh de token. Veja como obtê-la no .env.example. |
| Opcional | Caminho de sessão persistida; use |
| Opcional |
|
| Opcional | Bind do servidor HTTP; padrão |
| Produção/OAuth | URL pública HTTPS para metadados OAuth. |
| Recomendado | Assinatura estável dos tokens OAuth MCP. |
| Deploy privado | Código de proprietário para autorizações de conta única. |
| Cloudflare multiusuário | Criptografia de sessões no Workers KV. |
🔐 Autenticação
Opções preferenciais:
Execute em modo HTTP e abra
http://127.0.0.1:8787/login.Defina
DESPEZZAS_EMAIL,DESPEZZAS_PASSWORDeDESPEZZAS_FIREBASE_API_KEY(chave pública — veja .env.example) no.env.Copie o
DESPEZZAS_TOKENpelas DevTools do navegador.
A página /login usa a identidade visual do Despezzas, acompanha os temas claro/escuro do sistema e contém apenas os campos necessários para este MCP: e-mail, senha e, quando configurado, código de acesso do proprietário. Criação de conta e recuperação de senha ficam no app oficial do Despezzas.
O fluxo de login espelha o frontend do Despezzas:
POST https://api.despezzas.com/v2/authcom e-mail/senha.Usa o
firebase_tokenretornado com Firebaseaccounts:signInWithCustomTokenusandoDESPEZZAS_FIREBASE_API_KEY(a chave pública do Firebase Web do Despezzas).Usa o
idTokendo Firebase comoAuthorization: Bearer ...emapi.despezzas.com.Salva o refresh token do Firebase em
%USERPROFILE%\.despezzas-mcp\session.jsonpor padrão.
Etapa | Origem | Destino | Resultado |
1 | Usuário |
| Envia e-mail e senha para autorização local. |
2 | MCP | API Despezzas | Troca credenciais por |
3 | MCP | Firebase | Troca |
4 | MCP | Cliente MCP/ChatGPT | Entrega um token OAuth MCP opaco. |
Defina DESPEZZAS_SESSION_FILE=none para desativar a persistência de sessão. Se todos os métodos de autenticação falharem, despezzas_status indicará que é preciso abrir a página de login ou configurar credenciais.
Não passe sua senha como argumento de ferramenta. Argumentos podem ficar visíveis ao cliente. Use .env ou a página /login.
🖥 Configuração MCP local
Para um cliente MCP local via stdio:
{
"mcpServers": {
"despezzas": {
"command": "node",
"args": ["C:\\caminho\\para\\despezzas-mcp\\dist\\index.js"],
"env": {
"DESPEZZAS_TOKEN": "seu-token-aqui"
}
}
}
}Para desenvolvimento sem compilar:
npm run dev🌐 Modo HTTP
$env:MCP_TRANSPORT = "http"
$env:PORT = "8787"
npm run dev:httpVerificação de saúde:
Invoke-RestMethod http://127.0.0.1:8787/healthAbra a página local de autorização:
Start-Process http://127.0.0.1:8787/loginSe expuser o modo HTTP além do localhost, coloque HTTPS e controle de acesso na frente. A página /login aceita sua senha do Despezzas para autorizar o MCP.
🤖 Conexão OAuth com ChatGPT
Para a tela New App em ChatGPT Apps & Connectors:
Faça deploy em Cloudflare Workers seguindo docs/cloudflare-workers.md.
npm run check:cloudflare npm run deploy:cloudflareConfirme a URL pública do Worker:
Invoke-RestMethod https://despezzas-mcp.<sua-conta>.workers.dev/healthNo ChatGPT, use:
URL do servidor:
https://despezzas-mcp.<sua-conta>.workers.dev/mcpAutenticação:
OAuth
O servidor expõe os endpoints de descoberta esperados pelo ChatGPT:
GET /.well-known/oauth-protected-resourceGET /.well-known/oauth-authorization-serverPOST /oauth/registerGET|POST /oauth/authorizePOST /oauth/token
Essa camada OAuth protege a conexão. Durante a autorização, a página de login troca e-mail/senha do Despezzas por uma sessão Despezzas/Firebase no servidor. O botão final é Entrar e autorizar, e o ChatGPT recebe apenas um token de acesso MCP opaco.
MCP_HTTP_BEARER_TOKEN ainda é útil para scripts fora do ChatGPT. Quando omitido, o /mcp exige um token OAuth válido.
Apps/conectores personalizados do ChatGPT exigem um endpoint MCP remoto em HTTPS. A documentação do Apps SDK da OpenAI descreve o MCP como a camada de servidor necessária para expor ferramentas ao ChatGPT, e o guia de conexão pelo ChatGPT usa um endpoint HTTPS para adicionar um servidor MCP. Veja:
☁️ Deploy remoto
Caminho suportado para deploy remoto: Cloudflare Workers.
Veja docs/deployment.md para o resumo operacional do deploy apenas em Cloudflare.
Provedor | Melhor para | Arquivos | Observação |
Cloudflare Workers | MCP remoto com ChatGPT |
| Caminho de deploy mantido no projeto. |
Arquivos de deploy mantidos:
wrangler.jsoncesrc/cloudflare.tspara Cloudflare Workers.docs/cloudflare-workers.mdpara o passo a passo completo.
Para o modo multiusuário em Cloudflare Workers, associe o namespace KV DESPEZZAS_SESSIONS, defina MCP_OAUTH_TOKEN_SECRET, SESSION_ENCRYPTION_KEY e DESPEZZAS_FIREBASE_API_KEY como secrets do Wrangler e faça deploy com npm run deploy:cloudflare. Para deploys privados de conta única, defina MCP_OWNER_AUTH_CODE junto com suas credenciais do Despezzas e DESPEZZAS_FIREBASE_API_KEY.
🔎 Inspeção de HAR
Quando capturar mais ações do frontend:
npm run inspect:har -- C:\path\to\despezzas.harO script imprime apenas chamadas para api.despezzas.com e mascara segredos comuns. Próximas ações úteis para capturar:
Pagar/despagar contas e faturas de cartão de crédito.
Metas, limites de gastos, relatórios, investimentos, gerenciamento de conexão Open Finance e ações do chat de IA.
Qualquer caso de borda de perfil ainda não coberto por
despezzas_list_profiles/despezzas_switch_profile/ ferramentas de gerenciamento de perfil.
Se preferir não exportar um HAR, cole scripts/request-monitor-devtools.js no DevTools em despezzas.com, execute a ação e depois rode:
window.__despezzasMcpMonitor.download();Ele exporta um relatório JSON mascarado das chamadas fetch/XHR para api.despezzas.com.
📚 MCPs de referência
Este projeto tomou como referência:
Este repositório mantém uma estrutura parecida, mas usa endpoints nativos do Despezzas e IDs em UUID.
🤝 Contribuição
Contribuições são bem-vindas. Antes de abrir um pull request:
Leia CONTRIBUTING.md.
Rode
npm run verify.Não inclua credenciais, tokens, sessões, HARs não mascarados ou dados financeiros reais.
Mantenha
confirm: trueobrigatório para toda ferramenta de escrita/destrutiva.Atualize
llms.txt,AGENTS.mde os docs emdocs/quando mudar arquitetura, comandos, ferramentas MCP ou regras importantes para agentes.
📄 Licença
MIT. Veja LICENSE.
Available Tools
35 toolsdespezzas_batch_update_transactionsEditar Transações em LoteADestructive
Operação de escrita. Pré-visualiza e depois edita várias transações do Despezzas com uma chamada confirm:true. Exige confirm: true. Chame uma vez sem confirm para inspecionar os payloads; repita com confirm:true apenas depois de verificar cada id e payload.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | ||
| updates | Yes | Edições de transação. Cada item usa os mesmos campos de despezzas_update_transaction, incluindo id. | |
| stop_on_error | No | Para após o primeiro erro de API. A validação sempre roda para todos os itens antes de qualquer escrita. |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | Yes | |
| total | Yes | |
| preview | Yes | |
| results | No | |
| all_ready | Yes | |
| confirmed | Yes | |
| ready_count | Yes | |
| updated_count | No | |
| requires_confirm | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide destructiveHint: true, and the description adds behavioral details about the two-phase commit pattern, inspection of payloads, and validation before writing (from schema). No contradictions.
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?
Very concise, front-loaded with 'Operação de escrita.' Every sentence adds necessary information without redundancy.
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 complexity, the description covers the essential workflow for batch updates with preview. Output schema exists, so return values are not needed. Complete for agent use.
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 explains the workflow for confirm parameter, and the schema describes updates and stop_on_error. Adds value beyond schema by explaining preview and confirm 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 clearly states it is a write operation for editing multiple transactions, with a two-step process using confirm. It distinguishes from sibling single-update tools by emphasizing batch editing and preview.
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?
Explicitly instructs to call without confirm for preview and with confirm only after verifying payloads. Lacks explicit alternatives or when-not-to-use, but the context sufficiently guides usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
despezzas_create_accountCriar Conta ManualBDestructive
Operação de escrita. Cria uma conta manual no Despezzas. Exige confirm: true.
| Name | Required | Description | Default |
|---|---|---|---|
| logo | Yes | URL do logo ou valor de logo de banco do Despezzas vindo de despezzas_list_banks. | |
| name | Yes | ||
| confirm | No | ||
| include_total_balance | No | ||
| initial_balance_cents | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint: true. The description adds that it is a write operation requiring confirmation ('Exige confirm: true'), but does not disclose other behavioral details like permissions or side effects.
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 (two sentences) and front-loaded with key info, but it could be more informative without adding much bulk.
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 destructive tool with 5 parameters and low schema coverage, the description is too brief. It doesn't explain the creation process, return values (output schema exists but not described), or prerequisites, making it incomplete.
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 only 20%. The description only mentions that 'confirm' must be true, but does not explain other parameters like 'logo', 'name', 'include_total_balance', or 'initial_balance_cents', which are undocumented in the schema.
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 it creates a manual account ('Cria uma conta manual no Despezzas'), using a specific verb and resource, and distinguishes it from sibling tools like create_credit_card or create_profile.
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 (creation of a manual account) and requires 'confirm: true', but lacks explicit guidance on when not to use it or alternatives among sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
despezzas_create_credit_cardCriar Cartão de CréditoCDestructive
Operação de escrita. Cria um cartão de crédito manual no Despezzas. Exige confirm: true.
| Name | Required | Description | Default |
|---|---|---|---|
| logo | No | ||
| name | Yes | ||
| confirm | No | ||
| account_id | No | ||
| limit_cents | No | ||
| closing_date | No | String com o dia de fechamento. | |
| is_unlimited | No | ||
| expiring_date | No | Campo de dia/mês de vencimento como o Despezzas espera, geralmente uma string de dia. | |
| available_limit_cents | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint:true. The description adds that it is a write operation and requires confirm:true, which is consistent. However, it does not elaborate on side effects or permissions 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?
Two short sentences, front-loaded with key info (write operation, manual creation, confirm requirement). However, it omits important details, making it slightly less efficient.
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 9 parameters, low schema coverage, and an output schema, the description is incomplete. It lacks parameter explanations, output description, and usage context for a destructive operation.
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 only 22% schema description coverage, the description should explain parameters. It provides no info on any parameter beyond hinting confirm must be true. The schema itself underspecifies parameters, and the description does not compensate.
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 it creates a credit card manually ('Cria um cartão de crédito manual'), with the verb and resource explicit. It distinguishes from sibling tools like update_credit_card by the create action, yet could note that other create tools exist.
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 on when to use this tool over alternatives like creating an account or transaction. The description only states it is a write operation and requires confirm:true, but does not specify prerequisites or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
despezzas_create_profileCriar Perfil CompartilhadoADestructive
Operação de escrita. Cria um dos três perfis extras do Despezzas (PJ, família ou investimentos). Exige confirm: true.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| type | Yes | Tipo de perfil extra do Despezzas. Normalmente só é permitido um de cada tipo. | |
| confirm | No | ||
| invites | No | Lista opcional de convites. Os papéis são editor ou viewer. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already include destructiveHint: true, and the description adds the specific requirement of confirm: true, which is a behavioral constraint. It also clarifies the operation is a 'write' and specifies the three profile types, providing context 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 plus a brief requirement note. It is front-loaded with 'Operação de escrita' and contains no redundant information.
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 description covers the core action and critical parameter (confirm), but omits details about invites (max 5 items), name length constraints, and potential errors like duplicates. The output schema exists but is not referenced.
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 adds meaning by linking the type parameter to the three profile types and emphasizing the confirm parameter requirement. However, it does not explain the name constraints or the invites parameter structure, leaving some gaps despite 50% schema coverage.
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 it is a write operation that creates one of three specific extra profiles (PJ, family, investments). It distinguishes from siblings like delete_profile and switch_profile by explicitly naming the types and using 'cria' (creates).
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 advises that confirm must be true, which is a critical prerequisite. However, it does not explicitly state when to use this tool over alternatives like despezzas_update_profile_access or despezzas_switch_profile, though the sibling list implies distinct purposes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
despezzas_create_transactionCriar TransaçãoADestructive
Operação de escrita. Cria uma transação real no Despezzas. Exige confirm: true. Use despezzas_prepare_create_transaction primeiro e nunca adivinhe IDs de conta/cartão/categoria.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| kind | No | expense | |
| paid | No | ||
| title | Yes | ||
| confirm | No | ||
| frequency | No | ||
| account_id | No | ||
| amount_mode | No | per_installment | |
| category_id | No | ||
| description | No | ||
| amount_cents | Yes | Valor em centavos. Exemplo: 12345 = R$123.45. | |
| installments | No | ||
| credit_card_id | No | ||
| subcategory_id | No | ||
| transaction_type | No | unique | |
| allow_uncategorized | No | Defina como true apenas quando quiser intencionalmente criar uma transação sem category_id. |
Output Schema
| Name | Required | Description |
|---|---|---|
| created | Yes | |
| payload | Yes | |
| transaction | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint: true, so the description's 'Operação de escrita' adds little. It does mention the confirm: true requirement, which is behavioral. However, it lacks details on side effects, error conditions, or the fact that it creates a permanent record, which would be useful beyond the annotation.
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 brief with three sentences, no redundant information, and front-loads the purpose. Could be slightly more structured but maintains high efficiency.
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 complexity (16 parameters, low schema coverage) and the presence of an output schema, the description should provide more context about the return value, error handling, and the different transaction types. It only covers a small fraction of the tool's usage context.
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 only 13%, placing a burden on the description to explain parameters, but it only mentions confirm: true. Many critical parameters like account_id, category_id, amount_cents, date, and transaction_type are not explained in the description, leaving the agent to rely on the schema's sparse descriptions.
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 it creates a real transaction ('Cria uma transação real no Despezzas') and identifies it as a write operation. It distinguishes from the sibling tool despezzas_prepare_create_transaction by indicating that the prepare tool must be used first.
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?
Explicitly instructs to use despezzas_prepare_create_transaction first and never guess IDs of account, card, or category. Also notes the requirement of confirm: true, providing clear guidance on when and how to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
despezzas_create_transferCriar TransferênciaBDestructive
Operação de escrita. Cria uma transferência entre duas contas do Despezzas. Exige confirm: true.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| paid | No | ||
| title | No | ||
| confirm | No | ||
| description | No | ||
| amount_cents | Yes | Valor em centavos. Exemplo: 12345 = R$123.45. | |
| sent_account_id | Yes | ID da conta de origem. | |
| received_account_id | Yes | ID da conta de destino. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as destructive. The description adds that it requires confirm: true and is a write operation, which aligns with the annotation but provides minimal additional 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 short and to the point, with no redundant phrasing. It efficiently conveys the core purpose and a key requirement.
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?
With 8 parameters and an output schema, the description is too sparse. It omits details about return values, error handling, and parameter usage, leaving significant gaps for the agent.
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 low (38%), and the description does not explain any parameters beyond mentioning confirm. It fails to compensate for the gap, especially for undocumented properties like 'paid', 'title', 'description'.
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 title and description clearly state the tool creates a transfer between two accounts. The verb 'cria' (creates) and resource 'transferência' are specific, and it is distinct from siblings like 'despezzas_create_transaction'.
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 on when to use this tool vs alternatives like 'despezzas_create_transaction'. The description only states a requirement (confirm: true) but lacks usage context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
despezzas_delete_accountExcluir ContaADestructive
Operação de escrita destrutiva. Exclui uma conta do Despezzas. Exige confirm: true.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ID da conta em despezzas_list_accounts. | |
| confirm | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint: true. The description adds 'Operação de escrita destrutiva' and the confirm requirement, which is consistent. However, it does not elaborate on the permanence of deletion, impact on related data (e.g., transactions), or recovery options. Since annotations cover the safety profile, the additional value is moderate.
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?
Three short sentences, each earning its place: operation type, action, and requirement. Information is front-loaded and no extraneous content. Extremely concise without sacrificing 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?
Given the tool has 2 parameters, destructiveHint annotation, and an output schema, the description is fairly complete. It identifies the required parameter (id) and the confirm requirement. However, it does not mention that deletion is permanent or impacts associated transactions. Nonetheless, with output schema available for return values, the description covers the essential behavioral aspects adequately.
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 50% (id has description, confirm has none). The description adds meaning for confirm by stating 'Exige confirm: true', which compensates for the missing schema description. The id parameter is already described in the schema as 'ID da conta em despezzas_list_accounts', so no additional value. Overall, the description adds some but limited semantic value beyond the schema.
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 'Exclui uma conta do Despezzas' (deletes an account). It is a destructive write operation, distinct from sibling tools like despezzas_update_account or despezzas_delete_transaction. The verb 'excluir' plus resource 'conta' makes purpose unambiguous.
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 only mentions that 'confirm: true' is required. It does not provide any guidance on when to use this tool versus alternatives (e.g., despezzas_update_account to deactivate, or other deletion tools). No explicit context for when-not-to-use or prerequisites beyond the confirm flag.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
despezzas_delete_credit_cardExcluir Cartão de CréditoADestructive
Operação de escrita destrutiva. Exclui um cartão de crédito do Despezzas. Exige confirm: true.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ID do cartão de crédito em despezzas_list_credit_cards. | |
| confirm | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already set destructiveHint=true; description adds 'Operação de escrita destrutiva' and states 'Exige confirm: true', providing useful behavioral context 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?
One concise sentence in Portuguese, front-loaded with destructive nature. Efficient but could add more detail without being verbose.
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 delete tool with annotations and output schema, the description covers main aspects: destruction and confirmation requirement. References source for id (despezzas_list_credit_cards). Could mention irreversibility.
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 has 2 params with 50% coverage. Description adds value by stating confirm must be true, supplementing schema. Id purpose is already clear from schema description.
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?
Clearly states it's a destructive write operation that deletes a credit card. Title 'Excluir Cartão de Crédito' is unambiguous. Distinguishes from siblings like create/update credit card.
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 on when to use vs alternatives. Only mentions require confirm: true, but does not explain when deletion is appropriate or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
despezzas_delete_profileExcluir Perfil CompartilhadoADestructive
Operação de escrita destrutiva. Exclui um perfil compartilhado de sua propriedade. Exige confirm: true.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ID do perfil compartilhado em despezzas_list_profiles. | |
| confirm | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral details beyond the destructiveHint annotation by specifying that it requires confirm: true and is a 'operação de escrita destrutiva' (destructive write operation), which complements the annotation.
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: two sentences that state purpose, destructiveness, and the confirm requirement. No wasted words.
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 simple operation and presence of output schema, the description covers key behavioral aspects. However, it does not differentiate from sibling leave_profile, which could cause confusion.
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 50% schema description coverage, the description adds meaning for the confirm parameter by stating it must be true, but adds little for id beyond what the schema already provides. This compensates partially but not fully.
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 'Exclui um perfil compartilhado de sua propriedade' (Deletes a shared profile from your ownership), using a specific verb and resource. It distinguishes from sibling tools like create, list, leave, and update profiles.
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 mentions 'Exige confirm: true' indicating a requirement for use, but does not provide explicit when-to-use or when-not-to-use guidance versus alternatives like despezzas_leave_profile.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
despezzas_delete_transactionExcluir TransaçãoADestructive
Operação de escrita destrutiva. Exclui uma transação. Exige confirm: true. Use despezzas_prepare_delete_transaction primeiro.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| scope | No | THIS | |
| confirm | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds context beyond the destructiveHint annotation by describing it as a 'destructive write operation' and emphasizing the necessity of confirmation and preparation. However, it does not explain the behavior of the 'scope' parameter.
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?
Three succinct, front-loaded sentences with no superfluous words. Every sentence adds essential information: destructive nature, action, requirement, and prerequisite.
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?
Completes the core purpose and prerequisite but omits details on the 'scope' parameter, which is relevant for multi-entity deletion. Output schema exists, so return values need not be described, but parameter coverage is insufficient.
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?
Given 0% schema description coverage, the description only hints at the 'confirm' parameter requiring true. It fails to explain 'id' (though perhaps obvious) and especially the 'scope' enum (THIS, THIS_AND_NEXT, ALL), leaving a significant gap.
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 deletes a transaction, using a specific verb (Excluir) and resource (transação). It distinguishes from siblings by referencing the prerequisite 'despezzas_prepare_delete_transaction' and implying it is the final deletion step.
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?
Explicitly instructs to first use 'despezzas_prepare_delete_transaction' and requires 'confirm: true', providing clear when and how to use the tool. This differentiates it from other transaction tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
despezzas_duplicate_transactionDuplicar TransaçãoCDestructive
Operação de escrita. Duplica uma transação do Despezzas. Exige confirm: true.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| confirm | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate 'destructiveHint: true'. The description adds 'Operação de escrita' and 'Exige confirm: true', which provides extra context about confirmation requirement. However, it does not disclose other behavioral traits like side effects or typical outcomes.
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 (two sentences), but the first sentence ('Operação de escrita') is redundant given the annotation 'destructiveHint: true'. It could be more concise by removing redundancy while adding missing information.
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 simplicity of the tool (2 params, output schema exists), the description is still incomplete. It does not explain what duplicating means (e.g., copies fields, creates a new record) or any required conditions, leaving gaps for an AI agent.
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 should compensate. It only mentions that 'confirm' must be true, but fails to explain the 'id' parameter or any format constraints. The parameter semantics are largely absent.
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 verb 'Duplicar' and the resource 'transação', making the tool's purpose clear. However, it does not distinguish from sibling tools like 'create_transaction' or 'toggle_transaction_paid', so it slightly lacks 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?
No guidance is provided on when to use this tool versus alternatives. The description lacks context for appropriate usage scenarios and does not mention any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
despezzas_export_transactionsExportar TransaçõesC
Inspeciona/exporta transações do Despezzas em um intervalo de datas. Por padrão faz uma contagem segura com resumo de campos; defina count_only:false para chamar o endpoint de exportação.
| Name | Required | Description | Default |
|---|---|---|---|
| date_end | Yes | ||
| count_only | No | ||
| date_start | Yes | ||
| account_ids | No | ||
| sample_limit | No | ||
| credit_card_ids | No | ||
| include_field_summary | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It mentions safe count and export endpoint but omits details on side effects, authentication requirements, rate limits, or return format. This is insufficient for a mutation-like export tool.
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 (two sentences) and front-loaded with purpose. While it saves words, it sacrifices parameter details. It is efficient but could benefit from a brief list of key parameters.
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 a complex input schema with 7 parameters and no annotations, the description covers only two parameters implicitly. The output schema exists but is not described. The tool's behavior in export mode and limits are unexplained, making it insufficient for effective agent use.
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 only explains count_only. It does not clarify the purpose or constraints of date_start, date_end, account_ids, credit_card_ids, sample_limit, or include_field_summary, leaving the agent with minimal guidance.
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 inspects/exports transactions in a date range, distinguishing between a safe count mode and export by setting count_only:false. This provides a specific verb and resource, and differentiates from siblings like search_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?
The description explains the default behavior (safe count with field summary) and how to switch to export mode. However, it does not provide explicit guidance on when to use this tool over sibling tools like search_transactions or create_transaction, leaving room for ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
despezzas_finance_summaryResumo FinanceiroA
Resume receitas, despesas, totais pagos/não pagos e principais categorias em um intervalo de datas. Por padrão usa o mês atual.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| date_end | No | ||
| date_start | No | ||
| account_type | No | ||
| include_transactions | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the scope (revenues, expenses, categories) and default date range, but does not explicitly state it is read-only or mention any side effects. Adequate but not fully transparent.
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?
Two sentences with no redundancy. Front-loaded with key purpose and default behavior. Every word 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?
Though an output schema exists, the description is minimal and does not guide usage of multiple filtering parameters (account_type, include_transactions). For a tool with 5 optional parameters, more context on how to effectively use them would improve completeness.
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 only mentions 'date range' and 'default current month', which hints at date_start/date_end but ignores limit, account_type, and include_transactions. Parameter names are self-explanatory, but the description adds little meaning beyond the schema.
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 summarizes revenues, expenses, paid/unpaid totals, and main categories in a date range. This is a specific verb-resource combination that distinguishes it from sibling CRUD or list tools.
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 for financial summaries but does not explicitly state when to use this tool over alternatives like transaction_overview or search_transactions. No exclusions or when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
despezzas_leave_profileSair de Perfil CompartilhadoADestructive
Operação de escrita. Sai de um perfil compartilhado em que você é membro. Exige confirm: true.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | ||
| profile_id | Yes | ID do perfil de membro em despezzas_list_profiles. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide destructiveHint: true. The description adds that it requires confirm: true, which is a behavioral detail. However, it does not disclose irreversible effects or permission requirements, but with annotations, the bar is lower.
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?
Two sentences, front-loaded with 'Operação de escrita,' no unnecessary words. Every sentence adds value.
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 and presence of an output schema, the description is adequate but not fully complete. It does not mention error conditions or what happens after leaving, leaving some gaps.
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 50% with only profile_id described. The description adds that confirm must be true, compensating for confirm's missing schema description. However, it does not elaborate on profile_id beyond what schema says.
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 it is a write operation to leave a shared profile where the user is a member. The verb 'Sai' (leave) and resource 'perfil compartilhado' are specific, and it is distinct from sibling tools like switch or delete.
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 on when to use this tool versus alternatives like 'despezzas_switch_profile' or 'despezzas_delete_profile'. No when-not-to-use or prerequisite context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
despezzas_list_accountsListar ContasA
Lista contas bancárias/dinheiro do Despezzas. Use primeiro para descobrir IDs de conta para filtros de transação.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It indicates a read operation (listing) but does not disclose any additional behavioral traits such as authentication needs, rate limits, or data freshness. For a simple list tool, the basic behavior is implied but not elaborated.
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 with two sentences, front-loading the action and purpose. Every word earns its place, with no redundancy.
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 no parameters and the existence of an output schema, the description is fairly complete: it states the function and secondary use. However, it could briefly mention that it returns a list or that there are no filters, but the context is sufficient.
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?
There are no parameters, so baseline is 4. The description does not need to add parameter semantics, and it correctly mentions the purpose of the tool.
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 it lists bank accounts/cash, specifying the verb 'lista' and the resource 'contas bancárias/dinheiro'. It distinguishes from sibling list tools by mentioning account IDs for transaction filters.
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 explicitly instructs to use this tool first to discover account IDs for transaction filters, providing clear when-to-use guidance and implying it is a prerequisite for filtering transactions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
despezzas_list_banksListar Bancos/Logos de ContaA
Lista opções de bancos/logos usadas ao criar contas manuais no Despezzas.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description is minimal for a simple list operation, but no additional behavioral traits disclosed beyond what is obvious.
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?
Single sentence, no wasted words, clearly states purpose.
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?
Adequate for a parameterless list tool with output schema, though could mention context of use during account creation.
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?
No parameters, so description does not need to add parameter info; baseline 4 applies.
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?
Description clearly states it lists bank/logo options for manual account creation, specific verb+resource, and distinguishes from sibling list tools like list_accounts.
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 when-to-use or alternatives, though usage is implied from context of creating account.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
despezzas_list_categoriesListar CategoriasA
Lista categorias padrão e, opcionalmente, categorias criadas pelo usuário no Despezzas.
| Name | Required | Description | Default |
|---|---|---|---|
| include_user | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must carry the burden. It states it lists categories but does not disclose read-only nature, authentication needs, or other behavioral traits. However, for a simple list operation, the minimal info is adequate.
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 that gets to the point. It is concise, but could benefit from a slightly more structured explanation of the parameter.
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 low-complexity tool with one optional boolean and an output schema, the description covers the main functionality. However, it lacks parameter explanation, which is needed for full completeness.
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 the 'include_user' parameter or its effect. The parameter name is suggestive, but the agent benefits from explicit explanation. This is a gap.
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 lists standard and optionally user-created categories, distinguishing it from siblings like despezzas_list_subcategories. The verb 'Lista' and resource 'categorias' are specific.
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 the tool is for listing categories but does not explicitly state when to use it versus alternatives (e.g., list_subcategories) or when to set include_user to true/false. Some guidance is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
despezzas_list_credit_cardsListar Cartões de CréditoA
Lista cartões de crédito do Despezzas. Use para descobrir IDs de cartão para filtros de transação.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It accurately describes a read-only list operation without hidden side effects. While it does not explicitly state safety, the action is inherently non-destructive, and the purpose is clear.
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 sentences, front-loaded with the action, and every sentence serves a purpose: first to state what, second to state why. No redundancy or fluff.
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 zero parameters and the existence of an output schema, the description is fully adequate. It explains the tool's purpose and use case, leaving no ambiguity for an AI agent.
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 and schema coverage is 100%. The description adds no param details (unnecessary) but provides context on usage. Per guidelines, baseline is 4 for zero-param tools.
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 lists credit cards ('Lista cartões de crédito do Despezzas') and specifies its purpose: discovering card IDs for transaction filters. This distinguishes it from sibling tools like list_accounts.
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 explicitly tells when to use the tool (to discover card IDs for transaction filters). It does not list alternatives or when not to use, but the context is clear and sufficient for an agent to decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
despezzas_list_profilesListar Perfis do DespezzasA
Lista perfis Despezzas de proprietário e membro. Use antes de trocar o contexto de perfil ou gerenciar perfis compartilhados.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the tool lists 'owner and member' profiles, which is helpful. However, it does not mention any potential constraints (e.g., workspaces, pagination) or the fact that it is safe (non-destructive). The description is adequate but not rich in behavioral detail.
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 with two short sentences. Every word serves a purpose: the first sentence states the action, the second gives usage guidance. No filler or redundancy.
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 no parameters and an output schema (not shown), the description covers what the tool does and when to use it. It could mention the output structure briefly, but it is likely provided by the schema. The description is complete for its simplicity.
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 no parameters (schema coverage 100%), so the description does not need to add parameter details. The baseline score for 0 parameters is 4, and the description meets this without unnecessary information.
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 'Lista perfis Despezzas de proprietário e membro' indicating it lists profiles, distinguishing it from other list tools like list_accounts. However, it does not explicitly contrast with the sibling tool 'despezzas_profile', which might retrieve a single profile.
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 explicitly advises to use this tool before switching profile context or managing shared profiles, providing clear context for when to invoke it. It does not mention when not to use it or alternative tools, but the guidance is sufficient for a simple listing tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
despezzas_list_subcategoriesListar SubcategoriasB
Lista subcategorias padrão e, opcionalmente, subcategorias criadas pelo usuário no Despezzas. Use category_id no resultado para vinculá-las às categorias.
| Name | Required | Description | Default |
|---|---|---|---|
| include_user | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It implies a read operation but does not explicitly state it is non-destructive, nor does it disclose other behavioral traits like authentication or rate limits.
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?
Two concise sentences front-load the purpose and provide a usage hint. No wasted words.
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 tool with one optional parameter and an existing output schema, the description covers the main purpose and optional behavior. However, it lacks details on output structure and how to differentiate standard vs user-created subcategories in results.
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%, but the description indirectly explains the 'include_user' parameter by mentioning optional user-created subcategories. It adds meaning beyond the schema but could be more explicit by naming the parameter.
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 lists subcategories, specifying both standard and optionally user-created ones. It also hints at linking to categories via 'category_id', distinguishing it from sibling 'list_categories'.
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 on when to use this tool versus alternatives. The description does not mention exclusion criteria or compare with siblings like 'list_categories'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
despezzas_personal_configObter Configuração PessoalB
Busca preferências de visibilidade financeira, como inclusão de transferências, contas ou investimentos.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose behavioral traits like read-only nature, authentication needs, or side effects. For a simple config retrieval, these are implicit but not explicit.
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, focused sentence with no unnecessary words. It is front-loaded and efficient.
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 no parameters and an output schema (present but not fully detailed), the description is adequate but could clarify scope (e.g., current profile or user). It minimally satisfies completeness for a simple retrieval.
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?
No parameters exist in the input schema, so the description adds no parameter info. According to the rule, 0 parameters earns a baseline of 4.
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 retrieves financial visibility preferences, distinguishing it from CRUD siblings. However, it uses 'Busca' (searches) which could imply filtering, but likely means 'gets'. Still specific and actionable.
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 on when to use this tool versus alternatives, such as other read operations. No prerequisites or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
despezzas_prepare_create_transactionPreparar Criação de TransaçãoARead-only
Auxiliar de pré-visualização. Monta e valida o payload de uma nova transação sem chamar o Despezzas. Use antes de despezzas_create_transaction.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| kind | No | expense | |
| paid | No | ||
| title | Yes | ||
| frequency | No | ||
| account_id | No | ||
| amount_mode | No | per_installment | |
| category_id | No | ||
| description | No | ||
| amount_cents | Yes | Valor em centavos. Exemplo: 12345 = R$123.45. | |
| installments | No | ||
| credit_card_id | No | ||
| subcategory_id | No | ||
| transaction_type | No | unique | |
| allow_uncategorized | No | Defina como true apenas quando quiser intencionalmente criar uma transação sem category_id. |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | Yes | |
| ready | Yes | |
| issues | Yes | |
| method | Yes | |
| payload | Yes | |
| endpoint | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and description reinforces that it does not call the API, adding context. However, it does not detail what the output contains (e.g., validated payload or errors), leaving some behavioral gaps.
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?
Two sentences: first defines the tool as a preview assistant, second gives usage instruction. No unnecessary words, front-loaded with purpose.
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 complexity (15 parameters, many enums, output schema present), the description is minimal. It does not explain validation behavior or output details, though output schema partially compensates.
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 only 13% and the description does not describe any parameters. It relies on parameter names and schema descriptions, which are incomplete. With low coverage, description should compensate but does not.
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?
Description clearly states it's a preview assistant that builds/validates transaction payload without calling Despezzas. It differentiates from siblings by specifying it's for preparation before creation, and there are similar prepare tools for update and delete.
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?
Explicitly says 'Use antes de despezzas_create_transaction', indicating when to use it. It implies it's for preview before actual creation, but does not provide explicit when-not-to-use scenarios or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
despezzas_prepare_delete_transactionPreparar Exclusão de TransaçãoARead-only
Auxiliar de pré-visualização. Mostra o alvo e o escopo da exclusão sem excluir nada. Use antes de despezzas_delete_transaction.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| scope | No | THIS |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already set readOnlyHint=true, so the description's claim of not deleting aligns. It adds preview behavior context (shows target and scope) but doesn't elaborate on output or additional behavioral traits (e.g., formatting, pagination).
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?
Two concise sentences, front-loaded with purpose. Every sentence adds value with no redundancy.
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?
Adequate for a simple preview tool with annotations and output schema, but gaps remain: parameter semantics are under-explained, and the output format is not mentioned (though output schema exists). Could be improved with brief explanation of scope meanings and return structure.
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%, so description should compensate. It vaguely suggests that 'id' identifies the target and 'scope' defines the scope, but no specifics on format, meaning of enum values, or constraints. Minimal added value over the schema.
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 it's a preview helper for deletion, showing target and scope without deleting. It distinguishes itself from the actual delete tool (despezzas_delete_transaction) by specifying it's a preparatory step.
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?
Explicitly says 'Use antes de despezzas_delete_transaction' (Use before despezzas_delete_transaction), providing clear usage context. However, it doesn't mention when not to use or contrast with other prepare tools like despezzas_prepare_create_transaction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
despezzas_prepare_update_transactionPreparar Edição de TransaçãoARead-only
Auxiliar de pré-visualização. Monta e valida o payload para editar uma transação sem chamar o Despezzas. Use antes de despezzas_update_transaction.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| date | No | ||
| kind | No | ||
| paid | No | ||
| scope | No | Escopo de edição para transações recorrentes/parceladas. | THIS |
| title | No | ||
| account_id | No | ||
| category_id | No | ||
| description | No | ||
| amount_cents | No | ||
| edition_date | No | Data da ocorrência a editar. Por padrão, usa date quando informado. | |
| credit_card_id | No | ||
| subcategory_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| note | Yes | |
| ready | Yes | |
| issues | Yes | |
| method | Yes | |
| payload | Yes | |
| endpoint | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and the description confirms it does not call the API ('sem chamar o Despezzas') and is a preview tool. This adds behavioral context beyond annotations and aligns with them.
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?
Two sentences, no wasted words, front-loaded with purpose. However, it lacks parameter detail which would improve usability; still concise enough.
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 an output schema, the description provides minimal context for a tool with 13 parameters. It explains the tool's role but not how to use the prepared payload or handle validation. Adequate but not comprehensive.
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 only 15% (only two parameters have descriptions), and the tool description adds no explanation of parameter meanings or usage. Given the large number of parameters (13) with low schema coverage, the description should compensate but does not.
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 it is a preview helper ('Auxiliar de pré-visualização') that builds and validates the payload for editing a transaction without calling the Despezzas API. It distinguishes from sibling tools like despezzas_update_transaction and other prepare tools.
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?
Explicitly tells the agent to use this before despezzas_update_transaction ('Use antes de despezzas_update_transaction'), providing clear sequencing. No when-not stated but sibling context makes alternatives obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
despezzas_profileObter Perfil do DespezzasA
Busca o perfil autenticado do Despezzas. Campos sensíveis são mascarados.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description bears full burden. It mentions that sensitive fields are masked, which is a useful behavioral trait, but does not discuss authentication, rate limits, or other constraints. Adequate but not rich.
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?
Two short sentences, front-loaded with the action. Every word adds value; no redundancy.
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 presence of an output schema and zero parameters, the description covers the essential purpose and masking behavior. It could mention authentication context or explicit tie to the current user, but it is fairly complete for a simple read tool.
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?
No parameters exist in the input schema, so the description does not need to add parameter info. Baseline of 4 is appropriate as there is nothing to compensate for.
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 fetches the authenticated Despezzas profile, using specific verb and resource. It distinguishes from sibling tools like create_profile, delete_profile, and list_profiles by focusing on the authenticated user's profile.
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 for getting the current user's profile, but does not explicitly differentiate from sibling tools like list_profiles. The context of zero parameters makes the purpose clear, but explicit when/alternatives are missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
despezzas_raw_apiChamada Bruta à API DespezzasADestructive
Saída de emergência para endpoints descobertos depois. Chamadas GET seguras são permitidas. POST/PUT/PATCH/DELETE exigem allow_destructive: true.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| path | Yes | ||
| query | No | ||
| method | No | GET | |
| allow_destructive | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already set destructiveHint=true. The description adds that GET is safe and that destructive methods require the allow_destructive flag, providing a clear safety protocol beyond the annotation.
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?
Two sentences, no wasted words. First sentence defines purpose, second sets safety rules. Front-loaded and efficient.
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 a raw API with complex parameters; description is minimal. While it covers safety and purpose, it lacks guidance on output, errors, or parameter usage. Adequate for an emergency exit, but could be more 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?
With 0% schema description coverage, the description fails to add meaning for most parameters (path, body, query, allow_destructive). It only mentions method and allow_destructive in general terms, leaving path, body, and query unexplained.
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 it is an 'emergency exit for endpoints discovered later', indicating a raw API fallback. It mentions allowed methods, but the resource is vague ('endpoints'), so it's not fully specific.
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 provides explicit context: use when no specific tool exists (emergency), and distinguishes safe GET from destructive methods requiring a flag. It does not list alternative tools but implies they are preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
despezzas_search_transactionsBuscar TransaçõesB
Lista transações do Despezzas com filtros. Por padrão usa o mês atual e a visão de fluxo de caixa de contas bancárias. Valores retornam em centavos.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| order | No | desc | |
| search | No | ||
| is_paid | No | ||
| date_end | No | ||
| order_by | No | date | |
| date_start | No | ||
| is_expense | No | ||
| account_ids | No | IDs de conta em despezzas_list_accounts. | |
| include_raw | No | Retorna objetos completos de transação do Despezzas em vez de linhas compactas. | |
| account_type | No | ||
| category_ids | No | IDs de categoria em despezzas_list_categories. | |
| credit_card_ids | No | IDs de cartão de crédito em despezzas_list_credit_cards. | |
| subcategory_ids | No | IDs de subcategoria em despezzas_list_subcategories. | |
| min_amount_cents | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| filters | Yes | |
| warning | No | |
| has_more | Yes | |
| returned | Yes | |
| diagnostics | Yes | |
| transactions | Yes | |
| profile_context | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It reveals default scope and value units but omits pagination, the compact vs. full format behavior (controlled by include_raw), and any side effects or permissions. The description is insufficient for safe autonomous use.
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?
Two sentences with no fluff. Essential information is front-loaded. Every sentence adds value.
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 15 parameters, no annotations, and a detailed output schema, the description is far too sparse. It leaves the agent without guidance on how to leverage filters, handle defaults, or interpret results effectively. Completeness is low.
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 only 33%. The description does not explain any parameters or clarify their meaning. It adds no value beyond what the schema already provides or lacks, failing to compensate for the low coverage.
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 it lists transactions with filters. It adds default behavior (current month, cash flow view) and value format (cents). However, it does not explicitly distinguish from sibling tools like despezzas_transaction_overview or despezzas_export_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?
The description provides implicit guidance by noting defaults, but does not specify when to use this tool vs alternatives, nor when not to use it. No exclusions or contextual hints for different scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
despezzas_statusStatus do Despezzas MCPA
Verifica se o servidor MCP está configurado com um token do Despezzas.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states the behavior: it verifies token configuration. With no annotations, the description carries full burden. It does not disclose that it is read-only or any error conditions, but for a simple status check this is minimally adequate.
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 that directly conveys the tool's action. No redundancy or unnecessary words.
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 no parameters and an output schema exists (though not shown), the description is sufficiently complete for a simple status check. It could optionally mention the return type, but that is covered by the output schema.
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 the description adds no parameter info beyond the schema. Since schema coverage is 100%, the baseline is 4.
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 uses the specific verb 'Verifica' (checks) and clearly identifies the resource: whether the MCP server is configured with a Despezzas token. This clearly distinguishes it from sibling tools that are about creating, updating, or listing financial entities.
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 purpose is self-evident as a health check, and the context of sibling tools makes it clear when to use it (before dependent operations). However, no explicit guidance on when not to use it or alternatives is provided, which would merit a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
despezzas_switch_profileTrocar Perfil AtivoADestructive
Operação de escrita. Troca o perfil Despezzas ativo para chamadas futuras de contas, cartões e transações. Exige confirm: true.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | ||
| profile_id | Yes | ID do perfil em despezzas_list_profiles. Use null para o perfil pessoal/raiz. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explicitly calls it a write operation and requires confirm: true, adding behavioral context beyond the destructiveHint annotation. No contradiction with 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?
Two sentences that are front-loaded with the main purpose and an important requirement. No unnecessary words.
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 exists and the parameter schema explains profile_id, the description covers the main effect. Some might expect preconditions (e.g., must have profiles), but the context is sufficient.
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 50%, but the description does not add meaningful parameter details beyond what the schema already provides (e.g., profile_id description). The confirm parameter lacks explanation of its role beyond 'exige confirm: true'.
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 it switches the active Despezzas profile for future calls, using a specific verb and resource. This distinguishes it from sibling tools like despezzas_create_profile or despezzas_delete_profile.
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 indicates it requires confirm: true, providing a usage condition. However, it does not explicitly specify when not to use this tool or mention alternatives, though siblings are clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
despezzas_toggle_transaction_paidAlternar Pagamento da TransaçãoBDestructive
Operação de escrita. Alterna ou marca uma transação como paga em uma data. Exige confirm: true.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| date | No | 2026-07-04 | |
| confirm | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint: true. The description adds that it is a write operation ('Operação de escrita') and requires confirm: true, which provides some behavioral context. However, it does not detail the destructive nature (e.g., what changes are irreversible) or any other behavioral traits.
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?
Two concise sentences with key information front-loaded. No redundant wording. Could include more detail without losing conciseness, but it is appropriately sized for a simple operation.
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 3 parameters (1 required) and an output schema, the description is partially complete. It covers the operation type and confirmation requirement but lacks usage guidelines and parameter details. The output schema exists but is not referenced, leaving return values unexplained.
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 adds meaning for 'confirm' by stating it must be true to execute ('Exige confirm: true'). However, 'id' and 'date' have no additional explanation beyond the schema, leaving ambiguity about their purpose and format.
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 action: toggles or marks a transaction as paid on a date. The verb 'alterna' and resource 'transação' are specific, but it does not differentiate from the similar sibling 'despezzas_update_transaction' which might also modify paid status.
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 on when to use this tool versus alternatives like despezzas_update_transaction. It only mentions the requirement for confirm: true, but not the context. Fails to provide when-not-to-use 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.
despezzas_transaction_overviewVisão Geral de TransaçõesC
Obtém totais da visão geral do Despezzas e saldos de conta para uma data. Valores em centavos.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | 2026-07-04 |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavioral traits. It does not state that the operation is read-only, whether authentication is required, or any potential side effects. The only extra detail is that values are in cents, which is useful but insufficient.
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 (two sentences), which is concise, but lacks necessary details. It is well-structured with the verb first, but could benefit from expanding on the output without becoming verbose.
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 presence of an output schema, the description could be minimal, but it fails to explain what the output contains beyond vague 'totals and balances.' With many sibling tools, it should clarify how this tool fits into the broader workflow, which it does not.
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%, so the description should clarify parameter meaning. It only mentions 'para uma data' (for a date) but does not explain the format, allowed range, or how the date affects results. The default value in the schema is not highlighted.
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 it retrieves totals and account balances for a date, specifying the resource (Despezzas overview) and returning values in cents. It is specific enough to distinguish from siblings, though it could be more precise about what 'totals' include.
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. There is no mention of prerequisites, typical use cases, or scenarios where other tools might be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
despezzas_update_accountEditar ContaBDestructive
Operação de escrita. Edita uma conta manual do Despezzas. Exige confirm: true.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ID da conta em despezzas_list_accounts. | |
| logo | No | ||
| name | No | ||
| confirm | No | ||
| balance_cents | No | ||
| include_total_balance | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide destructiveHint: true, signaling mutation. Description adds that it is a write operation and requires confirm, providing extra context. However, it does not disclose any additional behavioral traits like permission needs or reversibility.
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?
Description is very short (15 words) and front-loaded with 'Operação de escrita'. No wasted words, but could be slightly expanded to improve parameter guidance 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 6 parameters, low schema coverage, and an output schema (but not shown), the description fails to explain what fields can be updated, what the tool returns, or side effects beyond the confirm flag. The description is too minimal to be contextually 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 coverage is only 17% (only 'id' described). Description only explains the 'confirm' parameter (required true). Other parameters like logo, name, balance_cents, include_total_balance are left without meaning or format hints, insufficient for the low coverage.
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?
Description clearly states 'Edita uma conta manual do Despezzas' (edits a manual account), with verb 'edita' and specific resource 'conta manual', distinguishing it from create/list/delete siblings. The nature of a write operation is also stated.
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?
Description requires 'confirm: true', giving a usage condition, but does not explicitly state when to use this tool versus alternatives like creating a new account or updating other entities (e.g., credit cards). Context is implied but no when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
despezzas_update_credit_cardEditar Cartão de CréditoADestructive
Operação de escrita. Edita um cartão de crédito manual do Despezzas. Exige confirm: true.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ID do cartão de crédito em despezzas_list_credit_cards. | |
| logo | No | ||
| name | No | ||
| confirm | No | ||
| account_id | No | ||
| limit_cents | No | ||
| closing_date | No | ||
| is_unlimited | No | ||
| expiring_date | No | ||
| available_limit_cents | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true. The description adds 'Operação de escrita' and 'Exige confirm: true', which clarifies the operation type and a required behavioral condition. However, it does not elaborate on the extent of changes or side effects, such as whether fields are overwritten partially or fully.
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 only two sentences, front-loading the operation type and core requirement. Every sentence adds essential information with no superfluous words.
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 10 parameters, low schema coverage, and a destructive hint, the description is incomplete. It fails to describe the update semantics (partial vs. full), return value (output schema exists but not mentioned), or prerequisites beyond the confirm flag. The agent lacks sufficient context to invoke the tool correctly.
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 only 10%, with only the 'id' parameter described. The description itself only adds context about the 'confirm' parameter (must be true). For the remaining 9 parameters, no additional meaning is provided, leaving significant gaps in understanding.
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 'Edita um cartão de crédito manual do Despezzas', specifying the verb (editar) and resource (cartão de crédito manual). It distinguishes the tool from sibling update tools that target different resources (e.g., accounts, 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?
The description says 'Exige confirm: true', giving a specific requirement for using the tool. However, it does not provide when-to-use guidance compared to alternatives, such as when to use update vs. create or delete. The usage context is implied but not explicitly differentiated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
despezzas_update_profile_accessEditar Perfil CompartilhadoBDestructive
Operação de escrita. Edita um perfil compartilhado. Se invites for informado, ele substitui a lista de convites/membros. Exige confirm: true.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ID do perfil compartilhado em despezzas_list_profiles. | |
| name | No | ||
| type | No | ||
| confirm | No | ||
| invites | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotation destructiveHint=true, the description explicitly states it is a write operation, explains that invites replaces the existing list, and emphasizes the need for confirm=true. This adds useful 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 concise with three short sentences, front-loading the key action. It could be slightly more structured, but it efficiently communicates essential points.
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 5 parameters and an output schema (not shown), the description is incomplete. It only addresses invites and confirm, omitting that name and type are also modifiable. This is insufficient for a full understanding of the tool's capabilities.
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 only 20% (only id described). The description compensates partially by explaining the invites replacement behavior and the confirm requirement, but it fails to clarify the meaning or usage of name and type 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 clearly states it is a write operation that edits a shared profile, which is distinct from sibling tools like create_profile or delete_profile. However, it could be more specific about which fields are updatable beyond invites.
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 provides some usage guidance, such as the effect of the invites parameter and the requirement of confirm=true. However, it does not specify when to use this tool versus alternatives, nor does it mention prerequisites or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
despezzas_update_transactionEditar TransaçãoADestructive
Operação de escrita. Edita uma transação real no Despezzas. Exige confirm: true. Use despezzas_prepare_update_transaction primeiro.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| date | No | ||
| kind | No | ||
| paid | No | ||
| scope | No | Escopo de edição para transações recorrentes/parceladas. | THIS |
| title | No | ||
| confirm | No | ||
| account_id | No | ||
| category_id | No | ||
| description | No | ||
| amount_cents | No | ||
| edition_date | No | Data da ocorrência a editar. Por padrão, usa date quando informado. | |
| credit_card_id | No | ||
| subcategory_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| payload | Yes | |
| updated | Yes | |
| transaction | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint: true, and the description adds the confirm parameter requirement. This provides useful behavioral context beyond the annotation.
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?
Two sentences, front-loaded with key information, no unnecessary words. Perfectly concise.
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?
With 14 parameters (only 1 required) and low schema coverage, the description lacks detail on how to use the tool effectively. It doesn't explain most parameters or their effects.
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 only 14% (scope and edition_date have descriptions). The tool description does not explain any parameters beyond confirming the requirement. It adds minimal value over the schema.
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 it edits a real transaction in Despezzas and specifies it's a write operation. It differentiates from siblings by referencing the required prepare step.
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?
Explicitly states the requirement for confirm: true and instructs to use despezzas_prepare_update_transaction first, providing clear when-to-use and prerequisite guidance.
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. Dates show when Glama detected each change.
35 tool updates
v0.1.0- First observed
despezzas_batch_update_transactions - First observed
despezzas_create_account - First observed
despezzas_create_credit_card - First observed
despezzas_create_profile - First observed
despezzas_create_transaction - First observed
despezzas_create_transfer - First observed
despezzas_delete_account - First observed
despezzas_delete_credit_card - First observed
despezzas_delete_profile - First observed
despezzas_delete_transaction - First observed
despezzas_duplicate_transaction - First observed
despezzas_export_transactions - First observed
despezzas_finance_summary - First observed
despezzas_leave_profile - First observed
despezzas_list_accounts - First observed
despezzas_list_banks - First observed
despezzas_list_categories - First observed
despezzas_list_credit_cards - First observed
despezzas_list_profiles - First observed
despezzas_list_subcategories - First observed
despezzas_personal_config - First observed
despezzas_prepare_create_transaction - First observed
despezzas_prepare_delete_transaction - First observed
despezzas_prepare_update_transaction - First observed
despezzas_profile - First observed
despezzas_raw_api - First observed
despezzas_search_transactions - First observed
despezzas_status - First observed
despezzas_switch_profile - First observed
despezzas_toggle_transaction_paid - First observed
despezzas_transaction_overview - First observed
despezzas_update_account - First observed
despezzas_update_credit_card - First observed
despezzas_update_profile_access - First observed
despezzas_update_transaction
TDQS
Scored across 35 tools
Every tool has a distinct and clear purpose. Operations like create, delete, list, and update are uniquely scoped to accounts, credit cards, transactions, and profiles. Auxiliary 'prepare' tools are clearly separated from actual write operations, preventing confusion.
All tools follow a strict 'despezzas_verb_noun' pattern with consistent verb choices (create, delete, list, update, prepare, etc.). There are no mixed conventions or irregular names, making it easy to predict tool names.
With 35 tools, the set is slightly large but still well-scoped for a comprehensive personal finance management system. Each tool covers a distinct operation, and the count is justified by the breadth of features (accounts, credit cards, transactions, profiles, etc.). Minimal redundancy.
The tool surface covers most CRUD operations for accounts, credit cards, transactions, and profiles, plus auxiliary features like search, export, and finance summary. Minor gaps exist (e.g., no explicit category creation/deletion), but core workflows are fully supported.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
Query your real net worth, spending, transactions, budgets and portfolio from any MCP client.
Personal finance for AI agents — onboard, import statements, categorize & budget over MCP.
The Ramp MCP server enables users to securely connect Ramp with AI assistants like ChatGPT and Claude to query financial data and take actions using natural language. It transforms Ramp's developer API into a SQL interface that LLMs can query, allowing admins to analyze spend trends, identify cost savings, and run complex SQL analyses on comprehensive datasets (transactions, purchase orders, vendors, users), while all users can manage cards, view transactions, request reimbursements, and get expense policy answers.
Related MCP Servers
- AlicenseBqualityFmaintenanceAn MCP server that lets AI assistants interact with your Lunchmoney data, enabling natural language queries about transactions, budgets, and spending patterns.41727MIT
- FlicenseNot gradedqualityDmaintenanceAn MCP server that enables AI assistants to interact directly with Lunch Money's financial API, allowing users to query transactions, access budget information, and perform financial analysis through natural language.-
- AlicenseBqualityAmaintenanceAn MCP server implementation that provides programmatic access to personal finance data through LunchMoney's API, enabling AI assistants to manage transactions, budgets, categories, and assets.592,361101MIT
- AlicenseNot gradedqualityCmaintenanceA comprehensive MCP server that enables AI assistants to manage Lunch Money finances through 37 tools for transactions, budgets, and accounts. It supports both local stdio and remote HTTP transport modes with secure, encrypted credential storage.173MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/guipmilek/despezzas-mcp-clean-snapshot'
If you have feedback or need assistance with the MCP directory API, please join our Discord server