
LinkedIn Ads MCP by AdPlug
io.github.danielpopamdPublished by GitHub account danielpopamdv1.0.0Updated Nov 2, 2026
LinkedIn Ads MCP server: 10 tools for campaigns, creatives, audiences, lead forms. Writes preview.
Overview
Connects an assistant to LinkedIn Ads data so it can report on campaign performance, audiences, conversions and lead forms, and manage campaigns.
- What you can do
- List ad accounts and read account configuration and settings
- Report campaign, campaign group and creative performance with standard KPIs, and compare periods or entities
- Break down audience demographics, reach, frequency and saved audiences
- Review conversion tracking, conversion performance and lead gen form submissions
- Create, update and delete campaign groups, campaigns and creatives, and upload ad images
- When to use it
- Useful for marketers and growth teams who want to query LinkedIn advertising performance in natural language, compare periods, inspect audience and lead data, or make campaign changes from the assistant instead of the LinkedIn UI.
- Requirements
- The manifest declares a remote endpoint with OAuth sign-in. The README's self-hosted route needs Node.js 18 or higher, a LinkedIn Company Page, a LinkedIn Developer App with Advertising API access approved, the client ID and secret in LINKEDIN_CLIENT_ID and LINKEDIN_CLIENT_SECRET, a localhost:3000 callback redirect, and a one-time browser authorization that stores tokens locally.
Installation
In SourceWeft
- Open LinkedIn Ads MCP by AdPlug in the dashboard and add it to a workspace.
- Connect the required credentials. They are stored privately and never shown on public pages.
- Enable the server for the chats that should use its tools.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Use with an agent
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/io.github.danielpopamd%2Flinkedin-ads-mcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Other MCP clients
Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.
{
"mcpServers": {
"linkedin-ads-by-adplug": {
"type": "http",
"url": "https://api.adplug.app/mcp/linkedin-ads"
}
}
}README
LinkedIn Ads MCP Server
[License: MIT] [Node.js Version] [MCP Compatible]
An MCP (Model Context Protocol) server that enables Claude AI to access and analyze your LinkedIn Ads data. Built for marketers, founders, and growth teams who want to leverage AI for campaign optimization, performance reporting, and data-driven advertising decisions.
[!TIP] Want this without any setup? From the same author: AdPlug is the hosted LinkedIn Ads MCP. Sign in with OAuth (no LinkedIn developer app, no credentials to manage), connect Claude, ChatGPT, or Cursor in about two minutes, and get Google Ads and Microsoft Ads on the same connector. Read tools are free; every write is previewed before it runs. This open-source server stays free and self-hosted.
Quick Install (No Coding Required!)
Don't want to deal with technical stuff? Just copy one of the prompts below and paste it into Claude. The AI will do everything for you!
Option 1: Install with Claude Code (Recommended)
If you have Claude Code installed, just copy and paste this entire prompt:
Click to expand the Claude Code installation prompt
Option 2: Install with Claude Desktop (Chat-Based)
If you're using Claude Desktop directly (without Claude Code), copy this prompt to start a guided setup:
Click to expand the Claude Desktop guided setup prompt
What You'll Need Before Installing
Before using either installation method, you'll need:
- Node.js (version 18 or higher) - Download here
- A LinkedIn Company Page - Required to create a developer app
- LinkedIn Developer App with Advertising API access - Create one here
Getting LinkedIn API Credentials (5-10 minutes)
- Go to LinkedIn Developer Portal
- Click "Create App"
- Fill in:
- App name: "My LinkedIn Ads Analytics" (or anything you want)
- LinkedIn Page: Select your company page
- App logo: Upload any square image
- After creating, go to "Products" tab → Request "Advertising API" (approval takes 1-5 days)
- Go to "Auth" tab → Add redirect URL:
http://localhost:3000/callback - Copy your Client ID and Client Secret - you'll need these!
Created By
Daniel Popa - Performance Marketing Consultant & AI Automation Specialist
I help ambitious startups scale profitably through paid ads, conversion rate optimization, and data-driven growth strategies. With 10+ years in performance marketing and $100M+ in managed ad budgets, I now focus on implementing AI workflows and automation to improve marketing efficiency and performance.
This tool was built to bridge the gap between LinkedIn's advertising data and AI-powered analysis, making it easier for marketers to get actionable insights through natural language conversations with Claude.
- Website: danielpopa.me
- Focus: Performance Marketing, AI Automation, Growth Strategy
Manual Installation (For Developers)
If you prefer to install manually or want more control, follow the instructions below.
What This Does
This MCP server connects Claude Desktop (or any MCP-compatible client) to the LinkedIn Marketing API, allowing you to:
- Query campaign performance using natural language
- Analyze audience demographics to understand who's engaging with your ads
- Track conversions and leads across your LinkedIn campaigns
- Compare performance between time periods, campaigns, or campaign groups
- Get AI-powered insights on your advertising data
Example Conversations with Claude
Features
- 25 Specialized Tools - Covering accounts, campaigns, creatives, audiences, conversions, analytics, and full campaign management (create, update, delete)
- Comprehensive Metrics - Every report includes: Spend, Impressions, Clicks, CTR, Reach, Frequency, Engagements, Engagement Rate, CPM, CPC, Conversions, Conversion Rate, Cost per Conversion, Audience Penetration, and Average Dwell Time
- Single OAuth Authentication - Authenticate once and access all your LinkedIn ad accounts
- Automatic Token Refresh - Tokens refresh automatically before expiration
- Rate Limit Handling - Built-in exponential backoff for API rate limits
- Human-Readable Names - Demographic data shows actual names (not IDs) for seniorities, job functions, industries, and more
Prerequisites
1. LinkedIn Developer App
Before using this MCP server, you need to set up a LinkedIn Developer application:
- Go to LinkedIn Developer Portal
- Click "Create App"
- Fill in your app details:
- App name: e.g., "My LinkedIn Ads Analytics"
- LinkedIn Page: Select your company page
- App logo: Upload a logo (required)
- Note your Client ID and Client Secret
2. Request Advertising API Access
- In your app, go to the "Products" tab
- Select "Advertising API"
- Submit the request form with your business justification
- Wait for approval (typically 1-5 business days)
3. Configure OAuth
- Go to the "Auth" tab in your app
- Add this redirect URL:
http://localhost:3000/callback - Verify these OAuth 2.0 scopes are available:
r_ads- Read ad accountsr_ads_reporting- Read reporting datarw_ads- Create and manage campaigns, creatives, and adsr_organization_social- Read organization posts (for creative content)
Installation
Edit .env with your LinkedIn credentials:
Authentication
Run the authentication flow to get your access tokens:
This will:
- Open your browser to LinkedIn's OAuth page
- Ask you to authorize the application
- Store your tokens locally in
~/.linkedin-ads-mcp/tokens.json - Tokens are valid for 60 days and auto-refresh
Claude Desktop Setup
Add this to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Important: Replace /full/path/to/linkedin-ads-mcp with the actual path where you cloned this repository.
After updating the config, restart Claude Desktop for the changes to take effect.
Available Tools
Account Management
Campaign & Creative Performance
Audience & Demographics
Conversions & Lead Generation
Advanced Analytics
Campaign Management (Write Operations)
Standard Metrics
Every performance report includes these metrics:
API Limits & Best Practices
LinkedIn API Limits
- Rate Limit: 45 million metric values per 5-minute window
- Response Limit: Max 15,000 elements per response
- Metrics per Request: Max 20 metrics
- Demographic Data Delay: 12-24 hours
- Reach Data: Max 92-day date range
Best Practices
- Start with account listing - Always list accounts first to get valid account IDs
- Use reasonable date ranges - Shorter ranges return faster; use 30 days for regular reporting
- Be specific with campaigns - Filter by campaign IDs when you know which campaigns to analyze
- Leverage comparisons - Use the compare tool to quickly identify performance changes
Project Structure
Development
Troubleshooting
"Not authenticated" error
Run npm run auth to authenticate with LinkedIn.
"Rate limited" responses
The server automatically handles rate limits with exponential backoff. If you're hitting limits frequently, reduce the frequency of your requests.
Token expired
Tokens auto-refresh. If you're still having issues, delete ~/.linkedin-ads-mcp/tokens.json and re-authenticate with npm run auth.
API access denied
Ensure your LinkedIn Developer app has:
- The "Advertising API" product approved
- The correct OAuth scopes enabled (
r_ads,r_ads_reporting) - Your user account has access to the ad accounts you're trying to query
Campaign names showing as "Unknown"
This typically means the campaign ID from analytics doesn't match any campaign in your account. This can happen with archived campaigns or if there's a sync delay.
Tech Stack
- Model Context Protocol (MCP) - The protocol that enables Claude to interact with external tools
- LinkedIn Marketing API - Official API for LinkedIn advertising data
- TypeScript - Type-safe development
- Node.js - Runtime environment
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
MIT License - see LICENSE file for details.
Acknowledgments
Built with the Model Context Protocol SDK by Anthropic.
Made with AI-powered workflows by Daniel Popa
Source: README.md at commit 75e24a8
Tools
0Version history
1- v1.0.0LatestSep 17, 2026
Score
85% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 daysRequired25 pts
- Auth declaredRequired10 pts
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts