Skip to main content
Glama
dhawalshah

linkedin-ads-mcp

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
PORTNoHTTP port (default 8080).
BASE_URLNoPublic URL of this service. Used for OAuth metadata and as the canonical resource URI tokens are bound to. Required for Mode B.
ALLOWED_EMAILSNoComma-separated allow-list of LinkedIn-account emails. Empty = no restriction.
GCP_PROJECT_IDNoGCP project hosting Firestore. Required for Mode B.
LINKEDIN_CLIENT_IDNoOAuth client ID from your LinkedIn app.
TOKEN_STORAGE_PATHNoOverride the local token file path. Defaults to ~/.linkedin-ads-mcp/tokens.json. Mode A only.
LINKEDIN_TOKENS_JSONNoInline JSON to seed local tokens (overrides the file). Mode A only.
LINKEDIN_REDIRECT_URINoOverride the LinkedIn callback URL. Defaults to ${BASE_URL}/oauth/callback.
LINKEDIN_CLIENT_SECRETNoOAuth client secret from your LinkedIn app.

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

CapabilityDetails
tools
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_ad_accountsA

Lists all LinkedIn Ad Accounts accessible to the authenticated user. Returns account names, IDs, status, currency, and serving statuses. Use this to get an overview of all accounts or find a specific account ID.

get_account_detailsA

Retrieves detailed information about a specific LinkedIn Ad Account including status, currency, notification settings, and linked organization.

get_campaign_performanceA

Retrieves performance metrics for campaigns within a specified date range. Returns key metrics like impressions, clicks, spend, CTR, conversions, audience penetration, and average dwell time. The primary tool for daily campaign monitoring and optimization decisions.

get_creative_performanceA

Retrieves performance metrics for individual ad creatives. Shows which specific ads are performing best, including engagement metrics (likes, comments, shares), video metrics, and average dwell time. Essential for creative optimization.

get_campaign_groupsC

Lists all campaign groups for an account with their configuration and optionally aggregated performance. Campaign groups help organize campaigns and control budget at a higher level.

get_audience_demographicsB

Retrieves demographic breakdown of who saw or interacted with your ads. Shows performance segmented by job function, seniority, industry, company size, or geographic location. Essential for understanding if you're reaching your target audience. Note: Demographic data has a 12-24 hour delay.

get_audience_reachA

Shows unique member reach and native audience penetration for campaigns. Returns LinkedIn's native audiencePenetration metric (approximate unique members reached / total target audience size). Helps understand what percentage of your target audience you've reached. Note: Date range must be 92 days or less.

list_saved_audiencesA

Lists saved/matched audiences available in the account for targeting. Shows audience names, sizes, and statuses to help plan campaign targeting.

get_conversion_performanceA

Retrieves conversion metrics broken down by conversion type/action. Shows which conversions are being driven by which campaigns, with cost per conversion and conversion value.

list_conversionsA

Lists all conversion tracking rules configured for an account. Shows conversion names, types, attribution windows, and enabled status.

get_lead_gen_performanceB

Retrieves lead generation form performance including form submissions, qualified leads, and cost per lead. Essential for B2B marketers running lead gen campaigns.

list_lead_formsA

Lists all lead generation forms configured for an account with their questions and settings. Helps understand what forms are available and their configuration.

compare_performanceA

Compares performance between two time periods, campaigns, or campaign groups. Calculates percentage changes and highlights significant differences. Essential for reporting on performance trends.

get_daily_trendsB

Retrieves daily performance trends over a specified period. Returns time-series data for visualizing performance patterns, identifying anomalies, and understanding day-of-week effects.

create_campaign_groupA

Creates a new LinkedIn campaign group for organizing campaigns. Campaign groups manage status, budget, and performance across multiple related campaigns.

update_campaign_groupA

Updates an existing LinkedIn campaign group. Can change status (ACTIVE/PAUSED/ARCHIVED/DRAFT), budget, name, or end date.

delete_campaign_groupA

Deletes a LinkedIn campaign group. Draft groups are deleted immediately. Non-draft groups are set to PENDING_DELETION status.

create_campaignB

Creates a new LinkedIn ad campaign within a campaign group. Requires targeting criteria, budget, and objective type.

update_campaignA

Updates an existing LinkedIn campaign. Can change status (ACTIVE/PAUSED/ARCHIVED), budget, name, targeting, bid amount, and other settings. Uses partial update - only specified fields are changed.

delete_campaignA

Deletes a LinkedIn campaign. Draft campaigns are deleted immediately. Non-draft campaigns are set to PENDING_DELETION status.

update_creative_statusB

Updates the intended status of a LinkedIn creative/ad. Can activate, pause, or archive creatives.

create_creativeB

Creates a new LinkedIn creative/ad under a campaign. Requires a content reference (post/share URN) or will be created as a reference to existing content.

create_inline_adA

Creates a new LinkedIn ad with inline content directly (without needing a pre-existing post). This creates the ad content (text, image/video, landing page, CTA) and the creative in a single call. Use this to create sponsored content ads from scratch.

list_campaignsA

Lists campaigns for a LinkedIn Ad Account. Unlike get_campaign_performance (which only returns campaigns with analytics data), this tool returns ALL campaigns including DRAFT and PAUSED campaigns with zero impressions. Supports filtering by campaign group and status.

upload_imageA

Uploads an image file to LinkedIn for use in ads. Supports PNG, JPG, and GIF formats. Returns the image URN that can be used as the mediaId when creating inline ads. The image is uploaded in two steps: initialize upload (get URL + URN), then upload binary.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.4/5.0

Scored across 25 tools

Disambiguation4/5

Most tools target clearly distinct resources and actions—accounts, campaigns, campaign groups, creatives, audiences, conversions, lead forms, and analytics. The main possible confusion is between create_creative and create_inline_ad, but the descriptions clarify that one references existing content while the other creates content inline; list_campaigns and get_campaign_performance are also explicitly differentiated.

Naming Consistency4/5

Tool names generally follow a consistent snake_case verb_noun pattern with clear verbs like list, get, create, update, delete, compare, and upload. Minor inconsistencies exist, notably get_campaign_groups is a listing operation while parallel resources use list_, and get_daily_trends/compare_performance use metric-style names rather than resource-object names.

Tool Count3/5

At 25 tools, the surface is on the heavy side for an MCP server. Most tools serve a distinct aspect of LinkedIn ads management, but the number of separate performance/analytics tools and creative-creation variants pushes it into the borderline heavy range.

Completeness3/5

The server covers the core campaign and creative lifecycle plus performance analytics well, but notable gaps remain: there is no list/get creatives tool, no video upload despite inline ad support mentioning video, and no create/update for lead forms, conversions, or audiences. These gaps require external workarounds for some common workflows.

Maintenance

ActivityMaintained
ResponsivenessNo issues