Skip to main content
Glama

Honeyfield Marketing MCP

LinkedIn Ads: Create campaign

linkedin_create_campaign

Neue LinkedIn-Kampagne (Sponsored Content, Typ SPONSORED_UPDATES) anlegen — trägt Tagesbudget, Geo-/Sprach- und optional weiteres Targeting. Gebot automatisch; Optimierungsziel beim Anlegen immer MAX_CLICK (CPM), unabhängig vom Objective — danach mit linkedin_update_campaign_bid umstellen (z. B. MAX_LEAD, manuelles Gebot).

campaign_group_id aus linkedin_list_campaign_groups/…create…. objective: WEBSITE_VISIT/BRAND_AWARENESS/ENGAGEMENT/VIDEO_VIEW/ LEAD_GENERATION/WEBSITE_CONVERSION/JOB_APPLICANT. countries: ISO-Codes (AT/DE/CH/US/GB/FR/NL/IT/ES, Default ['AT']) oder 'urn:li:geo:…'-URNs. language: 'de' (de_DE) oder 'en' (en_US) — andere Sprachen werden derzeit nicht auf gültige Locales abgebildet. currency: Kontowährung des Budgets (Default EUR). status: DRAFT (Default) oder ACTIVE. validate_only: True prüft nur lokal (kein API-Aufruf) und liefert would_create. targeting: zusätzliche Zielgruppen-Gruppen, UND-verknüpft mit Land und Sprache; innerhalb einer Gruppe ODER. Form wie in linkedin_update_campaign_targeting, z. B. [{"job_functions": ["urn:li:function:13"]}, {"seniorities": ["urn:li:seniority:6", "urn:li:seniority:7"]}]. URNs über linkedin_search_targeting finden. Jobtitel nicht mit job_functions oder seniorities kombinieren (LinkedIn lehnt das ab). exclude: Ausschlüsse, z. B. {"companies": ["urn:li:organization:1337"]}. start_date/end_date: erster bzw. letzter Lauftag einschließlich ('YYYY-MM-DD', UTC-Tage wie im Campaign Manager: Start 00:00 UTC, Ende 23:59:59 UTC); Start ohne Angabe sofort, in der Vergangenheit → error=start_in_past; ohne Ende unbefristet. audience_network: auch im LinkedIn Audience Network (Drittseiten) ausliefern, Default aus. organization_urn: werbende Unternehmensseite ('urn:li:organization:…'); ohne Angabe die mit dem Werbekonto verknüpfte Seite (sonst error=organization_unknown). Politische Werbung: Die Kampagne wird als NICHT politisch angelegt. LinkedIn verlangt, dem Werbetreibenden vor dem Anlegen diese Bestätigung zu zeigen (Standard: bestätigt) — zeige sie dem Nutzer und lege nicht an, wenn es politische Werbung ist: "I confirm this is not political advertising. None of my ads qualify as political advertising under the law of the targeted countries, including EU law for ads targeted to the EU. Advertisers must comply with LinkedIn's policies and regulatory requirements. https://www.linkedin.com/legal/ads-policy" Rückgabe: campaign_id, status, associated_entity, verified (Kampagne zurückgelesen: Name, Status, Ziel, Budget, Gebot, Laufzeit, Audience Network, politische Einordnung, Unternehmensseite; Abweichungen in not_applied; verified=null mit readback_failed, wenn nur das Zurücklesen scheiterte — dann NICHT erneut anlegen), political_notice, targeting_notice. targeting_notice: LinkedIn-Pflichthinweis gegen diskriminierendes Targeting — dem Nutzer zusammen mit dem Targeting wörtlich mit Link anzeigen: "LinkedIn tools may not be used to discriminate based on personal characteristics like gender, age, race, or ethnicity. Learn more: https://www.linkedin.com/help/lms/answer/86856" workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

Input Schema

NameRequiredDescriptionDefault
nameYes
statusNoDRAFT
excludeNo
currencyNoEUR
end_dateNo
languageNode
countriesNo
objectiveNoWEBSITE_VISIT
targetingNo
workspaceNo
start_dateNo
daily_budgetYes
validate_onlyNo
audience_networkNo
organization_urnNo
campaign_group_idYes

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.9/5.0
Behavior5/5

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

Annotations only give the basic write/safe/open-world profile, and the description adds substantial behavior beyond that: bid is force-set to MAX_CLICK/CPM at creation, start_date in the past yields error=start_in_past, missing org page yields error=organization_unknown, and a readback verification (verified/not_applied/readback_failed) that must not be re-created on failure. It also surfaces the mandatory political-ad and anti-discriminatory notice obligations. No contradiction with annotations.

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?

The purpose is front-loaded and the parameter breakdown is orderly, with each entry carrying real information. It is long and slightly repetitive where it explains return values that an output schema already covers. Not wasteful overall, but a touch verbose for the format.

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

Completeness5/5

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

For a 16-parameter mutation with nested targeting, the description covers required inputs, defaults, error conditions, side effects, and even the return shape (though an output schema exists). An agent has everything needed to call it correctly and interpret failures.

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

Parameters5/5

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

Schema description coverage is 0%, so the description carries the full burden, and it does: objective enum values, countries ISO codes plus default, language locale mapping, currency default, status DRAFT/ACTIVE, targeting group semantics (AND across groups, OR within), the job-title-vs-function/seniority restriction, exclude shape, inclusive date semantics, and validate_only behavior. This far exceeds what the bare schema conveys.

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?

The first sentence names a specific verb and resource ("Neue LinkedIn-Kampagne ... anlegen") and even pins the ad type (Sponsored Content, SPONSORED_UPDATES). It differentiates itself from siblings by pointing to linkedin_update_campaign_bid and linkedin_update_campaign_targeting for post-creation changes. An agent can tell exactly what this does versus the many other ad tools.

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?

It routes the agent to alternatives and prerequisites explicitly: get campaign_group_id from linkedin_list_campaign_groups, look up URNs via linkedin_search_targeting, switch bid/objective afterwards with linkedin_update_campaign_bid, and use validate_only for a local dry-run. It also states when NOT to create (political advertising). This is genuine when/when-not/alternative 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.

Resources