Skip to main content
Glama

Lovie Company Formation

Upsert Journal Entry

accounting_upsert_journal_entry
Idempotent

Create or replace a double-entry journal entry (manual adjustment or per-transaction override). Lines must balance: total debits == total credits, 2-64 lines, positive decimal amounts with the sign carried by side. Pick gl_account_id values from accounting_get_chart_of_accounts (postable accounts only). An entry with transaction_id replaces that transaction's derived entry and is preserved across re-enrichment. The entry is recorded as source=user and status=POSTED regardless of what is supplied, and every save is written to the audit log.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
entryYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
skippedNo
journalEntryIdYesUUID value wrapper.

TDQS

A4.7/5.0
Behavior5/5

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

Beyond annotations (idempotentHint, destructiveHint), the description discloses critical behavior: lines must balance, source is forced to user and status to POSTED, every save is audit-logged, and entries with transaction_id replace derived entries and survive re-enrichment. These are valuable contextual details not present in annotations or schema.

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?

Three dense sentences, front-loaded with purpose, then constraints, then behavioral traits. Every sentence provides necessary information with zero filler.

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?

For a complex nested-parameter tool, the description covers the key aspects: balance rules, line limits, amount formatting, account selection, transaction override semantics, and forced fields. An output schema is present, so return values need no explanation. The description is sufficiently complete for an agent to use 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 description coverage is 0%, so the description carries a heavy burden. It adds significant meaning to the 'entry' object: constraints on lines (2-64, debits == credits), amount format (positive decimal with side carrying sign), glAccountId selection from chart of accounts, and transactionId behavior. Some fields like entryDate, memo, currencyCode are not elaborated, but the most critical semantics are covered.

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 specifies a clear verb and resource: 'Create or replace a double-entry journal entry', with explicit scope ('manual adjustment or per-transaction override'). It distinguishes this tool from siblings like accounting_delete_journal_entry and accounting_get_journal_entry_by_transaction.

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 gives clear usage context by stating when to use the tool (manual adjustment or per-transaction override) and even points to accounting_get_chart_of_accounts for selecting gl_account_id. However, it does not explicitly mention when not to use it or name alternative tools for similar operations, just missing that explicit exclusion.

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

C2.5/5.0
Disambiguation1/5

Multiple tool pairs are nearly identical (formation_extract_cap_table / formation_extract_cap_table_ocr; formation_start_formation / formation_create_formation), and several tools lack descriptions, making selection ambiguous. The scale of 202 tools with overlapping summaries (e.g., multiple cap-table summary tools) compounds the confusion.

Naming Consistency3/5

Dominant snake_case `module_verb_noun` pattern, but with notable deviations: `captable_send_safe_for_signature` uses an inconsistent abbreviation, `check_company_name_availability` lacks a module prefix, and `get_list_` vs `list_` prefixes are mixed. Readable but not fully consistent.

Tool Count1/5

202 tools is far beyond any reasonable surface for a single server, even a broad platform. The sheer number overwhelms and makes tool discovery impractical; many tools are peripheral (ads metrics) to the core formation purpose.

Completeness4/5

The domain appears well covered: formation flows, cap-table lifecycle (import, close, simulate), accounting (journal entries, periods, schedules), cards, documents, and transactions all have CRUD or lifecycle operations. Minor gaps exist (e.g., no card deletion, no counterparty creation), but they are unlikely to cause dead ends.