MCP

Connect an agent to Campaignly

Campaignly speaks the Model Context Protocol. Point the agent at one URL, sign in, and it can read the workspace you approve.

How to connect

The server lives at one address:

https://campaignly.net/api/mcp

Each client below adds ?profile=core, the curated set of tools for everyday campaign work. Use the URL shown for your client.

Connect from ChatGPT

https://campaignly.net/api/mcp?profile=core&platform=openai

  1. 1. In ChatGPT settings, open the connectors (apps) section and create a custom connector. Your plan or workspace may need developer mode turned on first.
  2. 2. Paste the URL above as the MCP server URL and choose OAuth sign-in.
  3. 3. Sign in to Campaignly when asked and approve the access you want to give.

Connect from Claude

https://campaignly.net/api/mcp?profile=core&platform=anthropic

  1. 1. In Claude, open Settings, then Connectors, and add a custom connector.
  2. 2. Paste the URL above.
  3. 3. Click Connect, sign in to Campaignly and approve the access you want to give.

Connect from Cursor

https://campaignly.net/api/mcp?profile=core

  1. 1. Add a server to your Cursor MCP settings (mcp.json) with this URL as its url.
  2. 2. Cursor opens the Campaignly sign-in the first time it connects. Approve the access you want to give.

Connect from Grok

https://campaignly.net/api/mcp?profile=core

  1. 1. Add Campaignly as a remote MCP server wherever your Grok setup accepts one, using the URL above.
  2. 2. Sign in to Campaignly when asked and approve the access you want to give.

What the tools do

Reading is always on. Every change needs a permission you tick on the consent screen, and edits are capped at 20 a day.

Campaigns
List campaigns, read a campaign's summary, performance, setup and checklist, and with the campaigns permission create campaigns and change their setup, goals and audiences. Nothing is ever published to Google or Meta from here.
Creatives
Read a campaign's creative brief and images, and with the creatives permission update the brief, propose image ideas and generate images.
SEO and audits
Tracked keywords and positions, competitors, keyword volume, local map rank, search visibility checks, audit results and Campaignly's suggestions.
Google Ads, Search Console and Analytics
Read-only account overviews, campaign rollups, keyword ideas, top search queries and site traffic from the Google accounts you connected.
Reports and reviews
KPI reports, workspace rollups, recent activity and Google reviews.
Account
Your workspace, team members, connected integrations, the KPI dictionary and the Campaignly feature list.

OAuth

Agents that support MCP OAuth discover the authorization server from the connect URL. You do not paste a client secret into the agent for the usual public-client flow.

Dynamic client registration
The agent registers itself. Public clients use token-endpoint auth method none. Confidential clients can use client_secret_basic or client_secret_post.
PKCE
S256 is the code challenge method. Plain is not accepted.
Grants
authorization_code to sign in, and refresh_token to stay connected. The only response type is code.
Refresh tokens
Ask for the offline_access scope. The authorization server advertises it for that purpose. It is not a data permission.
Endpoints
Register at https://campaignly.net/api/mcp/oauth/register, authorize at https://campaignly.net/api/mcp/oauth/authorize, and exchange the code at https://campaignly.net/api/mcp/oauth/token.

Scopes

These are the scopes the customer connection advertises. Reading the workspace is always on. Each other box is opt-in on the consent screen. Applying a change inside Google Ads, or starting a landing-page test there, only runs when that action is turned on for the workspace.

  • read

    Read this workspace: campaigns, brands, clients, reports, audits and the rest of the account.

  • google_ads

    Read connected Google Ads accounts

  • google_search_console

    Read connected Search Console properties

  • google_analytics

    Read connected GA4 properties

  • linkedin_ads

    Read connected LinkedIn Ads accounts

  • write

    Let your agent edit your business details (product categories, locations, website content, campaign strategy and goals)

  • creatives_write

    Let your agent create, change and remove campaign creatives (images and the creative brief)

  • campaigns_write

    Let your agent create campaigns and change their setup (budget, bidding, targeting, ad type, extensions, goals), send sign-off links and record sign-off

  • reviews_write

    Let your agent draft, post and skip replies to your Google reviews

  • ads_write

    Let your agent apply suggested fixes for campaign issues in your Google Ads account, and pause a property listing's running Google Ads and Meta campaigns

  • experiments_write

    Let your agent start, pause and end landing page tests in your Google Ads account, and keep the winning page

  • seo_data

    Let your agent look up keyword search volume, cost per click and difficulty (uses your daily keyword data allowance)

API key

A bearer API key is the alternative to OAuth. Create one under Account, then API Keys, and send it on every request to the same connect URL.

Authorization: Bearer clk_…

The key is shown once. Reading stays on; connected sources and each edit permission are separate boxes, and the edit boxes start unticked. You can hold up to five active keys, and you can rotate or revoke them on that page. The dashboard path is /dashboard/account/api-keys.

Example prompts

Paste one of these after the agent connects. They read what is already saved in Campaignly. They do not publish ads or spend money.

  1. Prompt 1

    List my campaigns and tell me the name, status and budget of each one.

  2. Prompt 2

    For my active campaign, summarize the last 30 days: spend, impressions, clicks, conversions, conversion value and return on ad spend.

  3. Prompt 3

    Compare weekdays with weekends on that campaign and say whether the daily spend looks even.

  4. Prompt 4

    Write a short client update, in plain language, from those results. Do not change the campaign.

Questions? Email support@campaignly.net or see the support page.

The Campaignly team