Skip to main content
Glama

batch_create_contacts

Create multiple contacts at once in bulk. Do not include sensitive personal data (health, financial, government ID, payment card, passwords).

Input Schema

NameRequiredDescriptionDefault
dry_runNoValidate and show what would be created without creating anything
list_idYesList ID for all contacts
contactsYesArray of contact objects

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • changedInput schema / properties / contacts / description
      Previous value: -"Array of contact objects,required"New value: +"Array of contact objects"
    • changedInput schema / properties / contacts / items / properties / custom_fields / description
      Previous value: -"Custom field values. Only keys returned by list_custom_fields. Values: text, number, or date (YYYY-MM-DD). Do not include sensitive personal data (health, financial, government ID, payment card, passwords)."New value: +"Custom field values, keyed by the field ID, name or key shown by list_custom_fields. Values: text, number, or date (YYYY-MM-DD). Do not include sensitive personal data (health, financial, government ID, payment card, passwords)."
    • changedInput schema / properties / contacts / items / properties / email / description
      Previous value: -"Contact email address,required"New value: +"Contact email address"
    • changedInput schema / properties / list_id / description
      Previous value: -"List ID for all contacts,required"New value: +"List ID for all contacts"
  2. Changed2 schema fields changed
    • removedInput schema / properties / api_key
      Removed value: -{
      -  "description": "MailerCloud API key",
      -  "type": "string"
      -}
    • addedInput schema / properties / dry_run
      Added value: +{
      +  "description": "Validate and show what would be created without creating anything",
      +  "type": "boolean"
      +}
  3. Changed20 schema fields changed
    • addedInput schema / properties / contacts / items / properties / city / description
      Added value: +"City"
    • addedInput schema / properties / contacts / items / properties / company_name / description
      Added value: +"Company name"
    • removedInput schema / properties / contacts / items / properties / contact_type
      Removed value: -{
      -  "type": "string"
      -}
    • addedInput schema / properties / contacts / items / properties / country / description
      Added value: +"Country"
    • addedInput schema / properties / contacts / items / properties / custom_fields / description
      Added value: +"Custom field values. Only keys returned by list_custom_fields. Values: text, number, or date (YYYY-MM-DD). Do not include sensitive personal data (health, financial, government ID, payment card, passwords)."
    • addedInput schema / properties / contacts / items / properties / department / description
      Added value: +"Department"
    • addedInput schema / properties / contacts / items / properties / email / description
      Added value: +"Contact email address,required"
    • addedInput schema / properties / contacts / items / properties / first_name / description
      Added value: +"First name"
    • removedInput schema / properties / contacts / items / properties / id
      Removed value: -{
      -  "type": "string"
      -}
    • removedInput schema / properties / contacts / items / properties / industry
      Removed value: -{
      -  "type": "string"
      -}
    • addedInput schema / properties / contacts / items / properties / job_title / description
      Added value: +"Job title"
    • addedInput schema / properties / contacts / items / properties / last_name / description
      Added value: +"Last name"
    • removedInput schema / properties / contacts / items / properties / lead_source
      Removed value: -{
      -  "type": "string"
      -}
    • removedInput schema / properties / contacts / items / properties / list_id
      Removed value: -{
      -  "type": "string"
      -}
    • removedInput schema / properties / contacts / items / properties / middle_name
      Removed value: -{
      -  "type": "string"
      -}
    • addedInput schema / properties / contacts / items / properties / phone / description
      Added value: +"Phone number"
    • removedInput schema / properties / contacts / items / properties / postal_code
      Removed value: -{
      -  "type": "string"
      -}
    • removedInput schema / properties / contacts / items / properties / salary
      Removed value: -{
      -  "type": "string"
      -}
    • addedInput schema / properties / contacts / items / properties / state / description
      Added value: +"State"
    • addedInput schema / properties / contacts / items / properties / tags / description
      Added value: +"Tags to assign"
  4. First observed

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare non-readOnly, non-idempotent, non-destructive, open-world behavior, so the safety profile is covered. The description adds genuinely useful compliance context (sensitive data prohibition) but says nothing about partial-failure handling, what happens to contacts that already exist, or batch size limits — significant gaps for a bulk write.

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?

Two short sentences, front-loaded with the action and scope. The second sentence earns its place as a compliance constraint, though it partially duplicates the same warning embedded in the custom_fields schema description.

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

Completeness3/5

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

For a bulk mutation with no output schema, an agent still lacks information about how per-contact results or errors are returned and whether the operation is atomic. Annotations cover the mutation safety profile, but the batch-specific behavior an agent needs is not described.

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%, including per-field descriptions inside the nested contact object, so the schema carries parameter meaning. The description adds only that contacts are handled in bulk and repeats the sensitive-data restriction already present in the custom_fields schema text.

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?

States a specific verb and resource with explicit bulk scope ('Create multiple contacts at once in bulk'), which implicitly separates it from the single-record create_contact sibling. It does not name the alternative tools outright, so the differentiation is inferred rather than stated.

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?

Usage is implied by the bulk wording, and there is an explicit must-not rule about sensitive personal data. However, there is no guidance on when to prefer this over create_contact or upsert_contact, nor any mention of the dry_run option for pre-validating a batch.

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