Skip to main content
Glama

Create contact

crm_create_contact

Create a CRM contact: a named person, with their address, phone numbers and CVR/VAT number. Refuses if the same email or phone already exists, unless allow_duplicate is true - relay the duplicates it names and let the user decide. company is free text here, not a link to a company record. AFTER CREATING, ASK WHETHER IT SHOULD BE ATTACHED TO A DEAL. A contact on its own sits outside the pipeline: it is a deal that carries the contact, through contact_id on crm_create_deal or crm_update_deal. TO ATTACH IT TO A LEAD, set contact_id on the lead with crm_update_lead - the pointer lives there, so one contact can sit behind several leads from the same person over time. BEFORE CREATING FROM A LEAD, CHECK: crm_get_contacts with the lead's email or name, in case the contact already exists. Creating a second one is how a customer ends up in the CRM twice. list_id takes a contact list by name or id, and only lists that exist in this workspace. is_collaborator marks someone you work with rather than sell to.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cityNo
emailNo
phoneNo
titleNo
regionNoState, province or region, where the country uses one.
tax_idNoCompany registration number (CVR / VAT) for the contact's business.
addressNo
companyNoFree text. Contacts are not linked to a company record.
countryNo
list_idNoA contact list in this workspace, by name or id.
owner_idNoEmployee id to own the contact. Defaults to the caller.
zip_codeNo
full_nameYes
phone_extra1NoSecond phone number.
phone_extra2NoThird phone number.
allow_duplicateNoSet true to create despite duplicate email/phone match.
is_collaboratorNoMarks the contact as someone you work with rather than sell to. false removes the mark.

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the annotations, the description discloses important behaviors not implied by readOnlyHint or destructiveHint: it refuses duplicate emails/phones unless allow_duplicate is true, treats company as free text rather than a linked record, and explains that one contact can be referenced by multiple leads. This gives the agent a realistic model of the tool's side effects and constraints.

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?

The description is long, but it front-loads the clear definition and each additional section addresses a real workflow concern: duplicate creation, deal/lead attachment, pre-checks, and list/collaborator semantics. It is slightly redundant with schema descriptions for company, list_id, and is_collaborator, and the ALL-CAPS directives are visually noisy, yet the structure is logical and purposeful.

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?

Given 17 parameters and no output schema, the description covers the essential edge cases: duplicate handling, lead/deal association, pre-creation lookup, and workspace-specific lists. It is complete enough to invoke safely; the only minor gap is that it never explicitly states what the tool returns, but the post-creation instructions imply the agent will know when creation succeeded.

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 53% schema description coverage, the tool description compensates for the most meaningful parameters: allow_duplicate's refusal workflow, list_id's name-or-id resolution, company's non-relational nature, and is_collaborator's distinction between working relationships and sales targets. Some remaining parameters are self-explanatory or already documented in the schema, so it does not need to cover all 17 explicitly.

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 opening sentence gives a concrete verb-resource pair: 'Create a CRM contact: a named person, with their address, phone numbers and CVR/VAT number.' It also distinguishes this tool from crm_create_deal and crm_create_lead by explaining that a contact sits outside the pipeline and that deals or leads carry the contact via contact_id.

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

Usage Guidelines5/5

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

The description gives explicit workflow guidance: check crm_get_contacts before creating from a lead, and ask whether to attach the contact to a deal after creation. It names the exact alternative tools for attaching to deals and leads (crm_create_deal, crm_update_deal, crm_update_lead) and warns against creating duplicate contacts.

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.

TDQS

B3.4/5.0
Disambiguation4/5

Most tools follow a clear resource+action pattern and the descriptions are unusually precise about boundaries. A few near-overlaps remain: projects_get_finance vs projects_get_financials, and notes_create vs crm_log_activity on a deal are both plausible for recording a note on a deal.

Naming Consistency4/5

The domain_prefix_action convention is consistent across nearly all tools, e.g. crm_create_lead, projects_update_risk, timelog_approve_time. Deviations include standalone list_trash, meta tools like whoami/tool_search/tool_invoke, and the confusing projects_get_finance/projects_get_financials pair.

Tool Count1/5

With 105 tools, this far exceeds the 50+ threshold defined as an extreme mismatch. Even for a full ERP/CRM suite, the fine-grained split—39 project tools alone—creates a massive tool-selection surface that is hard for an agent to navigate reliably.

Completeness4/5

The surface covers CRM, projects, tasks, time/expenses, HR, notes, notifications, contracts, and reporting with create/read/update/delete for most primary entities. Minor gaps exist: crm_log_activity has no read-back path, contracts lack delete/restore, and proposals are intentionally read-only, but agents can work around these.