Skip to main content
Glama

e-Boekhouden MCP by usefulapi

Update a relation

eboekhouden_update_relation
DestructiveIdempotent

Change fields of an existing relation. The tool first reads the relation, then sends its current values with your changes on top (the API requires name on every update), so fields you do not pass keep their values. This overwrites the current values of the fields you pass. GET + PATCH /v1/relation/{id}.

Input Schema

NameRequiredDescriptionDefault
idYesThe relation id (from eboekhouden_list_relations).
bicNo
cityNo
codeNoRelation code (max 15; generated when empty on create).
ibanNo
nameNoThe (company) name (max 100).
noteNo
typeNoBusiness (B, default) or Private (P).
genderNom = male, v = female, a = department.
addressNo
contactNoContact person.
countryNo
websiteNo
inactiveNoMark the relation inactive (true) or active (false).
ledger_idNoLedger id of this relation (from eboekhouden_list_ledgers).
salutationNo
vat_numberNo
postal_codeNo
phone_numberNo
email_addressNo
term_of_paymentNoDefault payment term in days.
mobile_phone_numberNo
email_address_invoiceNoAddress invoices are sent to.
email_address_reminderNoAddress payment reminders are sent to.
company_registration_numberNoChamber of Commerce (KvK) number; digits only.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.2/5.0
Behavior5/5

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

Goes well past the idempotentHint/destructiveHint annotations by disclosing the read-modify-write implementation, the fact that the API requires name on every update, that unpassed fields retain values, and that passed fields are overwritten. That is exactly the mutation behavior an agent needs before invoking.

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 tight sentences: purpose, then semantics of the merge, then the underlying endpoint. No filler, and the most decision-relevant fact (unpassed fields survive) is front-loaded.

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 25-parameter mutation tool with no output schema, the description supplies the missing behavioral contract: partial update semantics, the name requirement, and destructive scope. Nothing essential to invoking it correctly is missing.

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?

With only 48% schema description coverage across 25 parameters, the description carries real weight: it explains that name must effectively be supplied on every update even though the schema lists only id as required, and that omitted fields are preserved. Many of the remaining 25 fields (city, iban, address) are self-evident, but the partial-update contract is a meaningful addition.

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

Purpose4/5

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

States a specific verb and resource ("Change fields of an existing relation") and names the endpoint (GET + PATCH /v1/relation/{id}), which the siblings create_relation/get_relation/list_relations do not. It implicitly separates itself from creation by saying "existing relation", but never names those siblings explicitly.

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

Usage Guidelines3/5

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

It gives clear context for the partial-update case (fields not passed keep their values), but offers no explicit when-to-use/when-not guidance and never routes the agent to create_relation for new records or get_relation for reads. Usage is implied rather than instructed.

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.