Skip to main content
Glama

Adako: Google Ads, Meta Ads & Linkedin Ads MCP

LinkedIn campaign (ad set) performance

linkedin_get_campaign_performance
Read-onlyIdempotent

🟢 READ-ONLY — runs immediately, changes nothing. Cost: free (not counted against tasks).

Reports spend, impressions, clicks, CTR, CPC, CPM, leads, cost per lead and website conversions for a window, per campaign (an ad set in Campaign Manager) and in total, next to the equally long window before it so every number has a baseline. Use when: the user asks how LinkedIn is doing, before recommending any budget or bid change, and to decide which campaign is worth more money. Start here, not with a list tool. Do not use it for a brief or a report to keep or forward: that is generate_report_now (monitoring router), which covers every connected account and saves a page. Do not judge a LinkedIn campaign on a day or two: at typical B2B volumes a single day is noise, and LinkedIn's cost per lead is an order of magnitude above other channels by design. Use last_7_days at minimum, last_30_days for a decision about money. Do not read a rise in CPC as failure on its own — on LinkedIn it usually means the auction got busier, and the number that matters is cost per lead. Returns account totals with period-over-period change, plus a per-campaign table sorted by spend. LinkedIn ad accounts carry no reporting timezone, so every window here is UTC days. If the user has not said which window, use last_30_days and say so. If a campaign shows spend but zero leads, check linkedin_list_conversions before concluding the ads are bad — an unattached conversion rule reports nothing.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum rows to return (default 100).
end_dateNoLast day, YYYY-MM-DD, inclusive. Needs start_date.
raw_dataNoReturn compact JSON only (no markdown). Use when you will compute on the result.
date_rangeNoPreset window. The "last N days" ones end yesterday, so no partial day is mixed in. Either this or start_date + end_date, never both.
start_dateNoFirst day, YYYY-MM-DD. Needs end_date.
campaign_idsNoLimit the report to these campaigns. Omit for the whole account.
ad_account_idNoLinkedIn ad account id — the numeric id from Campaign Manager, as a string ("506699162"). Omit it to use the primary account; pass it when the user manages several.
compare_previousNoInclude the previous equally long period for comparison (default true).
campaign_group_idNoLimit the report to one campaign group. LinkedIn ids are numeric strings; a full urn:li:… value is also accepted.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered. The description adds substantial behavioral context beyond annotations: it is free (not counted against tasks), defines the comparison window behavior, notes LinkedIn ad accounts carry no reporting timezone (all UTC days), explains typical B2B volume noise, and warns not to misread CPC rises or zero-lead campaigns. This is rich, non-redundant context.

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?

Well-structured with a clear READ-ONLY banner, metric list, use/don't-use routing, and behavioral notes. Each sentence earns its place by providing unique guidance. Slightly verbose (multiple do/don't blocks and repetition of baseline concept), but front-loaded and scannable.

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?

Given 9 optional parameters, no output schema, and complex reporting semantics, the description covers routing, defaults, timezone handling, and diagnostic follow-ups. It stops short of explaining the exact return structure (though no output schema exists, so some return-format disclosure would help). Nonetheless, it is complete enough for correct invocation.

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 all nine parameters are fully documented in the schema itself (including defaults, enum values, date pairing rules, and the ad_account_id string format). The description mostly reinforces parameter semantics with usage-level guidance (default to last_30_days if unspecified, use last_7_days minimum, check conversions on zero leads) rather than adding syntax beyond the schema. Baseline 3 is appropriate when schema does the heavy lifting.

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?

States a specific verb+resource (reports LinkedIn campaign performance) and enumerates the metrics returned (spend, impressions, clicks, CTR, CPC, CPM, leads, cost per lead, conversions). It distinguishes itself from siblings by naming generate_report_now and the list tools as alternatives. An agent can identify the tool's role without opening the schema.

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

Usage Guidelines5/5

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

Explicit when-to-use ('user asks how LinkedIn is doing', 'before recommending any budget or bid change'), explicit when-not ('not for a brief or report to keep/forward — that is generate_report_now'), and directs alternative workflow ('start here, not with a list tool'). Also gives a default window recommendation and a diagnostic follow-up (linkedin_list_conversions). This is exemplary routing guidance.

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.