Skip to main content
Glama
Omnidim

@omnidim-ai/mcp-server

by Omnidim

addBulkCallContacts

Destructive

Batch-add up to 1,000 contacts to a campaign in one request; invalid rows are reported and valid rows are still added.

Instructions

Add up to 1000 contacts to a campaign in one request.

This is the batch form of Add contact to dynamic campaign. Prefer it whenever you have more than a handful: one request of 500 contacts is far cheaper than 500 requests, on your side and ours.

Repeated numbers are kept, not merged. If the same number appears twice with different variables, it is called twice, because two rows for one number usually means two real reasons to call.

Rows that fail validation are reported in rejected and the rest are still added, so a single bad number does not lose the batch. A row that is missing a column the campaign's call_conditions need is reported in rejected; the condition values themselves are not evaluated on this route.

(Tags: Bulk calls)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
campaign_idYesId of the bulk call campaign.
requestBodyYesThe JSON request body.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.11.1

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already carry the safety profile (destructiveHint=true, openWorldHint=true), and the description adds genuinely non-obvious behavior: duplicates are kept rather than merged and result in two calls, and per-row validation failures land in `rejected` while the rest of the batch still succeeds. The gap is timing: it never says whether added contacts are dialed immediately or queued until startBulkCall, which matters for a destructive bulk operation.

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?

Front-loaded with the core action and limit, then layered by decision relevance (positioning, then data semantics, then failure semantics). Every sentence carries information, though the trailing '(Tags: Bulk calls)' is pure noise and the prose runs slightly long for a two-parameter tool.

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?

With no output schema, the description does the right thing by naming the `rejected` field and explaining partial-success semantics. It also resolves the nested `custom_variables`/`metadata` distinction against the sibling tool. The one unresolved item is when the queued calls actually fire.

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 description coverage is 100%, so the baseline is 3, but the description adds meaning the schema cannot: the limit of 1000, the divergence from createBulkCall's `contact_list` naming, and the crucial caveat that required columns depend on the campaign's `call_conditions` (which are not evaluated on this route). That last point changes how an agent must build the payload.

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, resource and scope ('Add up to 1000 contacts to a campaign in one request'), and explicitly positions itself against two siblings: the singular 'Add contact to dynamic campaign' and the differently-shaped 'Create bulk call'. An agent can route between them without opening a 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?

Gives an explicit selection rule ('Prefer it whenever you have more than a handful') with the reason (one request of 500 is cheaper than 500 requests) and names the singular alternative for small batches. The when-to-use decision is fully resolved in the text.

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