Skip to main content
Glama
get-mcp-ads

LinkedIn Ads MCP Server

linkedin list media

linkedin_list_media
Read-onlyIdempotent

List image or video files in a LinkedIn Ads account library, returning download URLs and native processing status so you can locate creative assets for uploads or review.

Instructions

List account image/video library files with download URLs and native processing status; not ad performance.

Input Schema

NameRequiredDescriptionDefault
kindYesLibrary to list: images or videos.
limitNoMaximum results in this page; inspect paging/coverage for additional data.
startNoZero-based offset in the media library page.
adAccountIdYesSelected LinkedIn advertising account, numeric ID. It must be listed in LINKEDIN_ADS_ACCOUNT_IDS.

Output Schema

NameRequiredDescriptionDefault
resultYesOriginal tool result: parsed JSON when the text is JSON, otherwise the text. Provider fields depend on the selected query.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive, and open-world, so safety is covered. The description adds that library items come with download URLs and processing status, which hints at the read payload, but says nothing about rate limits, library scoping, or pagination behavior beyond what the schema states.

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 compact sentence with the resource front-loaded and the exclusion clause at the end. Dense but every clause carries information; nothing is wasted.

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?

With full schema coverage, annotations, and an output schema, the description only needs to convey scope and exclusions, which it does. A brief note on single-asset retrieval versus linkedin_get_media would close the remaining gap.

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

Parameters3/5

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

Schema description coverage is 100%, so kind, limit, start, and adAccountId are all documented with enums, defaults, and bounds in the schema itself. The description adds no parameter-level detail (e.g., how kind interacts with returned URL types), so this sits at the baseline.

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

Purpose4/5

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

States a specific verb and resource (list account image/video library files) plus the payload it returns (download URLs, native processing status). The 'not ad performance' clause separates it from the insights/report siblings, though it doesn't distinguish it from the close sibling linkedin_get_media or linkedin_list_ad_creatives.

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

Usage Guidelines3/5

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

The 'not ad performance' phrase gives a when-not signal, implying use this for asset retrieval rather than metrics. There is no explicit when-to-use statement and no named alternative for fetching a single asset, so the agent must infer the boundary with linkedin_get_media.

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