Skip to main content
Glama

Contact opslaan

crm_bewaar_contact
DestructiveIdempotent

Maak of werk een contactpersoon bij (upsert, geen dubbelen). Match op e-mail, dan LinkedIn-url, dan telefoon of mobiel (06- en +31-notatie gelden als hetzelfde nummer). Een telefoonnummer alleen is dus genoeg, bv. voor een beller. Zonder e-mail, LinkedIn en telefoon: geef voornaam + achternaam + bedrijf (bedrijf_id of bedrijf). Minstens één van deze sleutels is verplicht. bedrijf mag een naam of domein zijn en wordt zelf ge-upsert.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "crm_bewaar_contact"
  }
}

Input Schema

NameRequiredDescriptionDefault
landNo
taalNo
adresNo
agentNoOptioneel: naam van de agent of het script dat dit doet; wordt als 'door' vastgelegd.
emailNoE-mail
aanhefNo
mobielNo
plaatsNo
bedrijfNoBedrijfsnaam of domein
functieNo
leadbronNo
postcodeNo
telefoonNo
voornaamNo
lifecycleNoLevenscyclus
achternaamNo
bedrijf_idNoBestaand bedrijf-id
lead_statusNoLead-status
linkedin_urlNoLinkedIn-URL
eigenschappenNoEigen velden van dit account (zie het veldregister).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Well beyond the annotations, it discloses the identity-resolution order (email → LinkedIn → phone), phone normalisation rules (06 and +31 treated as equal), duplicate avoidance, and the fact that `bedrijf` is itself upserted. However, for a tool flagged destructiveHint=true it never says what happens to existing fields on an update — whether omitted values are left intact or cleared — which is exactly the behaviour an agent needs before invoking an upsert.

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?

Five dense sentences, front-loaded with the operation and match order before the fallback rules. Every clause carries information an agent needs; the parentheticals ('upsert, geen dubbelen', the 06/+31 note) are short and load-bearing.

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 20-parameter nested mutation tool with no output schema, the description covers the hardest part — how a record is identified and when a call is valid. The remaining gap is update semantics for existing fields, which matters given destructiveHint=true and is not recoverable from the schema.

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 coverage is 40% across 20 parameters, so compensation is needed; the description does add real meaning for the matching keys (email, linkedin_url, telefoon/mobiel) and clarifies that `bedrijf` accepts a name or a domain, plus an implicit 'at least one key required' rule the schema does not encode (required is empty). But the remaining fields — land, adres, aanhef, lifecycle, lead_status, eigenschappen, agent — go undiscussed, and there is no statement about partial vs full 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 in one phrase: 'Maak of werk een contactpersoon bij (upsert, geen dubbelen)'. It immediately differentiates this write/upsert tool from the read-oriented siblings (crm_contact, crm_contacten) and from crm_bewaar_bedrijf by making clear the subject is a person record.

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 gives concrete when-to-use guidance: a phone number alone suffices 'bv. voor een beller', and it states the minimum key requirement (e-mail/LinkedIn/telefoon, otherwise voornaam+achternaam+bedrijf). What is missing is an explicit statement of when to prefer crm_bewaar_bedrijf or whether creating a contact with an embedded `bedrijf` makes a separate company call redundant.

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.

Resources