LinkedIn Ads MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LINKEDIN_ACCESS_TOKEN | Yes | Your LinkedIn OAuth access token with required scopes (r_ads, rw_ads, r_ads_reporting, r_basicprofile) | |
| LINKEDIN_AD_ACCOUNT_ID | Yes | Your LinkedIn Ad Account ID (e.g., urn:li:sponsoredAccount:123456789) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_ad_accountsA | List all LinkedIn Ad accounts the authenticated user has access to. Use this to find account IDs when managing multiple accounts. |
| switch_default_accountA | Show which account is currently the default, and explain how to target a different one. |
| list_campaign_groupsA | List all campaign groups in the ad account. Returns names, statuses, budgets. |
| get_campaign_groupA | Get details of a single campaign group by ID. |
| create_campaign_groupB | Create a new campaign group. Validates that budget type is consistent. |
| update_campaign_groupC | Update an existing campaign group. |
| list_campaignsC | List campaigns, optionally filtered by group or status. |
| get_campaignB | Get full details of a single campaign. |
| create_campaignA | Create a new campaign. Enforces best practices: audience expansion OFF, audience network OFF, manual bidding default. |
| update_campaignC | Update a campaign. Re-applies best-practice enforcement. |
| list_saved_audiencesA | List all saved/matched audiences in the ad account. |
| get_saved_audienceC | Get details of a single saved audience. |
| create_saved_audienceC | Create a new saved audience with targeting criteria. |
| update_saved_audienceB | Update a saved audience's targeting criteria or name. |
| delete_saved_audienceC | Delete a saved audience by ID. |
| bulk_geo_swap_audiencesB | Clone a list of saved audiences, replacing one geo-location with another. E.g., swap UK targeting to US and auto-create new audiences with updated names. |
| search_targeting_entitiesB | Search for targeting entities like job titles, skills, industries, companies. |
| get_audience_sizeB | Estimate audience size for given targeting criteria. |
| get_geo_urnsC | Get common geo URNs for targeting (convenience helper). |
| upload_imageA | Upload an image to the LinkedIn media library from a local file or Google Drive link. |
| upload_videoB | Register a video upload to the LinkedIn media library. Returns upload URLs for multipart upload. |
| create_sponsored_postA | Create a sponsored post (dark post) for use as ad content. This post won't appear in the org's feed — it's only used as ad creative. Returns a share URN to pass to create_ad_creative. REQUIRES w_organization_social OAuth scope — if you get ACCESS_DENIED, add this scope to your LinkedIn app and re-authorize. |
| create_full_adA | End-to-end ad creation: upload image + create dark post + create ad creative. Combines upload_image, create_sponsored_post, and create_ad_creative into one call. REQUIRES w_organization_social OAuth scope for post creation. |
| list_creativesC | List ad creatives, optionally filtered by campaign. |
| create_ad_creativeA | Create an ad creative and associate it with a campaign. For sponsored content ads, first create a share/post and pass its URN as contentReference. For lead gen, also provide leadgenFormUrn and callToAction. |
| get_creativeC | Get details of a single creative by ID. |
| get_campaign_analyticsB | Pull performance metrics for one or more campaigns over a date range. |
| get_creative_analyticsC | Pull performance metrics at the creative/ad level. |
| get_account_summaryB | Get a high-level summary of account performance over a date range. |
| get_conversion_trackingB | List all conversion rules configured on the account. |
| get_lead_form_responsesC | Pull lead gen form responses for a specific form. |
| run_full_auditA | Run a comprehensive audit across 10 checks: declining CTR, low budget utilization, missing conversion tracking, maximized delivery, audience expansion, audience network, stale campaigns, creative fatigue, overlapping audiences, missing UTM parameters. |
| check_single_auditA | Run a single audit check by name. Useful for targeted investigation. |
| bulk_create_campaign_groupsA | Queue and execute bulk creation of campaign groups (up to 100). Each item can have unique names, budgets, and schedules. Executes sequentially with rate limiting. Returns a summary with IDs of all created groups. |
| bulk_create_campaignsB | Queue and execute bulk creation of campaigns (up to 100). Supports $ref:group_N references to link to groups created in the same session. Best practices are enforced on every campaign. |
| bulk_update_campaignsB | Bulk update multiple campaigns at once — e.g. pause all, change bids, swap targeting. |
| get_queue_statusC | Check the status of a bulk execution queue. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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