Skip to main content
Glama
thenavidm
by thenavidm

Create Contact

create_contact
Destructive

Add a new contact to Calendly with name, emails, phone numbers, company, and custom fields; set confirm=true to authorize the write.

Instructions

Create Contact. Changes Calendly state and requires confirm=true for the specific requested action. Required scopes: contacts:write.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cityNo
nameNo
stateNo
emailsNoThe user's email addresses. Max 10.
accountNoNamed private Calendly account; selects credentials, not an organization URI.
companyNo
confirmNoMust be true for the specific user-requested write.
countryNo
payloadNoComplete JSON request body instead of body flags. Supports nested booking, contact, availability and nullable fields.
linkedinNo
timezoneNo
job_titleNo
payload_fileNoRegular local JSON body file, at most 5 MB. Cannot be mixed with body flags or payload.
custom_fieldsNoCustom field values to set on the contact. Each item requires a `uuid` (the custom field definition identifier) and a `value`; any other keys (such as `label`) are ignored. The entire request is rejected if any `uuid` is unknown, any `value` is the wrong type for its field (including an array for a scalar field or a scalar for an array field), or any `single_select` `value` is not one of the field definition's option `uuid`s.
phone_numbersNoThe user's phone numbers. Max 10.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv2.0.0

TDQS

C2.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=true, openWorldHint=true, and idempotentHint=false, covering the safety profile. The description adds that it 'Changes Calendly state', requires confirm=true, and lists required scopes. This provides useful behavioral context beyond annotations, but it lacks details on rate limits or side effects. With annotations covering the safety profile, a 3 is appropriate—the description adds some value but not rich behavioral context.

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 description is brief—three short sentences. It is front-loaded with the action, then adds the confirmation requirement and scopes. However, it could be more structured and informative without being verbose. It is adequately sized but lacks detail.

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

Completeness2/5

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

Given the complexity of the tool (15 parameters, nested objects, no output schema) and the low schema description coverage (47%), the description is incomplete. It does not explain the payload structure, the difference between body flags and payload, or the required scopes in context. It mentions required scopes but not how to obtain them. Contextual completeness is low.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 47%, meaning many parameters are undocumented in both the schema and the description. The description adds no information about any parameters besides mentioning confirm=true, which is already described in the schema. With low coverage, the description should compensate but fails to do so.

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?

The description states a specific verb+resource combination ('Create Contact') that clearly identifies the operation. However, it does not differentiate from sibling tools like create_invitee or provide any additional context beyond what the title already conveys. It's clear but lacks sibling differentiation.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as create_invitee or update_contact. It mentions a required confirmation but does not explain the context or prerequisites for invocation. No explicit when/when-not/alternatives are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.