LinkedIn Ads MCP server with MCC client-switching support
Wellknown found it in public sources; nobody has proven control of it yet. Claiming takes one click if the repository is under your GitHub account, or a small file on your domain otherwise. Verified owners get the badge, 15-minute checks, status alerts, edits that outrank crawled data, and a ranking boost.
Agents can do it too: POST https://wellknown.network/api/v1/claims with {"agent":"linkedin-ads-mcp-py","method":"well_known_file"} — machine-readable steps at claim.json, guide at /docs/claim.
Everything here was measured by our prober or read from a registry. Nothing is self-reported.
Attributed to the source that supplied each field. Treated as claims, not facts.
# linkedin-ads-mcp MCP server for the LinkedIn Marketing API, with built-in MCC-style client switching across every ad account your LinkedIn login can access. ## Installation Once published to PyPI: ```bash uv tool install linkedin-ads-mcp-py ``` This installs the `linkedin-ads-mcp` and `linkedin-ads-auth` commands. Or run it directly without installing: ```bash uvx --from linkedin-ads-mcp-py linkedin-ads-mcp ``` Point your MCP client (e.g. `.mcp.json` or Claude Desktop's config) at the `linkedin-ads-mcp` command. ## Setup 1. Create an app at [LinkedIn Developers](https://www.linkedin.com/developers/apps) with access to the **Advertising API** product (requires LinkedIn's approval — see their docs, no published SLA). 2. Add `http://localhost:3000/callback` (or your own `LINKEDIN_REDIRECT_URI`) to the app's authorized redirect URLs. 3. Set the following environment variables (e.g. in a `.env` file in your working directory, or directly in your MCP client's server config): ```bash LINKEDIN_CLIENT_ID=your_client_id LINKEDIN_CLIENT_SECRET=your_client_secret # Optional overrides: # LINKEDIN_REDIRECT_URI=http://localhost:3000/callback # LINKEDIN_TOKEN_PATH=/path/to/tokens.json ``` 4. Authenticate (opens a browser for the LinkedIn OAuth consent screen): ```bash uvx --from linkedin-ads-mcp-py linkedin-ads-auth ``` Tokens are saved to `~/.linkedin-ads-mcp/tokens.json` by default and refreshed automatically when a refresh token is available. 5. Run the server: ```bash uvx --from linkedin-ads-mcp-py linkedin-ads-mcp ``` ### Headless / remote deployments Hosts that can't open a browser or receive the local OAuth callback (e.g. MCP Anywhere) can't run `linkedin-ads-auth` themselves. Instead, run it once locally as above, then read the `refresh_token` value out of the saved token file (`~/.linkedin-ads-mcp/tokens.json` by default) and set it as `LINKEDIN_REFRESH_TOKEN` alongside `LINKEDIN_CLIENT_ID`/`LINKE…
Mapped onto the structured taxonomy from declared text and observed tool names. Confidence shown for derived entries.
Every source is kept verbatim. Field changes are logged as events.