Use Leadsets B2B data in Cursor through MCP
To get B2B data in Cursor, add the Leadsets remote MCP server. In Cursor's MCP settings or ~/.cursor/mcp.json, add a server named leadsets with the URL https://mcp.leadsets.ai and an Authorization header containing your Leadsets API key, then restart Cursor. It should show leadsets with 8 tools for people and company search, enrichment, verified work emails and website scraping.
Cursor is an AI code editor. Leadsets lists it as an MCP server integration, so the agent in Cursor can call Leadsets tools directly while you work in a project.
What Leadsets gives an agent in Cursor
Leadsets is a B2B data API and remote MCP server for AI agents. Once connected, the agent in Cursor can call the same eight tools available in any MCP client:
search_people: find people by title, function, seniority, location, company size and industry, with a reason for every match.search_companies: find accounts by industry, headcount band, technology and location.enrich_person: current role, company and a verified work email when one exists.enrich_company: firmographics for a domain, with source and freshness on every field.verify_email: verified, catch-all, unknown or invalid, with a confidence score.scrape_company: a company homepage turned into products, positioning, customers named and key links.scrape_jobs: open roles from careers pages, with titles and dates.get_usage: what is left in the current window and week, at no cost.
Results come back as structured JSON with match reasons, verification status, confidence and the date each field was last checked, so the agent can reason over them inside your project.
How to connect Leadsets to Cursor
The Leadsets docs give Cursor-specific steps. Cursor connects with an API key in a request header, unlike Claude on the web, which signs in with OAuth.
- Create a free Leadsets account and copy your key from the dashboard. Keys start with
ls_live_. - Open Cursor → Settings → MCP, or edit
~/.cursor/mcp.json. - Add the server with your key:
{
"mcpServers": {
"leadsets": {
"url": "https://mcp.leadsets.ai",
"headers": { "Authorization": "Bearer ls_live_…" }
}
}
}
- Restart Cursor. The docs say you will see leadsets · 8 tools with a green dot.
- Check the connection by asking the agent "What's my Leadsets usage?" It should call
get_usageand answer with your remaining balance.
Nothing is installed or run locally, because the server is remote. Steps for other clients are in Connect via MCP. The key sits in that config file, and Leadsets asks you to keep keys secret, since you are responsible for activity under them.
Other routes from Cursor: REST, skills and CSV
If you are writing code rather than chatting with the agent, every tool is also a REST endpoint at https://api.leadsets.ai/v1, called with a bearer key. The TypeScript and Python SDKs install with npm i @leadsets/sdk or pip install leadsets, return typed responses and retry 429s automatically. Paid calls accept an Idempotency-Key, so retries never double-charge, and pagination uses cursors. The quickstart goes from key to first record in about five minutes.
Leadsets also publishes 50 free, MIT-licensed SKILL.md playbooks that tell an agent which tools to call and in what order. The skills library lists Cursor as a connection on three of them, and you can clone the whole library with git clone github.com/leadsets/leadsets-skills. Browse them in the skills library.
For handoff, Leadsets exports CSV for any sequencer, and its skills write to CSV, Google Sheets, HubSpot and other tools. The site does not describe a Cursor-specific export, so treat CSV or the API as the route out of a run.
Example: a prospect list from inside a project
Maya Chen is a GTM engineer at Northwind Analytics (northwind.co) on the Pro plan. She asks the agent in Cursor: "Find heads of RevOps at US B2B SaaS companies with 50 to 200 people, with verified work emails."
A typical run, following the Leadsets build an outbound prospect list skill:
get_usagechecks how many search and enrichment records are left in the five-hour window.- A one-record
search_companiescall sanity-checks the filters. search_peoplereturns matching people, each with match reasons.enrich_personfills in current role and a verified work email where one exists.- Catch-all addresses are segmented separately, and anything unconfirmed is reported rather than mixed into the verified list.
The skill page shows an illustrative result: 132 matching people, 118 enriched, 96 verified, 14 catch-all and 8 with no email. Maya then asks the agent to turn the run into a script with the TypeScript SDK, setting has_verified_email: true on the people search, so her own code can repeat it. If she later wants hiring signals, such as which target domains are hiring SDRs, scrape_jobs needs scrape units, which are a paid add-on.
What to watch for
- Records versus requests. A record counts only when data comes back, so an empty search uses none. Every call counts as a request, hit or miss, and the request limit is five times the record allowance.
- Windows. Search and enrichment each have a rolling five-hour window and a weekly limit. Solo ($29 a month) allows 500 search and 1,000 enrichment records per five hours; Pro ($99 a month) allows 7,500 and 15,000. Over a limit, the API returns 429 with Retry-After and the blocked call counts against nothing. See limits and costs.
- Concurrency. Solo allows 3 concurrent searches, Pro 5, and Team and Max 8. Extra searches get 429
too_many_concurrent. - Free plan. 1,000 records, one time, shared across search and enrichment, with no card. When they run out, the API returns 402
free_records_exhausted. Scraping is not on Free. - Verification costs. Emails from
enrich_personare already verified at no extra charge; standaloneverify_emailcounts toward the enrichment limit. - Status labels. Verified means the mailbox accepts mail. Catch-all means the domain accepts everything, so send at lower volume. Unknown means no clear answer, so treat it as unconfirmed. Invalid is never served as a contact email. More on catch-all emails.
What it does not do
- No phone numbers yet. Leadsets returns work emails, US personal emails on paid plans, roles and company data.
- It is not a CRM or a sending tool. It feeds the tools you already use.
- Business contacts only: no consumer data, sensitive categories or personal home addresses.
- Scraping reads public company pages only, respects robots signals and never goes behind a login.
- SOC 2 Type I is planned, with readiness underway and a target of Q3 2027. There is no report yet.
This page describes Leadsets and its documented Cursor setup only. For anything about Cursor itself, check Cursor's own documentation.
Questions and answers
How do I add Leadsets to Cursor?
Open Cursor Settings, MCP, or edit ~/.cursor/mcp.json, and add a server named leadsets with the URL https://mcp.leadsets.ai and an Authorization header containing Bearer and your API key. After a restart, Cursor shows leadsets with 8 tools, according to the Leadsets docs.
Do I need an API key to use Leadsets in Cursor?
Yes. The Cursor setup in the Leadsets docs uses an Authorization header with your API key, which starts with ls_live_. Claude on the web and desktop is different: it signs in with OAuth, so there is no key to paste there.
How do I check that Leadsets is connected in Cursor?
Ask the agent "What's my Leadsets usage?" If it calls get_usage and answers with your remaining balance, the connection works. get_usage costs nothing to call.
Which Leadsets tools can the Cursor agent use?
Eight: search_people, search_companies, enrich_person, enrich_company, verify_email, scrape_company, scrape_jobs and get_usage. The scraping tools need scrape units, a paid add-on from $9 for 1,000 units, and are not on the free plan.
Does an empty search in Cursor use Leadsets records?
No. Records count only when data comes back, so an empty result uses 0 records. The call still counts as one request toward the five-hour request limit, which is five times the record allowance.
Can Leadsets return phone numbers in Cursor?
No. Leadsets does not offer phone numbers yet, through MCP or the REST API. It returns work emails, US personal emails on paid plans, roles and company data.
Go deeper