Kampalo

com.kampalov0.3.0Updated Oct 5, 2026

Google Ads, Meta Ads, GA4, Search Console and Shopify insights, alerts, ROAS rules and ad actions.

VerifiedStreamable HTTPWeb executableData & AnalyticsBusiness & Commerce

Overview

AI-generated overview

Lets an assistant read synced Google Ads, Meta Ads, GA4, Search Console and Shopify marketing data, and run Kampalo alerts, ROAS rules and campaign pause…

What it does
Connects to Kampalo's hosted MCP server to read synced marketing data and produce briefs comparing Google and Meta, SEO, GA4 and organic performance. It exposes automate_* tools that propose pausing a weak campaign, confirm that proposal, create ads and SEO alerts, create dry-run ROAS automation rules, and generate report JSON. Rule and alert writes are admin only, and live pauses require a catalog-backed proposal plus explicit confirmation.
When to use it
Use it when an assistant should brief on paid and organic marketing performance held in Kampalo, or manage Kampalo alerts and ROAS pause rules. It is not for connecting ad accounts, changing budgets, creating campaigns, or writing Shopify or TikTok data.
Requirements
A remote streamable HTTP endpoint at be.kampalo.com/mcp. Authentication uses an Authorization Bearer header with a personal Kampalo API key (KAMPALO_MCP_API_KEY) or the operator key; the Claude plugin instead uses OAuth sign-in. Tools also need a Kampalo user_id or user_email unless a personal key already binds the user. Network access to the Kampalo host is required.
Before you install
The API key is a secret and should be supplied by environment variable or header, not shared. Confirm actions write live changes: confirming a pause sets a campaign to PAUSED on Google or Meta, and enabling a rule live requires confirm_live=true. Alert and automation rule writes are admin only. Read-only users cannot confirm actions or administer rules.

Installation

In SourceWeft

  1. Open Kampalo in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "kampalo": {
      "type": "http",
      "url": "https://be.kampalo.com/mcp"
    }
  }
}

README

Kampalo plugin for Grok Build

Grok Build plugin that connects to Kampalo’s hosted FastMCP server. Grok can read synced ads/SEO/GA4 data and run the automations Kampalo already has: pause proposals, ads/SEO alerts, ROAS pause rules, and report JSON.

This plugin does not add product APIs. It wires Grok to python manage.py run_mcp_server:

  • Read tools from marketing/agents/suites.py (synced Postgres)
  • automate_* tools from marketing/agents/automation_backend.py (same services as /api/marketing/actions/, alert rules, automation rules, reports)

In-app Kai (LangGraph) stays read-only. Only this MCP catalog has automate_*.

Installation

After the plugin is listed in the xAI marketplace, in Grok Build run /plugin, search Kampalo, and install.

Until then, install from the plugin repo:

text
grok plugin install Tekreign/kampalo-cursor-plugin

Set KAMPALO_MCP_API_KEY to your personal kmp_… key from Kampalo Settings → API Keys (Starter and Enterprise). On first tool use Grok calls https://be.kampalo.com/mcp with Authorization: Bearer ….

Every tool also needs a Kampalo user_id or user_email. Ask the user if neither is known. A personal key already binds your user, so you can omit both.

Cursor

The same repo ships Cursor packaging next to the Grok files. Both use the same skills/ and the same MCP server.

Grok BuildCursor
.grok-plugin/plugin.json.cursor-plugin/plugin.json
.mcp.json (${KAMPALO_MCP_API_KEY})mcp.json (${env:KAMPALO_MCP_API_KEY})
  1. Generate a key in Kampalo Settings → API Keys.

  2. Set it in the environment Cursor starts from, then restart Cursor:

    powershell
    setx KAMPALO_MCP_API_KEY "kmp_..."
    bash
    export KAMPALO_MCP_API_KEY="kmp_..."   # in ~/.zshrc or ~/.bashrc
  3. Install the plugin from this repo in Cursor. Check Settings → MCP shows kampalo connected, then ask: Brief Google vs Meta in Kampalo.

Without the plugin, the same server works from a project or user ~/.cursor/mcp.json by copying the kampalo entry from mcp.json.

Claude (claude.ai, Cowork, Claude Code)

The Claude plugin lives in claude/ and is what the Claude directory lists. It uses OAuth: Claude asks you to sign in to Kampalo the first time, so there is no KAMPALO_MCP_API_KEY to set. Its skills are a copy of skills/ without the user_id / user_email step, because the signed-in account is applied automatically. Keep both copies in sync when you edit a skill.

Install in Claude Code from this repo's marketplace (.claude-plugin/marketplace.json points at ./claude):

text
/plugin marketplace add Tekreign/kampalo-cursor-plugin/plugin install kampalo@kampalo

Run /mcp, choose kampalo, and sign in to Kampalo when prompted.

Network and credentials

WhatValue
MCP endpointhttps://be.kampalo.com/mcp (streamable HTTP)
AuthAuthorization: Bearer ${KAMPALO_MCP_API_KEY}
SecretPersonal kmp_… key (Settings → API Keys), or the operator MCP_API_KEY. Required when the server has auth enabled (DEBUG=False).
Not this URLhttps://be.kampalo.com/api — Django REST, not MCP

The plugin talks only to that MCP host. It does not read local .env / SSH keys or send telemetry elsewhere.

Local Compose (docker compose up) exposes MCP at http://127.0.0.1:8100/mcp. To point Grok at it, override the server URL in .mcp.json for that session.

What Grok can do

With MCP up and a Kampalo user who can mutate data (admin, or enterprise manager/marketer) for confirms. Alert/automation rule writes are admin only.

  1. Brief Google vs Meta, SEO, GA4, and organic Page/IG from synced stats
  2. Propose pausing a weak selected campaign
  3. Confirm that proposal (confirm=true) — writes PAUSED to Google or Meta
  4. Create ads alerts (ROAS / CPA / spend pace) and SEO/AEO alerts
  5. Create a dry-run ROAS automation rule; enable live only with confirm_live=true
  6. Generate a performance report JSON (no PDF bytes over MCP)

What it cannot do

  • Connect OAuth, change budgets, create campaigns, or write Shopify/TikTok
  • Pause without a catalog-backed proposal + explicit confirm
  • Act as a view-only user for confirms or rule admin
  • Invent metrics if MCP is down or the DB has no rows

Layout

text
kampalo-cursor-plugin/├── .grok-plugin/plugin.json├── .mcp.json├── .cursor-plugin/plugin.json├── mcp.json├── .claude-plugin/plugin.json├── .claude-plugin/marketplace.json├── skills/campaign-performance-brief/├── skills/automate-kampalo-work/├── assets/logo.svg├── LICENSE└── README.md

Skills

SkillWhen
campaign-performance-briefRead synced Google Ads, Meta Ads, Search Console, GA4, Page/IG
automate-kampalo-workPropose/confirm pauses, alerts, ROAS rules, report JSON

Example prompts

Read

Use my Kampalo email [email protected]. Brief Google vs Meta. Which campaigns have the worst ROAS?

Propose (no live pause)

Propose pausing the worst ROAS Google campaign. Do not confirm yet.

Expect automate_propose_pause and a pending action_id. The live campaign status must stay ENABLED.

Confirm (live pause)

Confirm pause for action <id>.

Expect automate_confirm_action with confirm=true. Campaign becomes PAUSED (needs valid Google/Meta tokens).

Watchdog

Create a dry-run rule: pause Google campaigns if ROAS stays below 1 for 3 days with at least $10 spend. Do not enable live.

Expect automate_upsert_automation_rule with dry_run=true, is_active=false.

Failure

Stop MCP and ask again. The bot must not claim a pause or a saved rule.

xAI marketplace entry (when submitting)

Remote source, SHA-pinned. Do not vendor files into xai-org/plugin-marketplace. After pushing this folder to a public repo:

bash
git ls-remote https://github.com/Tekreign/kampalo-cursor-plugin.git HEAD

Add one object to their .grok-plugin/marketplace.json:

json
{  "name": "kampalo",  "description": "Kampalo ads and SEO workspace for Grok Build. Brief synced Google Ads, Meta Ads, GA4, and Search Console; propose and confirm campaign pauses; manage ads/SEO alerts and ROAS pause rules; generate report JSON.",  "category": "development",  "source": {    "source": "url",    "url": "https://github.com/Tekreign/kampalo-cursor-plugin.git",    "sha": "<40-char lowercase commit sha>"  },  "homepage": "https://app.kampalo.com",  "keywords": ["kampalo", "kampalo ads", "kampalo google ads", "kampalo meta ads", "kampalo kai"],  "domains": ["kampalo.com", "app.kampalo.com", "be.kampalo.com"]}

Then in that fork: python3 scripts/generate-plugin-index.py and python3 scripts/validate-catalog.py. xAI flags branded plugins sourced from a personal GitHub account — move the plugin repo under a Kampalo org before the PR if possible.

License

MIT

Source: README.md at commit a7f261d

Tools

0
Tool metadata has not been indexed yet.

Version history

1
  1. v0.3.0LatestOct 5, 2026