Integrations

Cursor integration

One-click install — prospect and export verified leads without leaving your editor.

LeadMarina ships a remote MCP server that plugs into Cursor, the AI code editor. Cursor's Agent calls external tools over the Model Context Protocol: you register a server once in mcp.json, and the Agent uses its tools automatically when a prompt calls for them. LeadMarina exposes exactly seven tools this way — search_leads, get_search_results, enrich_domains, query_leads, export_leads, list_searches, and get_balance. If you freelance or run a dev shop and prospect local businesses for web-design work, this puts lead sourcing in the same window as the code.

Connect the server

Two options.

One-click. If you're signed in to LeadMarina, an Add to Cursor button appears just above these instructions. Click it — Cursor opens an install dialog with the server name and URL prefilled; confirm, and Cursor writes the config for you.

Manual (the fallback for everyone). Add an entry to .cursor/mcp.json (this project) or ~/.cursor/mcp.json (all projects). Inside the top-level mcpServers object, add a server named leadmarina with one field:

  • "url": "https://leadmarina.com/api/mcp"

The server speaks streamable HTTP, one of Cursor's three supported MCP transports. On first use, Cursor prompts you to sign in — LeadMarina implements OAuth 2.1 with dynamic client registration, so there is no client ID to configure. Prefer keys? Every LeadMarina plan, including free, issues bearer API keys; pass yours as a header instead by adding a second field to the same leadmarina entry:

  • "headers": { "Authorization": "Bearer ${env:LEADMARINA_API_KEY}" }

Cursor interpolates ${env:NAME}, so the key stays out of the file. Once connected, open Cursor Settings → MCP: leadmarina should show all seven tools under Available Tools.

Run a search from the Agent

In the Agent pane, describe the leads you want — for example: "Check my LeadMarina balance, then find roofing companies in Austin, Dallas, and Houston."

The Agent calls get_balance, then search_leads — one search takes a niche plus up to 30 cities — and pulls results with get_search_results. By default, Cursor asks you to approve each tool call and lets you expand the arguments first, so you see exactly what will run before a lead is spent.

Already have target websites instead of a niche? enrich_domains takes up to 10 domains, delivers 1 lead per domain through the full verification pipeline, and returns a search_id you poll with get_search_results.

Each delivered lead is one fully verified business, built from Google business listings data:

  • Up to 3 emails, SMTP-checked and labeled safe, risky, or invalid
  • Up to 3 phones with line type (mobile, landline, VoIP, toll-free) and carrier
  • Owner name, where identifiable
  • Facebook, Instagram, LinkedIn, X, YouTube, TikTok, and Yelp profiles
  • Ratings, reviews, and the full business profile

Metering is flat: 1 lead = 1 delivered fully-verified business. The free plan includes 100 leads; paid plans include 15,000, 65,000, or 240,000 per month. query_leads — filtering leads already delivered — is free and never touches the meter, so the Agent can re-slice a list as often as you like ("only businesses with a safe email and a mobile line"). That is the prospecting loop for a dev shop: search a niche, have the Agent shortlist businesses worth pitching, then use the same session to draft outreach or scaffold a demo site for the prospect.

Export from the same conversation

export_leads sends any search's results to Close, GoHighLevel, Google Sheets, or an emailed CSV, Excel, or JSON file.

  • Close connects over OAuth. Your first export opens a field-mapping dialog: native fields map to Close built-ins, and everything else maps to custom fields LeadMarina auto-creates, named after its columns. The mapping is saved and tracked by Close field ID, so renaming a field in Close later doesn't break it.
  • Google Sheets exports go to a new spreadsheet or one LeadMarina created before. All columns export; columns you've hidden arrive hidden but still update. Row identity lives in a hidden column.

Updates, never duplicates

Every export matches on a stable Google business identifier and updates records in place. Re-exporting a search — or letting a scheduled repeat run — refreshes existing records instead of duplicating them, and never touches anything you created yourself: notes, activities, custom fields, extra rows, formatting. In GoHighLevel, tags are additive-only. This matters in Cursor specifically because Agent sessions are cheap to re-run: trigger the same search as often as you want without doubling your CRM.

Automate the pipeline

Any LeadMarina search can repeat once, daily, weekly, monthly, or yearly, with any export destination. Scheduling runs on LeadMarina's side — no Cursor session needs to be open. A common setup: schedule a weekly niche search that exports to Close, then work the fresh leads from Cursor each Monday. There is also a REST API on every plan (bearer keys) if you'd rather script against LeadMarina directly from your repo.

Troubleshooting

  • Tools don't appear. Confirm the server is enabled in Cursor Settings → MCP. Cursor picks up MCP tools automatically when relevant, but you can always name one directly: "use search_leads."
  • 401 Unauthorized. The header key is missing or the environment variable isn't visible to Cursor. Re-check ${env:LEADMARINA_API_KEY}, or remove the header and use the OAuth sign-in flow instead.
  • Approval prompts. Cursor confirms each tool call by default. If you allow-list tools, start with the read-only ones — get_balance, list_searches, query_leads — and keep approval on search_leads and export_leads, since delivered leads meter your balance.
  • Finding an old search. list_searches returns previous searches; get_search_results retrieves any of them again — retrieval doesn't re-spend leads.

How it works →