Skip to main content
Glama

Emailchef MCP by usefulapi

Import contacts

emailchef_import_contacts
Destructive

WRITE: bulk-add or update up to 500 contacts in a list in one call (an existing email is updated). Each contact is an object keyed by field placeholder, e.g. {"email":"a@b.com","firstname":"Ada"}: get the placeholders from emailchef_list_predefined_fields and emailchef_list_custom_fields. Import only people who agreed to receive email. Runs in the background: poll emailchef_get_import_task with the returned id. POST /lists/{list_id}/import.

Input Schema

NameRequiredDescriptionDefault
list_idYesNumeric id (as returned by the list tools).
contactsYesContacts to import, each keyed by placeholder.

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?

Adds substantial behavior beyond the annotations: the operation is asynchronous and runs in the background requiring polling with the returned id, and matching is upsert-style on existing emails. It also flags a compliance prerequisite (only import consenting contacts) and the underlying endpoint, none of which the destructiveHint/readOnlyHint annotations convey.

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?

Opens with the "WRITE:" marker so the mutation is front-loaded, then packs limit, upsert rule, object shape, prerequisite lookups, consent caveat, async polling, and endpoint into one tight block with no filler.

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?

There is no output schema, and the description compensates by explaining that the call returns an import task id to be polled via emailchef_get_import_task. For a two-parameter, fully documented, async mutation tool, nothing an agent needs to invoke it correctly is missing.

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 already 100%, and the description still adds meaning: contacts are objects keyed by field placeholder with a concrete example, and the agent is told where list_id comes from (the list tools) and where placeholders come from (the field-listing tools). That is real guidance beyond the schema text.

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 with scope: "bulk-add or update up to 500 contacts in a list in one call," plus the upsert rule "an existing email is updated." This clearly separates it from the single-record siblings emailchef_create_contact and emailchef_update_contact.

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

Usage Guidelines4/5

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

Routes the agent to prerequisites (emailchef_list_predefined_fields, emailchef_list_custom_fields for placeholders) and to the follow-up tool (emailchef_get_import_task) for polling, plus a consent constraint. It never explicitly says when to prefer emailchef_create_contact/update_contact over bulk import, so the exclusion is implied rather than stated.

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.