Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add lusha-oss/lusha-mcp-plugin --skill enrich-contactgit clone --depth 1 https://github.com/lusha-oss/lusha-mcp-pluginWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/lusha-oss/lusha-mcp-plugin/enrich-contact)<a href="https://agentmods.dev/skills/lusha-oss/lusha-mcp-plugin/enrich-contact"><img src="https://agentmods.dev/badge/skills/lusha-oss/lusha-mcp-plugin/enrich-contact/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/lusha-oss/lusha-mcp-plugin/enrich-contact"><img src="https://agentmods.dev/badge/skills/lusha-oss/lusha-mcp-plugin/enrich-contact.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00080 | $0.01122 |
| Opus 5 | $0.00040 | $0.00561 |
| Sonnet 5 | $0.00016 | $0.00224 |
| Haiku 4.5 | $0.00008 | $0.00112 |
Grade A, and why
enrich-contact scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 98 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Enrich Contact
Look up a person in Lusha and return a call-ready contact card. Phone numbers — direct line and mobile — lead the output.
Step 1 — Parse Input
Extract all available identifiers from the user's request. contacts_search accepts three lookup paths:
- Email — standalone, strongest match
- LinkedIn URL — standalone, strong match
- First name + last name + company name — all three required together
A job title alone is not a lookup path. If the user gives only a title + company (e.g. "the CFO of Stripe"), there is no name to look up — first surface candidates with prospecting_contact_search (jobTitles + company), then enrich the chosen one. Only ask for clarification when no usable identifier is present at all.
Step 2 — Look Up and Reveal
contacts_search has an enrich flag that controls whether the call reveals (and charges for) phones and email. Pick the path by how confident the match is — never do both for the same person, that reveals and charges twice.
One-shot (preferred when the identifier is unambiguous — an email, a LinkedIn URL, or a clean name + company):
Call contacts_search with enrich: true (the default). The response returns the profile with verified phones and email in a single call. You're done — do not call prospecting_contact_enrich afterward.
Preview-then-reveal (when the match may be ambiguous — common name, no company, multiple likely people):
- Call
contacts_searchwithenrich: false— this returns a preview only and consumes no reveal credits. - If multiple candidates come back, present the top 2–3 and ask the user to confirm.
- Call
prospecting_contact_enrichwith the chosen result'sidandrevealset from itscanReveal[].fieldto reveal phones and email once.
Step 3 — Fetch Signals (optional)
If you resolved a Lusha contact id in Step 2, use signals_contacts_get with that id to check for recent signals (promotion, company change). If you only have an email or LinkedIn URL and no id, use signals_contacts_search instead. Signals default to the last 6 months. Include any returned signals in the output as context.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 11d ago First seen · 98 lines · 80 tokens per session scan A 627f0f0e084d
enrich-contact is a skill published in the GitHub repository lusha-oss/lusha-mcp-plugin (4 stars, last pushed 1mo ago), licensed MIT. It adds 80 tokens to every session and 1,122 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
gws-gmail-send
Skill "gws-gmail-send" from googleworkspace/cli, covering gmail +send, usage, flags, examples and tips.
gws-shared
The gws binary must be on $PATH. See the project README for install options.
gws-sheets
Google Sheets: Read and write spreadsheets.
gws-gmail
Gmail: Send, read, and manage email.
gws-modelarmor-create-template
Google Model Armor: Create a new Model Armor template.
gws-modelarmor
Google Model Armor: Filter user-generated content for safety.