LinkedIn Ads MCP · Updated September 5, 2026
LinkedIn Ads MCP Server: run your LinkedIn Ads from Claude or ChatGPT
Paste one link into Claude or ChatGPT, sign in with LinkedIn, and your AI can read and manage your LinkedIn Ads account — campaign groups, campaigns, creatives, spend, leads and cost per lead. No developer app, nothing to install, about a minute of setup. Everything below the link is the full reference for you and your AI agent.
https://connector.get-ryze.ai/mcp- 01Copy your MCP link:
https://connector.get-ryze.ai/mcp - 02In Claude go to Settings → Connectors → Add custom connector. Name it Ryze AI, paste the link, click Add. In ChatGPT it is Settings → Apps → Create app.
- 03Click Connect, sign in with LinkedIn, pick your workspace. Open a new chat and ask: “Which LinkedIn campaigns had the lowest cost per lead this month?”
01 — Overview
What this LinkedIn Ads MCP server does
The short version
- One URL,
https://connector.get-ryze.ai/mcp, works in Claude, ChatGPT, Claude Code, Cursor and any MCP client. - Sign in with LinkedIn. No developer app, no Marketing Developer Platform application, no 60-day token refresh, no Python, no server to run.
- Read tools for ad accounts, adAnalytics, campaign groups, campaigns, creatives, targeting and Lead Gen Forms, plus approval-gated write tools for budgets, bids, status and new campaigns.
- Same endpoint carries Google Ads, Meta Ads, TikTok, GA4, Search Console and Shopify — 150+ tools in total.
- Free to connect. Paid Ads Autopilot is $89/mo flat if you want Ryze AI to run the optimizations for you.
- Server name
- Ryze AI (LinkedIn Ads MCP)
- Endpoint
- https://connector.get-ryze.ai/mcp
- Transport
- Remote MCP over Streamable HTTP
- Auth
- OAuth 2.0 (LinkedIn sign-in, one Ryze workspace per connection)
- Hosting
- Hosted by Ryze AI — nothing to install or run
- LinkedIn Ads tools
- Read + write (writes approval-gated)
- Also on this endpoint
- Google Ads, Meta Ads, TikTok, GA4, Search Console, Shopify — 150+ tools
- Developer app / token
- Not required
- Price
- Free to connect · Paid Ads Autopilot $89/mo flat
- Updated
- September 5, 2026
MCP (Model Context Protocol) is the open standard AI assistants use to call external tools. A LinkedIn Ads MCP server turns your Campaign Manager account into a set of those tools, so an assistant can pull an adAnalytics report, compare cost per lead across job-title audiences or pause a campaign from a chat instead of Campaign Manager. LinkedIn publishes a Marketing API but no official MCP server, and access to that API requires a developer app approved for the Marketing Developer Platform; the few community servers are local processes built on it. This one is hosted, so the whole setup is a URL and a LinkedIn sign-in. The comparison further down covers each route.
/01
Managed LinkedIn OAuth
Browser sign-in with LinkedIn, tokens exchanged and refreshed server-side. No developer app, no Marketing Developer Platform approval, no 60-day token expiry to babysit.
/02
adAnalytics reports
Impressions, clicks, spend, conversions, leads, video views and engagement at account, campaign group, campaign or creative level, daily or monthly, plus demographic pivots by job title, company, industry and seniority.
/03
Full object reads
Campaign groups, campaigns and creatives with objective, status, budget, bid, format, schedule and targeting criteria.
/04
Approval-gated writes
Change budgets, bids, schedules and status, or create campaign groups, campaigns and creatives, through per-tool approval. Deletes and archives use a separate, explicit path.
/05
Targeting facets
Read the job titles, functions, seniorities, company sizes, industries, skills and geos a campaign targets, and look up facet values by name.
/06
Lead Gen Forms
List the Lead Gen Forms on an account and pull the responses a form collected, straight into the chat.
/07
Multi-account
Discover every ad account the login can reach and pass its ID per call for agency setups.
/08
Seven platforms, one URL
The same endpoint carries Google Ads, Meta Ads, TikTok, GA4, Search Console and Shopify toolsets — one login instead of seven servers.
02 — Tool reference
What the LinkedIn Ads tools cover
Every call takes an account_id — the numeric Campaign Manager account ID. The exact tool names appear in your client’s tool list the moment LinkedIn Ads is connected to the workspace; the table groups them by what they do. Write capabilities are approval-gated.
| Capability | Access | What it does | What you pass |
|---|---|---|---|
Ad account discovery | read | Every ad account the signed-in LinkedIn login can reach, with currency and role. The assistant calls this first. | none |
Account summary | read | Spend, impressions, clicks, leads, conversions and cost per lead for a date range in one call. | account_id · start_date · end_date |
adAnalytics report | read | Any adAnalytics query: pivot (ACCOUNT, CAMPAIGN_GROUP, CAMPAIGN, CREATIVE, MEMBER_JOB_TITLE, MEMBER_COMPANY, MEMBER_INDUSTRY…), time granularity, fields and date range. | account_id · pivot · timeGranularity · dateRange · fields (≤ 20) · campaigns | creatives |
Campaign group, campaign and creative reads | read | Objects with objective, status, budget, bid, format, schedule and targeting criteria. | account_id · filters |
Targeting facet reads | read | Facet values a campaign targets and lookup of job titles, industries, skills, companies and geos by name. | account_id · campaign_id | facet · query |
Lead Gen Form reads | read | Forms on the account and the responses each form collected. | account_id · form_id · dateRange |
Status, budget and bid updates | write | Activate or pause, or change budget, bid, schedule and targeting on campaign groups and campaigns. | account_id · id · fields |
Campaign group, campaign and creative creation | write | Create campaign groups and campaigns with objective, budget, bid, format, schedule and targeting, and creatives from existing content. | account_id · body |
Delete / archive | write | Archive or delete campaign groups, campaigns or creatives. Only runs on an explicit, item-by-item approved list. | account_id · id |
The same endpoint exposes the Google Ads, Meta Ads, TikTok, GA4, Search Console and Shopify toolsets. The cross-platform list lives in the advertising API & MCP tools reference; Google Ads and Meta have their own pages at Google Ads MCP and Meta Ads MCP.
03 — Prerequisites
What you need before you start
You need
- A LinkedIn login with Account Manager or Campaign Manager access to the ad account (Viewer is enough for reads).
- A free Ryze AI account — created during the OAuth step if you don’t have one.
- An MCP client: Claude Pro, Team or Max (custom connectors are not on the free plan), ChatGPT Plus, Pro or Business with Developer mode, or Claude Code, Cursor, Windsurf, VS Code on any plan.
You don’t need
- A LinkedIn developer app, Marketing Developer Platform approval or an access token — the hosted server brings its own API access.
- A LinkedIn-Version header, Rest.li query syntax or a 60-day token-refresh job — the server handles the API surface.
- Python, Node, a virtual environment, a
.envfile or a process to keep running.
04 — Setup
Install in every MCP client
All routes end in the same OAuth screen: sign in with Ryze AI, choose your workspace, click Allow. Connect LinkedIn Ads once under Workspace Settings → Integrations in Ryze (it opens the LinkedIn consent screen); the tools appear in the next chat. One connection maps to one workspace, so agencies with several client workspaces reconnect per workspace. Screenshots for the Claude route are in how to connect Claude to the Ryze AI MCP.
Claude (web and desktop)
- 01On claude.ai, click your avatar (bottom-left) → Settings.
- 02Open the Connectors tab and click Customize, then the + next to Connectors.
- 03Name: Ryze AI. Remote MCP server URL:
https://connector.get-ryze.ai/mcp. Click Add. - 04Click Connect on the new connector, sign in, pick your workspace and click Allow Claude to connect.
- 05A green confirmation lists the available tools. Start a new chat and ask your first question.
Requires Claude Pro, Team or Max. The Claude desktop app uses the same Settings → Connectors flow; if you prefer the config file, use the mcp-remote entry under “Claude Desktop config file” below.
ChatGPT
- 01Settings → Apps. Under Advanced settings, turn on Developer mode.
- 02Click Create app. Name: Ryze AI. MCP server URL:
https://connector.get-ryze.ai/mcp— choose Server URL, not Tunnel. - 03Authentication: OAuth. Tick the acknowledgment and click Create.
- 04On the authorization page choose Sign in with Ryze AI, pick your workspace and click Allow.
- 05Start a new chat: “Pull the last 7 days of LinkedIn Ads spend, impressions, clicks, CTR and leads by campaign.”
Requires a ChatGPT plan that supports apps and connectors (Plus, Pro or Business).
Claude Code
claude mcp add --transport http ryze https://connector.get-ryze.ai/mcpThen run /mcp inside Claude Code to complete the OAuth sign-in. Add --scope user to make it available in every project.
Cursor, Windsurf and any mcp.json client
{
"mcpServers": {
"ryze": {
"url": "https://connector.get-ryze.ai/mcp"
}
}
}Save, then approve the OAuth prompt the client opens. Windsurf uses the key serverUrl instead of url.
VS Code (GitHub Copilot agent mode)
{
"servers": {
"ryze": {
"type": "http",
"url": "https://connector.get-ryze.ai/mcp"
}
}
}Claude Desktop config file (optional)
{
"mcpServers": {
"ryze": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://connector.get-ryze.ai/mcp"]
}
}
}macOS: ~/Library/Application Support/Claude/claude_desktop_config.json · Windows: %APPDATA%\Claude\claude_desktop_config.json. Restart Claude Desktop; the first call opens the browser for OAuth. Most people won’t need this — Settings → Connectors does the same without Node.
05 — Usage
What to ask once connected
Reporting
- >“Pull the last 7 days of LinkedIn Ads spend, impressions, clicks, CTR and leads by campaign.”
- >“Build my Monday LinkedIn report: spend, cost per lead, top 5 creatives, and what to fix.”
- >“Show monthly spend and leads for the last 6 months by campaign group.”
Audience
- >“Which job titles and seniorities are converting cheapest? Pivot last 30 days by member job title.”
- >“Compare cost per lead by company size across all active campaigns.”
- >“List every campaign with its targeting facets — titles, industries, geos.”
Leads & creative
- >“Export this week's responses from the 'Free audit' Lead Gen Form and flag duplicates.”
- >“Rank my active creatives by CTR and flag any under 0.4% with spend over $200.”
- >“Which document ads and video ads beat single-image ads on cost per lead?”
Changes (approval-gated)
- >“Raise the daily budget on the best cost-per-lead campaign by 20% — show me the plan first.”
- >“Pause every campaign with cost per lead over $150 and spend over $500 this month.”
- >“Create a paused Lead Generation campaign, $100/day, targeting marketing directors at 200–5,000-person companies in the US and UK.”
Ready-made workflows: ChatGPT prompts for LinkedIn Ads, LinkedIn Ads CPC and CPL benchmarks by industry, the media buyer’s guide to Claude and automating cross-platform ads with Claude MCP.
06 — Request examples
adAnalytics requests you can describe in the chat
You rarely need to write these — the assistant builds them. When you want exact control, describe the request in Marketing API terms and the server runs it as an adAnalytics query or an object update. Three that come up daily:
Campaign performance, last 30 days
{
"account_id": "512345678",
"pivot": "CAMPAIGN",
"timeGranularity": "ALL",
"dateRange": { "start": "2026-08-06", "end": "2026-09-04" },
"fields": ["impressions", "clicks", "costInLocalCurrency",
"oneClickLeads", "externalWebsiteConversions", "landingPageClicks"]
}costInLocalCurrency arrives as a decimal string in the account currency. Up to 20 fields per call; ask for more in a second query.
Cost per lead by job title
{
"account_id": "512345678",
"pivot": "MEMBER_JOB_TITLE",
"timeGranularity": "ALL",
"dateRange": { "start": "2026-08-06", "end": "2026-09-04" },
"campaigns": ["urn:li:sponsoredCampaign:123456789"],
"fields": ["impressions", "clicks", "costInLocalCurrency", "oneClickLeads"]
}Demographic pivots (MEMBER_JOB_TITLE, MEMBER_COMPANY, MEMBER_INDUSTRY, MEMBER_SENIORITY…) are reported at campaign scope and hide rows below LinkedIn's privacy threshold.
Read campaigns, then an approval-gated budget change
// read
{ "account_id": "512345678",
"filters": { "status": ["ACTIVE"] } }
// update (approval-gated)
{ "account_id": "512345678",
"campaign_id": "123456789",
"fields": { "dailyBudget": { "amount": "120", "currencyCode": "USD" } } }Budgets are decimal amounts with a currency code. Updates need approval before they run.
07 — Compare
Hosted vs self-hosted vs Campaign Manager
| What you operate | Ryze AI hosted server | Open source (GitHub) | Campaign Manager UI only |
|---|---|---|---|
| Runtime | None — remote HTTP | Local Node or Python process you run | None — a browser |
| Credentials you manage | LinkedIn sign-in only | Developer app + Marketing Developer Platform approval + 60-day tokens | Your LinkedIn login |
| When the API version changes | Ryze updates the server | You update the LinkedIn-Version header and wait for a repo update | |
| Reporting | adAnalytics with demographic pivots, cross-platform in one chat | Varies by project | Dashboard exports |
| Platforms | LinkedIn + Google Ads, Meta, TikTok, GA4, Search Console, Shopify | LinkedIn only | LinkedIn only |
| Write approval controls | Per-tool, on by default | Varies by project | Manual |
Self-hosting is the right call when the data must never leave your machine or you are building your own agent on the raw Marketing API, and you already hold Marketing Developer Platform access. LinkedIn has not shipped an official MCP server, so the practical choice for everyone else is this hosted server, which also puts LinkedIn next to Google Ads and Meta Ads in one chat. Benchmarks to sanity-check the numbers: LinkedIn CPC and CPL by industry.
08 — Security & permissions
Safe by default
OAuth 2.0 only
You sign in on LinkedIn's page. Your password never touches Ryze, and tokens are refreshed server-side.
One workspace per connection
Each connection is authorized against a single Ryze workspace, chosen on the consent screen. Switching workspaces means reconnecting and starting a new chat.
Approval-gated writes
Read tools are automatic. In Claude, open Settings → Connectors → Ryze AI and keep every write and delete tool on 'Needs approval' — the recommended default for live accounts.
Deletes are separate and explicit
Deleted LinkedIn campaigns cannot be restored, so deletion and archiving only run on an item-by-item approved list. Pausing is the reversible path.
Revoke any time
Disconnect LinkedIn Ads under Workspace Settings → Integrations in Ryze, or remove the permission under LinkedIn → Settings → Data privacy → Permitted services.
Policies
Read the MCP privacy policy, MCP terms, security policy and MCP permissions best practices.
09 — Quotas & limits
What to know before a heavy session
| Developer app & tokens | Not yours to manage — the hosted server runs on Ryze AI's Marketing API access. Self-hosted servers need a developer app, Marketing Developer Platform approval and tokens that expire every 60 days. |
| adAnalytics fields | Up to 20 metric fields per call; a date range is required. Demographic pivots hide rows below LinkedIn's minimum-audience threshold. |
| Money fields | costInLocalCurrency and budgets are decimal strings in the account currency, not micros. |
| Reporting freshness | LinkedIn reporting can lag several hours; today's numbers are partial until the account's day closes in UTC. |
| Budget rules | LinkedIn enforces a $10 minimum daily budget per campaign and minimum bids per objective and format; the assistant validates before proposing a change. |
| Learning | Campaigns recalibrate after large bid, budget or targeting changes; the assistant keeps single changes under about 20–30% unless told otherwise. |
| Creatives | Creatives reference existing posts, images, documents or videos on the account; new content goes through LinkedIn's review before serving, which the API cannot skip. |
| Client plans | Claude custom connectors: Pro, Team or Max. ChatGPT connectors: Plus, Pro or Business with Developer mode. |
10 — Troubleshooting
Common errors and the fix
| Symptom | Cause | Fix |
|---|---|---|
| Tools don't show up in the chat | The chat was opened before the connector existed. | Start a new chat — Claude and ChatGPT bind connectors when a conversation starts. |
| No 'custom connector' option in Claude | Free Claude plan. | Custom connectors need Claude Pro, Team or Max. ChatGPT needs Plus, Pro or Business with Developer mode on. |
| No LinkedIn tools, only Google and Meta | LinkedIn Ads is not connected to this workspace. | Connect it under Workspace Settings → Integrations in Ryze, then start a new chat. |
| "account_id is required" or the wrong account | No ad account chosen yet. | Ask for accessible ad accounts first and name one. IDs are 9-digit numbers. |
| adAnalytics rejected: too many fields | More than 20 fields requested. | Split the metrics across two queries. |
| Demographic pivot returns fewer rows than expected | Privacy threshold. | LinkedIn hides segments with too few members; widen the date range or pivot at campaign level. |
| Numbers don't match Campaign Manager | Different attribution window or conversion type. | Ask for the same window and the same conversion field Campaign Manager shows. |
| A write action 'did nothing' | It is waiting for your approval. | Approve the tool call in the chat, or review the tool's setting under Settings → Connectors → Ryze AI. |
| Data from the wrong client account | The connection is authorized to another workspace. | Each connection is one Ryze workspace. Reconnect, pick the right workspace, and start a new chat. |
Still stuck? Email support@get-ryze.ai. Agencies juggling many accounts: MCP config for multiple ad accounts.
11 — FAQ
LinkedIn Ads MCP server questions
What is the LinkedIn Ads MCP server?
It is an MCP (Model Context Protocol) server that exposes a LinkedIn Campaign Manager account as tools an AI assistant can call. Ryze AI's LinkedIn Ads MCP server is hosted and remote: you add one URL to Claude, ChatGPT, Cursor or Claude Code, connect LinkedIn via OAuth, and the assistant can run adAnalytics reports, read campaigns, targeting and Lead Gen Forms, and make approval-gated changes.
What is the LinkedIn Ads MCP server URL?
The server URL is https://connector.get-ryze.ai/mcp. It is a remote MCP server over Streamable HTTP with OAuth 2.0. The same endpoint serves the Google Ads, Meta Ads, TikTok, GA4, Search Console and Shopify toolsets, so one connector covers the whole ad stack. Each connection is authorized against one Ryze workspace.
Does LinkedIn have an official Ads MCP server?
No. LinkedIn publishes a Marketing API for developers but, as of September 2026, no official MCP server. Community servers on GitHub wrap the Marketing API as local processes and require Marketing Developer Platform approval. Ryze AI's hosted server connects LinkedIn Ads to Claude, ChatGPT and other MCP clients without any of that setup.
Do I need a LinkedIn developer app or Marketing Developer Platform access?
No. The hosted server runs on Ryze AI's own Marketing API access. You sign in with a LinkedIn login that has access to the ad account and you are done. Self-hosted servers require you to create a developer app, apply for the Marketing Developer Platform, manage tokens that expire every 60 days and keep a local process running.
What can the LinkedIn Ads tools do?
Read: discover ad accounts, pull account summaries and adAnalytics reports pivoted by account, campaign group, campaign, creative or member demographics such as job title, company, industry and seniority, and read campaign groups, campaigns, creatives, targeting facets and Lead Gen Forms with their responses. Write, with approval: change status, budgets, bids, schedules and targeting, create campaign groups, campaigns and creatives, and delete or archive objects from an explicit list.
Can the MCP server change my LinkedIn campaigns, or only read data?
Both. Read tools work the moment the connection completes. Write tools are approval-gated: in Claude you set each one to 'Needs approval' under Settings → Connectors → Ryze AI. Deletion and archiving are separate and only run on an item-by-item approved list because deleted LinkedIn campaigns cannot be restored.
Can it show cost per lead by job title or company size?
Yes. adAnalytics supports member demographic pivots — job title, job function, seniority, company, company size, industry, location — so one prompt returns spend, clicks and leads per segment for any campaign. LinkedIn hides segments below its privacy threshold, so very small audiences show fewer rows.
Can I pull Lead Gen Form responses?
Yes. The assistant lists the Lead Gen Forms on the account and pulls the responses a form collected for a date range, including the answers and the campaign that generated each lead, so you can dedupe, score or push them to a CRM from the same chat.
Can I use it with several ad accounts or clients?
Yes. The assistant lists every ad account the login can reach and passes the account ID on each call. One connection maps to one Ryze workspace, so agencies keeping clients in separate workspaces reconnect per workspace and start a new chat.
What does the LinkedIn Ads MCP server cost?
Connecting is free — a Ryze AI account costs nothing to create and the connector has no per-call fee. Paid Ads Autopilot is $89/month flat with a 7-day free trial if you want Ryze AI to run the optimizations for you. On the client side you need a Claude plan that allows custom connectors (Pro, Team or Max) or a ChatGPT plan with connectors (Plus, Pro or Business).
Is the LinkedIn Ads MCP server secure?
Access is OAuth 2.0 only, so your LinkedIn password never touches Ryze. Each connection is scoped to one Ryze workspace, write and delete tools are approval-gated by default, and you can revoke access at any time from LinkedIn's permitted services or from Workspace Settings → Integrations in Ryze. The MCP privacy policy, MCP terms and security policy are linked on this page.
Why doesn't Claude see the LinkedIn Ads tools after I connected?
Two common reasons. First, start a new chat — Claude and ChatGPT bind connectors when a conversation starts. Second, LinkedIn Ads must be connected to the workspace under Workspace Settings → Integrations in Ryze; a workspace with only Google connected shows only Google tools.
Can I report LinkedIn next to Google and Meta in one chat?
Yes. Those toolsets sit on the same endpoint, so one prompt can pull spend, CTR and cost per lead from all of them into one table, and GA4 or Search Console tools cover the downstream traffic.
12 — Compatibility
Works in every MCP client
13 — Related
Keep reading
One OAuth login · LinkedIn Ads read + write tools · Live in ~60 seconds
Add LinkedIn Ads to your AI today.
Free to connect. Upgrade to Paid Ads Autopilot ($89/mo flat, 7-day free trial) when you want Ryze AI to run the optimizations for you, 24/7.
2,000+ clients · 700+ agencies · $500M+ managed · No dev token · No server to run

