Skip to main content
Glama

lemlist_enrich

Submit an ASYNC enrichment on a person — no campaign, no lead needed.

Returns immediately with an enrichment_id; the work runs server-side. THEN call lemlist_enrich_result(enrichment_id) to collect it (first poll after ~10-20s, then every ~15-30s until done).

Args: email, linkedin_url, first_name, last_name, company_name, company_domain: the identity to enrich. All optional, but lemlist only resolves what it can match — pass a LinkedIn URL, or a first/last name together with a company domain.

Enrichment actions — at least one is required, and each spends lemlist credits: find_email finds a verified email, verify_email verifies the email you passed (debounce), linkedin_enrichment runs the LinkedIn enrichment, find_phone finds a phone number. Ask only for what you need.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "lemlist_enrich"
  }
}

Input Schema

NameRequiredDescriptionDefault
_orgNoOrg (id) de CET APPEL. `oto_list_orgs()`.
emailNo
_groupNoÉquipe (id) de CET APPEL, sous son org parente.
_run_idNoOBLIGATOIRE à chaque appel dès `run_start` ou `data_claim_next` : sans lui, l'écriture sur une ligne réservée est refusée. Hérité seulement si le serveur tient un run actif — n'y compte pas.
_projectNoProjet (id) de CET APPEL — jeton PRIMAIRE. `oto_project(op='list')`.
_instanceNoInstance de connecteur PRÉCISE (un credential exact). `oto_instance(op='list')`.
last_nameNo
find_emailNo
find_phoneNo
first_nameNo
webhook_urlNo
company_nameNo
linkedin_urlNo
verify_emailNo
company_domainNo
linkedin_enrichmentNo

Schema Changelog

Changes observed during successful MCP inspections.

No schema history has been recorded yet.

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations, the description carries the load and does well: it discloses asynchronous server-side execution, the returned `enrichment_id`, the polling cadence to reach `done`, and that each enrichment action spends lemlist credits. It stops short of saying whether credits are consumed on failed/no-match enrichments or what error responses look like, so it is not fully exhaustive.

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?

Front-loaded with the async contract and the mandatory follow-up call in the first two lines, then identity args, then action flags. Every paragraph maps to a decision the caller must make; nothing is decorative.

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 16-parameter async tool with no output schema and no annotations, the description covers purpose, sequencing, matching requirements, action costs, and the return value. The remaining gaps — `webhook_url` purpose and what a failed enrichment costs or returns — keep it short of complete.

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 only 31%, and the description compensates for most of the gap: it groups the six identity fields and explains each of the four boolean action flags (`find_email`, `verify_email`, `linkedin_enrichment`, `find_phone`) and their credit cost, plus the at-least-one-action requirement, which the schema does not express. It leaves `webhook_url` and the internal routing params (`_org`, `_group`, `_project`, `_instance`, `_run_id`) unexplained, though those carry their own schema descriptions.

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?

"Submit an ASYNC enrichment on a person — no campaign, no lead needed" states a specific verb and resource plus its scope, and explicitly distinguishes it from the lead/campaign-bound sibling `lemlist_enrich_lead`. An agent can select it without opening any 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 the full workflow: submit here, then call `lemlist_enrich_result(enrichment_id)` with the first poll after ~10-20s and repeats every ~15-30s until `done`. It also names the prerequisites for a successful match (LinkedIn URL, or first/last name plus company domain) and warns to request only needed actions.

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