Skip to main content
Glama

Add contact

crm_add_contact

Record a person at an account — named with a source, or as a gap. Two shapes, nothing in between (CRM-1, CRM-2). Named: name + source required — a name without a source is not usable in a first approach, so it is refused, not warned about. Gap: no name, gap_note required — the role exists and its holder is not publicly known, and that absence is a finding worth recording. Guessing is the only real failure here. Effects: contact created as named or gap.

Input Schema

NameRequiredDescriptionDefault
nameNoThe person — only with a source.
emailNoAs publicly listed or personally shared — the source covers it like everything else (CRM-1).
notesNoWorking notes.
phoneNoSame rule as email: listed or shared, never scraped from a paid enrichment dump without saying so.
titleNoTheir title, as the source states it.
sourceNoWhere the name comes from. Mandatory for a named contact.
gap_noteNoFor a gap: what is missing and what it would take to find out.
role_typeYesThe role in the deal: OPERATIONS OWNER, ECONOMIC SPONSOR, SECURITY GATE…
account_idYesThe account. An existing account id.
linkedin_urlNoThe person's public LinkedIn profile URL — a sourced fact, fine for an agent to record. The connection-path fields are a different matter.
confidence_noteNoHow sure, and of what: "high on the person, medium on the exact title".

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Annotations only declare it is a non-destructive, non-idempotent write; the description adds the important behavioral fact that a name without a source is 'refused, not warned about' — a hard validation failure an agent must anticipate. 'Effects: contact created as named or gap' also confirms the outcome. Duplicate handling and return shape are unstated, so not a 5.

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?

Front-loaded with the two-shape model before the rules, and every sentence carries either a mode definition or a validation rule. The prose is stylized ('a finding worth recording') but does not pad length meaningfully for an 11-parameter tool.

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?

Covers the conditional parameter contract, the refusal behavior, and the creation effect — sufficient for an 11-param mutation with no output schema. What is missing is how duplicates or existing contacts at the same account are handled, and what the tool returns on success.

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 real semantics the schema cannot express: source becomes conditionally mandatory whenever name is present, and gap_note is mandatory only when name is absent. That conditional-requirement logic is the critical piece for correct invocation.

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 — 'Record a person at an account' — and immediately defines the only two valid shapes (named with source, or gap with gap_note). This is far more precise than the sibling crm_update_contact or crm_get_contact, and an agent can distinguish the create path 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 Guidelines4/5

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

Gives explicit conditions for each mode: named requires name + source, gap requires gap_note, and 'Guessing is the only real failure here' draws a clear line about what not to do. It does not name sibling tools (e.g., when to use crm_update_contact instead), which keeps it from a 5.

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.