Skip to main content
Glama

Create a contact

create_contact

Adds a contact. Give a phone number or an email, or both. Fails with conflict when a contact already has that phone number; the message includes the existing contact's id.

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": "create_contact"
  }
}

Input Schema

NameRequiredDescriptionDefault
nameNoFull name.
emailNoEmail address.
phoneNoPhone number in E.164 format, for example +14165550134.
localeNoLanguage for the contact's reminders and confirmations: en, fr, es or sr.
timezoneNoIANA time zone, for example America/Toronto.
idempotency_keyNoOptional. A unique value you choose, such as a UUID. Retrying with the same value within 24 hours returns the first result instead of creating a duplicate.

Output Schema

NameRequiredDescriptionDefault
idYesStable identifier (UUID).
nameYes
emailYes
phoneYes
localeYes
passcodeYesThe contact's keypad PIN, which callers type to change appointments when verification_mode is passcode_required: whether there is one, never the PIN itself. null: the contact has no PIN.
timezoneYes
created_atYesISO 8601 timestamp in UTC.
updated_atYesISO 8601 timestamp in UTC.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare this is a non-destructive, non-idempotent write, so the bar is lower; the description still adds real value by naming the failure mode (conflict on duplicate phone number) and stating the error payload carries the existing contact's id. It omits that email collisions are not mentioned and does not restate the 24-hour idempotency-key retry semantics, leaving those to the schema.

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?

Two short sentences, zero filler, with the core action first and the failure behavior immediately after. Every clause carries information an agent needs.

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?

An output schema exists, so return values need not be explained, and the description covers the input requirement and the notable error path. A brief note on how duplicates by email are handled would close the remaining gap for a six-parameter mutation tool.

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: with zero required parameters, it establishes the effective constraint that at least one of phone or email must be supplied. That is a real semantic contribution beyond the structured fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Adds a contact" gives a specific verb and resource, and the conflict note makes the operation's identity concrete. It does not explicitly name get_contact/update_contact/search_contacts, so an agent must infer the create-vs-read-vs-modify split from the sibling names alone.

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?

"Give a phone number or an email, or both" tells the agent what input is needed to make the call succeed, which is genuine usage guidance. It stops short of the more useful routing advice, such as searching for an existing contact first or when to prefer update_contact over creating a duplicate.

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