
Security News
Anthropic Identifies Biased Reasoning and Recklessness as Drivers of Claude’s PyPI Attack
Anthropic found biased reasoning and recklessness drove Claude Mythos 5 to publish malware on PyPI and compromise a security vendor.
@cesteral/linkedin-mcp
Advanced tools
LinkedIn Ads MCP Server - Campaign entity management and reporting via LinkedIn Marketing API v2
LinkedIn Ads MCP Server - Campaign management via LinkedIn Marketing API v2.
Management server for LinkedIn Ads. Provides full CRUD operations, analytics reporting, targeting discovery, bulk operations, and specialized features like entity duplication and delivery forecasts. Designed for AI agents to manage LinkedIn Ads campaigns programmatically through the Model Context Protocol with per-session Bearer token authentication.
LinkedInBearerAuthStrategy (validates tokens against LinkedIn API)@hono/mcpRateLimiter class (100/min default, writes cost 3x)linkedin_list_entitiesList LinkedIn entities with optional filtering and offset-based pagination.
Parameters:
entityType (string, required): Type of entity to listadAccountUrn (string, optional): Ad Account URN to scope resultsstart (number, optional): Offset for pagination (default 0)count (number, optional): Results per page (default 25)linkedin_get_entityGet a single LinkedIn entity by URN.
Parameters:
entityType (string, required): Type of entity to retrieveentityUrn (string, required): The entity URN (e.g., urn:li:sponsoredCampaign:123)linkedin_create_entityCreate a new LinkedIn entity.
Parameters:
entityType (string, required): Type of entity to createdata (object, required): Entity fields as key-value pairslinkedin_update_entityUpdate an existing LinkedIn entity (PATCH via Rest.li partial update).
Parameters:
entityType (string, required): Type of entity to updateentityUrn (string, required): The entity URN to updatedata (object, required): Fields to update as key-value pairslinkedin_delete_entityDelete a LinkedIn entity.
Parameters:
entityType (string, required): Type of entity to deleteentityUrn (string, required): The entity URN to deletelinkedin_list_ad_accountsList ad accounts accessible to the authenticated user.
Parameters:
start (number, optional): Offset for pagination (default 0)count (number, optional): Number of accounts to return (default 25)linkedin_get_analyticsGet delivery metrics for LinkedIn Ads entities via /v2/adAnalytics.
Parameters:
adAccountUrn (string, required): Ad Account URNstartDate (string, required): Start date (YYYY-MM-DD)endDate (string, required): End date (YYYY-MM-DD)metrics (string[], optional): Metrics to return (e.g., impressions, clicks, costInUsd)pivot (string, optional): Pivot dimension (e.g., CAMPAIGN, CREATIVE)linkedin_get_analytics_breakdownsGet delivery metrics broken down by dimension (geo, device, member demographics, etc.).
Parameters:
adAccountUrn (string, required): Ad Account URNstartDate (string, required): Start date (YYYY-MM-DD)endDate (string, required): End date (YYYY-MM-DD)pivots (string[], required): Breakdown dimensions (e.g., ['MEMBER_COMPANY_SIZE', 'MEMBER_INDUSTRY'])metrics (string[], optional): Metrics to returndatePreset (string, optional): Date presetlinkedin_bulk_update_statusBatch update status for multiple LinkedIn Ads entities.
Parameters:
entityType (string, required): Type of entities to updateentityUrns (string[], required): Entity URNs to update (max 50)status (string, required): ACTIVE, PAUSED, or ARCHIVEDlinkedin_bulk_create_entitiesBatch create multiple entities of the same type.
Parameters:
entityType (string, required): Type of entities to createitems (array, required): Array of entity data objects (max 50)linkedin_bulk_update_entitiesBatch update multiple entities with individual data payloads.
Parameters:
entityType (string, required): Type of entities being updateditems (array, required): Array of update items (max 50), each with entityUrn and datalinkedin_adjust_bidsBatch adjust campaign bid amounts with percentage or absolute changes (safe read-modify-write).
Parameters:
adjustments (array, required): Array of bid adjustments (max 50), each with campaign URN, adjustmentType (percentage/absolute), and valuelinkedin_search_targetingSearch for targeting audience facets (skills, companies, locations, job titles) by keyword.
Parameters:
facetType (string, required): Facet type to search (e.g., skills, companies, locations, industries)query (string, optional): Search keywordlimit (number, optional): Max results (default 25)linkedin_get_targeting_optionsBrowse available targeting categories for an ad account.
Parameters:
adAccountUrn (string, required): Ad Account URNfacetType (string, optional): Filter by facet typelinkedin_duplicate_entityDuplicate a campaign group, campaign, or creative.
Parameters:
entityType (string, required): Type of entity to duplicate (campaignGroup, campaign, creative)entityUrn (string, required): URN of the entity to duplicateoptions (object, optional): Duplication options (e.g., rename prefix/suffix, status)linkedin_get_delivery_forecastGet audience size and delivery forecast for a targeting configuration.
Parameters:
adAccountUrn (string, required): Ad Account URNtargetingCriteria (object, required): Targeting criteria specificationlinkedin_get_ad_previewGet ad preview rendering for a creative.
Parameters:
creativeUrn (string, required): Creative URN to previewadFormat (string, optional): Ad format for preview renderinglinkedin_validate_entityClient-side validation of entity payloads without making API calls.
Parameters:
entityType (string, required): Type of entity to validatemode (string, required): Validation mode (create or update)data (object, required): Entity data to validate| Entity Type | API Object | Notes |
|---|---|---|
adAccount | Ad Account | Top-level advertising account |
campaignGroup | Campaign Group | Groups campaigns for budget and scheduling |
campaign | Campaign | Targeting, bidding, budget, objective |
creative | Creative | Ad creative content (sponsored content, message ads, etc.) |
conversionRule | Conversion Rule | Conversion tracking rules for attribution |
Entity Hierarchy: Ad Account > Campaign Group > Campaign > Creative (+ Conversion Rules)
Phase: Production-Ready
All listed tools are fully implemented using LinkedIn Marketing API v2 with Bearer token authentication, analytics reporting, and targeting discovery.
# Install dependencies
pnpm install
# Run in development mode
pnpm run dev:http
# Build
pnpm run build
# Start production server
pnpm run start
# Type check
pnpm run typecheck
LINKEDIN_MCP_PORT: Server port (default: 3006)LINKEDIN_MCP_HOST: Server host (default: 127.0.0.1 in development, 0.0.0.0 in production)MCP_AUTH_MODE: Authentication mode - linkedin-bearer (default), jwt, or noneMCP_AUTH_SECRET_KEY: Required when MCP_AUTH_MODE=jwtLINKEDIN_API_BASE_URL: LinkedIn API base URL (default: https://api.linkedin.com)LINKEDIN_API_VERSION: API version header value (default: 202409)LINKEDIN_RATE_LIMIT_PER_MINUTE: Rate limit ceiling (default: 100)LINKEDIN_ACCESS_TOKEN: Access token for stdio modeLinkedInHttpClient - HTTP client for LinkedIn Marketing API v2 with versioned headersLinkedInService - CRUD, bulk ops, duplication, targeting, delivery forecasts, ad previewsLinkedInReportingService - Analytics queries with breakdowns and pivotsLinkedInBearerAuthStrategy - Bearer token auth via LinkedIn API validationLinkedInAuthAdapter - Token management for per-session API callsSessionServiceStore - Per-session service instances keyed by session IDurn:li:sponsoredCampaign:123)LinkedIn-Version: 202409 header is required on all API requests and injected automaticallyX-Restli-Method: PARTIAL_UPDATECurrencyAmount objects with currencyCode and amount (amount is in cents)ARCHIVED status is permanent and cannot be reversedStreamable HTTP via Hono + @hono/mcp. Health check at /health.
See root CLAUDE.md for development guidelines, build system details, and monorepo conventions. See the root README for full architecture context.
Self-host: Follow the deployment guide to run this server on your own infrastructure.
Cesteral Intelligence: Request access -- governed execution with credential brokering, approvals, audit, and multi-tenant access.
Book a workflow demo: See it in action with your own ad accounts.
Compare options: OSS connectors vs Cesteral Intelligence
Apache License 2.0 — see LICENSE for details. This package is part of Cesteral's open-source connector layer; managed hosting and higher-level governance features live outside this repository.
FAQs
LinkedIn Ads MCP Server - Campaign entity management and reporting via LinkedIn Marketing API v2
The npm package @cesteral/linkedin-mcp receives a total of 107 weekly downloads. As such, @cesteral/linkedin-mcp popularity was classified as not popular.
We found that @cesteral/linkedin-mcp demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
Anthropic found biased reasoning and recklessness drove Claude Mythos 5 to publish malware on PyPI and compromise a security vendor.

Research
/Security News
Malicious Chrome and Firefox extensions target Axiom Trade and Padre users, stealing session tokens and wallet data.

Security News
GPT-6 Astra hits 100% on ExploitBench and finds zero-days autonomously, while independent tests reveal scope violations and monitoring gaps.