Skip to main content
Glama

Add a client

client_add

Store a client so invoice_create can refer to them by name. Re-adding the same name updates the stored address, email and VAT id; a record identical to a stored one is refused, naming the id that already holds it.

Input Schema

NameRequiredDescriptionDefault
nameYes
emailNo
vat_idNoClient VAT id, printed for reverse-charge invoices
addressNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • removedInput schema / additionalProperties
      Removed value: -false
  2. First observed

TDQS

A4.4/5.0
Behavior4/5

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

The annotations only tell us this is a non-destructive, non-idempotent write; the description goes well beyond that by disclosing upsert semantics ("re-adding the same name updates the stored address, email and VAT id") and the conflict path (an identical record is refused with the id that holds it). It leaves one meaningful gap: whether fields omitted on a re-add are cleared, preserved, or ignored.

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?

Two sentences, and both earn their place: the first states purpose and downstream consumer, the second states upsert and conflict behavior. Purpose is front-loaded and nothing is padded.

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

Completeness4/5

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

For a mutation tool with no output schema, low schema coverage and four parameters, the description supplies the essential behavioral contract: name as identifier, update-on-re-add, and refusal of exact duplicates with the offending id. The remaining gap is the return/identifier behavior on success and how omitted fields are treated on update.

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 only 25%, so the description carries real weight — and it does name all four fields (name, address, email, VAT id) and establishes that "name" is the key used for lookup and for invoice_create references. It does not add format or validation detail for vat_id/email beyond the single schema note, nor clarify partial-update semantics.

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 opens with a specific verb and resource ("Store a client") and immediately ties it to a downstream sibling ("so invoice_create can refer to them by name"). That makes it trivially distinguishable from client_list, client_delete and the invoice tools without opening any schema.

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?

It states the condition that motivates calling it — creating a client that a later invoice_create can reference by name — and discloses the re-add path. What's missing is an explicit exclusion (e.g. use client_list to look up, client_delete to remove), so it stops short of full when/when-not routing.

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.