Skip to main content
Glama

Sendlane MCP by usefulapi

Add contacts to a list

sendlane_add_contacts_to_list
DestructiveIdempotent

WRITE: add one or more contacts (up to 100) to a list; a contact that does not exist is created. Each needs an email or a phone. Sendlane accepts the request for processing (HTTP 202). Only add people who agreed to receive marketing. POST /lists/{listId}/contacts.

Input Schema

NameRequiredDescriptionDefault
list_idYes
contactsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / contacts / items / properties / custom_fields / maxItems
      Previous value: -100New value: +50
  2. First observed

TDQS

A4.4/5.0
Behavior4/5

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

With annotations already declaring write/destructive/idempotent, the description still adds real value: asynchronous acceptance via HTTP 202, the 100-contact cap, and the create-if-missing side effect. It leaves one meaningful gap for a destructive write — whether an already-existing contact's names, tags, or custom fields are overwritten or merged.

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?

A single dense sentence-plus-clause block, front-loaded with the write marker and the core action, with constraints and the endpoint trailing. 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?

For a two-parameter write tool with no output schema, it covers limits, consent policy, async semantics, and creation behavior, which is enough to call it correctly. The unstated merge/overwrite behavior on existing contacts is the remaining hole.

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?

Top-level schema coverage is effectively absent (no description on list_id or contacts), so the description carries the load by stating each contact needs an email or a phone and that at most 100 are accepted. The endpoint path also clarifies that list_id is the target list.

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?

The description names a specific verb and resource ('add one or more contacts to a list') and scopes it with a hard limit of 100. The front-loaded 'WRITE:' marker plus the endpoint 'POST /lists/{listId}/contacts' makes it unambiguous versus siblings like sendlane_add_contact_tags or sendlane_remove_contact_from_list.

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?

It gives a clear positive-use condition ('Only add people who agreed to receive marketing') and resolves the main ambiguity by stating that non-existent contacts are created rather than erroring. It does not name a sibling alternative or an explicit when-not-to-use case, so it stops short of a 5.

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.