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.

Read any company's LinkedIn ads from your terminal.

The LinkedIn Ad Library lists the ads any company runs on LinkedIn, and Adwarp, an open-source MCP server and CLI, reads it from your terminal. Ask what a competitor is running, or run 1 command, and get their ads back ready to compare.

$ claude mcp add adwarp -- npx -y adwarp mcp

Read the docs

claude ~ full copy

$ claude

> Get the full copy for their newest ads.

adwarp.inspect_competitor_ads auto, copy for 10: 10 queued

adwarp.get_competitor_creatives 10 ad ids: 10 ready

Copy and a screenshot for each, from the creative worker

All 10 back. Want the themes they keep repeating?

01What you can ask

What you can ask. Real requests, answered from your terminal.

claude ~ ad library

$ claude

> What ads is our biggest competitor running?

adwarp.inspect_competitor_ads name search, max 500: 394 ads

61% single image, 22% document, 17% video

Top offer: free migration, in 41 ads since August

02How it works

How it works.

  1. Find the company

    Search by company name, LinkedIn company id or keyword, in the countries you pick.

  2. Pull the ads

    Adwarp reads the official Ad Library API. An optional creative worker adds full copy and screenshots for up to 10 ads.

  3. Compare

    Ask for the formats, offers and themes a competitor keeps coming back to, with EU targeting where LinkedIn shows it.

03Results

Why it gets better results.

  • The whole market first

    You read every competitor's ads before writing your own, instead of the few you remember to check.

  • Offers that last

    The offers a competitor keeps paying to run stand out in 1 pull.

  • Weekly reruns

    Rerun the same pull every week and see exactly what changed.

In practice394 of 1 competitor's ads pulled by name search, plus 48 with full copy.

04FAQ

Questions, answered. From setup to the details.

Ask on GitHub
What is the LinkedIn Ad Library?

LinkedIn's public record of the ads companies run on its platform. You can search it by company, keyword, country and date, and Adwarp reads it from your terminal.

Is it free?

Yes. The Ad Library is public, Adwarp is free and open source, and you only need LinkedIn's Ad Library product on your developer app.

Can I see a competitor's targeting?

Only for ads served in the EU. Those show the targeting, impression ranges and a split by country. Ads served elsewhere come back without targeting.

Does it work on the hosted endpoint?

Yes. The hosted endpoint returns Ad Library details, plus full copy when the server is set up with the creative worker.

How does Adwarp read the Ad Library?

2 ways: the official Ad Library API, plus an optional worker for full copy.

How does Adwarp read the Ad Library?
EngineWhat you getWhere it runs
Ad Library APIEach ad's advertiser, format and link, plus impressions and targeting for EU adsLocally and on the hosted endpoint
Creative workerFull copy and screenshots for up to 10 ads per pullAny server set up with the worker
Which tools and commands does it use?

2 MCP tools and 3 CLI commands, with what each one does.

Which tools and commands does it use?
ToolWhat it does
inspect_competitor_adsFind any company's ads through the official Ad Library API
get_competitor_creativesRead the copy and screenshots the worker collected

CLI

  • npx adwarp competitor ads <advertiser> --company-id <id>
  • npx adwarp competitor ads <advertiser> -c US,GB --max 100
  • npx adwarp creative-status <ids>
What are the limits?

4 things to know before you start.

  • Your developer app needs LinkedIn's Ad Library product.
  • Full copy needs the optional creative worker, which reads up to 10 ads per pull.
  • Targeting, impressions and country splits only exist for ads served in the EU.
  • A name search can pull in companies with similar names, so add the company id for an exact match.