Skip to main content
Glama
uol-mcp

uol-mcp

by jakubbegera

Get contact

get_contact
Read-onlyIdempotent

Retrieve a contact's full details—addresses, bank accounts, and default payment terms—using a contact ID from search results or an invoice.

Instructions

One contact with all addresses, bank accounts and default payment terms.

Input Schema

NameRequiredDescriptionDefault
contact_idYescontact_id, e.g. from search_contacts or an invoice

Output Schema

NameRequiredDescriptionDefault
cityYes
nameYes
noteYes
emailYes
vatinYesDIČ
hiddenYes
countryYes
addressesYes
vat_payerYes
contact_idYesUsable with get_contact and as buyer_id / seller_id / customer_id filters
external_idYes
bank_accountsYes
company_numberYesIČO
taxable_personYesBusiness (osoba povinná k dani) vs private person
unreliable_payerYesFlagged as nespolehlivý plátce DPH
days_till_due_dateYesDefault payment term in days

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.6.1

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive and open-world, so safety is covered. The description adds what the response contains (addresses, bank accounts, default payment terms), which is useful payload context, but says nothing about lookup failure behavior for an unknown contact_id. Since an output schema exists, omitting return formatting is acceptable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One short, front-loaded sentence fragment with no filler. It is efficient, though the fragment form leaves the action unstated rather than making the sentence tighter.

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 single-parameter read tool with an output schema and full annotation coverage, most of the agent's needs are met by structured fields. The description covers payload scope but not the retrieval verb or fallback behavior when no contact matches.

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 100% and the single required contact_id is documented with sourcing hints, so the schema does the heavy lifting. The description adds only the implicit signal that contact_id resolves to exactly one record. Baseline 3 applies.

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

Purpose3/5

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

The description is a noun phrase naming the resource and its payload ('One contact with all addresses, bank accounts and default payment terms') rather than a verb+resource statement, so retrieval must be inferred from the tool name. It does implicitly differentiate from the list-oriented sibling search_contacts by saying 'One contact', but never states that explicitly.

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

Usage Guidelines2/5

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

There is no guidance on when to call this versus search_contacts or the invoice tools, and no mention of what contact_id source to prefer. The only hint is inside the schema ('e.g. from search_contacts or an invoice'), not the description.

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