Skip to main content
Glama
CodeMill-Solutions

yuki-mcp

upsert_contact

Create or update a customer or supplier contact in Yuki by matching the contact code; updates existing records or creates new ones, returning the contact ID.

Instructions

Create or update a contact (customer or supplier) in Yuki. When contactCode matches an existing record it will be updated; otherwise a new contact is created. Returns the Yuki response with the contact ID.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bicNoBIC / SWIFT code
cityNo
phoneNoMain phone number
mobileNo
websiteNo
zipcodeNo
domainIdNoDomain ID (GUID). Defaults to YUKI_DOMAIN_ID env var.
fullNameYesFull company or person name
lastNameNo
cocNumberNoKvK / Chamber of Commerce number
firstNameNo
vatNumberNoVAT / BTW number (e.g. 'NL123456789B01')
middleNameNo
bankAccountNoIBAN bank account number
contactCodeNoUnique contact code. Used to identify and update existing contacts.
contactTypeNoRole: Debtor = customer, Creditor = supplier, Both = customer & supplierBoth
countryCodeNoISO 3166-1 alpha-2 country codeNL
addressLine1No
addressLine2No
emailAddressNo
Behavior3/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 explain the create/update logic and the return value, which is useful. However, it omits crucial details such as whether updates are partial or full replacements, what happens to omitted fields, and error handling, leaving ambiguity for a 20-parameter write operation.

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?

The description is three sentences, front-loaded with the primary purpose, and every sentence contributes value: the operation, the conditional logic, and the return value. There is no redundant or filler content.

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?

For a tool with 20 parameters and no output schema, the description covers the core upsert concept and the return value but leaves open important behavioral details such as update semantics (partial vs full), required fields for creating a new contact (only fullName is required in schema), and any side effects. It is minimally viable but has clear gaps in operational guidance.

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

Parameters3/5

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

Schema description coverage is 50%, meaning half the parameters lack descriptions in the schema. The description adds meaningful context for contactCode (that it identifies existing records) and implicitly maps 'customer or supplier' to the contactType parameter. However, it does not compensate for the lack of descriptions for the other undocumented parameters, and overall adds limited parameter-level detail.

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 specifies the operation ('Create or update a contact'), the target resource ('in Yuki'), and the distinguishing behavior based on contactCode. It explicitly differentiates the tool from its read-only siblings by stating it performs writes and explains the upsert nature.

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 provides clear context for use: it indicates when a record is updated vs created based on contactCode. It does not explicitly state exclusions or alternatives, but the upsert behavior itself gives sufficient usage guidance, especially with no competing contact-creation tools among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/CodeMill-Solutions/yuki-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server