Skip to main content
Glama

Log a lead

create_lead

Record an enquiry that arrived off-platform: a walk-in, a referral, a card taken at an event. Needs at least one of name, email or phone. The source is always "manual" and cannot be set — do not use this to backfill a lead that really came from a call, a form or an ad, because source drives attribution and reporting. The matching contact is created or linked automatically IN ALMOST EVERY CASE, and the result tells you when it was not. contact_linked false means the lead IS saved but no contact was linked to it, so it is on nobody's timeline and is invisible to contact search. THERE IS NO TOOL THAT CAN ATTACH IT AFTERWARDS, so never tell the user it can be fixed. Do not retry create_lead either, that leaves a duplicate lead behind even when it succeeds. Report it plainly. To preserve the enquiry itself, call create_contact for the same person and then log_activity on that contact with what they wanted: that puts the enquiry on their timeline, which the orphaned lead never will. create_contact alone does not rescue this lead. No new-lead alert is sent. The message you send is recorded as your team's internal note about this person, never as something they wrote: the AI reply draft is told not to quote it, and get_lead, list_leads and get_contact all return it with its authorship attached. It is still your own note, so write it for your team and assume a colleague will read it on the lead's record.

Input Schema

NameRequiredDescriptionDefault
nameNoThe person name
emailNoEmail address
phoneNoPhone number, any format
messageNoA short note for your own team on what they want. This is stored and surfaced as YOUR note about the person, never as their own words, so it is never quoted back to them: write it plainly rather than trying to phrase it as a quote.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only say this is a non-read-only, non-destructive write; the description supplies the real behavioral payload: the contact is auto-created or linked 'IN ALMOST EVERY CASE', contact_linked false means the lead is saved but orphaned and no tool can attach it later, retrying produces duplicates even on success, and no new-lead alert fires. It also discloses that the message is stored as the team's internal note and is surfaced with authorship attached in get_lead, list_leads and get_contact — none of which is derivable from the annotations or schema.

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

Conciseness3/5

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

The critical scope constraint is front-loaded, but the orphaned-lead warning is restated three times ('contact_linked false means...', 'THERE IS NO TOOL THAT CAN ATTACH IT AFTERWARDS', 'create_contact alone does not rescue this lead') and the message-authorship point is also repeated. The emphasis-by-capitals plus repetition inflates length beyond what the content requires.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the burden of the return value and does so by explaining contact_linked false in concrete terms (lead saved, no timeline, invisible to contact search). Combined with the mandatory source behavior, duplicate-on-retry warning and note-authorship disclosure, an agent has everything needed to call this correctly and to report the outcome honestly.

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 schema already documents all four fields and the message semantics. The description still adds a cross-field constraint not present in the schema — 'Needs at least one of name, email or phone' — while the schema declares zero required parameters, which is genuinely load-bearing information for an agent.

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 and immediately narrows scope: 'Record an enquiry that arrived off-platform: a walk-in, a referral, a card taken at an event.' It also names the forbidden use case (backfilling leads that 'really came from a call, a form or an ad'), which cleanly separates it from form/call/ad ingestion paths and from create_contact.

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?

Explicit when-to-use (off-platform enquiry), explicit when-not (backfill from a call, form or ad) with the reason (source drives attribution and reporting), and an explicit alternative workflow when the lead is orphaned: create_contact then log_activity. It even rules out a tempting wrong fix ('create_contact alone does not rescue this lead').

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