adwarp

Start with 1 prompt.

Paste it into Claude Code, Codex or Cursor. Your agent installs Adwarp, walks you through your LinkedIn app and checks the connection.

setup prompt
Set up Adwarp for me. It's the open-source ad agent for LinkedIn Ads and Google Ads: https://github.com/adwarp-dev/adwarp

1. Check that Node.js 20 or newer is installed.
2. Walk me through creating my own LinkedIn developer app with the Advertising API product: https://github.com/adwarp-dev/adwarp/blob/main/docs/linkedin-app.md
3. Save the app's client ID and secret to ~/.adwarp/config.json as clientId and clientSecret.
4. Run "npx -y adwarp auth login" and wait while I approve access in my browser.
5. Add Adwarp to the AI client I'm using right now as an MCP server that runs "npx -y adwarp mcp". In Claude Code that's: claude mcp add adwarp -- npx -y adwarp mcp
6. Check the connection by listing my ad accounts, then save the one I pick as defaultAccountId in ~/.adwarp/config.json.

Don't create or change anything in my ad accounts during setup. LinkedIn campaigns start as drafts, so nothing spends until I turn it on.
adwarp
GitHub

Start with 1 prompt.

Paste it into Claude Code, Codex or Cursor. Your agent installs Adwarp, walks you through your LinkedIn app and checks the connection.

setup prompt
Set up Adwarp for me. It's the open-source ad agent for LinkedIn Ads and Google Ads: https://github.com/adwarp-dev/adwarp

1. Check that Node.js 20 or newer is installed.
2. Walk me through creating my own LinkedIn developer app with the Advertising API product: https://github.com/adwarp-dev/adwarp/blob/main/docs/linkedin-app.md
3. Save the app's client ID and secret to ~/.adwarp/config.json as clientId and clientSecret.
4. Run "npx -y adwarp auth login" and wait while I approve access in my browser.
5. Add Adwarp to the AI client I'm using right now as an MCP server that runs "npx -y adwarp mcp". In Claude Code that's: claude mcp add adwarp -- npx -y adwarp mcp
6. Check the connection by listing my ad accounts, then save the one I pick as defaultAccountId in ~/.adwarp/config.json.

Don't create or change anything in my ad accounts during setup. LinkedIn campaigns start as drafts, so nothing spends until I turn it on.

LinkedIn Ads in Cursor.

Adwarp is an open-source MCP server and CLI that connects Cursor to LinkedIn Ads. Add it in 1 click, sign in from your terminal, then ask Cursor's agent to size audiences, draft campaigns and pull reports.

Read the docs

cursor-agent ~ launch

$ cursor-agent

> Launch 1 ad group per persona from brief.json, all as drafts.

adwarp.launch_from_brief brief.json: DRAFT

35 ad groups and 35 ads, each with its own audience

Nothing is live. Review them in Campaign Manager.

01Set up

Set up in 3 steps.

  1. Create your LinkedIn developer app

    Add the Advertising API product. It's free, and approval usually takes a day or 2.

  2. Sign in from your terminal

    Adwarp opens your browser for LinkedIn's approval and stores the token locally.

    npx -y adwarp auth login
  3. Add it to Cursor

    1 click, and Cursor's agent can use all 28 LinkedIn tools.

Prefer to edit the config?

Add this entry to ~/.cursor/mcp.json, or to .cursor/mcp.json inside a project. It's the same entry the button adds.

~/.cursor/mcp.json
{
  "mcpServers": {
    "adwarp": { "command": "npx", "args": ["-y", "adwarp", "mcp"] }
  }
}

02Try these prompts

5 prompts to try first.

cursor-agent ~ reach

$ cursor-agent

> How many VPs of RevOps at US software companies can we reach?

adwarp.search_targeting titles "revenue operations": 4 matches

adwarp.estimate_audience titles + VP + US + software: 2,140 members

03Results

Why running ads from Cursor gets better results.

  • Checks happen daily

    Performance is 1 question in the editor you already have open, so problems get fixed the same day.

  • Briefs become launches

    A brief in your workspace turns into drafts in 1 ask, so another audience costs 1 line instead of 20 clicks.

  • Copy matches the page

    The landing page, the brief and the ads sit in 1 workspace, so headlines and URLs line up before anything ships.

04FAQ

Questions, answered. From setup to the details.

Ask on GitHub
Is there a LinkedIn Ads integration for Cursor?

Not from LinkedIn. Adwarp is an open-source MCP server that gives Cursor access to LinkedIn Ads through your own developer app.

How do I add Adwarp to Cursor?

Click Add to Cursor, or paste the JSON entry above into Cursor's MCP config. Either way, sign in once with npx -y adwarp auth login.

Can Cursor launch campaigns on its own?

No. Every campaign, ad group and ad starts as a draft, and it goes live only when you explicitly ask or switch it on in Campaign Manager.

Can I script it instead?

Yes. Every tool is also an npx adwarp command for scripts and cron, with the same credentials and the same change journal.

Where are my credentials stored?

In a local folder locked to your user. With the hosted endpoint they travel as headers, are used in memory and are never stored.

Does it run locally or on the hosted endpoint?

Either. Run Adwarp on your machine, or point Cursor at the hosted endpoint with your own LinkedIn app credentials. List uploads, CRM audiences and the change journal need your machine.

Does it run locally or on the hosted endpoint?
FeatureLocalHosted
Campaigns, audience sizing, reportingYesYes
Ad Library through the official APIYesYes
CSV list uploadsYesNo
Salesforce audiencesYesNo
HubSpot audiencesYesNo
Change journal and liftYesNo