Skip to main content
Glama
optimize-overseas

LACRM MCP Server

Bulk: Execute (live)

bulk_execute

Bulk create or update LACRM contacts from CSV via a rate-limited background worker. Returns a run_id immediately and supports async delivery of results.

Instructions

Execute a bulk create/update by launching a detached background worker that paces calls at ~1 request/second (LACRM's agreement). Returns a run_id immediately.

SAFETY: this performs LIVE writes. It re-validates first and refuses to run if validation fails. You must pass confirm=true to proceed (omitting it returns the validation only). Always show the user a bulk_validate_csv preview and obtain explicit approval before passing confirm=true.

ASYNC COMPLETION (optional): pass channel + requestor_email + identifier (and request_summary) and the finished result - including the report delivered as an editable Google Sheet - is posted back on the originating channel automatically when the run completes; no polling needed. Without them, poll bulk_run_status as before.

Update mode uses per-field merge strategies (see fields[].strategy); an absent column is left unchanged. Provide the CSV as csv_content or csv_path.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
fieldsNoUpdate-mode merge fields.
channelNoAsync completion: originating channel (googlechat | gmail | asana). With requestor_email + identifier, the finished result is delivered automatically on that channel.
confirmNoMust be true to perform live writes.
csv_pathNo
operationYes
identifierNoAsync completion: channel-native message identifier (gmail message id | asana task gid | gchat space), case-exact.
key_columnNoIdentity column (required for update mode).
csv_contentNo
interval_msNoMin ms between calls (default 1000; do not go below 1000).
create_configNoCreate-mode field mapping (required for create mode).
address_configNoUpdate-mode address mapping (append-if-absent).
request_summaryNoAsync completion: 1-3 sentence plain-language restatement of what was asked (composed at fire time).
requestor_emailNoAsync completion: email address of the requesting user.
create_if_missingNoUpdate mode: create a contact when the key is not found.
Behavior5/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It thoroughly explains that the tool performs LIVE writes, paces requests at ~1/sec, re-validates before execution, requires confirm=true, and describes the optional async completion behavior including delivery of an editable Google Sheet. This is comprehensive and transparent.

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?

The description is well-structured with distinct sections (SAFETY, ASYNC COMPLETION, Update mode) and front-loads the core behavior. Every sentence adds value, and the length is appropriate given the tool's complexity. No fluff or redundancy.

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?

Given the tool's complexity (14 parameters, nested objects, no output schema), the description is remarkably complete. It covers live-write safety, validation flow, async alternatives, input format (csv_content/csv_path), and update-mode merge strategies. It even mentions the run_id return value and how to poll status, which is sufficient without an output schema.

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 79%, and the description adds meaningful context beyond the schema for key parameters: confirm=true gates live writes, async completion parameters (channel, requestor_email, identifier, request_summary) enable automatic delivery, and fields[].strategy is explained in the context of merge behavior. A few parameters like key_column and create_config are not explained in the description, but the schema provides sufficient detail for them.

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 clearly states the tool's function: 'Execute a bulk create/update by launching a detached background worker.' It distinguishes itself from sibling tools like bulk_validate_csv (validation) and bulk_run_status (polling) by specifying that it performs live writes and returns a run_id immediately.

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?

The description provides explicit usage guidance: it instructs users to preview via bulk_validate_csv and obtain approval before setting confirm=true, and it explains that without async completion parameters, users should poll bulk_run_status. It clearly indicates when to use this tool and mentions alternatives.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/optimize-overseas/lacrm-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server