Skip to main content
Glama
flin-linkedin-ads-mcp

flin-linkedin-ads-mcp

by flin-agency

search_ad_library

Search public LinkedIn ads by keyword, advertiser, payer, country, date range, targeting categories, and impression range without an ad account; returns preview URLs and transparency details.

Instructions

Search public LinkedIn ads, including other advertisers, by keyword, advertiser, payer, country, dates, targeting categories and impression range. No ad account required. Requires the LinkedIn Ad Library product on the token's app, with no extra OAuth scope. Returns preview URLs and available transparency details; no ad copy/media download, clicks or spend. Targeting/impression details depend on availability (particularly EU ads). Without dates LinkedIn searches only today-2 to today-1. date_to is exclusive. Multiple keywords use AND.

Input Schema

NameRequiredDescriptionDefault
date_toNoExclusive end; requires date_from.
keywordNo
countriesNoISO two-letter country codes, e.g. CH, DE, AT.
date_fromNoInclusive start; requires date_to.
page_sizeNo
advertiserNo
page_startNoOffset; use paging.next_start for the next page with the same filters.
payer_nameNo
sort_orderNoSort by ad creation time; LinkedIn defaults to DESCENDING.
impressions_toNoRequires impressions_from. Use 0 for an open upper bound (1M+).
impressions_fromNo
excluded_targeting_categoriesNo
included_targeting_categoriesNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.3.0

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations present, the description carries the full burden and does so: it discloses auth prerequisites, what is returned (preview URLs and transparency details), what is NOT returned (no ad copy/media download, clicks or spend), availability caveats for EU ads, and the surprising default date window of today-2 to today-1. These are exactly the non-obvious behaviors an agent could not infer from schema alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense paragraph with almost no filler — every clause about dates, keyword logic, and return contents earns its place and the core purpose is front-loaded. The long comma-separated filter list in the first sentence is slightly harder to parse than a bulleted or semicolon-separated form, but there is no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 13-parameter, zero-annotation, no-output-schema tool, the description covers the high-risk items: auth, default date window, exclusive end dates, keyword AND logic, and the limits of returned data. It is slightly thin on pagination (only 'use paging.next_start' in the schema) and on what an unfiltered call returns, but otherwise an agent has what it needs to call correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 46%, so the description meaningfully compensates: it explains date_to exclusivity, that omitting dates defaults to a two-day window, that multiple keywords are ANDed, and that targeting/impression fields are availability-dependent. Gaps remain for advertiser vs payer_name semantics, sort_order, and page_size/page_start paging behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb and resource ('Search public LinkedIn ads') and immediately scopes it to ads beyond the caller's own ('including other advertisers'), which separates it from sibling tools like list_creatives and get_creative. The filter vocabulary and the 'no ad account required' clause pin down exactly what the tool operates on.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states the prerequisites ('Requires the LinkedIn Ad Library product on the token's app, with no extra OAuth scope') and clarifies no ad account is needed, which is the key routing signal versus account-scoped siblings. It stops short of naming a specific alternative tool or stating when NOT to use it, so it lands at 4 rather than 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.