Skip to main content
Glama

e-Boekhouden MCP by usefulapi

Create a relation

eboekhouden_create_relation
Destructive

Create a new relation (customer or supplier) in the administration. Only name is required; the code is generated when omitted. Returns the new id and code. POST /v1/relation.

Input Schema

NameRequiredDescriptionDefault
bicNo
cityNo
codeNoRelation code (max 15; generated when empty on create).
ibanNo
nameYesThe (company) name (max 100).
noteNo
typeNoBusiness (B, default) or Private (P).
genderNom = male, v = female, a = department.
addressNo
contactNoContact person.
countryNo
websiteNo
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

B3.3/5.0
Behavior3/5

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

Annotations only supply a title and destructiveHint=true, so the description carries most of the behavioral burden. It adds useful facts beyond annotations: the code is auto-generated when omitted, the call returns the new id and code, and the underlying endpoint is POST /v1/relation. However, it says nothing about authentication needs, whether a duplicate name is rejected, or what side effects creation has.

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 short sentences, zero filler, and the core purpose is front-loaded ahead of the parameter rule and return/endpoint detail. Every sentence contributes something an agent can act on.

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

Completeness3/5

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

There is no output schema, and the description does cover the return value ('the new id and code'), which is the key completeness item. For a 23-parameter mutation with thin annotation coverage, though, the description leaves most fields and all permission/failure behavior undocumented, so it is only minimally sufficient.

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

Parameters2/5

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

With 23 parameters and only 43% schema description coverage, the description would need to compensate for a large documentation gap. It only addresses two fields ('only name is required', 'code generated when omitted'), and the required/auto-generation facts are already implied by the schema's required array and the code field description, leaving roughly twenty fields such as bic, iban, ledger_id and term_of_payment unexplained.

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 ('Create a new relation') and clarifies the entity scope by naming the two subtypes (customer or supplier) in the administration. It is clearly distinguishable from update_relation and list_relations by the verb, though it does not explicitly contrast itself with those siblings.

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?

Usage is only implied by the verb: an agent can infer this is for new relations rather than edits or lookups. There is no explicit when-to-use guidance, no mention of prerequisites (e.g. that ledger_id comes from list_ledgers), and no pointer to update_relation as the alternative for existing records.

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.