Skip to main content
Glama

LinkedIn Ads: read

linkedin_ads
Read-onlyIdempotent

LinkedIn Ads, read-only operations: get_structure, get_ad_details, get_breakdowns, get_conversion_actions, get_utm_audit, get_launch_readiness, get_channel_expansion_basis, check_landing_pages, list_changes, get_ad_group_keywords, get_campaign_targeting, get_linkedin_forecast, get_campaign_settings, search_linkedin_targeting, get_tag_health. Changes nothing in the ad account. Parameters of an operation: get_tool_schema.

Input Schema

NameRequiredDescriptionDefault
paramsNo
operationYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / operation / enum
      Previous value: -[
      -  "get_structure",
      -  "get_ad_details",
      -  "get_breakdowns",
      -  "get_conversion_actions",
      -  "get_utm_audit",
      -  "get_channel_expansion_basis",
      -  "check_landing_pages",
      -  "list_changes",
      -  "get_ad_group_keywords",
      -  "get_campaign_targeting",
      -  "get_linkedin_forecast",
      -  "get_campaign_settings",
      -  "search_linkedin_targeting",
      -  "get_tag_health"
      -]New value: +[
      +  "get_structure",
      +  "get_ad_details",
      +  "get_breakdowns",
      +  "get_conversion_actions",
      +  "get_utm_audit",
      +  "get_launch_readiness",
      +  "get_channel_expansion_basis",
      +  "check_landing_pages",
      +  "list_changes",
      +  "get_ad_group_keywords",
      +  "get_campaign_targeting",
      +  "get_linkedin_forecast",
      +  "get_campaign_settings",
      +  "search_linkedin_targeting",
      +  "get_tag_health"
      +]
  2. Changed1 schema field changed
    • changedInput schema / properties / operation / enum
      Previous value: -[
      -  "get_structure",
      -  "get_ad_details",
      -  "get_breakdowns",
      -  "get_conversion_actions",
      -  "get_utm_audit",
      -  "check_landing_pages",
      -  "list_changes",
      -  "get_ad_group_keywords",
      -  "get_campaign_targeting",
      -  "get_linkedin_forecast",
      -  "get_campaign_settings",
      -  "search_linkedin_targeting",
      -  "get_tag_health"
      -]New value: +[
      +  "get_structure",
      +  "get_ad_details",
      +  "get_breakdowns",
      +  "get_conversion_actions",
      +  "get_utm_audit",
      +  "get_channel_expansion_basis",
      +  "check_landing_pages",
      +  "list_changes",
      +  "get_ad_group_keywords",
      +  "get_campaign_targeting",
      +  "get_linkedin_forecast",
      +  "get_campaign_settings",
      +  "search_linkedin_targeting",
      +  "get_tag_health"
      +]
  3. First observed

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the 'changes nothing' claim is redundant with structured data. The one genuinely additive behavior detail is the meta-workflow hint that operation parameters must be fetched via get_tool_schema; no auth, rate-limit, or return-shape context is given.

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

Conciseness3/5

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

Purpose is front-loaded, but the run-on enumeration of all 15 operations duplicates the enum already in the input schema and consumes most of the text without adding meaning. The closing get_tool_schema pointer is the only high-value sentence beyond the opening.

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

Completeness3/5

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

For a dispatcher with no output schema and 0% parameter coverage, the description leaves an agent unable to call any operation correctly without a second round-trip to get_tool_schema. It does at least make that dependency explicit, which keeps it at minimum-viable rather than inadequate.

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

Parameters2/5

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

Schema description coverage is 0% and the free-form 'params' object is entirely undocumented. The description merely re-lists the 15 enum values already present in the schema and defers all parameter meaning to get_tool_schema rather than compensating for the coverage gap.

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 resource (LinkedIn Ads) and scope (read-only operations) and enumerates all 15 supported operations. The line 'Changes nothing in the ad account' cleanly separates it from the linkedin_ads_changes sibling, though it doesn't explain what any individual operation returns.

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?

Signals that the tool is read-only and directs the agent to get_tool_schema for per-operation parameters, which is a useful pointer. However, there is no guidance on when to choose a given operation, when to prefer a sibling like get_performance or linkedin_ads_changes, or any prerequisites.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources