Skip to main content
Glama

Create a CRM custom field

create_custom_field

Define a new custom field for contacts (text, number, date, boolean yes/no, or select with a list of options) so the bot and the team can store a value per person. Returns every field afterwards, including the new one's slug, which set_contact_field uses to write a value. Check list_custom_fields first: a field whose slug already exists is left as it was. It only adds the definition; no contact is changed.

Input Schema

NameRequiredDescriptionDefault
nameYesName shown to the team, e.g. "Birthday"; the slug is derived from it.
typeYestext, number, date, boolean (yes/no) or select (one of `options`).
optionsNoFor type select: the allowed values (at least one).
workspaceIdNoWorkspace to work on (an id from list_workspaces). Not needed when this connection is tied to one workspace, or when you pass an account: the account's workspace is used.
idempotencyKeyNoOptional. A unique id for this action (16-128 chars: letters, digits, _ : . -). If you are unsure whether a call went through (timeout, network error), repeat it with the SAME idempotencyKey and the same arguments: you get the original result and nothing is done twice.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • addedInput schema / properties / name / description
      Added value: +"Name shown to the team, e.g. \"Birthday\"; the slug is derived from it."
    • changedInput schema / properties / options / description
      Previous value: -"Required for type=select."New value: +"For type select: the allowed values (at least one)."
    • addedInput schema / properties / type / description
      Added value: +"text, number, date, boolean (yes/no) or select (one of `options`)."
  2. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false and destructiveHint=false, but the description adds real context beyond them: the operation is idempotent with respect to existing slugs and does not mutate contacts. It doesn't cover permission or auth requirements, which keeps it short of 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.

Conciseness5/5

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

Three sentences with no filler. Purpose and type enumeration come first, then the prerequisite check, then the scope clarification — appropriately front-loaded for an agent scanning candidates.

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 covers the return value in one clause (all fields including the new slug) and explains how that slug feeds set_contact_field. Combined with the full schema coverage and annotations, an agent has everything needed to call this correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so all five parameters are documented in the schema itself, including the enum values, options constraint, workspaceId fallback, and idempotencyKey format. The description restates the type list and the slug-derivation behavior but adds little that the schema doesn't already say; baseline 3 applies.

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 ("Define a new custom field for contacts") and enumerates the five supported types with a parenthetical gloss on each. An agent can distinguish this from sibling tools like list_custom_fields or set_contact_field without opening any schema.

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?

Explicitly routes the agent: "Check list_custom_fields first" and names set_contact_field as the downstream tool that writes values using the returned slug. It also states the no-op condition (existing slug is left as it was) and the scope boundary ("only adds the definition; no contact is changed").

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