Skip to main content
Glama

Atualizar perfil

update_profile
Idempotent

Atualiza o perfil do usuário autenticado (parcial — campo omitido ou string vazia mantém o valor atual; não há como limpar um campo já preenchido por esta tool, exceto hasBusiness que aceita true/false explícito). Não atualiza email, plano ou dados de assinatura (não expostos aqui).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cepNoCEP do usuário
nameNo
phoneNo
pictureNoURL ou data URI da foto de perfil
currencyNoMoeda padrão do usuário (ISO 4217, ex: 'BRL')
locationNoCidade/localização do usuário
coverImageNoURL ou data URI da imagem de capa
occupationNoProfissão/ocupação
hasBusinessNoSe o usuário tem um negócio/CNPJ associado ao perfil
businessCnpjNoCNPJ do negócio
businessNameNoNome do negócio, quando hasBusiness = true
menuPreferenceNoPreferência de layout/menu do app
businessWebsiteNoSite do negócio

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
idNo
cepNo
nameNo
planNo
slugNo
typeNo
emailNo
phoneNo
auth0IdNo
pictureNo
currencyNo
locationNo
createdAtNo
updatedAtNo
occupationNo
hasBusinessNo
businessCnpjNo
businessNameNo
menuPreferenceNo
businessWebsiteNo
onboardingCompletedNo

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed11 schema fields changed
    • addedInput schema / properties / businessCnpj
      Added value: +{
      +  "description": "CNPJ do negócio",
      +  "type": "string"
      +}
    • addedInput schema / properties / businessName
      Added value: +{
      +  "description": "Nome do negócio, quando hasBusiness = true",
      +  "type": "string"
      +}
    • addedInput schema / properties / businessWebsite
      Added value: +{
      +  "description": "Site do negócio",
      +  "type": "string"
      +}
    • addedInput schema / properties / cep
      Added value: +{
      +  "description": "CEP do usuário",
      +  "type": "string"
      +}
    • addedInput schema / properties / coverImage
      Added value: +{
      +  "description": "URL ou data URI da imagem de capa",
      +  "type": "string"
      +}
    • addedInput schema / properties / currency / description
      Added value: +"Moeda padrão do usuário (ISO 4217, ex: 'BRL')"
    • addedInput schema / properties / hasBusiness
      Added value: +{
      +  "description": "Se o usuário tem um negócio/CNPJ associado ao perfil",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / location
      Added value: +{
      +  "description": "Cidade/localização do usuário",
      +  "type": "string"
      +}
    • addedInput schema / properties / menuPreference
      Added value: +{
      +  "description": "Preferência de layout/menu do app",
      +  "type": "string"
      +}
    • addedInput schema / properties / occupation
      Added value: +{
      +  "description": "Profissão/ocupação",
      +  "type": "string"
      +}
    • addedInput schema / properties / picture
      Added value: +{
      +  "description": "URL ou data URI da foto de perfil",
      +  "type": "string"
      +}
  2. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already cover write and idempotency hints, but the description adds crucial behavioral nuance: the partial-update rule, the no-clear limitation, and the special exception for hasBusiness. This prevents misuse, such as attempting to null out fields via empty strings, and goes well beyond what structured annotations convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, with the most critical caveat (partial update, no clearing) front-loaded and the exclusions following. There is no filler; every clause adds actionable information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the 13 optional parameters, the partial-update behavior, and the presence of an output schema, the description covers the essential behavioral contract. It explains how updates behave, what cannot be updated, and the clearing limitation, making it complete enough for an agent to invoke the tool correctly.

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

Parameters4/5

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

Schema coverage is 85%, so most parameter meanings are in the schema. The description adds a global semantic that applies to all parameters: omission or empty string leaves the current value unchanged, and only hasBusiness can be explicitly toggled. This is significant context not present in the schema, elevating it above the baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Atualiza o perfil do usuário autenticado' (updates the authenticated user's profile) with a specific verb and resource. It also differentiates itself from siblings by explicitly excluding email, plan, and subscription data, making the tool's scope unambiguous.

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

Usage Guidelines4/5

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

The description explains the partial-update semantics (omitted or empty string keeps the current value) and the inability to clear fields, which directly guides correct invocation. It also states what the tool does NOT update (email, plan, subscription), giving clear when-not-to-use guidance, though it does not name alternative tools explicitly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A3.7/5.0
Disambiguation3/5

The tools are individually well-described and many cross-reference their closest neighbors, but the set contains several easily confused clusters: create_transaction/confirm_new_transaction, update_equity/add_equity_valuation, the invoice tools (current_invoice, next_invoice, list_pending_invoices, get_invoice), and the many analytics/projection tools. The descriptions help a careful reader, but with 81 tools an agent is likely to misselect among these overlapping surfaces.

Naming Consistency3/5

CRUD operations consistently use create_/list_/update_/delete_ plus a resource noun, and all names are snake_case. However, there is a large second group of noun-phrase analytics tools (cashflow_forecast, spending_projection, categories_insights, transport_routine) plus one-off verbs such as can_afford, pay_invoice, and validate_current_invoices, so the naming convention is mixed even though it remains readable.

Tool Count1/5

81 tools is far beyond the practical MCP tool surface and exceeds the rubric's 50+ extreme-mismatch threshold. Even if each tool maps to a real finance endpoint, the volume overwhelms an agent's context window and makes selection much harder.

Completeness4/5

The server covers the finance lifecycle extensively: accounts, cards, invoices, transactions, recurring rules, budgets, goals, debts, equities, categories, tags, cost centers, profile, projections, and insights all have working read/write paths. Minor gaps remain, such as no update/delete for tags and no direct update/delete for system-generated invoices, but agents can usually work around these.