Skip to content

com.leadmarina/leadmarina

by leadmarina.com · remote · no sign-in to list tools · v1.2.0 · published by com.leadmarina

Verified local-business leads: search any niche + city, query your library, export to your CRM.

Deletes · 1Changes · 5

13 tools: 1 can delete or cancel things, 5 change things and 7 only read.

Scanned Oct 21, 2026

No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http leadmarina https://leadmarina.com/api/mcp

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

13 tools

Deletes or cancels 1Claude Code: deny
  • delete_automationPermanently delete an automation.No findings

    Why it is in this group

    • The name "delete_automation" says "delete": a word for removing or ending something.
    • The description says "Permanently delete".
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Permanently delete an automation. This cannot be undone — confirm with the user first, and prefer update_automation with active=false if they only want it to stop for now. Leads already collected by past runs are kept; only the schedule is removed.

    Annotations the server declares

    • title: Delete an automation
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
Changes things 5Claude Code: ask
  • create_automationCreate an automation: re-run a search on a schedule and send the results somewhere automatically.No findings

    Why it is in this group

    • The name "create_automation" says "create": a word for a change.
    Description, as the server wrote it
    Create an automation: re-run a search on a schedule and send the results somewhere automatically. Pass cities as plain strings (e.g. ['Austin, TX', 'Dallas, TX']) — they're resolved for you. IT SPENDS LEADS ON EVERY RUN, one per result, so confirm the niche, cities and cadence with the user before creating one. A destination of 'close', 'ghl' or 'google_sheets' requires that integration to be connected already (Close also needs one manual export first to save its field mapping); 'csv' | 'xlsx' | 'json' emails a file and needs nothing set up. Every city must resolve and the destination must be one of the listed values, or nothing is created and the error says what to fix. Up to 20 automations, 25 cities each. Automations search US places only for now: a city outside the US is refused.

    Annotations the server declares

    • title: Schedule a recurring search
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • enrich_domainsAlready have businesses?No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Already have businesses? Pass up to 10 website domains to run the full enrichment + verification pipeline on them (verified emails + phones, owner name, socials). Costs 1 lead per distinct domain — spellings of the same site (acme.com, www.acme.com, https://acme.com/contact) count once. Returns a search_id to poll with get_search_results. US businesses only for now: their phones are read as US numbers.

    Annotations the server declares

    • title: Enrich business domains
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • export_leadsPush leads into a connected destination: 'close' (CRM — uses the account's saved field mapping), 'ghl' (GoHighLevel sub-account), 'google_sheets' (new spreadsheet, or pass spreadsh…No findings

    Why it is in this group

    • The description's first verb is "push": a word for a change.
    Description, as the server wrote it
    Push leads into a connected destination: 'close' (CRM — uses the account's saved field mapping), 'ghl' (GoHighLevel sub-account), 'google_sheets' (new spreadsheet, or pass spreadsheet_id for one LeadMarina created before), or a file — 'csv' | 'xlsx' | 'json' (a 7-day download link, also emailed to the account owner when the file is small enough to attach). Exports EITHER one search's leads (pass search_id) or the whole library (set all=true). Either can be narrowed with the same filter rows as query_leads — with search_id they apply within that search. Leads go out best-ranked first (rank, then id), the order of the leads table. LIMITS PER CALL, which differ by destination because CRMs take one API call per lead: csv/xlsx 50,000 · json 25,000 · google_sheets 5,000 · close/ghl 1,000. For a big library going to a CRM, export csv and import the file instead. If more leads match than the limit, the response sets truncated=true and returns next_cursor — relay that to the user, the export was partial; to send the next batch, call export_leads again with the SAME destination, search_id or all, and filters, plus cursor=next_cursor. A next_cursor with not_sent means the destination's time limit cut this batch short: the same call with that cursor sends the rest. An all=true export spread over several calls reads the library live, so a lead that a search running between calls finds again can be skipped or sent twice; for one consistent copy, export the library in a single csv/xlsx (up to 50,000 leads) or json (up to 25,000) call while no search is running. Close, GoHighLevel and a LeadMarina-created sheet passed as spreadsheet_id UPDATE previously exported leads in place (matched by Google CID), never touching the user's own CRM notes/columns; a file or a new sheet is a fresh copy every time — so do not repeat a call that succeeded.

    Annotations the server declares

    • title: Export leads to a destination
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • search_leadsRun a live search for local businesses by niche + city (e.g.No findings

    Why it is in this group

    • The name "search_leads" says "search": a word for reading.
    • The description's first verb is "run": a word for a change.
    Description, as the server wrote it
    Run a live search for local businesses by niche + city (e.g. query 'electrician', location 'Austin, TX'). Returns a search_id and, usually, the first batch immediately (its listings are in `results`; their emails and phones are not verified yet — when discovery is 'in_progress' the provider was slow and the whole search was queued, so the leads arrive through get_search_results); more results are found and verified in the background — every email is SMTP-checked and phones are verified with line type + carrier. Spends 1 lead per result. Poll get_search_results until enrichment is 'complete'. If enrichment is already 'complete', nothing was found and nothing more is coming; if capped is true, the balance covered fewer leads than were found.

    Annotations the server declares

    • title: Search local-business leads
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • update_automationPause an automation (active=false) so it stops running and stops spending leads, or resume it (active=true).No findings

    Why it is in this group

    • The name "update_automation" says "update": a word for a change.
    Description, as the server wrote it
    Pause an automation (active=false) so it stops running and stops spending leads, or resume it (active=true). Pausing is the safe way to stop an automation you might want back — use delete_automation only when the user wants it gone for good.

    Annotations the server declares

    • title: Pause or resume an automation
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
Only reads 7Claude Code: allow
  • get_balanceWhat the account has left, and when it resets.No findings

    Why it is in this group

    • The name "get_balance" says "get": a word for reading.
    Description, as the server wrote it
    What the account has left, and when it resets. On a plan with a rate limit (no monthly quota) this is the leads left in the current 7-day period; on a metered plan it is the monthly allotment remaining.

    Annotations the server declares

    • title: Get lead balance
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • get_search_resultsFetch a search's leads with verification filled in as enrichment progresses.No findings

    Why it is in this group

    • The name "get_search_results" says "get": a word for reading.
    Description, as the server wrote it
    Fetch a search's leads with verification filled in as enrichment progresses. Poll until enrichment is 'complete'. Each lead includes verified emails (SMTP status), verified phones (line type + carrier), owner name where identified, socials, and the business profile.

    Annotations the server declares

    • title: Get search results
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • list_automationsThe account's automations — saved searches that re-run on a schedule and export themselves.No findings

    Why it is in this group

    • The name "list_automations" says "list": a word for reading.
    Description, as the server wrote it
    The account's automations — saved searches that re-run on a schedule and export themselves. Shows each one's niche, cities, cadence, destination, whether it's active, when it next runs, and how the last run went.

    Annotations the server declares

    • title: List scheduled searches
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • list_integrationsWhich export destinations this account has connected (Close, GoHighLevel, Google Sheets) and whether each is ready to receive leads.No findings

    Why it is in this group

    • The name "list_integrations" says "list": a word for reading.
    Description, as the server wrote it
    Which export destinations this account has connected (Close, GoHighLevel, Google Sheets) and whether each is ready to receive leads. Check this BEFORE export_leads or create_automation with a CRM destination — those fail if the integration isn't connected, and Close additionally needs one manual export first to save its field mapping. File destinations (csv/xlsx/json) always work and need nothing connected.

    Annotations the server declares

    • title: List connected integrations
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • list_searchesThe account's recent searches (id, niche, location, result count, when) — use a search_id with get_search_results or export_leads.No findings

    Why it is in this group

    • The name "list_searches" says "list": a word for reading.
    Description, as the server wrote it
    The account's recent searches (id, niche, location, result count, when) — use a search_id with get_search_results or export_leads.

    Annotations the server declares

    • title: List recent searches
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • list_viewsThe account's saved views from the leads table — each a named set of filters the user already built (e.g.No findings

    Why it is in this group

    • The name "list_views" says "list": a word for reading.
    Description, as the server wrote it
    The account's saved views from the leads table — each a named set of filters the user already built (e.g. 'Roofers with a mobile number'). Returns each view's filter conditions in the exact shape query_leads and export_leads accept, so "export my Hot Leads view to Close" works without rebuilding the filters by hand.

    Annotations the server declares

    • title: List saved views
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • query_leadsSearch ALL leads the account has ever collected (across every search) with filters and sorting — no new search is run and no leads are spent.No findings

    Why it is in this group

    • The name "query_leads" says "query": a word for reading.
    Description, as the server wrote it
    Search ALL leads the account has ever collected (across every search) with filters and sorting — no new search is run and no leads are spent. A Google listing found more than once appears once, with its most recent data. Up to 1,000 leads per call (default 25). When next_cursor is set, call again with cursor = next_cursor for the next page: the cursor carries its filters and sort, so it can be sent alone. Pass search_id to query one search's leads instead of the whole library. Example — plumbers in Austin rated 4.5 or higher with a safe email, most-reviewed first: filters=[{field:'category',operator:'contains',value:'plumb'},{field:'city',operator:'is',value:'Austin',conj:'and'},{field:'rating',operator:'gte',value:'4.5',conj:'and'},{field:'email_status',operator:'is',value:'safe',conj:'and'}], sort=[{id:'reviews',dir:-1}]. A field, operator or value the tool cannot use comes back as an error that names it and lists what works.

    Annotations the server declares

    • title: Query the lead library
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.2.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http leadmarina https://leadmarina.com/api/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__leadmarina__get_search_results",
      "mcp__leadmarina__query_leads",
      "mcp__leadmarina__list_searches",
      "mcp__leadmarina__get_balance",
      "mcp__leadmarina__list_views",
      "mcp__leadmarina__list_integrations",
      "mcp__leadmarina__list_automations"
    ],
    "ask": [
      "mcp__leadmarina__search_leads",
      "mcp__leadmarina__enrich_domains",
      "mcp__leadmarina__export_leads",
      "mcp__leadmarina__create_automation",
      "mcp__leadmarina__update_automation"
    ],
    "deny": [
      "mcp__leadmarina__delete_automation"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as leadmarina. Review it before you use it.