Skip to main content
Glama

update_projection

Update projected values for specific accounts and months in the financial plan. Use this when the user asks to change a projection, forecast, or budget number. Empty books are created on first write (the named account is added as CASH OUT unless the name is clearly revenue). Only current and future months can be updated — past months with bank actuals are protected. IMPORTANT: If an account already has non-zero values, you must specify mode="add" to add on top of existing values, or mode="set" with force=true to replace. Without these, the tool will return the current values and ask for clarification.

[write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
modeNoHow to apply the value. "set" = replace existing value (default). "add" = add on top of existing value.
forceNoWhen mode="set", skip the overwrite confirmation for non-zero values. Use only when user explicitly wants to replace existing values.
updatesYesArray of month+value pairs
companyIdYesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
fiscal_yearNoFiscal year to update (default: current year)
account_nameYesAccount name to update. Matches an existing line, or creates it on first write (CASH OUT unless the name is clearly revenue).

TDQS

A5/5.0
Behavior5/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It does this exceptionally well: it discloses that empty books are created on first write and the account is added as CASH OUT unless clearly revenue; that only current and future months are updatable, while past months with bank actuals are protected; and that an approval may be required on first use (write-tier). It also explains the mode and force parameters. All behavioral nuances are covered, exceeding the required transparency.

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?

Though the description is long, every sentence carries essential information. It is well-structured: the main purpose is stated first, then usage conditions, then critical behavioral notes, then approval context. The use of capitalization for the IMPORTANT note draws attention to a critical rule. There is no redundancy—each sentence contributes to the agent's ability to call the tool correctly.

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 tool's complexity (6 parameters, 3 required, mode/force semantics, creation behavior, protected months, approval flow), the description covers all aspects needed for correct invocation. It explains not just the parameters but also edge cases (empty books, past months), and provides the approval expectations. With no output schema, it doesn't need to explain return values; but the description even hints at what happens without proper mode (returns current values). It is complete for an agent to use the tool effectively.

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

Parameters5/5

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

Schema description coverage is 100%, so the baseline is 3. However, the description adds substantial meaning beyond the schema: it explains that account_name can create a new account on first write and the default CASH OUT treatment; it explains the significance of mode (set vs add) and force (skipping confirmation) in the context of existing values; it clarifies the month format implicitly via the schema but adds context about fiscal_year. The description adds critical semantic guidance that is not derivable from the schema alone, fully compensating for any gaps.

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 the tool's purpose: 'Update projected values for specific accounts and months in the financial plan.' It uses a specific verb ('update'), a specific resource ('projected values' in the financial plan), and differentiates it from the sibling get_projections by focusing on modification. It also names the scope (specific accounts and months) and the context (financial plan). This is unambiguous.

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

Usage Guidelines5/5

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

The description explicitly states when to use it: 'Use this when the user asks to change a projection, forecast, or budget number.' It goes further by providing critical usage rules: empty books created on first write, protection of past months, and the requirement to specify mode='add' or mode='set' with force=true for non-zero values. It also warns about the behavior without those modes (returns current values and asks for clarification). This is comprehensive and leaves no room for error.

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.6/5.0
Disambiguation4/5

The tool set is heavily disambiguated by detailed routing descriptions, domain prefixes, and lifecycle verbs, so most tools have a clear intended purpose. However, at 297 tools there are still close pairs and overlapping decision surfaces (e.g., approval workflows, 'what should I work on' readers, multiple finance/ads readers) that require careful description reading to avoid misselection.

Naming Consistency4/5

Naming is predominantly consistent snake_case verb_noun with strong domain prefixes like shopify_, x_, posthog_, and list_/create_/update_ patterns. Minor inconsistencies exist, such as several collection-returning tools using get_ (get_team_members, get_icps, get_okrs) instead of list_, and some generate_ vs create_ vs draft_ verbs, but the pattern is still predictable overall.

Tool Count1/5

297 tools is an extreme outlier and far beyond a usable MCP tool surface. Even a large suite has no justification for this count in one server; the agent would struggle to select among hundreds of similarly descriptive tools, and the natural 3-15 tool range is exceeded by nearly 20x.

Completeness4/5

The individual domains represented — OKRs, CRM/leads, Shopify, content pipelines, ads, PostHog, team hiring, knowledge, finance, and session management — are covered remarkably well with full lifecycle patterns. Minor gaps exist, such as no full deal CRUD, no delete for several Google/Shopify artifacts, and some analytical surfaces being read-heavy, but most workflows can be completed without dead ends.

Resources