LinkedIn Ads MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@LinkedIn Ads MCP Serverrun a full account audit"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
LinkedIn Ads MCP Server
An MCP server that connects Claude (Code or Desktop) to the LinkedIn Ads API, giving you natural-language control over campaign management, audience targeting, creative uploads, analytics, and account auditing.
What it does
Category | Capabilities |
Campaigns | Create, list, update campaign groups and campaigns |
Audiences | Create/edit saved audiences, bulk geo-swap targeting |
Creatives | Upload images and videos, create ad creatives |
Analytics | Campaign and creative performance reports, account summaries |
Auditing | 10-point account audit (CTR decline, budget utilization, missing conversion tracking, etc.) |
Bulk ops | Queue and execute batch campaign/group creation and updates |
Best-practice enforcement is built in — audience expansion and audience network are disabled by default on every write operation.
Prerequisites
Node.js 18+
A LinkedIn Developer App with Advertising API access (apply here)
OAuth scopes:
r_ads,rw_ads,r_ads_reporting,r_basicprofileYour LinkedIn Ad Account ID
Quick start
git clone <this-repo-url>
cd linkedin-ads-mcp-server
npm install
cp .env.example .env
# Edit .env with your LinkedIn credentials
npm run build
npm startYou should see: LinkedIn Ads MCP server running — 34 tools registered
Connecting to Claude
Claude Code (CLI)
Add to your ~/.claude/settings.json:
{
"mcpServers": {
"linkedin-ads": {
"command": "node",
"args": ["/path/to/linkedin-ads-mcp-server/dist/index.js"],
"env": {
"LINKEDIN_ACCESS_TOKEN": "your_token",
"LINKEDIN_AD_ACCOUNT_ID": "urn:li:sponsoredAccount:123456789"
}
}
}
}Claude Desktop
Add the same mcpServers block to %APPDATA%/Claude/claude_desktop_config.json (Windows) or ~/Library/Application Support/Claude/claude_desktop_config.json (macOS).
Restart Claude after updating the config.
Usage
Once connected, just talk to Claude:
"List my campaign groups"
"Create a new campaign group called Q3 Brand Awareness"
"Run a full account audit"
"Show analytics for my top 5 campaigns this month"
"Swap targeting from UK to US for all saved audiences"
To target a different ad account without restarting, pass it inline:
"List campaigns for account urn:li:sponsoredAccount:987654321"
Full setup guide
See SETUP.md for detailed instructions covering:
Creating a LinkedIn Developer App
Generating OAuth tokens
Linking your ad account
Configuring Claude Code / Claude Desktop
Token refresh for production use
Upgrading to Standard API tier
Token expiration
Access tokens expire after 60 days. See SETUP.md Part 5 for the refresh flow.
License
MIT
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/charltonmediagroup/LICampaignsMCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server