Skip to main content
Glama

less-annoying-crm

Create a contact or company

lacrm_create_contact
Destructive

Create a new contact (person) or company record. For a person, company_name links them to that company (creating it if needed). Company names must be unique. If assigned_to is omitted, the record is assigned to the API key's own user (one extra GetUser call). Returns { ContactId }. LACRM: CreateContact.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesFull name of the person, or the company's name.
emailNoEmail address(es).
phoneNoPhone number(s).
addressNoAddress(es).
websiteNoWebsite URL(s).
birthdayNoBirthday, yyyy-mm-dd (or 0000-M-D for no year).
job_titleNoJob title (people only).
is_companyNotrue to create a COMPANY record. Default false (a person).
assigned_toNoUserId to assign the record to. Default: the API key's user.
company_nameNoFor a PERSON: the company they work at (created if it does not exist). Not used for company records.
custom_fieldsNoExtra fields keyed by the account's field names exactly as LACRM shows them (e.g. {"Lead Source": "Referral"}). Use lacrm_list_custom_fields to find them. Merged verbatim into Parameters.
background_infoNoThe Background Info text.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior4/5

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

The destructiveHint=true annotation covers the write/irreversibility profile, and the description adds genuinely non-obvious behavior: company names must be unique, an omitted assigned_to triggers an extra GetUser call, and a missing company is created implicitly. The implicit company creation is a real side effect an agent needs to know. It does not describe failure behavior on duplicate company names.

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?

Four tight sentences, front-loaded with the person/company distinction, then the behavioral caveats. The trailing 'LACRM: CreateContact.' is a redundant endpoint label that restates the name rather than earning its place, which keeps this from a 5.

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?

There is no output schema, but the description supplies the return shape ('Returns { ContactId }'), and all 12 parameters are documented in the schema including nested objects. Combined with the noted side effects, an agent has enough to call this correctly; only error/duplicate-handling is unaddressed.

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?

Schema coverage is 100%, so the baseline is 3, but the description adds meaning the schema does not: the person/company branch of company_name, its create-if-missing behavior, and the default-plus-hidden-cost of assigned_to. Those are real semantic additions, though most of the remaining 10 parameters are left to the schema.

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?

States a specific verb and resource ('create a new contact (person) or company record') and immediately distinguishes the two record types, which is the key fork in this tool. An agent can tell it apart from lacrm_edit_contact or lacrm_search_contacts without opening the schema.

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?

It explains the semantics of specific parameters (when company_name applies, what happens if assigned_to is omitted), which implies usage, but never says when to pick this tool over siblings like lacrm_edit_contact or lacrm_search_contacts, and gives no exclusions. Usage is inferable but not spelled out.

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.