Skip to main content
Glama

MyDataHub

Enrich a contact (spends credits)

enrich_contact
Idempotent

Returns the full record for one known person, matched by email or by name with a company name, number or domain. It spends 1 credit only on a confident match, and 0 on no match or when you already hold the record under licence, so a repeat never charges twice. Like create_order it needs the user's confirmation (a form, or the confirmation_token from an approval_url) or an agent key whose allowed_tools include enrich_contact within its per-order cap and monthly budget; otherwise nothing is charged and it returns confirmation-required or agent-budget-exceeded. It needs enrich:write; use it for a single named person, and the result gives credits_charged and the balance left. Lawful basis is UK GDPR Article 6(1)(f) legitimate interests; email audiences include corporate subscribers only by default (PECR), so sole traders and ordinary partnerships are left out unless the toggle is changed.

Input Schema

NameRequiredDescriptionDefault
emailNo
domainNo
last_nameNo
first_nameNo
company_nameNo
company_numberNoEight characters in upper case, such as 05046417 or SC123456.
confirmation_tokenNoThe token the approval page on mydatahub.emailmovers.com returns once the signed-in person approves. It is bound to that person (their sub), this spend (the machine quote_id, or the enrichment or push) and an expiry no later than the quote's, and it is redeemable once.

Output Schema

NameRequiredDescriptionDefault
recordYes
matchedYes
cost_gbpYesPounds sterling excluding VAT, to two decimal places.
credits_chargedYes1 on a confident match, otherwise 0.
already_licensedYesTrue when you already hold the record, so it costs 0.
match_confidenceYes
credits_remainingYesCredits, to one decimal place: whole at 1 credit a record, fractional only where a rule is (0.1 company-only, 1.8 outright, both proposed).
licence_expires_atYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the annotations it discloses the credit cost model (1 on confident match, 0 on no match or already-licensed record), which independently corroborates idempotentHint, plus the confirmation/approval-token requirement, the required enrich:write scope, and the exact error names returned (confirmation-required, agent-budget-exceeded). It also surfaces the PECR audience restriction and lawful basis, which materially affect what comes back.

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?

Purpose and cost are front-loaded and virtually every clause carries new information. It is a dense single block, though, with the compliance/PECR sentence appended at the end, so scanning is harder than it needs to be.

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?

For a credit-spending, confirmation-gated enrichment call the description covers prerequisites (auth scope, approval token or agent key), cost and no-charge conditions, failure responses, and compliance constraints on the returned audience. With an output schema available it correctly does not waste space describing return shape beyond naming credits_charged and balance.

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 29%, but the description compensates by explaining the anyOf matching contract in prose — email alone, or first_name + last_name plus exactly one of company_name/company_number/domain — and by explaining what the confirmation_token is and where it comes from. It still leaves some parameter behavior (e.g. the corporate-subscriber toggle mentioned in prose but absent from the schema) ambiguous.

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 opening sentence gives a concrete verb and resource ("Returns the full record for one known person") plus the exact matching keys (email, or name with company name/number/domain). It also scopes the tool to a single named person, which separates it from bulk/audience siblings such as compile_audience or preview_records.

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 states the use case plainly ("use it for a single named person") and names create_order as the analogous approval-flow tool, plus a concrete alternative path (agent key with allowed_tools) and the failure modes that route the caller away. It does not explicitly contrast against lookup_company or preview_records, so the when-not is left partly implicit.

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